数据库镜像可以与事务复制一起使用实现数据库整体的高可用性和高性能,其中镜像可以提供故障检测和故障转移,复制则用于实现读写分离。 数据库镜像涉及一个数据库的两个副本,这两个副本通常驻留在不同的计算机上。 在任何给定时间都只有一个数据库副本可供客户端使用。 该副本称为主体数据库。 客户端对主体数据库所做的更新应用到数据库的另一副本(称为镜像数据库)。 镜像涉及将在主体数据库上执行的每个插入、更新或删除操作的事务日志应用到镜像数据库上。 复制将数据和数据库对象从一个数据库复制和分发到另一个数据库,然后在数据库之间进行同步以保持一致性。 主体数据库和镜像数据库必须共享分发服务器 主体数据库/发布数据库:10.86.3.100,机器名WIN-3-100 镜像数据库:10.86.3.101,机器名WIN-3-101 分发数据库:10.86.3.102,机器名WIN-3-102 订阅数据库1:10.86.3.103,机器名WIN-3-103 数据库名称mydb,端口都是1433 镜像配置的验证方式采用证书验证 步骤1:配置镜像
  • 通过备份方式准备镜像数据库
在主体数据库上创建完整备份和日志备份,官方文档指出,需要至少一个日志备份:
BACKUP DATABASE [mydb] TO DISK = N'D:\backup\mydb.bak' WITH NOFORMAT, NOINIT, NAME = N'mydb-完整数据库备份 ', SKIP, NOREWIND, NOUNLOAD, STATS = 10 GO BACKUP LOG [mydb] TO DISK = N'D:\backup\mydb.trn' WITH NOFORMAT, NOINIT, NAME = N'mydb-事务日志 备份' , SKIP , NOREWIND , NOUNLOAD , STATS = 10 GO

将备份拷贝到镜像服务器上,在镜像服务器上恢复备份,需要指定RESTORE WITH NORECOVERY

RESTORE DATABASE [mydb] FROM DISK = N'D:\backup\mydb.bak' WITH FILE = 1, NORECOVERY , NOUNLOAD , STATS = 10 GO RESTORE LOG [mydb] FROM DISK = N'D:\backup\mydb.trn' WITH FILE = 1, NORECOVERY, NOUNLOAD, STATS = 10 GO
  • 配置出站连接和证书

主体数据库配置如下:

SRE实战 互联网时代守护先锋,助力企业售后服务体系运筹帷幄!一键直达领取阿里云限量特价优惠。 SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第1张
--创建密钥 CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password' SELECT * FROM sys.symmetric_keys --创建证书 CREATE CERTIFICATE cert_3_100 WITH SUBJECT = 'HOST_A certificate for database mirroring', EXPIRY_DATE = '1/1/2020' SELECT * FROM sys.certificates ; --创建端点 CREATE ENDPOINT master_instance STATE = STARTED AS TCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE cert_3_100 , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL ) SELECT name , role_desc , state_desc , connection_auth_desc , encryption_algorithm_desc FROM sys.database_mirroring_endpoints --备份证书到其他系统 BACKUP CERTIFICATE cert_3_101 TO FILE = 'd:\cert_3_100.cer'; GO 
SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第2张

镜像数据库配置如下:

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第3张
--创建密钥 CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password' SELECT * FROM sys.symmetric_keys --创建证书 CREATE CERTIFICATE cert_3_101 WITH SUBJECT = 'HOST_A certificate for database mirroring', EXPIRY_DATE = '1/1/2020' SELECT * FROM sys.certificates ; --创建端点 CREATE ENDPOINT backup_instance STATE = STARTED AS TCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE cert_3_101 , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL ) SELECT name , role_desc , state_desc , connection_auth_desc , encryption_algorithm_desc FROM sys.database_mirroring_endpoints --备份证书到其他系统 BACKUP CERTIFICATE cert_3_101 TO FILE = 'd:\cert_3_101.cer'; GO
SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第4张
  • 配置入站连接和证书

