日志传输故障转移指南

在企业级数据库管理中,灾难恢复是一个至关重要的环节。日志传输(Log Shipping)是一种常见的数据库故障转移策略,它允许将一个服务器(主服务器)的事务日志备份到另一个服务器(辅助服务器)。当主服务器发生故障时,辅助服务器可以接管服务,从而实现业务的连续性。本文将详细介绍如何进行日志传输故障转移,包括灾难恢复测试、故障转移执行以及故障回复的步骤。

开始前的准备

在开始执行日志传输故障转移之前,需要对主脚本进行定制,以生成所需的故障转移脚本。

首先,下载并打开提供的zip文件,然后使用SQL Management Studio打开其中的SQL_DR_Master.sql文件。

接下来,更新变量声明后的变量:

  • @FailOverFromPRIMARY:是否尝试从主服务器进行故障转移?如果设置为'Y',在将所有可用事务日志应用到辅助服务器之前,将在主服务器上执行最终的事务日志备份。如果设置为'N',则辅助服务器在应用所有可用日志之前不会尝试从主服务器进行备份。
  • @ScriptsLocation:设置故障转移脚本应该创建的现有网络位置。例如'\\MyServer\MyFailoverFolder',应该是一个安全且可访问的位置。
  • @RunType:默认为'Automatic'。这告诉script 04.sql自动应用事务日志,然后仅显示已运行的语句。除非试图解决问题或希望更好地理解正在发生的事情,否则不应更改此设置。

在运行脚本之前,请查看“考虑事项”部分,了解所需的先决条件。例如:

  • 在SQL Management Studio中选择“查询 -> 结果到 -> 结果到网格”。
  • 确保辅助服务器到主服务器的LinkedServer存在。
  • 验证前面提到的变量是否设置正确。
  • 等等。

在辅助服务器上执行脚本。这不会实际开始故障转移过程。它只是生成将用于执行故障转移的脚本。

在辅助服务器上随时运行此脚本以查看脚本/步骤是安全的。如果确实要进行故障转移,请将其作为整个过程的一部分运行,以确保生成的脚本尽可能最新,并正确反映当前环境。

执行故障转移

下表描述了每个生成的脚本将采取的主要操作以及预期的结果。前5个脚本从主服务器故障转移到辅助服务器,最后5个脚本从辅助服务器故障回复到主服务器(如果需要)。

要开始故障转移,请在SQL Management Studio中打开01.sql - 05.sql。查看下面的表格,并花时间仔细检查生成的.sql脚本,确保它们对有意义,并且没有预见到任何问题。在确认生成的脚本看起来不错之后,就可以开始执行服务器的故障转移的第一步了。

验证01.sql连接到正确的服务器,并点击执行。重复此操作,执行02.sql - 05.sql以完全执行故障转移。在执行过程中参考下面的表格,以确保一切按预期进行。

脚本 目标服务器 主要操作 预期结果
01.sql 主服务器 执行并禁用LS备份作业。 LS备份作业已运行并已禁用。
02.sql 辅助服务器 移除任何LS还原延迟,应用所有日志,并禁用LS还原作业。 数据库已应用所有可用日志。
03.sql 主服务器 执行日志备份。 数据库处于NORECOVERY模式,准备故障回复。
04.sql 辅助服务器 生成数据库剩余日志的列表并恢复它们。 数据库已应用所有日志并保持不可访问。
05.sql 辅助服务器 在每个数据库上执行还原命令。 数据库现在可用并准备使用。

执行05.sql之后,将在辅助服务器上运行。如果这是一次DR测试,可以在辅助服务器上执行一些测试(例如,暂时将应用程序指向它以确保它正常工作)。

执行故障回复

要执行故障回复,请在SQL Management Studio中打开06.sql - 10.sql。验证06.sql连接到正确的服务器并点击执行。重复此操作,执行07.sql - 10.sql以完全完成故障回复。在执行过程中参考下面的表格,以确保一切按预期进行。

脚本 目标服务器 主要操作 预期结果
06.sql 辅助服务器 执行日志备份。 数据库处于NORECOVERY模式,等待LS重新参与。
07.sql 主服务器 还原可用的日志备份。 数据库已应用所有可用日志并仍处于NORECOVERY模式。
08.sql 主服务器 将所有数据库设置回多用户模式。 数据库现在可用并准备使用。
09.sql 主服务器 启用所有LS备份作业。 主服务器正在制作日志备份。
10.sql 辅助服务器 启用所有LS还原作业。 日志备份正在由辅助服务器还原,日志传输正常运行。

请注意,在这段时间内对辅助服务器所做的任何更改都将被带回主服务器,以保持数据库同步。这允许日志传输在离开的地方立即恢复。将应用程序重新指向主服务器,并进行任何必要的测试,以确保一切按预期进行,并为用户完全做好准备。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485