MS-SQL异机备份恢复并最小化停机时间-阿里云开发者社区

开发者社区> 数据库> 正文

MS-SQL异机备份恢复并最小化停机时间

简介: 采用备份加增量日志的恢复方法,恢复源库到异机,增量日志恢复保证停机切换时间最小。

本文采用备份加增量日志的恢复方法,恢复源库到异机,增量日志恢复保证停机切换时间最小。

一、

SQL Server数据库有三种恢复模式:简单恢复模式、完整恢复模式和大容量日志恢复模式:  

763c6cddc81f3962e36d87080d18b00df4d65df7

1.Simple 简单恢复模式,
Simple模式的旧称叫”Checkpoint with truncate log“,其实这个名字更形象,在Simple模式下,SQL Server会在每次checkpoint或backup之后自动截断log,也就是丢弃所有的inactive log records,仅保留用于实例启动时自动发生的instance recovery所需的少量log,这样做的好处是log文件非常小,不需要DBA去维护、备份log,但坏处也是显而易见的,就是一旦数据库出现异常,需要恢复时,最多只能恢复到上一次的备份,无法恢复到最近可用状态,因为log丢失了。 Simple模式主要用于非critical的业务,比如开发库和测试库,但是道富这边的SQL Server(即使是生产库)大都采用Simple模式,是因为这边的SQL Server大都用于非critical的业务(critical的数据库大都采用Oracle和DB2),可以忍受少于1天的数据丢失(我们的job每天都会定时备份全库)。
如果需要压缩数据库日志(Shrink语句),将数据库模式切换到简单恢复模式后压缩率才是最高的,如果你的数据库在完整恢复模式或大容量日志回复模式下采用日志压缩,压缩后的日志大小并不会很理想。
2.Full 完整恢复模式,
和Simple模式相反,Full模式的旧称叫”Checkpoint without truncate log“,也就是SQL Server不主动截断log,只有备份log之后,才可以截断log,否则log文件会一直增大,直到撑爆硬盘,因此需要部署一个job定时备份log。Full的好处是可以做point-in-time恢复,最大限度的保证数据不丢失,一般用于critical的业务环境里。缺点就是DBA需要维护log,增加人员成本(其实也就是多了定时备份log这项工作而已)。
3.Bulk-logged 大容量日志恢复

Bulk-logged模式和full模式类似,唯一的不同是针对以下Bulk操作,会产生尽量少的log: 1) Bulk load operations (bcp and BULK INSERT). 2) SELECT INTO. 3) Create/drop/rebuild index 众所周知,通常bulk操作会产生大量的log,对SQL Server的性能有较大影响,bulk-logged模式的作用就在于降低这种性能影响,并防止log文件过分增长,但是它的问题是无法point-in-time恢复到包含bulk-logged record的这段时间。 Bulk-logged模式的最佳实践方案是在做bulk操作之前切换到bulk-logged,在bulk操作结束之后马上切换回full模式。

二、
1、备份前的配置
数据库备份使用full(完整)模式
如果文件较大,网络带宽有限制,可以启用备份压缩。
增量日志备份使用截断日志选项
01faa61b021ac2042f71aba21eca099147b90c63
使用自动维护计划,备份集将单独名称生成,
c4cf767a8e8142c93a9dcc95d7773d490c502bae
5ff73f2ae5a117b9559c3c3234d0263da9d2e4a5
增量日志备份选项
bebb95377c80662189b504e591c843cc72732582
2、执行备份
全备、增量日志分别配置维护任务

3、文件传输
传输数据库备份和增量日志备份
增量日志备份每次备份后进行传输
4、全备恢复
使用restore with norecovery模式
66cee5d4d14a6c0be35ec52e41cb49d89c4ab6df

找到备份集
66a3f13fcad4636249e8e416e71977a42fdb4ca4
保持恢复状态
498721028d342c509957584202fa8fb93b9b1095
数据库处于正在还原状态
9b82a7a055ec0710c21caebcea300d079b52e374

5、持续增量日志恢复
选择事务日志恢复
0f59311ecea0b6bc1a903db5e1a728f060d82ca5de087e4bfd9321b96bf19b4202d19d4b4470be97

6、恢复注意事项
恢复是需要注意的是,最好每次恢复时进行结尾日志备份,万一所有的事务日志进行了恢复,此时数据库会一直处于“正在还原”状态,
我们用结尾日志备份进行事务日志恢复,并选择with recovery模式即可打开数据库。
a4e003747b56f3f8e33ea19faa101233e91a25ac

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章