江湖告急!!!!!!!!!!!!附加数据库出错~~ 在线等 救救小弟~~~

土星人在海边 2004-06-18 07:10:27
数据库由于日志文件过大 我就分离了数据库 然后删除log文件
再附加数据库 怎么都附加不上去
调处1813错误 提示log文件物理名出错
创建不了log文件

???????????????高手们 救救小弟
...全文
323 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
青锋-SS 2004-07-24
  • 打赏
  • 举报
回复
up
zonelive 2004-06-18
  • 打赏
  • 举报
回复
再教你一招
把*.mdf文件拷贝到另一台有sqlserver的电脑(最好是第一次新安装sqlserver在本机),再sp_attach_single_file_db
zjcxc 元老 2004-06-18
  • 打赏
  • 举报
回复
如果上述方法也恢复不了,那就可能没什么办法了.

SQL的日志文件中记录着有用的数据,在日志文件中的数据完全写回到数据文件之间,是不可以直接删除日志文件的,否则就会丢数据,严重的会导致整个数据库不能恢复


一般情况下不建议删除日志文件,即使要删除日志文件,也应该在做了如下几个步骤,保证数据完全写回到数据文件之后,才做删除日志文件的操作:

1.清空日志
DUMP TRANSACTION 库名 WITH NO_LOG

2.截断事务日志:
BACKUP LOG 数据库名 WITH NO_LOG

3.收缩数据库文件(如果不压缩,数据库的文件不会减小
企业管理器--右键你要压缩的数据库--所有任务--收缩数据库--收缩文件
--选择日志文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了
--选择数据文件--在收缩方式里选择收缩至XXM,这里会给出一个允许收缩到的最小M数,直接输入这个数,确定就可以了

也可以用SQL语句来完成
--收缩数据库
DBCC SHRINKDATABASE(客户资料)

--收缩指定数据文件,1是文件号,可以通过这个语句查询到:select * from sysfiles
DBCC SHRINKFILE(1)
zjcxc 元老 2004-06-18
  • 打赏
  • 举报
回复
不能恢复日志文件,则备份数据文件,然后按下面的步骤处理:

1.新建一个同名的数据库(数据文件与原来的要一致)

2.再停掉sql server(注意不要分离数据库)

3.用原数据库的数据文件覆盖掉这个新建的数据库

4.再重启sql server

5.此时打开企业管理器时会出现置疑,先不管,执行下面的语句(注意修改其中的数据库名)

6.完成后一般就可以访问数据库中的数据了,这时,数据库本身一般还要问题,解决办法是,利用
数据库的脚本创建一个新的数据库,并将数据导进去就行了.



USE MASTER
GO

SP_CONFIGURE 'ALLOW UPDATES',1 RECONFIGURE WITH OVERRIDE
GO

UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='置疑的数据库名'
Go

sp_dboption '置疑的数据库名', 'single user', 'true'
Go

DBCC CHECKDB('置疑的数据库名')
Go

update sysdatabases set status =28 where name='置疑的数据库名'
Go

sp_configure 'allow updates', 0 reconfigure with override
Go

sp_dboption '置疑的数据库名', 'single user', 'false'
Go
zjcxc 元老 2004-06-18
  • 打赏
  • 举报
回复
如果可以恢复,那就恭喜你,正常的方法附加回去就行了。

如果不能恢复日志文件,那你就得有丢失数据的心理准备了
zjcxc 元老 2004-06-18
  • 打赏
  • 举报
回复
先试试用下面的工具恢复被删除掉的数据库日志文件(*.ldf)

**************************************************************************
特别注意,任何对磁盘的操作,包括安装软件,都可能破坏已经删除的文件,导致文件恢复失败.

所以建议你在另一台电脑上安装上述文件恢复工具.
并将你的硬盘挂到该电脑上进行文件恢复.
**************************************************************************
=============================================================
文件恢复工具

EasyRecovery
下载: http://www.skycn.com/soft/13950.html

优秀的数据恢复工具,可把受到病毒破坏、格式化、删除的硬盘数据抢救回来!
6.0版本使用新的数据恢复引擎,并且能够对ZIP文件以及微软的Office系列
文档进行修复!6.0中还包含了Ontrack Data Advisor!其他更新请看软件
自带的Readme

★ FinalData NT Standard 1.5

FinalData 可以回收在 Windows NT/2000/XP 中被误删的文件。
它还可以恢复你的数据,主引导记录(MBR),引导扇区,FAT。
它能找回其他类似工具所找不到的,安全,快速,专业

Acronis RecoveryExpert 2003
下载: http://www.91now.com/downsky/soft/7175.htm

Acronis RecoveryExpert是一个数据恢复软件,它功能强大,甚至可以恢复已经删除的
硬盘分区!如果你的系统已经损坏,软件支持你通过能启动的光碟开机来进行数据恢复。
它可以让你免受由于其他软件的错误,病毒的破坏甚至于黑客的工具所带来的数据损失。
zjcxc 元老 2004-06-18
  • 打赏
  • 举报
回复
又一个受害者,在CSDN一年,楼主这样的受害者可遇到不少了
土星人在海边 2004-06-18
  • 打赏
  • 举报
回复
楼上那个办法还是不行 我的数据库不是本机新建的 还要复杂一点点
土星人在海边 2004-06-18
  • 打赏
  • 举报
回复
解决了…………
zonelive 2004-06-18
  • 打赏
  • 举报
回复
我今天也碰到了楼上的那个问题,解决方法:
先sp_detach_db分离数据库
再用sp_attach_single_file_db生成一个新的日志文件
一切正常~!
土星人在海边 2004-06-18
  • 打赏
  • 举报
回复
……
土星人在海边 2004-06-18
  • 打赏
  • 举报
回复
一失足阿...要知道就用截断日志了
之前用分离没出过问题阿
土星人在海边 2004-06-18
  • 打赏
  • 举报
回复
直接分离数据库 跳出了提示 说事务日志已满

但也分离成功了

如果有问题 有没有办法补救??
zanglinfeng 2004-06-18
  • 打赏
  • 举报
回复
可以直接截断日志啊,分离不是很安全啊!
zanglinfeng 2004-06-18
  • 打赏
  • 举报
回复
讲清楚你当时是怎么分离数据库的!错误很可能就是此时造成的!

34,576

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