短电引起数据库文件出错如何修复?
更新SQL数据库是突然断电,重启动后数据库文件出错..如何修复~
DBCC CHECKTABLE( 'tablename ') 显示
务器: 消息 8929,级别 16,状态 1,行 1
对象 ID 2096726522: 在文本 ID 3498930536448 中发现错误,该文本的所有者是由 RID = (1:49356:50) id = 642 标识的数据记录。
服务器: 消息 8929,级别 16,状态 1,行 1
对象 ID 2096726522: 在文本 ID 3498995679232 中发现错误,该文本的所有者是由 RID = (1:49361:55) id = 1632 标识的数据记录。
服务器: 消息 8929,级别 16,状态 1,行 1
对象 ID 2096726522: 在文本 ID 3499071635456 中发现错误,该文本的所有者是由 RID = (1:49367:32) id = 2791 标识的数据记录。
服务器: 消息 8929,级别 16,状态 1,行 1
对象 ID 2096726522: 在文本 ID 3499078647808 中发现错误,该文本的所有者是由 RID = (1:49367:139) id = 2898 标识的数据记录。
服务器: 消息 8929,级别 16,状态 1,行 1
对象 ID 2096726522: 在文本 ID 3499316936704 中发现错误,该文本的所有者是由 RID = (1:49386:32) id = 6534 标识的数据记录。
服务器: 消息 8961,级别 16,状态 1,行 1
表错误: 对象 ID 2096726522。text、ntext 或 image 节点(位于页 (1:135),槽 0,文本 ID 3499078647808)与该节点位于页 (1:35910),槽 0 处的引用不匹配。
服务器: 消息 8961,级别 16,状态 1,行 1
表错误: 对象 ID 2096726522。text、ntext 或 image 节点(位于页 (1:576),槽 0,文本 ID 3499316936704)与该节点位于页 (1:39475),槽 0 处的引用不匹配。
服务器: 消息 8961,级别 16,状态 1,行 1
表错误: 对象 ID 2096726522。text、ntext 或 image 节点(位于页 (1:3153),槽 0,文本 ID 3499071635456)与该节点位于页 (1:35791),槽 2 处的引用不匹配。
服务器: 消息 8961,级别 16,状态 1,行 1
表错误: 对象 ID 2096726522。text、ntext 或 image 节点(位于页 (1:15176),槽 0,文本 ID 3498930536448)与该节点位于页 (1:28633),槽 0 处的引用不匹配。
服务器: 消息 8961,级别 16,状态 1,行 1
表错误: 对象 ID 2096726522。text、ntext 或 image 节点(位于页 (1:32518),槽 0,文本 ID 3498995679232)与该节点位于页 (1:32413),槽 5 处的引用不匹配。
服务器: 消息 8961,级别 16,状态 1,行 1
表错误: 对象 ID 2096726522。text、ntext 或 image 节点(位于页 (1:39475),槽 0,文本 ID 3499316936704)与该节点位于页 (1:39444),槽 4 处的引用不匹配。
'tag_id ' 的 DBCC 结果。
对象 'so_tag_id ' 有 126547 行,这些行位于 643 页中。
CHECKTABLE 发现了 0 个分配错误和 11 个一致性错误(在表 'so_tag_id ' 中,该表的对象 ID 为 2096726522)。
repair_allow_data_loss 是最低的修复级别(对于由 DBCC CHECKTABLE (test.dbo.so_tag_id ) 发现的错误而言)。
----------------------------------
alter database lt_erp set single_user with rollback immediate
go
dbcc checktable( 'dtr_shch_m1 ',repair_allow_data_loss)
go
执行显示
服务器:消息 7919,级别 16, 状态 3, 行1
未处理修复语句.数据库需要处于单用户模式下.
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
这是为什么呀?。。数据库明明是显示(单个用户)。。为什么无法执行呢?
[解决办法]
try:
数据库文件破坏的恢复:
backup log db to DISK= '.... ' with format , NO_TRUNCATE ----------备份当前日志;
resort database db FILEGROUP = '..... ' from DISK= ' ' with norecover
---------备份被破坏的文件
resort log db from DISK= 'c:....bak ' with recovery ----------还原日志点