遇到数据库损坏的紧急修复办法
如果没有备份,可以使用这个办法。互联网上很多文章介绍的方法似乎多数是sql 2000的,所以有一些操作执行不正确。
1)停掉sql server服务
2)把sql server data目录下的所有文件备份到一个安全的位置
3)把sql server data目录下的所有文件备份到另一个安全的位置,这些文件一点丢失或者进一步损坏,就没有恢复的机会了。所以,务必备份两份。
4)如果有系统数据库损坏,找相同版本的数据覆盖或者重建整个sql server.
5) 从managment studio中删除[MyDatabase]。
6)重建一个同名的数据库[MyDatabase],collation应该正确。
7) 停止sql server service
8) 把原来的MyDatabase.mdf拷回来覆盖新建的文件。ldf使用新建的
9)执行
use master;
GO
alter database [MyDatabase] set Emergency;
GO
DBCC CHECKDB([MyDatabase], REPAIR_ALLOW_DATA_LOSS);
GO
alter database [MyDatabase] set online;
GO
10) 重新启动sql server service
11) 如果能够正常工作,立刻备份新的[MyDatabase]。
最重要的事情还是做好本备份,最好要这篇文章一辈子都用不到。