SQL Server 镜像

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
简介:

1.环境要求

SQL Server 2005 SP3以上,主机与备机的SQL Server实例版本相同

一台主机:VM-DB-SRV1

一台备机:VM-DB-SRV2

主机与备机互通。


2.准备工作

在主机上设定主体库使用完整恢复模式

1
ALTER  DATABASE  EsmDB  SET  RECOVERY  FULL


在主机上完整备份主体库

1
2
3
4
--完整备份
BACKUP  DATABASE  EsmDB  TO  DISK= 'C:\EsmDB.bak'
--备份日志
BACKUP LOG EsmDB  TO  DISK= 'C:\EsmDBlog.bak'


将2个bak文件拷贝到备机上,在备机上恢复库,使用NORECOVERY模式

1
2
3
4
--恢复数据库
RESTORE  DATABASE  EsmDB  FROM  DISK= 'C:\EsmDB.bak'  WITH  NORECOVERY
--恢复日志
RESTORE LOG EsmDB  FROM  DISK= 'C:\EsmDBlog.bak'  WITH  NORECOVERY


3.建立镜像

3.1.创建证书并备份

主机执行

1
2
3
4
5
6
7
USE master
--加密
CREATE  MASTER  KEY  ENCRYPTION  BY  PASSWORD = 'mirror'
--为本机创建证书
CREATE  CERTIFICATE SRV1_CERT  WITH  SUBJECT= 'vm-db-srv1' ,START_DATE= '01/01/2013' ,EXPIRY_DATE= '01/01/2050'
--备份到磁盘
BACKUP CERTIFICATE SRV1_CERT  TO  FILE= 'C:\SRV1_CERT.cer'


备机执行

1
2
3
4
5
6
7
USE master
--加密
CREATE  MASTER  KEY  ENCRYPTION  BY  PASSWORD = 'mirror'
--为本机创建证书
CREATE  CERTIFICATE SRV2_CERT  WITH  SUBJECT= 'vm-db-srv2' ,START_DATE= '01/01/2013' ,EXPIRY_DATE= '01/01/2050'
--备份到磁盘
BACKUP CERTIFICATE SRV2_CERT  TO  FILE= 'C:\SRV2_CERT.cer'


3.2.创建端点

主机执行

1
2
3
4
5
6
7
8
9
10
CREATE  ENDPOINT EP                            --自定义端点名为EP
STATE=STARTED
AS  TCP(LISTENER_PORT=5022, LISTENER_IP= ALL ) --使用5022端口
FOR
DATABASE_MIRRORING                            --数据库镜像用
(
     AUTHENTICATION=CERTIFICATE SRV1_CERT,     --使用证书SRV1_CERT
     ENCRYPTION=REQUIRED ALGORITHM AES,
     ROLE= ALL
)


备机执行

1
2
3
4
5
6
7
8
9
10
CREATE  ENDPOINT EP                            --自定义端点名为EP
STATE=STARTED
AS  TCP(LISTENER_PORT=5022, LISTENER_IP= ALL ) --使用5022端口
FOR
DATABASE_MIRRORING                            --数据库镜像用
(
     AUTHENTICATION=CERTIFICATE SRV2_CERT,     --使用证书SRV2_CERT
     ENCRYPTION=REQUIRED ALGORITHM AES,
     ROLE= ALL
)


3.3.互换证书并创建登录

主机拷贝备机的证书文件SRV2_CERT.cer,然后执行

1
2
3
4
5
6
7
8
--创建SRV2用的登录
CREATE  LOGIN SRV2_login  WITH  PASSWORD = 'mirror'
--创建SRV2用的帐号
CREATE  USER  SRV2_user  FOR  LOGIN SRV2_login
--在SRV1上创建SRV2的证书,使用拷贝过来的cer文件
CREATE  CERTIFICATE SRV2_CERT  AUTHORIZATION  SRV2_user  FROM  FILE= 'C:\SRV2_CERT.cer'
--授予SRV2连接到端点的权限
GRANT  CONNECT  ON  ENDPOINT::EP  TO  SRV2_login


备机拷贝主机的证书文件SRV1_CERT.cer,然后执行

1
2
3
4
5
6
7
8
--创建SRV1用的登录
CREATE  LOGIN SRV1_login  WITH  PASSWORD = 'mirror'
--创建SRV1用的帐号
CREATE  USER  SRV1_user  FOR  LOGIN SRV1_login
--在SRV2上创建SRV1的证书,使用拷贝过来的cer文件
CREATE  CERTIFICATE SRV1_CERT  AUTHORIZATION  SRV1_user  FROM  FILE= 'C:\SRV1_CERT.cer'
--授予SRV1连接到端点的权限
GRANT  CONNECT  ON  ENDPOINT::EP  TO  SRV1_login


3.4.建立镜像关系

先在备机执行

