数据库日志文件恢复数据库方法

无数据库日志文件恢复数据库方法:

数据库日志文件的误删或别的原因引起数据库日志的损坏

1.新建一个同名的数据库

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

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

4.再重启sql server

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

6.完成后一般就可以访问数据库中的数据了。

这时,数据库本身一般还要问题(不要停止服务器,否则以上步骤要重新做)

解决办法是:创建一个新的数据库,并DTS导入导出向导将数据导进去就行了.

USE master
GO
SP_CONFIGURE 'allow updates',1 RECONFIGURE WITH OVERRIDE
GO
UPDATE SYSDATABASES SET STATUS =32768 WHERE NAME='SGPOS108_婴姿阁'
GO
SP_DBOPTION 'SGPOS108_婴姿阁', 'single user', 'true'
GO
DBCC CHECKDB('SGPOS108_婴姿阁')
GO
UPDATE SYSDATABASES SET STATUS =28 WHERE NAME='SGPOS108_婴姿阁'
GO
SP_CONFIGURE 'allow updates', 0 RECONFIGURE WITH OVERRIDE
GO
SP_DBOPTION 'SGPOS108_婴姿阁', 'single user', 'false'
GO




直接用sp_attach_single_file_db,将只有一个数据文件的数据库附加到当前服务器。



再参考:
数据库日志损坏的修复

请遵照如下步骤来试图重建数据库事务日志. 注意: 由于事务日志丢失, 数据库可能有没有提交的数据.

(1)创建一个新的数据库,命名为原来数据库的名字.

(2)停止SQL Server

(3)把老数据库的MDF文件替换新数据库的相应的MDF文件, 并把LDF文件删除

(4)重新启动SQL Server 服务,然后运行如下命令:

Use Master
go
sp_configure 'allow updates', 1 reconfigure with override
go
begin tran
update sysdatabases set status = 32768 where name = 'cab'
commit tran

(5)停止SQL然后重新启动SQL Server 服务,然后运行如下命令:

DBCC TRACEON (3604)
DBCC REBUILD_LOG('cab','D:\广西南宁\cab.LDF')
go

(6)停止SQL然后重新启动SQL Server 服务,然后运行:

use master
go
update sysdatabases set status = 8 where name = 'cab'
go '
sp_configure 'allow updates', 0 reconfigure with override
go

(7)运行dbcc checkdb(cab)检查数据库的完整性.


修复语句:dbcc checkdb('cab',repair_fast)


dbcc checkdb('cab',REPAIR_REBUILD)
dbcc checkdb('

cab',REPAIR_ALLOW_DATA_LOSS)

dbcc checkdb('sycab',REPAIR_REBUILD)


解决办法:
在SQL-Server企业管理器中,新建同名数据库(这里假设为Test)后,停止数据库,
把损坏的数据库文件Data.mdf和Test_log.LDF覆盖刚才新建数据库目录下的Data.mdf和Test_log.LDF,
同时删除Test_log.LDF文件;启动数据库服务,发现数据库名Test后面有“置疑”字样。
不要紧,打开SQL自带查询分析器,分别执行如下SQL语句:
第一、
exec sp_configure 'allow updates',1 RECONFIGURE WITH OVERRIDE /* 打开修改系统表的开关 */
第二、
update sysdatabases set status=32768 where name='XXZYKT08' /* 设置数据库状态 */
第三、
DBCC REBUILD_LOG ('XXZYKT08','G:\K3DATA\XXZYKT08_Log.LDF') /* 重建LDF文件 */
第四、
update sysdatabases set status=0 where name='XXZYKT08' /* 重置数据库状态 */
第五、
restore database XXZYKT08 WITH RECOVERY /* 恢复数据库 */
第六、
exec sp_configure 'allow updates',0 RECONFIGURE WITH OVERRIDE /* 关闭打开修改系统表的开关 */

相关文档
最新文档