×
畅享IT
    信息化规划
    IT总包
    供应商选型
    IT监理
    开发维护外包
    评估维权
客服电话
400-698-9918
当前位置:畅享论坛 >  科技  >  服务器 > 正文
发帖
回复
(共 2 条) 上一页 1 下一页
查看: 634|回复: 2

[原创]数据库日志文件出错

[复制链接]

等级:试用期
行业:
职能部门:
城市:青岛市
金币:127

1. 我们使用默认方式建立一个供恢复使用的数据库(如test)。如果是多数据文件的,请确认新建数据文件的名称及数目和要恢复的数据文件一致。日志文件就不必了;
2. 停掉数据库服务器;
3. 将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_data.mdf;
4. 启动数据库服务器。此时会看到数据库test的状态为“置疑”;
5. 设置数据库允许直接操作系统表。在SQL Server 企业管理器里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中;
6. 设置test为紧急修复模式
_updatesysdatabases set status=-32768 where dbid=DB_ID( 'test ')
此时可以在SQL Server 企业管理器里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表;
7. 下面重建数据库日志文件
dbcc rebuild_log( 'test ', 'C:\Program Files\Microsoft SQL Server\MSSQL\Data\test_log.ldf ')
正确执行完成的提示应该类似于:
警告: 数据库 'test ' 的日志已重建。已失去事务的一致性。应运行 DBCC CHECKDB 以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。
此时打开在SQL Server 企业管理器里面会看到数据库的状态为“只供DBO使用”;
8. 验证数据库一致性(可省略)
dbcc checkdb( 'test ')
在进行了多个验证后,最后的执行结果一般如下:
CHECKDB 发现了 0 个分配错误和 0 个一致性错误(在数据库 'test ' 中)。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。

操作到第8步,执行dbcc checkdb( 'test ')后,报错:
服务器: 消息 7995,级别 16,状态 1,行 1
数据库 'test ' 在 sysobjects、sysindexes、syscolumns 或 systypes 中存在一致性错误,妨碍了进一步的 CHECKDB 处理。
DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系。



版主点评
zengmoxi2010-3-28 16:53+5金币


畅享论坛提示:看帖后顺手回帖,是对辛苦发帖者的鼓励,是美德。


等级:试用期
行业:电信运营商
职能部门:研究/开发
城市:北京
金币:35
 发表于 2010/7/28 23:30:22 | 圈子 | 发送站内信 | 加为好友 | 邀请加入圈子
top第1楼

顶你,支持楼主!有意思


等级:试用期
行业:顾问/咨询/会计/招聘服务
职能部门:市场管理
城市:北京
金币:25
 发表于 2010/9/2 11:56:59 | 圈子 | 发送站内信 | 加为好友 | 邀请加入圈子
top第2楼

蛋B蛋B,牛比牛比,大了大了!

(共 2 条) 上一页 1 下一页
您还未登录,不能对文章发表评论!请先登录
2020-06-05 10:47:03 481/2020-06-05 10:47:03 512/2020-06-05 10:47:03 527