MS SQL Server - 高可用性

高可用性(HA)是解决方案\ process\technology,可使应用程序数据在计划内或未计划的中断下全天候可用.

主要是,有MS SQL Server中的五个选项,用于实现数据库的高可用性解决方案.

复制

源数据将通过以下方式复制到目标复制代理(作业).对象级技术.

术语

  • Publisher是源服务器.

  • 分销商是可选的,并为订户存储复制数据.

  • 订户是目标服务器.

日志传送

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

术语

  • 主服务器是源服务器.

  • 辅助服务器是目标服务器.

  • 监控服务器是可选的,将按日志传送状态进行监控.

镜像

在镜像端点和端口号的帮助下,主数据将通过网络事务复制到辅助数据.数据库级技术.

术语

  • 主服务器是源服务器.

  • 镜像服务器是目标服务器.

  • 见证服务器是可选的,用于进行自动故障转移.

群集

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

术语

  • 活动节点是SQL服务的地方正在运行.

  • 被动节点是SQL服务未运行的地方.

AlwaysON可用性组

主要数据将通过网络事务复制到辅助数据.数据库级技术组.无需共享存储即可进行Windows群集设置.

术语

  • 主副本是源服务器.

  • 辅助副本是目标服务器.

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

步骤1 : 获取源数据库的一个完整备份和一个T-log备份.

示例

为数据库'TestDB'配置mirroring\log传送'TESTINSTANCE'为主要,'DEVINSTANCE'为辅助SQL Server,编写以下查询以在源(TESTINSTANCE)服务器上执行完全备份和T-log备份.

连接到'TESTINSTANCE'SQL服务器并打开新查询并编写以下代码并执行,如下面的屏幕截图所示.

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'数据库名称.对两个(完整和t-log备份文件)恢复使用'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(日志传送,镜像),如以下快照所示.

示例

右键单击"TestDB" "TESTINSTANCE"SQL Server的主数据库,单击"属性".将出现以下屏幕.

HA Technologies

步骤5 : 选择名为"镜像"或"事务日志传送"的选项,这些选项位于上面的屏幕中,按照您的要求显示在红色框中,并按照系统本身指导的向导步骤完成配置.