[DB] SQL Server 2022 "Mirroring and Replication"(镜像和复制)
关于 "数据镜像模式"
数据库镜像操作有两方式,即:同步镜像操作与异步镜像操作。
同步镜像操作:在事务传送中,主服务器必须等待镜像服务器返回成功接收日志的消息后,主服务器才继续下一事务日志到磁盘的写入与提交到镜像服务器。这种镜像不会造成数据丢失,但是存在镜像操作的事务延迟。
异步镜像操作:在事务传送中,主服务器不等待镜像服务器返回日志的接收情况,继续写下一事务日志到物理磁盘并提交给镜像服务器,这种镜像操作性能较高,但是可能造成数据丢失。
有三种角色切换形式,分别为:
1) 自动故障切换,要求主服务器与镜像服务器同步数据库,且由见证服务器将主服务器与镜像服务器连接。
2) 手动故障切换,不需要见证服务器,只要主服务器与镜像服务器连通,且主服务器与镜像服务器同步数据库即可。
3) 强制故障切换,造成数据丢失的情况可能会出现,主服务器与镜像服务器的数据库可同步也可异步。
操作步骤
1. 主服务器(Principal),以 完整恢复模式 备份数据库
BACKUP DATABASE [AdventureWorksLT2022] TO DISK = 'C:\DBBackups\AdventureWorksLT2022.bak'; BACKUP LOG [AdventureWorksLT2022] TO DISK = 'C:\DBBackups\AdventureWorksLT2022.trn';

2. 镜像服务器(Mirror),以 RESTORE WITH NORECOVERY状态 还原数据库



3. 使用 PowerShell 测试服务器 5022 端口连接性
Test-NetConnection -ComputerName sqlserver11 -Port 5022

4. 主服务器(Principal),配置镜像









5. 在主服务器(Principal),如何【暂停 / 重启】镜像?
ALTER ENDPOINT Main STATE=STOPPED GO ALTER ENDPOINT Main STATE=STARTED GO

6. 镜像服务器(Mirror)的数据库不能被访问,正常情况下一直处于【正在还原...】的状态

7. 在主服务器(Principal),如何【转换】主体与镜像的角色?
USE MASTER; ALTER DATABASE AdventureWorksLT2022 SET PARTNER FAILOVER;

8. 如何删除镜像数据库?

ALTER DATABASE AdventureWorksLT2022 SET PARTNER OFF; RESTORE DATABASE AdventureWorksLT2022 WITH RECOVERY;

9. 使用建议
逐步淘汰镜像:SQL Server 2022 已逐步淘汰镜像功能,建议迁移至 AlwaysOn 可用性组。
测试环境验证:首次启用前在非生产环境测试完整流程。
通过以上步骤,可重新启用数据库镜像并确保高可用性。若需长期维护,请优先考虑 AlwaysOn 方案。
参考资料
https://www.youtube.com/watch?v=KUJtVrcCrss
https://blog.csdn.net/cizhiyou2391/article/details/100411202
https://www.cnblogs.com/aaronguo/p/3181217.html
https://www.cnblogs.com/xxllx/p/16279721.html

浙公网安备 33010602011771号