生产环境核心数据库切换流程

1.整体原则

按现有架构搭建一套全新的 SQL 群集,将现有的业务数据库迁移到新设备

1、使用单台共享存储架构,不考虑使用 always on 的数据库架构,继续使用 SQL 群集架构

2、尽量减少业务停机时间

3、考虑回退机制,新群集启用后使用新的 IP 地址规划

2.参考资料

SQL Server 高可用(always on)配置指南之域(AD)环境搭建 ​​https://blog.51cto.com/waringid/5851856​​

SQL Server 高可用(always on)配置指南之节点配置 ​https://blog.51cto.com/waringid/5851970​​

SQL Server 高可用(always on)配置指南之搭建故障转移群集 ​https://blog.51cto.com/waringid/5854694​​

SQL Server 高可用(always on)配置指南之数据库安装 ​https://blog.51cto.com/waringid/5854730​​

SQL Server 高可用(always on)配置指南之数据库侦听器及高可用 ​https://blog.51cto.com/waringid/5859821​​

alwayson故障模拟及处理方案 ​​https://blog.51cto.com/waringid/5868824​​

3.迁移步骤

1、存储厂商完成存储设备配置

2、完成操作系统配置

3、存储厂商执行存储的镜像复制,将 0.178 的数据库整盘镜像克隆到新存储(预计时间2天)

4、存储厂商断开存储的镜像复制(断开复制后新存储上的磁盘才能使用,镜像期间无法使用)

5、基础设施部完成操作系统群集和数据库群集搭建(4小时)

6、DBA 和 产品及开放检查确认数据库是否正常(时间戳验证)

7、产品和开发完成作业、密码等相关内容调整(使用域名方式访问数据库)

3.1.前期配置

前期配置不影响业务经营,无需中断业务操作

1、服务器、存储、SAN 交换机、网络设备上架及配置 (基础设施部)

2、服务器操作系统群集配置 (基础设施部)

3、新、旧存储数据同步复制 (基础设施部)

​4、利用存储的同步复制功能将源盘(0.178 4T 数据盘)同步到目的盘(5.6 4T),同步期间对业务和源服务器性能无影响

5、4T 数据同步完成时间约8小时(13:48~20:00),2021-10-13 14:00 同步,2021-10-14 14:31 断开同步,5.7 目的服务器表中存在 14:30的记录

1. 同步期间磁盘无法使用

2. 断开同步后目的磁盘系统可以正常识别但是磁盘上的文件和文件夹会丢失所有权限,需要重新赋权后使用

3. 断开同步后目的磁盘可以在操作系统群集中加载,数据库群集可以运行,但是无法附加目的磁盘中的数据库文件(数据库群集会校验磁盘的 SID ,磁盘复制后的卷 SID 和已配置的群集卷 ID 不符)

4. 断开同步后通过单机的数据库方式可以附加数据库(Mstroe文件,需要注意调整日志文件的位置),成功附加时间约1分钟。数据库文件打开记录正常

3.2.配置 Always on模式

数据库架构调整为 Always on 模式,支持读写分离。配置只读的域名到 always on 的只读节点;资料下发的操作通过只读实现

步骤调整

1、在 5.7 节点上新增数据库磁盘,容量 6T ,确保操作系统识别 2021-10-15

2、5.6 利用现有同步的磁盘数据(数据内容截至 2021-10-14 14:30)重新搭建 always on 群集 2021-10-16

3、利用新群集验证数据和作业、订阅等。 2021-10-21

4、always on 故障模拟测试 (配置万兆网卡,主机、存储、网络故障模拟)基础设施部

5、重新同步磁盘(先调整 5.6 为 4T空间)直到业务切换 2021-10-22

6、停业务切换 MPS 2021-10-25

  1. 数据库订阅只能通过手工方式新建,目前已有项目 30个,切换当天安排3个人专门负责。预估时间1小时
  2. 数据库作业存在已禁用的,业务切换前需要清理已禁用的作用避免切换时无法区分已禁用和临时禁用的作业
  3. 至少提前1周(7天)发布迁移通知

3.3.切换时间预估

1、停止外部业务(包括业务系统、作业、订阅等) 5分钟

2、修改0.178的域名指向到不存在的地址,数据库只读 10分钟

3、提供数据库验证记录

4、停止数据库代理服务 2分钟

5、等待磁盘数据同步 10分钟

6、断开磁盘柜同步复制 3分钟

7、目的磁盘扩容至 6T 3分钟

8、数据库 always on 群集配置 30分钟

9、数据库数据验证 10分钟

10、数据库验证记录(对比第2步)

11、更新数据库域名的 DNS 信息

12、数据库作业导入(禁用状态) 3分钟

13、数据库订阅操作 60分钟(同步执行业务系统验证操作)

14、启用作业 5分钟

15、启用订阅 5分钟

16、启动业务系统 5分钟

17、验证业务系统 30分钟

3.4.always on 测试结论

单节点故障的切换时间能够控制在3秒以内,ping 的方式丢2个包

1、always on 群集重新配置时间 30分钟

2、网络中断影响(断开节点的网络),切换时间 3秒,丢2个包(ping 测试)

3、服务器停机影响(非正常关机),切换时间 5 秒,丢 4个包(ping 测试)

4、SAN 交换机(存储网络)停机(直接断电),无切换时间,不丢包

5、手工节点切换,切换时间2秒,丢1个包

4.测试验证方案

1、各业务系统打开页面可以正常登录,页面项目显示正常

2、各业务系统提交数据正常

5.各业务产品负责人

6.需要梳理的项目及内容

7.需要测试验证的项目及内容

8.现场驻点人员