赛迪网 > 资讯中心 即时新闻 > 文章
  IT资讯搜索
 
IT产品搜索
· [专题] 千橡融资四亿 备战社区冬天 陈一舟的30亿
· [专题] 微软弃购雅虎 转向Facebook 谷歌雅虎牵手
· [博客] 郭晶晶"短信门"曝手机隐患 老徐博客也作弊
· [热点] 易趣抢淘宝椅子 搞换位竞争 土豆优酷对掐
· [热点] 谷歌金山词霸免费 水货iPhone自动上网吸费
· [热点] 人肉引擎四处围剿 红衣清洁工MM求饶(组图)

还原数据库文件的实战

发布时间:2008.05.06 14:02     来源:赛迪网-中国计算机报    作者:王淑江

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

笔者是公司的数据库管理员,前几天就遇到一例图片素材数据库的故障。由于电源故障导致数次非正常启动服务器,图片素材数据库正常启动后显示“置疑”状态。故障发生时间为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. 更改数据库状态。所有日志文件还原后,数据库的状态为“正在装载”,用户不能正常访问数据库,需将其设置为正常模式方可访问。至此,数据库恢复完成。经过验证,数据库丢失几条数据,基本没有对业务系统造成影响。网络管理员在日常维护数据库的过程中,建议经常校验数据库。模拟数据库恢复环境,测试恢复脚本,保证数据库恢复脚本的准确性以及恢复效率。在恢复数据库时,笔者建议在非生产环境中恢复。恢复完成后,完整备份数据库,然后将数据库恢复到生产环境中。

(责任编辑:孙莉)


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 2007年关系数据库管理系统市场收入增12.1% (05-04) · 初学者需要掌握的数据库设计词汇对照表 (04-30)
· 超大型Oracle数据库应用系统的设计方法 (04-30) · 三大措施设置数据库安全 保障网站安全运营 (04-30)
· 讲解Sybase数据库截断和清空日志的方法 (04-25) · 带你轻松接触数据库命名规范的相关概念 (04-24)
· MySQL护航!Sun坚定闯进150亿数据库市场 (04-24) · 全面解析Oracle无法连接本地数据库问题 (04-21)
· 带你深入了解如何根据数据库时间戳选择列 (04-21) · 实例讲解数据库备份过程中的常见问题 (04-21)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  信息化 ·热点·专题·访谈·周刊·方案案例
· 网银交易收费 我国银行业如何达国际化标准
· 家庭信息化普及率提高 网上缴费成为新时尚
· 五条黄金准则能够让CIO巧妙加薪 CIO焦虑调查
· 网上书店解决方案 深圳边检指挥中心ITSM项目
  IT博客 ·曾剑秋·项立刚·Java学习·网管
  IT技术论坛 ·开发·网管·安全·数据库·系统