日志文件满而不慎把数据库日志文件误删除时的恢复步骤

声明非原创~~~~



本文是在连续以下操作后果下的补救方法,仅供参考:
1、日志文件提示已满,不能对数据库操作;
2、根据一些人的经验、先分离数据库,停止sql server 服务,删除日志文件,附加mdf文件失败。

以上操作2在日志文件未满时基本适用。


下面是修复方法:

1、将原来的MDF文件rename为***_1.MDF,新建一个同名数据库及***_temp数据库
2、运行以下语句,把该数据库设置为紧急模式;
Use Master

Go

sp_configure 'allow updates', 1

reconfigure with override

Go

update sysdatabases set status = 32768 where name = '***'

3、停止数据库服务
4、覆盖MDF文件,就是新生成的MDF文件名rename为***_2.MDF,***_1.MDF rename为原来的文件名
5、重启数据库服务
6、通过DTS导数据到***_temp


(1)         运行DTS导出向导;

(2)         复制源选择EmergencyMode的数据库XXX,导入到XXX_temp;

(3)         选择“在SQL Server数据库之间复制对象和数据”,试了多次,好像不行,只是复制过来了所有表结构,但是没有数据,也没有视图和存储过程,而且DTS向导最后报告复制失败;

(4)         所以最后选择“从源数据库复制表和视图”,但是后来发现,这样总是只能复制一部分表记录;

(5)         于是选择“用一条查询指定要传输的数据”,缺哪个表记录,就导哪个;
        

7、通过Enterprise Manager->Tools->Generate SQL script 生成原来数据库的脚本文件;--注意别漏选;
8、删除紧急模式数据库,把原来rename的新同名MDF文件恢复,然后attach同名数据库
9、运行脚本文件
10、通过DTS导回数据
11、恢复数据库的紧急模式设置;
Use Master

Go

sp_configure 'allow updates', 0

reconfigure with override

Go

sp_resetstatus '***'
 


2004年12月24日18:24:24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值