主体数据库配置如下:

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第5张
USE master --为其他系统创建登录名 CREATE LOGIN login_3_101 WITH PASSWORD = 'password'; SELECT * FROM sys.server_principals --创建一个使用该登录名的用户 CREATE USER user_3_101 FOR LOGIN login_3_101 SELECT * FROM sys.sysusers --将证书与用户关联,并将镜像库生成的证书文件放到指定目录中 CREATE CERTIFICATE cert_3_101 AUTHORIZATION user_3_101 FROM FILE = 'd:\cert_3_101.cer' SELECT * FROM sys.certificates --授权对远程镜像端点的登录名的 CONNECT权限,授权完成后,完成对登录到所需的证书身份验证的设置 GRANT CONNECT ON ENDPOINT::master_instance TO login_3_101
SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第6张

镜像数据库配置如下:

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第7张
USE master --为其他系统创建登录名 CREATE LOGIN login_3_100 WITH PASSWORD = 'password'; SELECT * FROM sys.server_principals --创建一个使用该登录名的用户,并将主体库生成的证书文件放到指定目录中 CREATE USER user_3_100 FOR LOGIN login_3_100 SELECT * FROM sys.sysusers --将证书与用户关联 CREATE CERTIFICATE cert_3_100 AUTHORIZATION user_3_100 FROM FILE = 'd:\cert_3_100.cer' SELECT * FROM sys.certificates --授权对远程镜像端点的登录名的 CONNECT权限,授权完成后,完成对登录到所需的证书身份验证的设置 GRANT CONNECT ON ENDPOINT::backup_instance TO login_3_100
SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第8张
  • 配置镜像

选择主体数据库mydb数据库对象右键->任务->镜像->配置安全性

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第9张

因为要采用高性能方式,所以不需要见证服务器

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第10张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第11张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第12张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第13张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第14张

 

当同步完成后,主体数据库会显示“(主体,已同步)”,镜像数据库会显示(已同步,正在还原)

步骤2:配置分发服务器

  • 在发布服务器、分发服务器和订阅服务器配置hosts文件,加入如下配置:
10.86.3.101    WIN-3-101 10.86.3.102    WIN-3-102 10.86.3.103    WIN-3-103 10.86.3.104    WIN-3-104
  • 将10.86.3.102配置成分发服务器,分发数据库的快照文件建议配置相应的访问权限,因为我的账户有访问权限,所以略去这步
在分发服务器上,选择复制->配置分发,按照下图操作:

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第15张

点击添加

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第16张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第17张

 

剩下的就直接下一步,直到完成即可
  • 在分发服务器属性对话框中启用发布服务器
在分发服务器复制选项->分发服务器属性->发布服务器,点击添加按钮,选择发布服务器WIN-3-100,在弹出需要设置管理链接密码的对话框中,输入管理链接的密码 SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第18张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第19张

  • 在主体数据库(发布数据库)和镜像数据库中指定分发数据库
首先在WIN-3-100上配置,在复制功能上右键->配置分发,按照图中指示配置,选择"使用以下服务器作为分发服务器",点击添加按钮,选择WIN-3-102作为分发服务器 SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第20张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第21张

输入管理密码与步骤3中配置的管理链接密码一致 SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第22张   SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第23张 下一步,直至完成。然后如法炮制,在镜像服务器中将WIN-3-102配置为分发服务器,指向同一分发数据库和快照文件   步骤3配置发布服务器 选择复制->本地发布->新建发布,按照如下步骤操作 SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第24张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第25张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第26张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第27张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第28张

如果要发布的数据库非常大,建议选择业务空闲期进行初始化快照

 SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第29张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第30张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第31张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第32张

配置用于故障转移的复制代理(快照代理和日志读取代理) 启动复制监视器,选择发布服务器,选择快照代理,右键代理配置,选择代理配置文件 SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第33张

