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

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介: 采用备份加增量日志的恢复方法,恢复源库到异机,增量日志恢复保证停机切换时间最小。

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

一、

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、持续增量日志恢复
选择事务日志恢复
0f59311ecea0b6bc1a903db5e1a728f060d82ca5 de087e4bfd9321b96bf19b4202d19d4b4470be97

6、恢复注意事项
恢复是需要注意的是,最好每次恢复时进行结尾日志备份,万一所有的事务日志进行了恢复,此时数据库会一直处于“正在还原”状态,
我们用结尾日志备份进行事务日志恢复,并选择with recovery模式即可打开数据库。
a4e003747b56f3f8e33ea19faa101233e91a25ac
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
相关文章
|
1月前
|
SQL Oracle 关系型数据库
调整OceanBase数据库的系统时间,即使只调小1秒导致异常并不是正常现象
【2月更文挑战第21天】调整OceanBase数据库的系统时间,即使只调小1秒导致异常并不是正常现象
33 7
|
11月前
|
数据库 内存技术
rman 恢复数据库一个小时多了也没有动静 implicit crosscheck
The Problem After restoring a controlfile, the restore database can take a long time to restore due to implicit croscchecking and cataloging.
|
监控 关系型数据库 Shell
PostgreSQL 10.1 手册_部分 III. 服务器管理_第 25 章 备份和恢复_25.3. 连续归档和时间点恢复(PITR)
25.3. 连续归档和时间点恢复(PITR) 25.3.1. 建立WAL归档 25.3.2. 制作一个基础备份 25.3.3. 使用低级API制作一个基础备份 25.3.4. 使用一个连续归档备份进行恢复 25.3.5. 时间线 25.3.6. 建议和例子 25.3.7. 警告 在任何时间,PostgreSQL在数据集簇目录的pg_wal/子目录下都保持有一个预写式日志(WAL)。
1860 0
|
数据库 SQL
SQLServer数据库差异备份
原文:SQLServer数据库差异备份 差异备份 (differential backup)定义 一种数据备份,基于完整数据库或部分数据库或一组数据文件或文件组(差异基准)的最新完整备份,并且仅包含自确定差异基准以来发生更改的数据。
1335 0
|
SQL 数据库
sql server 备份与恢复系列四 大容量模式下的备份与还原
原文:sql server 备份与恢复系列四 大容量模式下的备份与还原 一. 概述   在sql server 备份与恢复系列的第一篇里,有讲到大容量模式下备份与还原的相关知识。这篇重点来演示在大容量模式下常用的备份与还原模式“完整备份+差异备份+日志备份”。
1012 0
|
SQL 监控 Go
如何恢复崩溃的SQL Server数据库?
如何恢复崩溃的SQL Server数据库?
1516 0