MS SQL Server - 高可用性技术



高可用性 (HA) 是一种解决方案/流程/技术,用于使应用程序/数据库在计划内或计划外中断期间保持 24x7 全天候可用。

在 MS SQL Server 中,主要有五种方法可以实现数据库的高可用性解决方案。

复制

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

术语

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

日志传送

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

术语

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

镜像

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

术语

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

集群

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

术语

  • 活动节点是 SQL 服务正在运行的节点。
  • 被动节点是 SQL 服务未运行的节点。

AlwaysOn 可用性组

主要数据将通过网络事务复制到辅助服务器。数据库级技术组。需要不使用共享存储的 Windows 集群设置。

术语

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

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

步骤 1 - 对源数据库进行一次完全备份和一次事务日志备份。

示例

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

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

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

HA Technologies

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

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

HA Technologies

步骤 3 - 使用“norecovery”选项在目标服务器上使用备份文件还原数据库。

示例

连接到“DEVINSTANCE”SQL Server 并打开新的查询。编写以下代码以还原名为“TestDB”的数据库,该数据库与主数据库(“TestDB”)的名称相同,用于数据库镜像。但是,我们可以为日志传送配置提供不同的名称。在本例中,让我们使用“TestDB”数据库名称。对两次(完全备份和事务日志备份文件)还原使用“norecovery”选项。

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 Technologies

刷新“DEVINSTANCE”服务器中的数据库文件夹,查看已还原的数据库“TestDB”,其还原状态如下面的快照所示。

HA Technologies

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

示例

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

HA Technologies

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

广告