1
2
--为EsmDB库设定主体服务器为SRV1
ALTER  DATABASE  EsmDB  SET  PARTNER= 'TCP://VM-DB-SRV1:5022'


然后主机执行

1
2
--为EsmDB库设定镜像服务器为SRV2
ALTER  DATABASE  EsmDB  SET  PARTNER= 'TCP://VM-DB-SRV2:5022'


成功后主机上的EsmDB库会显示为“(主体,正在同步)”,备机上的EsmDB库会显示为“(镜像,正在同步/正在还原)”


4.主备切换

如果需要主动进行主备互换,在主机上执行

1
ALTER  DATABASE  EsmDB  SET  PARTNER FAILOVER


成功后主备互换,SRV2成功主机,SRV1成功备机。



如果主机无法工作,需要备机紧急启动,在备机执行

1
ALTER  DATABASE  EsmDB  SET  PARTNER FORCE_SERVICE_ALLOW_DATA_LOSS


执行此命令前,备机上的EsmDB一定是显示为“(镜像,已断开连接)”。

成功后,EsmDB先显示“正在恢复”,10秒左右会变成“(主体,已断开连接)”。


如果此时主机恢复工作,主机上的EsmDB会显示为“(镜像,挂起/正在还原)”,备机上的EsmDB会显示为“(主体,挂起)”。


此时如果需要恢复主机工作,需要在备机上执行

1
2
ALTER  DATABASE  EsmDB  SET  PARTNER RESUME
ALTER  DATABASE  EsmDB  SET  PARTNER FAILOVER






     本文转自 BoyTNT 51CTO博客,原文链接:http://blog.51cto.com/boytnt/1344385,如需转载请自行联系原作者

相关文章
Java连接SQL Server数据库的详细操作流程
Java连接SQL Server数据库的详细操作流程
|
关系型数据库 MySQL 网络安全
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
5-10Can't connect to MySQL server on 'sh-cynosl-grp-fcs50xoa.sql.tencentcdb.com' (110)")
|
SQL 存储 监控
SQL Server的并行实施如何优化?
【7月更文挑战第23天】SQL Server的并行实施如何优化?
529 13
解锁 SQL Server 2022的时间序列数据功能
【7月更文挑战第14天】要解锁SQL Server 2022的时间序列数据功能,可使用`generate_series`函数生成整数序列,例如:`SELECT value FROM generate_series(1, 10)。此外,`date_bucket`函数能按指定间隔(如周)对日期时间值分组,这些工具结合窗口函数和其他时间日期函数,能高效处理和分析时间序列数据。更多信息请参考官方文档和技术资料。
351 9
|
SQL 存储 网络安全
关系数据库SQLserver 安装 SQL Server
【7月更文挑战第26天】
248 6
|
SQL Oracle 关系型数据库
MySQL、SQL Server和Oracle数据库安装部署教程
数据库的安装部署教程因不同的数据库管理系统(DBMS)而异,以下将以MySQL、SQL Server和Oracle为例,分别概述其安装部署的基本步骤。请注意,由于软件版本和操作系统的不同,具体步骤可能会有所变化。
1164 3
|
存储 SQL C++
对比 SQL Server中的VARCHAR(max) 与VARCHAR(n) 数据类型
【7月更文挑战7天】SQL Server 中的 VARCHAR(max) vs VARCHAR(n): - VARCHAR(n) 存储最多 n 个字符(1-8000),适合短文本。 - VARCHAR(max) 可存储约 21 亿个字符,适合大量文本。 - VARCHAR(n) 在处理小数据时性能更好,空间固定。 - VARCHAR(max) 对于大文本更合适,但可能影响性能。 - 选择取决于数据长度预期和业务需求。
1158 1
|
SQL 存储 安全
数据库数据恢复—SQL Server数据库出现逻辑错误的数据恢复案例
SQL Server数据库数据恢复环境: 某品牌服务器存储中有两组raid5磁盘阵列。操作系统层面跑着SQL Server数据库,SQL Server数据库存放在D盘分区中。 SQL Server数据库故障: 存放SQL Server数据库的D盘分区容量不足,管理员在E盘中生成了一个.ndf的文件并且将数据库路径指向E盘继续使用。数据库继续运行一段时间后出现故障并报错,连接失效,SqlServer数据库无法附加查询。管理员多次尝试恢复数据库数据但是没有成功。
|
SQL 存储 测试技术
|
SQL 关系型数据库 分布式数据库
PolarDB产品使用问题之如何迁移SQL Server
PolarDB产品使用合集涵盖了从创建与管理、数据管理、性能优化与诊断、安全与合规到生态与集成、运维与支持等全方位的功能和服务,旨在帮助企业轻松构建高可用、高性能且易于管理的数据库环境,满足不同业务场景的需求。用户可以通过阿里云控制台、API、SDK等方式便捷地使用这些功能,实现数据库的高效运维与持续优化。
192 6