sql2000日志恢复 2

sql2000日志恢复 2
sql2000日志恢复 2

在本页阅读全文(共2页)
以下的文章主要是介绍 SQLServer 日志文件丢失的正确恢复方法。 在实 际操作中 SQLServer 日志文件丢失是一件令人十分头疼的事情, 以下的文章主要 是针对这一问题给出的答案,以下就是正文的主要内容描述。
一、 概述 在应用系统中,数据库往往是最核心的部分,一旦数据库毁坏或损坏,将会带来巨大的 损失,所以数据库的管理越来越重要。我们在做数据库管理与维护工作中,不可避免会出现 各种各样的错误, 本文针对数据库的 SQLServer 日志文件丢失时如何利用 MDF 文件恢复数据 库的方法进行了研究。 二、 数据库的恢复 当数据库的主数据 MDF 文件完好无损时,在丢失了 LDF 文件的情况下,如何利用 MDF 文件恢复数据库?我们把 SQL Server 的日志文件分为两类:一类是无活动事务的日志,另 一类是含活动事务的日志,根据不同的日志,采取不同的方法来恢复数据库。 1. 无活动事务的日志恢复 无活动事务的日志丢失时,我们很容易利用 MDF 文件直接恢复数据库,具体方法如下: ①.分离被质疑的数据库,可用企业管理器中的"分离数据库工具",或者用存储过程 sp_detach_db 分离数据库; ②利用 MDF 文件附加数据库生成新的日志文件, 可用企业管理器中的"附加数据库"的工 具,或者用存储过程 sp_attach_single_file_db 附加数据库。 如果数据库的日志文件中含有活动事务, 利用此方法就不能 SQLServer 日志文件丢失的 恢复数据库。 2. 含活动事务的日志恢复 含有活动事务的日志丢失时,利用上述方法就会出现"数据库和日志文件不符合,不能 附加数据库"。对于这种情况下,我们采用如下方法: ①新建同名数据库 AAA,并设它为紧急模式 停止 SQL Server 服务器; 把数据库主数据 MDF 文件移走; 启 SQL Server 服务器,新建一个同名的数据库 AAA; 停止 SQL Server 服务器,把移走的 MDF 文件再覆盖回来; 启动 SQL Server 服务器,把 AAA 设为紧急模式,不过默认情况下,系统表是不能随便 修改的,必须首先设置一下使其能被修改,运行以下语句即可:

以下是代码片段: Use Master Go sp_configure ’allow updates’,1 reconfigure with override Go 接着运行以下语句,把 AAA 数据库设为紧急模式,即把 Sysdatabases 表中 AAA 数据库 的 status 属性设为’37268’,就表示把 AAA 数据库处于紧急模式。 update sysdatabases set status=32768 where hame=’AAA’ 如果没有报告什么错误,就可以进行以下操作。 ②设置数据库 AAA 为单用户模式,并检查数据库 重启 SQL Server 服务器; 把数据库 AAA 设为单用户模式 Sp_dboption ’AAA’, ’single user’, ’true’ 运行以下语句,检查数据库 AAA DBCC CHECKDB(’AAA’) 如果没有什么大的问题就可以把数据库的状态改回去。 ③还原数据库的状态 运行以下语句,就可以把数据库的状态还原:
以下是代码片段: update sysdatabases set status=28 where name=’AAA’ sp_configure ’allow updates’,0 reconfigure with override Go 如果没有什么大的问题,刷新一下数据库,数据库 AAA 又会出现在你面前,但目前恢复 工作还没有做完,此时的数据库仍不能工作,还要进行下面的处理,才能真正恢复。 ④利用 DTS 的导入导出向导,把数据库 AAA 导入到一个新建数据库 BBB 中 新建一个数据库 BBB;

右击 BBB,选择 IMPORT 功能,打开导入向导; 目标源选择"在 SQL Server 数据库之间复制对象和数据库",这样可以把表结构,数据 视图和存储过程导入到 BBB 中 再用此功能把 BBB 库替换成原来的 AAA 库即可。 到此为止,数据库 AAA 就完全恢复。 SQLServer 日志文件丢失是一件非常危险的事情,很有可能你的数据库彻底毁坏。SQL Server 数据库的恢复都是靠日志文件来完成,所以无论如何都要保证日志文件的存在,它 至关重要。为了使我们的数据库万无一失,最好采用多种备份方式相结合,所以我们要从心 里重视数据库的管理与维护工作。

相关主题
相关文档
最新文档