MS SQL Server - HA 技术
高可用性 (HA) 是一种解决方案\处理技术,可使应用程序\数据库在计划内或非计划内停机情况下全天候可用。
MS SQL Server 中主要有五个选项可用于为数据库实现\设置高可用性解决方案。
复制
源数据将通过复制代理(作业)复制到目标。对象级技术。
术语
- 发布者是源服务器。
- 分发者是可选的,并为订阅者存储复制的数据。
- 订阅者是目标服务器。
日志传送
源数据将通过事务日志备份作业复制到目标。数据库级技术。
术语
- 主服务器是源服务器。
- 辅助服务器是目标服务器。
- 监视服务器是可选的,将通过日志传送状态进行监视。
镜像
在镜像端点和端口号的帮助下,主数据将通过网络事务复制到辅助服务器。数据库级技术。
术语
- 主服务器是源服务器。
- 镜像服务器是目标服务器。
- 见证服务器是可选的,用于进行自动故障转移。
集群
数据将存储在共享位置,主服务器和辅助服务器均会根据服务器的可用性使用该共享位置。实例级技术。共享存储需要 Windows 集群设置。
术语
- 活动节点是 SQL 服务正在运行的位置。
- 被动节点是未运行 SQL 服务的位置。
AlwaysON 可用性组
主数据将通过网络事务复制到辅助数据。数据库级技术组。需要设置 Windows 群集,而无需共享存储。
术语
- 主副本是源服务器。
- 辅助副本是目标服务器。
以下是配置 HA 技术(镜像和日志传送)的步骤(群集、AlwaysON 可用性组和复制除外)。
步骤 1 −对源数据库进行一次完整备份和一次 T-log 备份。
示例
要为"TESTINSTANCE"中作为主 SQL Server 的数据库"TestDB"和作为辅助 SQL Server 的"DEVINSTANCE"配置镜像\日志传送,请编写以下查询以在源 (TESTINSTANCE) 服务器上进行完整备份和 T-log 备份。
连接到"TESTINSTANCE"SQL Server 并打开新查询,编写以下代码并执行,如以下屏幕截图所示。
Backup database TestDB to disk = 'D: estdb_full.bak' GO Backup log TestDB to disk = 'D: estdb_log.trn'

步骤 2 − 将备份文件复制到目标服务器。
在这种情况下,我们只安装了一台物理服务器和两个 SQL Server 实例,因此无需复制,但如果两个 SQL Server 实例位于不同的物理服务器中,我们需要将以下两个文件复制到安装了"DEVINSTANCE"实例的辅助服务器的任意位置。

步骤 3 − 使用"norecovery"选项在目标服务器中使用备份文件恢复数据库。
示例
连接到"DEVINSTANCE"SQL Server 并打开新查询。编写以下代码以恢复名为"TestDB"的数据库,该数据库与数据库镜像的主数据库("TestDB")同名。但是,我们可以为日志传送配置提供不同的名称。在本例中,我们使用"TestDB"数据库名称。使用"norecovery"选项进行两次(完整和 t-log 备份文件)恢复。
Restore database TestDB from disk = 'D:\TestDB_full.bak' with move 'TestDB' to 'D:\DATA\TestDB_DR.mdf', move 'TestDB_log' to 'D:\DATA\TestDB_log_DR.ldf', norecovery GO Restore database TestDB from disk = 'D:\TestDB_log.trn' with norecovery

刷新"DEVINSTANCE"服务器中的数据库文件夹,以查看已恢复的数据库"TestDB",其恢复状态如以下快照所示。

步骤 4 − 根据您的要求配置 HA(日志传送、镜像),如以下快照所示。
示例
右键单击"TESTINSTANCE"SQL Server 的主数据库"TestDB",然后单击"属性"。将显示以下屏幕。

步骤 5 − 根据您的要求选择如上图所示的红色框中的"镜像"或"事务日志传送"选项,然后按照系统本身引导的向导步骤完成配置。