还原和恢复概述 (SQL Server)

若要从故障中恢复 SQL Server 数据库,数据库管理员必须按照逻辑上正确且有意义的还原顺序来还原一组 SQL Server 备份。 SQL Server 还原和恢复支持从整个数据库、数据文件或数据页的备份中恢复数据,如下所示:

· 数据库(“数据库完整还原”)

· 还原和恢复整个数据库,并且数据库在还原和恢复操作期间处于脱机状态。

· 数据文件(“文件还原”)

· 还原和恢复一个数据文件或一组文件。 在文件还原过程中,包含相应文件的文件组在还原过程中将自动变为脱机状态。 访问脱机文件组的任何尝试都会导致错误。

· 数据页(“页面还原”)

· 在完整恢复模式或大容量日志恢复模式下,可以还原单个页面。 可以对任何数据库执行页面还原,而不管文件组数为多少。

· SQL Server 备份和还原可跨所有受支持的操作系统进行。 有关支持的操作系统的信息,请参阅 安装 SQL Server 2016 的硬件和软件要求。 有关支持从 SQL Server 的早期版本进行备份的信息,请参阅 RESTORE (Transact-SQL)中的“兼容性支持”部分。

还原方案概述

SQL Server 中的还原方案是从一个或多个备份还原数据、继而恢复数据库的过程。 支持的还原方案取决于数据库的恢复模式和 SQL Server 的版本。

下表介绍了不同恢复模式所支持的可行还原方案。

仅在 Enterprise Edition 中支持联机还原。

还原数据库的步骤

若要执行文件还原,数据库引擎需要执行两个步骤:

· 创建所有丢失的数据库文件。

· 将数据从备份设备复制到数据库文件。

· 若要执行数据库还原,数据库引擎需要执行三个步骤:

· 创建数据库和事务日志文件(如果它们不存在)。

· 从数据库的备份介质将所有数据、日志和索引页复制到数据库文件中。

· 在所谓的恢复进程中应用事务日志。

· 无论以何种方式还原数据,在恢复数据库前,SQL Server 数据库引擎都需要保证整个数据库在逻辑上的一致性。 例如,若要还原一个文件,则必须将该文件前滚足够长度,以便与数据库保持一致,然后才能恢复该文件并使其联机。

文件还原或页面还原的优点

只还原和恢复个别文件或页面(而非整个数据库)的方法具有以下优点:

· 还原少量数据可以缩短复制和恢复数据的时间。

· 在 SQL Server 中,还原文件或页面的操作可能会允许数据库中的其他数据在还原操作期间仍保持联机状态。

恢复和事务日志

对于大多数还原方案,需要应用事务日志备份并允许 SQL Server 数据库引擎运行恢复进程以使使数据库联机。 恢复是 SQL Server 用于使每个数据库以事务一致(或干净)状态启动的进程。

如果故障转移或其他非干净关闭,数据库可能处于这样的状态:某些修改从未从缓冲区缓存写入数据文件,且在数据文件内可能有未完成事务所做的某些修改。 SQL Server 实例启动时,会根据最后一个数据库检查点来运行每个数据库的恢复,其中包含三个阶段:

· 第 1 个阶段分析阶段,该阶段将分析事务日志以确定最后一个检查点,并创建脏页表 (DPT) 和活动事务表 (ATT)。 DPT 包含在数据库关闭时处于脏状态的页面的记录。 ATT 包含在数据库未正常关闭时处于活动状态的事务的记录。

· 第 2 个阶段重做阶段,该阶段将前滚日志中记录的且在数据库关闭时可能尚未写入数据文件的每个修改。 成功进行数据库范围内恢复所需的最小日志序列号 (minLSN) 在 DPT 中找到,并标记了所有脏页上所需的重做操作的开始时间。 在此阶段中,SQL Server 数据库引擎会将属于所提交事务的所有脏页写入磁盘。

· 第 3 个阶段撤消阶段,该阶段将回滚在 ATT 中找到的未完成的事务,以确保数据库的完整性。 回滚后,数据库将进入联机状态,不能再将其他事务日志备份应用到数据库。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值