13
2024
08

数据库置疑修复的操作步骤 (亲测sql2008r2有效)

发现数据库置疑、可疑,可疑复制以下内容粘贴到数据库查询窗口,按步骤操作,每一步都要单独执行。


--1 在发现置疑的数据库后,首先停止数据库服务,将该数据库对应的数据库文件及日志文件备份一份。

--2 如果在当前数据库服务器上处理置疑,在复制文件后重新启动数据库服务器开始第4步操作。

--3 如果要把备份文件转移到其他服务器上处理置疑,先按以下步骤在其他服务器上恢复该置疑数据库。

--3.1 创建一个新的数据库,命名为置疑的数据库的名称。

--3.2 停止SQL Server服务,用[复制来的旧数据库]MDF文件替换[新建的数据库]的MDF文件,删除[新建的数据库]的LDF文件。

--3.3 启动SQL Server服务。

--4 以下数据库需要有一定的数据库基础,其中‘dbname’是置疑的数据库名称,‘dbname_log’是日志文件逻辑名,‘E:\dbname_log.ldf’是日志文件存储路径,注意替换为对应的正确路径和名称。

--4.1 设置为紧急状态:

ALTER DATABASE dbname SET EMERGENCY

--4.2 设置为单用户模式:

ALTER DATABASE dbname SET SINGLE_USER

--4.3 重建日志文件:  需要提前将原有的log日志文件改名字,否则提示已经存在

ALTER DATABASE dbname REBUILD LOG ON (NAME=dbname_log, FILENAME='E:\dbname_log.ldf')


/*执行后,会有警告信息,属于正常情况继续逐步执行:

警告: 数据库 'xhtyjbbs' 的日志已重新生成。已失去事务的一致性。

RESTORE 链已断开,服务器不再有以前的日志文件的上下文,因此您需要了解它们的内容。应运行 DBCC CHECKDB 验证物理一致性。

数据库已置于 dbo-only 模式。在准备使数据库可用时,需要重置数据库选项,并删除所有多余的日志文件。*/


--4.4 检查数据库错误:

--可疑多次执行该语句,直到最终提示无错误。  提示各种一致性错误是0就可以了

DBCC CHECKDB(dbname, REPAIR_ALLOW_DATA_LOSS)


--4.5 恢复成多用户模式:

ALTER DATABASE dbname SET MULTI_USER

--4.6 重启数据库服务,在management studio中刷新数据库视图。


--4.7 设置数据库在线:

ALTER DATABASE dbname SET ONLINE




« 上一篇下一篇 »