diff --git "a/content/zh/post/xuemengen/\346\265\201\345\274\217\345\256\271\347\201\276\350\277\220\347\273\264\346\214\207\345\215\227.md" "b/content/zh/post/xuemengen/\346\265\201\345\274\217\345\256\271\347\201\276\350\277\220\347\273\264\346\214\207\345\215\227.md"
new file mode 100644
index 0000000000000000000000000000000000000000..6ff5336a7245fbf467db4234ef8ac96ab133abdd
--- /dev/null
+++ "b/content/zh/post/xuemengen/\346\265\201\345\274\217\345\256\271\347\201\276\350\277\220\347\273\264\346\214\207\345\215\227.md"
@@ -0,0 +1,315 @@
++++
+title = "流式容灾运维指南"
+date = "2024-04-01"
+tags = ["流式容灾"]
+archives = "2024-04-01"
+author = "xuemengen"
+summary = "流式容灾运维指南"
+img = "/zh/post/xuemengen/title/img1.png"
+times = "10:00"
++++
+
+# 1 组网结构:
+## 1.1 组网简介:
+双集群容灾方案,两个独立集群,主备集群的组网方式可任意选择,灾备集群会选出首备连接主集群的主DN,灾备集群内其他节点都以级联备方式连接首备。
+
+## 1.2 组网优势:
+1. 主集群具备单集群组网的优点,只有主集群彻底不可用后才需要手动切换为备集群。
+2. 跨集群(异地)复制链路无论是否发生容灾切换都只有一条,占用网络带宽相对较少。
+3. 组网更加灵活,主集群和灾备集群都可以自由选择不同的组网。
+
+## 1.3 组网劣势:
+需要增加灾备集群,相应增加成本
+
+## 1.4 高可靠能力:
+1. 主集群的高可靠能力同单集群的计算方法
+2. 主集群彻底不可用时可启用灾备集群
+
+## 1.5 数据库默认/建议配置:
+DN配置
+```
+synchronous_standby_names:
+node1: ANY 1(node2, node3), ANY 1(node4, node5)
+node2: ANY 1(node1, node3), ANY 1(node4, node5)
+node3: ANY 1(node1, node2), ANY 1(node4, node5)
+node4: ANY 1(node1, node2, node3), ANY 1(node5)
+node5: ANY 1(node1, node2, node3), ANY 1(node4)
+
+most_available_sync=off
+```
+
+CM配置:
+```
+delay_arbitrate_timeout(用于同az优先选主,可选)
+```
+
+# 2 XML配置模板:
+主集群:
+```
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+备集群:
+```
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+```
+
+相比于单集群的XML配置,双集群的XML配置需要额外指定三个信息:
+>- 本地ip地址映射关系```localStreamIpmap1```,配置格式为```"(node1_sship,node1_backip), (node2_sship,node2_backip), (node3_sship,node3_backip), (node4_sship,node4_backip), (node5_sship,node5_backip)"```
+>- 对端ip地址映射关系```remoteStreamIpmap1```,配置格式为```"(node6_sship,node6_backip), (node7_sship,node7_backip)"```
+>- 对端数据库端口```remotedataPortBase```。
+
+# 3 部署流程:
+1. 安装集群1
+2. 安装集群2
+3. 在主集群创建容灾用户
+```
+gsql -d postgres -p PORT -c "create user DR_USERNAME with replication password 'DR_PASSWORD';"
+```
+4. 准备xml文件,xml文件样例见
+4. 将集群1启动为主集群
+```
+gs_sdr -t start -m primary -X XMLFILE [-U DR_USERNAME [-W DR_PASSWORD]] [--time-out=SECS]
+```
+5. 将集群2启动为备集群
+```
+gs_sdr -t start -m disaster_standby -U USER -W PASSWORD -X /home/dc_p/cluster_cfg_cm.xml --time-out=1400
+```
+6. 查询
+```
+gs_sdr -t query
+```
+
+以上:
+```
+-U容灾用户名,-W容灾用户密码,为可选参数,如果未携带需要在搭建过程中交互输入;
+--time-out超时时间,为可选参数,默认为1200秒。
+```
+
+# 4 故障场景及处理操作说明:
+1. 主集群故障场景及处理操作说明参见CM运维指南
+2. 主集群完全故障且较短时间内无法恢复,则需启用备集群:
+在备集群执行```gs_sdr -t failover```
+
+# 5 流式容灾主要操作说明:
+## 5.1 计划内主备集群切换switchover:
+switchover需要在主集群和备集群都要进行操作
+
+主集群执行主降备
+```
+gs_sdr -t switchover -m disaster_standby
+```
+
+备集群执行备升主
+```
+gs_sdr -t switchover -m primary
+```
+
+***注意***:这两个操作不分先后顺序,但是需要尽量同时开始操作,否则可能会导致一端等待超时
+
+## 5.2 备集群升主failover
+1. 如果主集群正常
+先在备集群执行```gs_sdr -t failover```
+再在主集群执行```gs_sdr -t stop -X xxx.xml```
+两个操作有先后顺序,操作顺序最好不要颠倒
+
+2. 如果主集群挂掉
+直接执行
+```
+gs_sdr -t failover
+```
+
+主集群恢复后如果出现双主,需要再在原主机群执行gs_sdr -t stop -X xxx.xml
+
+## 5.3 容灾关系解除:
+1. 在备集群执行```gs_sdr -t failover```
+2. 在主集群执行```gs_sdr -t stop -X xxx.xml```
+
+***注意***:
+如果出现双主的情况,可通过这种操作处理,在两个集群分别执行stop操作,然后再重新搭建流式容灾关系
+
+## 5.4 容灾关系查询:
+```
+gs_sdr -t query
+```
+
+**流式容灾状态hadr_cluster_stat说明**
+
+|值 |说明 |备注 |
+|-----------------|------------------------------|-----------------------------------|
+|normal |标识该数据库集群未参与流式容灾 | - |
+|full_backup |主数据库实例数据全量复制中 | 流式容灾中仅主数据库实例有此状态 |
+|archive |主数据库实例日志流式复制中 | 流式容灾中仅主数据库实例有此状态 |
+|backup_fail |主数据库实例数据全量复制失败 | 流式容灾中仅主数据库实例有此状态 |
+|archive_fail |主数据库实例日志流式复制失败 | 流式容灾中仅主数据库实例有此状态 |
+|switchover |计划内主备倒换中 | 流式容灾中主备数据库实例皆有此状态 |
+|restore |灾备数据库实例数据全量恢复中 | 流式容灾中仅灾备数据库实例有此状态 |
+|restore_fail |灾备数据库实例全备恢复失败 | 流式容灾中仅灾备数据库实例有此状态 |
+|recovery |灾备数据库实例日志流式复制中 | 流式容灾中仅灾备数据库实例有此状态 |
+|recovery_fail |灾备数据库实例日志流式复制失败 | 流式容灾中仅灾备数据库实例有此状态 |
+|promote |灾备数据库实例升主中 | 流式容灾中仅灾备数据库实例有此状态 |
+|promote_fail |灾备数据库实例升主失败 | 流式容灾中仅灾备数据库实例有此状态 |
+
+**其他字段含义说明**
+
+|字段 |含义 |值 |说明 |
+|----------------------|--------------------------------------|----------------------------------|---------------------------|
+|hadr_switchover_stat |流式容灾主备数据库实例计划内倒换进度展示 |百分比 |倒换进度展示 |
+|hadr_failover_stat |流式容灾灾备数据库实例升主进度展示 |百分比 |倒换进度展示 |
+|RTO |此时发生灾难,数据恢复所需要的时长 |数据恢复所需要的时长,单位s |流式容灾中仅主数据库实例可查 |
+|RPO |此时发生灾难,数据库实例丢失的数据时长 |数据库实例可能丢失的数据时长,单位s |流式容灾中仅主数据库实例可查 |
+
+
+## 5.5 其他注意事项
+1. 以上操作都是可重入的,即如果操作中途失败可再次执行该操作。
+2. 执行以上操作过程中,最好不要强杀操作进程,否则可能会出现问题,如lock文件无法删除、部分参数无法回滚等,可以通过设置合理的超时时间来避免等待时间过长。如果是前台执行的切换操作,switchover过程中不要执行ctrl+c操作。
+3. 如果由于强制杀进程等操作导致回退操作未进行或回退失败,可能会在流式容灾目录($PGHOST/streaming_cabin/)下残留某些文件:
+>- stream_lock_xxx:存在该文件表示当前正在进行容灾相关操作,其他容灾操作无法进行,想要执行其他容灾操作,将该文件删掉即可继续进行后续操作
+>- streaming_xxx.step:该文件记录对应的容灾操作执行进度,便于操作重入
+4. 流式容灾目录及其下的文件是流式容灾操作及状态等的记录和标识,**非必要情况请不要手动修改或删除**。