MS SQL Server - HA 技术


高可用性 (HA) 是使应用程序\数据库在计划内或计划外停机情况下 24x7 可用的解决方案\流程\技术。

MS SQL Server 中主要有五个选项来实现\设置数据库的高可用性解决方案。

复制

源数据将通过复制代理(作业)复制到目标。对象级技术。

术语

  • 发布者是源服务器。
  • 分发者是可选的,它为订阅者存储复制的数据。
  • 订阅者是目标服务器。

日志传送

源数据将通过事务日志备份作业复制到目标。数据库级技术。

术语

  • 主服务器是源服务器。
  • 辅助服务器是目标服务器。
  • 监控服务器是可选的,将通过日志传送状态进行监控。

镜像

主数据将借助镜像端点和端口号通过网络事务复制到辅助数据。数据库级技术。

术语

  • 主服务器是源服务器。
  • 镜像服务器是目标服务器。
  • 见证服务器是可选的,用于进行自动故障转移。

聚类

数据将存储在主服务器和辅助服务器根据服务器可用性使用的共享位置。实例级技术。共享存储需要 Windows 集群设置。

术语

  • 活动节点是 SQL 服务运行的位置。
  • 被动节点是 SQL 服务未运行的节点。

AlwaysON 可用性组

初级数据将通过网络交易基础复制到次级。数据库级技术组。需要 Windows 集群设置,无需共享存储。

术语

  • 主副本是源服务器。
  • 辅助副本是目标服务器。

以下是配置 HA 技术(镜像和日志传送)的步骤,集群、AlwaysON 可用性组和复制除外。

步骤 1 - 对源数据库进行一份完整备份和一份 T 日志备份。

例子

要将“TESTINSTANCE”中的数据库“TestDB”配置为主 SQL Server,将“DEVINSTANCE”配置为辅助 SQL Server,请编写以下查询以在源 (TESTINSTANCE) 服务器上进行完整备份和 T 日志备份。

连接到“TESTINSTANCE”SQL Server 并打开新查询并编写以下代码并执行,如以下屏幕截图所示。

Backup database TestDB to disk = 'D:\testdb_full.bak'
GO
Backup log TestDB to disk = 'D:\testdb_log.trn'

HA技术

步骤 2 - 将备份文件复制到目标服务器。

本例中,我们只安装了一台物理服务器和两个SQL Server实例,因此不需要复制,但如果两个SQL Server实例位于不同的物理服务器中,我们需要将以下两个文件复制到物理服务器的任意位置安装“DEVINSTANCE”实例的辅助服务器。

HA技术

步骤 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

HA技术

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

HA技术

步骤 4 - 根据您的要求配置 HA(日志传送、镜像),如以下快照所示。

例子

右键单击“TESTINSTANCE”SQL Server 的主数据库“TestDB”,然后单击“属性”。将出现以下屏幕。

HA技术

步骤 5 - 根据您的要求,选择名为“镜像”或“事务日志传送”的选项,它们位于红色框中,如上面屏幕所示,然后按照系统本身引导的向导步骤完成配置。