GaussDB跨Region容灾演练实战:从0到1搭建高可用架构
架构概览跨Region容灾架构示意——主集群与灾备集群通过gs_sdr工具建立流式容灾关系数据通过WAL日志流复制实现实时同步。在主集群创建容灾用户# 连接主集群的数据库gsql-d postgres-p 数据库端口-ccreate user hadr_user with replication password 你的密码;说明hadr_user是容灾专用账号replication权限是必需的启动主集群的容灾模式gs_sdr-tstart-mprimary-X/路径/主集群配置文件.xml--time-out1200 -U hadr_user -W 你的密码说明-X参数指定你安装集群时的XML配置文件。启动备集群的容灾模式gs_sdr-tstart-m disaster_standby-X/路径/备集群配置文件.xml--time-out1200 -U hadr_user -W 你的密码检查容灾状态gs_sdr-t query当看到 ‘hadr_cluster_stat’: ‘archive’ 类似状态说明容灾关系建立成功演练故障切换——灾备升主 (Failover)模拟主集群完全故障手动将备集群升为主接管业务。这是你项目中RTO ≤2分钟的关键操作1. 模拟主集群故障在主集群操作在主集群服务器上模拟数据库进程崩溃# 查找主集群的数据库主进程PIDps ux|grepgaussdb|grep-v grep# 使用kill命令模拟宕机请替换为实际的PIDkill-9查到的PID2. 备集群执行升主在备集群操作在主集群“挂掉”后备集群直接执行升主命令脱离容灾关系成为独立运行的主库gs_sdr-t failover3. 验证业务连接备集群现在已是新主检查数据是否完整gsql-d postgres-p 数据库端口-cselect count(*) from 你的测试表;关于DRS的说明在华为云DRS任务中当发生跨Region灾备切换时你需要在控制台暂停原有正向同步任务并创建或启动一个反向的DRS任务将上海数据同步回北京以保证数据最终一致演练计划内切换 (Switchover)在主备都正常时进行计划内的角色互换用于维护或灾难恢复演练。这个操作需要在主备集群同时或几乎同时执行1. 原主集群降为备在主集群操作gs_sdr-t switchover-m disaster_standby2. 原备集群升为主在备集群操作gs_sdr-t switchover-mprimary3. 检查状态再次执行 gs_sdr -t query确认角色已互换成功。自动容灾演练脚本#!/bin/bashecho--- 1. 检查主集群状态 (北京) ---ssh user主集群IPgs_sdr -t queryecho--- 2. 模拟主集群进程崩溃 (故障注入) ---# 请将进程号替换为实际的主进程PID# ssh root主集群IP kill -9 进程号echo请手动在主集群执行 kill -9 进程号 来模拟故障echo--- 3. 等待10秒备集群自动/手动执行failover ---sleep10 ssh user备集群IPgs_sdr -t failoverecho--- 4. 验证新主集群 (上海) 可读写 ---ssh user备集群IPgsql -d postgres -p 端口 -c \selectnow(),count(*)fromtest_table;\echo--- 5. 尝试恢复原主集群并重建容灾 (此处省略详细步骤) ---echo--- 演练完成 ---