一次SQLServer数据库修复经历

数据库损坏情况

数据库有多个数据文件及日志文件,其中一个数据文件损坏丢失,后通过文件恢复工具恢复出来,但是有错误,导致数据库无法启动。


修复步骤

1.首先尝试“附加数据库

 根据网上的资料,如果数据库损坏不严重的话,可以直接通过“附加数据库”的方式恢复,但是很不幸,尝试失败

 不过通过“附加数据库”得到了一条很重要的信息,就是当选中主数据文件MDF后,会将该数据所需的所有文件依次列出来

 并且列出的文件顺序是按照文件ID号排序的,也就是文件的创建顺序显示的

 这就为下一步的操作提供了必要的条件


2. 新创建一个同名的数据库,创建数据库时,按照步骤1中列数的文件名,依次添加数据库文件,添加顺序要严格按照步骤1中列出的文件名顺序

  文件的逻辑名称和物理名称都要与原数据库保持一致


3. 停止数据库服务,将源数据文件拷贝到新创建的数据库数据文件目录进行覆盖


4. 重启数据库

  幸运的话,启动过后会看到数据库状态为:可疑


5. 从“可疑”状态恢复到可用状态

 依次执行以下命令,恢复数据库

use master 

-- 设置为单用户状态
ALTER DATABASE NetcaseDB SET SINGLE_USER;
GO

-- 设置为紧急模式
ALTER DATABASE NetcaseDB SET EMERGENCY;
GO

-- 通过自带的"CHECKDB"命令修复数据库,允许丢数据
DBCC CHECKDB (NetcaseDB , REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS;
GO 

-- 恢复成多用户状态
ALTER DATABASE NetcaseDB SET MULTI_USER;
GO

6. 查看修复后的数据库数据

 根据数据库受损程度不同,恢复比也不同,我的实验恢复出了大概50%的数据。





评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

duanbeibei

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值