要使系统避免产生意外停机很困难,因为对于企业而言,意外的硬件或网络故障、人为失误、自然灾害或盗窃都可能会带来灾难性后果。SQL Server Always On 提供了可从计划外停机状态中迅速恢复的技术。此外,通过适当地实施 Always On 技术,任务关键型应用程序平稳运行所需的系统维护和操作流程将使停机时间降至最低。
快速数据库恢复
SQL Server 2008 Enterprise Edition Database Engine 能够在崩溃恢复和数据库镜像故障转移期间提供快速恢复。快速恢复功能使数据库在恢复流程的还原阶段即可使用,它在还原操作期间、数据库页校验以及备份媒体镜像期间均可提供部分可用性。通过支持快速恢复,SQL Server 2008 将在最短的时间内使数据库处于在线状态,因此用户很快就能使用数据库,这要快于如下方法:等整个恢复流程全部完成后,用户和应用程序才可以执行连接。
备份和还原
在高可用性解决方案中,备份至关重要,它要定期提供数据快照,并在出现大范围故障或缺少其他高可用性解决方案时,作为数据源用以还原数据。
SQL Server 的备份媒体镜像功能使用户能够将数据库通过镜像备份复制到多个备份设备上,当媒体出现故障或备份设备丢失时,这将极大提高备份的可靠性。SQL Server 2008 支持在磁盘和磁带上执行镜像备份,但所用的设备必须类似,以避免产生设备不匹配错误的风险。备份镜像集中的所有设备在备份过程中都必须可用,但数据库可从镜像集中的任何单独备份中还原。要利用 Transact-SQL 执行镜像备份,必须使用 BACKUP 命令的 MIRROR TO 子句,如下例所示。
BACKUP DATABASE AdventureWorks TO TAPE = '\\.\tape0', TAPE = '\\.\tape1' MIRROR TO TAPE = '\\.\tape2', TAPE = '\\.\tape3' WITH FORMAT, MEDIANAME = 'AdventureWorksSet1'; GO |
SQL Server 的另一个备份可靠性特性是,在备份操作期间可以生成校验和,然后校验和可用于验证还原后的数据库。
SQL Server 2008 支持备份压缩,最多可使备份大小减小50%。容量的减小使用户能够更频繁地备份数据,同时也会缩短还原时间。在 BACKUP 命令中,备份压缩可设为 ON 或 OFF,并且可以利用 sp_configure 定义默认的压缩值(on 或 off),以确定在执行 BACKUP 命令时,是否需要制定压缩选项。
数据页上的校验和
“校验和”可比较写入磁盘的值与后续读取的值。如果这些值不一致,则该页将被标记为 suspect(可疑),然后要么手动还原,要么利用 SQL Server 2008 自动从伙伴服务器中还原。
在线索引操作
可用性会受到标准维护操作以及故障的影响。在早期 SQL Server 版本中,索引维护会使受影响的数据变为不可用,但从SQL Server 2005 开始,数据在“在线索引操作”期间均可保持可用性,这些可用的操作包括创建、放置或重建索引。
在执行索引维护时,“在线索引操作”可提高所有系统的可用性,因此也能提高职员的工作效率,并改善客户使用系统时的体验。
在线、段落和页级还原
SQL Server 2008 Enterprise Edition 支持“在线还原”,使用户能够访问数据库被还原的部分,即使数据库的其他部分还不可用,因此这会提高恢复速度、缩短停机时间和提高可用性。此外,可以利用“段落还原”策略还原各阶段的数据库。例如,可以还原包含当前活动数据的文件组,并且可先使数据库处于在线状态,然后还原包含较旧的归档数据的文件组。在灾难恢复应用场景下,段落还原策略可缩短任务关键型应用程序处于离线状态的时间。
由于少量数据页发生损坏而需要恢复数据库时,SQL Server 2008 支持页级还原操作。用户可从许多源数据库的可疑页中识别页 ID,包括 msdb 数据库中的 suspect_pages 表、SQL Server 错误日志以及 DBCC CHECKDB 命令。识别出任何有可能损坏的数据页之后,就可以在 RESTORE 语句的 PAGE 从句中指定页 ID,从而还原数据页。从备份中还原单张页的能力极大地缩短由于数据库损坏导致的停机时间。
部分数据可用性
有了“部分数据可用性”功能,即使数据库的一部分由于隔离硬件或磁盘故障而遭破坏,数据库也能维持在线状态和可用性。如果辅助的非主要数据文件损坏,则数据库未损坏的部分仍将保持在线状态和可用性。因此,即使整个系统不可用,但有些客户和职员仍可访问数据,这会减轻由问题导致的后果,同时另一个可用性解决方案将进入在线状态。
快照隔离
在SQL Server的早期版本中修改数据时,被修改的数据将处于锁定状态,因此其他应用程序和用户就无法使用这些数据。替代方法是读取数据的当前状态(即使这些值尚未被提交)或者当交易未成功完成时回滚数据。
“快照隔离”功能扩展了 SQL Server 2008 中的锁定框架,它使应用程序能够在发生任何数据修改之前查看值。这可防止应用程序被锁定,同时仍将提供真正已提交的数据。例如,在本文开头介绍的玩具制造商案例中,“快照隔离”功能使报告能够运行,并提供精确的交易结果。“快照隔离”使报告更及时、更精确。
动态配置
“动态配置”是 SQL Server Always On 技术之一,利用该技术可以更好地访问硬件特性,如执行热升级,同时系统仍可运行。如果硬件支持“热添加内存”,则在增加系统内存时就不会产生中断,而且 SQL Server 将通过动态内存或者故障移动群集的动态“地址窗口化扩展插件(AWE)”自动使用这些内存。
SQL Server 2008 还支持“热添加CPU”,因此可为受支持的硬件添加处理器,而且不会使操作中断。
对于任何需要增加处理器或内存资源的系统而言,“动态配置”功能可缩短停机时间,并提高职员工作效率和客户满意度。
【编辑推荐】