admin管理员组

文章数量:1530517

2024年1月12日发(作者:)

SQL Server无日志恢复数据库方法SQL Server是一个关系数据库管理系统,在进行SQL Server数据库操作的过程中难免会出现误删或者别的原因引起的日志损坏,由于SQLServer数据库中数据的重要性,出现了以上的故障之后就必须对数据库中数据进行恢复。速达软件SQL数据库中的两个备份文件mdf和ldf文件,因误删或者别的原因引起的ldf日志文件被清除,现在只有一个mdf数据文件,怎么样才能恢复原来的帐套数据呢?鉴于SQL Server数据库中日志文件的重要性,我们必须将丢失的日志文件给找回来,下文就为大家介绍一种SQLServer无日志恢复数据库方法。运软件行环境:SQL SERVER 2000 SP4速达 V5 V3.90 ERP 试用版准备:备份原速达帐套的mdf数据文件(假设原帐套名为:SD001), SD31502_1、停止SQL SERVER 服务管理器,把数据库的数据文件SD31502_移走。2、打开速达软件,新建一个跟原来帐套名称SD001同名的帐套SD001,停掉SQL服务,用原帐套数据mdf文件(SD31502_)覆盖新建的帐套mdf文件,删除新建帐套的ldf文件(SD31502_SD001_)。3、启动SQL数据库 --- 企业管理器,打开新建的SD001速达数据库,可以看到数据库SD31502_SD001为灰色的“置疑” 状态,现在不进行任何操作。开始:SQL Server无日志恢复数据库1、 将SQL数据库设置为“允许对系统目录直接进行修改”,右键(local)(windows NT)--- 属性 --- 服务器设

置,选中“允许对系统目录直接进行修改”;

或,运行以下语句,允许对系统目录直接进行修改。use mastergosp_configure 'allow updates',1goreconfigure with overridego执行结果:DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。已将配置选项 'allow updates' 从 0 改为 1。请运行RECONFIGURE 语句以安装。

2、运行以下语句,设置置疑数据库为紧急模式:update sysdatabases set status = -32768 where name ='SD31502_SD0001'go执行结果:(所影响的行数为 1 行)此时SQL数据库处于“只读置疑脱机紧急模式”。

3、运行以下语句,把应用数据库设置为Single User单项用户模式(可省略);sp_dboption 'SD31502_SD0001', 'single user', 'true'执行结果:命令已成功完成。4、运行以下语句,重新建立LOG (置疑数据库_) 文件dbcc rebuild_log('SD31502_SD0001','C: ProgramFilesSuperData速达V5DataSD31502_SD0001_')或dbcc rebuild_log('SD31502_SD0001','C:ProgramFilesMicrosoft SQL ServerMSSQLDataSD31502_SD0001_')

建议ldf保存速达数据Data文件夹,'C: ProgramFilesSuperData速达V5Data。如果遇到下列提示信息:服务器: 消息 50xx,级别 16,状态 1,行 1 未能排它地锁定数据库以执行该操作。说明您的其他程序正在使用该数据库,如果刚才您正在使用SQLServer Enterprise Manager打开数据库的系统表,那么退出SQLServer Enterprise Manager就可以了。执行结果::警告: 数据库 '置疑数据库' 的日志已重建。已失去事务的一致性。应运行DBCC CHECKDB 以验证物理一致性。DBCC 执行完毕。如果DBCC 输出了错误信息,请与系统管理员联系。此时打开在SQL Server Enterprise Manager里面会看到数据库的状态为“只供DBO使用”。此时可以访问数据库了。

如不执行第4步,则第3、第7步则不可省略,但执行完第9步后数据库能打开,数据库还处于紧急模式,打开速达软件会提示处于“未能在数据库 'SD31502_SD0001'中运行 BEGIN TRANSACTION,因为该数据库处于回避恢复模式”。有些数据可能会不显示,如执行DTS导出,部份表可能不能导出,即使能导出表,部份表也会提示出错。 5、验证数据库一致性(可省略) :dbcc checkdb('SD31502_SD0001')执行结果:CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库'SD31502_SD001' 中)。DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。6、设置数据库为正常状态 :sp_dboption 'SD31502_SD0001','dbo use only','false'执行结果:数据库的状态“只供DBO使用”,恢复为正常状态如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。

7、运行以下语句,关闭Single User单用户模式(可省略):sp_dboption 'SD31502_SD0001', 'single user', 'false' 8、将步骤4中设置的“允许对系统目录直接修改”进行关闭,你可以在SQL Server Enterprise Manager里面恢复,也可以执行以下语句,在DBCC 完成关闭。use mastergosp_configure 'allow updates',0

goreconfigure with overridego执行结果:已将配置选项 'allow updates' 从 1 改为 0。请运行RECONFIGURE 语句以安装。9、你修改了'NESTED TRIGGERS'的值,需要运行RECONFIGURE语句来使这个修改生效。运行以下语句,使这个修改生效RECONFIGURE

最后、重启电脑,打开速达软件,就可以看到原帐套数据啦。衡量数据恢复成功与否的标准:第一:能不能进行速达帐套的修复操作,第二:能不能进行速达帐套的备份操作,附合上述两个标准说明数据恢复成功。网上提供的数据恢复服务无非是恢复原数据库,再用DTS导入原数据库表数据而已。如要恢复原帐套,用DTS数据导入时注意选择“扩展属性”。提醒各位,请用DTS导入导出数据,不然你的数据库结构或多或少,会有点问题。但SQL数据库不熟悉的,请千万不要碰。针对DTS导入导出, 致远会写一篇如何利用SQ数据库,进行修复“速达帐套修复失败”的修复方法,并用DTS导入导出方法进行重建已修复的速达帐套的博文,教会你如何修复MDF数据文件,并用DTS导入导出方法重建新的MDF文件。此提醒各位速友,坚持每天备份帐套数据,以防万一。

附:在查询分析器中如执行存储过程,运行以下语句。1,分离被置疑的数据库,sp_detach_db @dbname = 'SD31502_SD0001'2,附加数据库,sp_attach_single_file_db @dbname = 'SD31502_SD0001',@physname = 'C:Program FilesSuperData速达V5DataSD31502_'

本文标签: 数据库速达帐套进行执行