不想错过重要资讯?
马上订阅新闻邮件!
 
a 您现在的位置: 中计在线 >> 信息化 >> 业界观察 >> 文章正文
还原数据库文件的实战
作者:王淑江    文章来源:中计在线    更新时间:2008-4-28 10:01:26
【字体:
 中计在线信息化频道全心上线!全力推动中国信息化进程!信息决策,易如反掌,尽在CIW信息化!
中移动去年净赚660亿
[寻找下一个1000亿] [发行A股没有时间表]
·农村信息服务发展呈现三大趋势
·手机病毒悄然来临,你准备好了吗?
·腾讯总裁刘炽平否认Q币属于虚拟货币
·2007年科技产业发展预测

一个图片素材数据库发生了故障。工程师仔细检查数据库文件和日志文件的路径和大小后发现,既不是磁盘空间的问题,也不是数据库恢复造成的故障,基本确定是数据页损坏造成的。因此,需要启用数据库备份来还原故障数据库。

笔者是公司的数据库管理员,前几天就遇到一例图片素材数据库的故障。由于电源故障导致数次非正常启动服务器,图片素材数据库正常启动后显示“置疑”状态。故障发生时间为9∶30。

查找数据库故障原因

笔者首先检查了数据库文件和日志文件的路径和大小,显示正常;磁盘还有50GB的空间,不是磁盘空间的问题;没有执行数据库恢复操作,故也不是数据库恢复造成的故障。因此基本可以确定是数据页损坏造成的故障。笔者首先备份了系统分区以及数据库所在的数据分区,完整保存故障现场。然后停止数据库服务,把数据库文件以及日志文件保存到其他磁盘。笔者建议在测试环境中修复数据库,否则可能会进一步损伤数据库。在测试环境中,笔者将数据库文件和日志文件附加到服务器,发现提示信息显示的文件“d:\Data\Imes.mdf”的文件头不是有效的文件头,数据库文件损坏。因此需启用数据库备份还原数据库。

笔者仔细察看了数据库备份策略,图片素材数据库使用“数据库维护计划”创建备份策略:每天1∶30执行完整备份数据库,每个小时执行事务日志备份,备份后的数据库以及事务日志文件通过分布式文件系统自动同步到其他服务器中,也就是说数据库备份和文件备份有两个完整的副本。如果要将图片素材数据库还原到9∶30时的状态,根据备份策略以及数据库恢复条件,需要完成如下工作:备份最后一次事务日志备份(9∶00)后的日志,还原1∶30创建的完整备份数据库,还原每个小时的事务日志备份,还原最后一次事务日志后的日志备份,更改数据库的状态。

五步恢复数据库

笔者在恢复数据库时,喜欢使用“查询分析器”的脚本模式。因为脚本的恢复效率要高于“企业管理器”图形模式,当然读者可以选择自己熟悉的方法恢复数据库。

1. 备份最后一次事务日志后的日志备份。打开查询分析器,创建临时备份设备,然后备份事务日志,保存最后一次事务日志备份后生成的新日志。
2. 还原1∶30创建的完整备份数据库。还原每天1∶30创建的完整数据库备份。数据库还原后不能访问,但可继续恢复日志。恢复后的数据库状态为“正在装载”。
3. 还原9∶00之前每个小时事务日志备份。还原2∶00~9∶00的数据库事务日志备份,还原参数使用“NORECOVERY”。脚本如下:
RESTORE LOG Imes
FROM disk=‘e:\123\Imes_LOG
_200804080200.TRN’
WITH NORECOVERY
RESTORE LOG Imes
FROM disk=‘e:\123\Imes_LOG
_200804080300.TRN’
NORECOVERY
RESTORE LOG Imes
FROM disk=‘e:\123\Imes_LOG
_200804080400.TRN’
WITH NORECOVERY
RESTORE LOG Imes
FROM disk=‘e:\123\Imes_LOG
_200804080500.TRN’
WITH NORECOVERY
RESTORE LOG Imes
FROM disk=‘e:\123\Imes_LOG
_200804080600.TRN’
WITH NORECOVERY
RESTORE LOG Imes
FROM disk=‘e:\123\Imes_LOG
_200804080700.TRN’
WITH NORECOVERY
RESTORE LOG Imes
FROM disk=‘e:\123\Imes_LOG
_200804080800.TRN’
WITH NORECOVERY
RESTORE LOG Imes
FROM disk=‘e:\123\Imes_LOG
_200804080900.TRN’
WITH NORECOVERY
4. 还原最后一次事务日志后的日志备份。还原9∶00~9∶30生成的日志,该日志单独备份在新创建的备份设备中。
5. 更改数据库状态。所有日志文件还原后,数据库的状态为“正在装载”,用户不能正常访问数据库,需将其设置为正常模式方可访问。至此,数据库恢复完成。经过验证,数据库丢失几条数据,基本没有对业务系统造成影响。网络管理员在日常维护数据库的过程中,建议经常校验数据库。模拟数据库恢复环境,测试恢复脚本,保证数据库恢复脚本的准确性以及恢复效率。在恢复数据库时,笔者建议在非生产环境中恢复。恢复完成后,完整备份数据库,然后将数据库恢复到生产环境中。

责任编辑:罗提
  • 上一个文章:
  • 下一个文章:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
     相关文章
    SOA带来的银行系统拥堵
    清空回收站也能把文件找回来
    没有策略 灾难面前我们将束手无策
    如何恢复误删除的应用文件
    沉着应对突发的数据库灾难
    对症下药找回丢失的系统文件
    如何找回丢失的数据
    注重企业前教育的人才培训
    ITIL实施满意度不到30%
    东方钽业:非典型企业的非常ERP
     相关评论
    网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    用户名:
    · 您将承担一切因您的行为、言论而直接或间接导致的民事或刑事法律责任
    · 留言板管理人员有权保留或删除其管辖留言中的任意内容
    · 本站提醒:不要进行人身攻击与无聊谩骂。谢谢配合。
    热门文章
    最新推荐