输入代理名称,取消勾选“仅显示次配置文件中使用的参数”,指定 –PublisherFailoverPartner 代理参数的镜像名称WIN-3-100

 SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第34张

按照上述方法,设置日志读取器代理,指定–PublisherFailoverPartner 代理参数的镜像名称WIN-3-100 创建完成之后还有关键的一步,就是在主体和镜像服务器上执行 DBCC TRACEON(1448,-1),如果可以重启最好加入到实例的启动参数中去。如果不设置该参数,会报复制的事务正等待下一次日志备份或等待镜像伙伴更新   步骤4配置订阅服务器 在订阅服务器中(WIN-3-103)中建立订阅复制,选择复制->本地订阅(右键)->新建订阅 SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第35张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第36张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第37张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第38张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第39张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第40张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第41张

步骤5测试 连接发布库,向测试表中插入数据并查询
USE mydb INSERT INTO Admin( user_name) VALUES('master' ) SELECT * FROM admin WHERE user_name='master'

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第42张

连接订阅库,查询插入数据

USE mydb SELECT * FROM admin WHERE user_name='master'

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第43张

故障切换: 停止主体数据库服务,过一会在镜像库执行强制接收
use master ; alter database mydb set partner FORCE_SERVICE_ALLOW_DATA_LOSS; --强制接收
切换成功后,新的主体数据库显示‘主体,已断开连接’ 在新的主体服务器执行:
USE mydb INSERT INTO Admin( user_name) VALUES('mirror' ) SELECT * FROM admin WHERE user_name='mirror'

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第44张

在订阅服务器查看:

USE mydb SELECT * FROM admin WHERE user_name='mirror'
测试成功(测试成功的图居然忘记截了。。。) 当宕机的原主体数据库连接上来后,现在的主体数据库状态由“主体,已断开”变成“主体,挂起”,此时需要在现主体数据库上执行恢复操作,主体数据库状态变为“主体,已同步”
use master ; alter database mydb set partner resume;

 

,数据库镜像可以与事务复制一起使用实现数据库整体的高可用性和高性能,其中镜像可以提供故障检测和故障转移,复制则用于实现读写分离。 数据库镜像涉及一个数据库的两个副本,这两个副本通常驻留在不同的计算机上。 在任何给定时间都只有一个数据库副本可供客户端使用。 该副本称为主体数据库。 客户端对主体数据库所做的更新应用到数据库的另一副本(称为镜像数据库)。 镜像涉及将在主体数据库上执行的每个插入、更新或删除操作的事务日志应用到镜像数据库上。 复制将数据和数据库对象从一个数据库复制和分发到另一个数据库,然后在数据库之间进行同步以保持一致性。 主体数据库和镜像数据库必须共享分发服务器 主体数据库/发布数据库:10.86.3.100,机器名WIN-3-100 镜像数据库:10.86.3.101,机器名WIN-3-101 分发数据库:10.86.3.102,机器名WIN-3-102 订阅数据库1:10.86.3.103,机器名WIN-3-103 数据库名称mydb,端口都是1433 镜像配置的验证方式采用证书验证 步骤1:配置镜像
  • 通过备份方式准备镜像数据库
在主体数据库上创建完整备份和日志备份,官方文档指出,需要至少一个日志备份:
BACKUP DATABASE [mydb] TO DISK = N'D:\backup\mydb.bak' WITH NOFORMAT, NOINIT, NAME = N'mydb-完整数据库备份 ', SKIP, NOREWIND, NOUNLOAD, STATS = 10 GO BACKUP LOG [mydb] TO DISK = N'D:\backup\mydb.trn' WITH NOFORMAT, NOINIT, NAME = N'mydb-事务日志 备份' , SKIP , NOREWIND , NOUNLOAD , STATS = 10 GO

将备份拷贝到镜像服务器上,在镜像服务器上恢复备份,需要指定RESTORE WITH NORECOVERY

