首页 首页 大数据 查看内容

还原数据库文件的实战

木马童年 2019-5-28 09:25 41 0

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

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

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

查找数据库故障原因

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

_200804080200.TRN’

WITH NORECOVERY

RESTORE LOG Imes

FROM disk=‘e:123Imes_LOG

_200804080300.TRN’

NORECOVERY

RESTORE LOG Imes

FROM disk=‘e:123Imes_LOG

_200804080400.TRN’

WITH NORECOVERY

RESTORE LOG Imes

FROM disk=‘e:123Imes_LOG

_200804080500.TRN’

WITH NORECOVERY

RESTORE LOG Imes

FROM disk=‘e:123Imes_LOG

_200804080600.TRN’

WITH NORECOVERY

RESTORE LOG Imes

FROM disk=‘e:123Imes_LOG

_200804080700.TRN’

WITH NORECOVERY

RESTORE LOG Imes

FROM disk=‘e:123Imes_LOG

_200804080800.TRN’

WITH NORECOVERY

RESTORE LOG Imes

FROM disk=‘e:123Imes_LOG

_200804080900.TRN’

WITH NORECOVERY

4. 还原最后一次事务日志后的日志备份。还原9∶00~9∶30生成的日志,该日志单独备份在新创建的备份设备中。

5. 更改数据库状态。所有日志文件还原后,数据库的状态为“正在装载”,用户不能正常访问数据库,需将其设置为正常模式方可访问。至此,数据库恢复完成。经过验证,数据库丢失几条数据,基本没有对业务系统造成影响。网络管理员在日常维护数据库的过程中,建议经常校验数据库。模拟数据库恢复环境,测试恢复脚本,保证数据库恢复脚本的准确性以及恢复效率。在恢复数据库时,笔者建议在非生产环境中恢复。恢复完成后,完整备份数据库,然后将数据库恢复到生产环境中。

在不久的将来,多智时代一定会彻底走入我们的生活,有兴趣入行未来前沿产业的朋友,可以收藏多智时代,及时获取人工智能、大数据、云计算和物联网的前沿资讯和基础知识,让我们一起携手,引领人工智能的未来!

数据库 工程师 分布式文件系统
0
为您推荐
大数据技术改变城市的运作方式,智慧城市呼之欲出

大数据技术改变城市的运作方式,智慧城市呼

纽奥良虽像大多数城市一样有火灾侦测器安装计划,但直到最近还是要由市民主动申装。纽…...

大数据分析面临生死边缘,未来之路怎么走?

大数据分析面临生死边缘,未来之路怎么走?

大数据分析开始朝着营销落地,尤其像数果智能这类服务于企业的大数据分析供应商,不仅…...

什么是工业大数据,要通过3B和3C来理解?

什么是工业大数据,要通过3B和3C来理解?

核心提示:工业视角的转变如果说前三次工业革命分别从机械化、规模化、标准化、和自动…...

大数据普及为什么说肥了芯片厂商?

大数据普及为什么说肥了芯片厂商?

科技界默默无闻的存在,芯片行业年规模增长到了3520亿美元。半导体给无人驾驶汽车带来…...

大数据技术有哪些,为什么说云计算能力是大数据的根本!

大数据技术有哪些,为什么说云计算能力是大

历史规律告诉我们,任何一次大型技术革命,早期人们总是高估它的影响,会有一轮一轮的…...

个人征信牌照推迟落地,大数据 重新定义个人信用!!

个人征信牌照推迟落地,大数据 重新定义个

为金融学的基础正日益坚实。通过互联网大数据精准记录海量个人行为,进而形成分析结论…...