RESTORE DATABASE [mydb] FROM DISK = N'D:\backup\mydb.bak' WITH FILE = 1, NORECOVERY , NOUNLOAD , STATS = 10 GO RESTORE LOG [mydb] FROM DISK = N'D:\backup\mydb.trn' WITH FILE = 1, NORECOVERY, NOUNLOAD, STATS = 10 GO
  • 配置出站连接和证书

主体数据库配置如下:

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第45张
--创建密钥 CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password' SELECT * FROM sys.symmetric_keys --创建证书 CREATE CERTIFICATE cert_3_100 WITH SUBJECT = 'HOST_A certificate for database mirroring', EXPIRY_DATE = '1/1/2020' SELECT * FROM sys.certificates ; --创建端点 CREATE ENDPOINT master_instance STATE = STARTED AS TCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE cert_3_100 , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL ) SELECT name , role_desc , state_desc , connection_auth_desc , encryption_algorithm_desc FROM sys.database_mirroring_endpoints --备份证书到其他系统 BACKUP CERTIFICATE cert_3_101 TO FILE = 'd:\cert_3_100.cer'; GO 
SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第46张

镜像数据库配置如下:

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第47张
--创建密钥 CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'password' SELECT * FROM sys.symmetric_keys --创建证书 CREATE CERTIFICATE cert_3_101 WITH SUBJECT = 'HOST_A certificate for database mirroring', EXPIRY_DATE = '1/1/2020' SELECT * FROM sys.certificates ; --创建端点 CREATE ENDPOINT backup_instance STATE = STARTED AS TCP ( LISTENER_PORT=5022 , LISTENER_IP = ALL ) FOR DATABASE_MIRRORING ( AUTHENTICATION = CERTIFICATE cert_3_101 , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL ) SELECT name , role_desc , state_desc , connection_auth_desc , encryption_algorithm_desc FROM sys.database_mirroring_endpoints --备份证书到其他系统 BACKUP CERTIFICATE cert_3_101 TO FILE = 'd:\cert_3_101.cer'; GO
SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第48张
  • 配置入站连接和证书

主体数据库配置如下:

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第49张
USE master --为其他系统创建登录名 CREATE LOGIN login_3_101 WITH PASSWORD = 'password'; SELECT * FROM sys.server_principals --创建一个使用该登录名的用户 CREATE USER user_3_101 FOR LOGIN login_3_101 SELECT * FROM sys.sysusers --将证书与用户关联,并将镜像库生成的证书文件放到指定目录中 CREATE CERTIFICATE cert_3_101 AUTHORIZATION user_3_101 FROM FILE = 'd:\cert_3_101.cer' SELECT * FROM sys.certificates --授权对远程镜像端点的登录名的 CONNECT权限,授权完成后,完成对登录到所需的证书身份验证的设置 GRANT CONNECT ON ENDPOINT::master_instance TO login_3_101
SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第50张

镜像数据库配置如下:

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第51张
USE master --为其他系统创建登录名 CREATE LOGIN login_3_100 WITH PASSWORD = 'password'; SELECT * FROM sys.server_principals --创建一个使用该登录名的用户,并将主体库生成的证书文件放到指定目录中 CREATE USER user_3_100 FOR LOGIN login_3_100 SELECT * FROM sys.sysusers --将证书与用户关联 CREATE CERTIFICATE cert_3_100 AUTHORIZATION user_3_100 FROM FILE = 'd:\cert_3_100.cer' SELECT * FROM sys.certificates --授权对远程镜像端点的登录名的 CONNECT权限,授权完成后,完成对登录到所需的证书身份验证的设置 GRANT CONNECT ON ENDPOINT::backup_instance TO login_3_100
SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第52张
  • 配置镜像

选择主体数据库mydb数据库对象右键->任务->镜像->配置安全性

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第53张

因为要采用高性能方式,所以不需要见证服务器

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第54张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第55张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第56张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第57张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第58张

 

当同步完成后,主体数据库会显示“(主体,已同步)”,镜像数据库会显示(已同步,正在还原)

步骤2:配置分发服务器

  • 在发布服务器、分发服务器和订阅服务器配置hosts文件,加入如下配置:
10.86.3.101    WIN-3-101 10.86.3.102    WIN-3-102 10.86.3.103    WIN-3-103 10.86.3.104    WIN-3-104
  • 将10.86.3.102配置成分发服务器,分发数据库的快照文件建议配置相应的访问权限,因为我的账户有访问权限,所以略去这步
在分发服务器上,选择复制->配置分发,按照下图操作:

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第59张

点击添加

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第60张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第61张

 

剩下的就直接下一步,直到完成即可
  • 在分发服务器属性对话框中启用发布服务器
在分发服务器复制选项->分发服务器属性->发布服务器,点击添加按钮,选择发布服务器WIN-3-100,在弹出需要设置管理链接密码的对话框中,输入管理链接的密码 SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第62张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第63张

  • 在主体数据库(发布数据库)和镜像数据库中指定分发数据库
首先在WIN-3-100上配置,在复制功能上右键->配置分发,按照图中指示配置,选择"使用以下服务器作为分发服务器",点击添加按钮,选择WIN-3-102作为分发服务器 SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第64张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第65张

输入管理密码与步骤3中配置的管理链接密码一致 SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第66张   SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第67张 下一步,直至完成。然后如法炮制,在镜像服务器中将WIN-3-102配置为分发服务器,指向同一分发数据库和快照文件   步骤3配置发布服务器 选择复制->本地发布->新建发布,按照如下步骤操作 SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第68张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第69张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第70张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第71张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第72张

如果要发布的数据库非常大,建议选择业务空闲期进行初始化快照

 SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第73张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第74张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第75张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第76张

配置用于故障转移的复制代理(快照代理和日志读取代理) 启动复制监视器,选择发布服务器,选择快照代理,右键代理配置,选择代理配置文件 SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第77张

输入代理名称,取消勾选“仅显示次配置文件中使用的参数”,指定 –PublisherFailoverPartner 代理参数的镜像名称WIN-3-100

 SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第78张

按照上述方法,设置日志读取器代理,指定–PublisherFailoverPartner 代理参数的镜像名称WIN-3-100 创建完成之后还有关键的一步,就是在主体和镜像服务器上执行 DBCC TRACEON(1448,-1),如果可以重启最好加入到实例的启动参数中去。如果不设置该参数,会报复制的事务正等待下一次日志备份或等待镜像伙伴更新   步骤4配置订阅服务器 在订阅服务器中(WIN-3-103)中建立订阅复制,选择复制->本地订阅(右键)->新建订阅 SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第79张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第80张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第81张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第82张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第83张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第84张

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第85张

步骤5测试 连接发布库,向测试表中插入数据并查询
USE mydb INSERT INTO Admin( user_name) VALUES('master' ) SELECT * FROM admin WHERE user_name='master'

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第86张

连接订阅库,查询插入数据

USE mydb SELECT * FROM admin WHERE user_name='master'

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第87张

故障切换: 停止主体数据库服务,过一会在镜像库执行强制接收
use master ; alter database mydb set partner FORCE_SERVICE_ALLOW_DATA_LOSS; --强制接收
切换成功后,新的主体数据库显示‘主体,已断开连接’ 在新的主体服务器执行:
USE mydb INSERT INTO Admin( user_name) VALUES('mirror' ) SELECT * FROM admin WHERE user_name='mirror'

SQL Server复制情况下的高可用方案(一)镜像+复制 随笔 第88张

在订阅服务器查看:

USE mydb SELECT * FROM admin WHERE user_name='mirror'
测试成功(测试成功的图居然忘记截了。。。) 当宕机的原主体数据库连接上来后,现在的主体数据库状态由“主体,已断开”变成“主体,挂起”,此时需要在现主体数据库上执行恢复操作,主体数据库状态变为“主体,已同步”
use master ; alter database mydb set partner resume;

 

扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