经济文库 - 千万精品文档,你想要的都能搜到,下载即用。

KingbaseES读写分离集群切换原理及实战演练.pdf

In July29 页 302.907 KB 访问 442.97下载文档
KingbaseES读写分离集群切换原理及实战演练.pdfKingbaseES读写分离集群切换原理及实战演练.pdfKingbaseES读写分离集群切换原理及实战演练.pdfKingbaseES读写分离集群切换原理及实战演练.pdfKingbaseES读写分离集群切换原理及实战演练.pdfKingbaseES读写分离集群切换原理及实战演练.pdf
当前文档共29页 2.97
下载后继续阅读

KingbaseES读写分离集群切换原理及实战演练.pdf

KingbaseES 读写分离集群切换原理及实战演练 金仓数据库管理系统 KingbaseES 文档版本:V9(V009R001C001B0024) 发布日期:2023 年 10 月 12 日 北京人大金仓信息技术股份有限公司 目 目 录 录 第 1 章 前言 1 1.1 适用读者 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 相关文档 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.3 术语 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.4 手册约定 3 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 2 章 概述 5 2.1 集群切换原理介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.2 参数含义 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3 切机时间构成公式 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 2.4 同步转异步时间构成公式 10 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 第 3 章 典型场景示例 12 3.1 演练环境介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3.2 进程故障 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 3.2.1 场景参数设置及预期 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14 3.2.2 切机时间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.2.3 切机过程介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.3 3.4 3.5 设备重启 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.3.1 场景参数设置及预期 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.3.2 切机时间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.3.3 切机过程介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 电源故障 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.4.1 场景参数设置及预期 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.4.2 切机时间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 3.4.3 切机过程介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 网络故障 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.5.1 场景参数设置及预期 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.5.2 切机时间 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 3.5.3 切机过程介绍 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 版权声明 24 I 目 服务周期承诺 录 25 II 第 1 章 前言 1 第 章 前言 本文描述了 KingbaseES 读写分离集群的切换原理与实战演练。 前言部分包含以下主题: • 适用读者 • 相关文档 • 术语 • 手册约定 1.1 适用读者 本文面向所有使用 KingbaseES 的用户,主要是数据库管理员和应用程序开发人员。 1.2 相关文档 • 有关高可用架构、应用等的更多信息,请参阅《高可用最佳应用实践》 • 有关高可用常用故障恢复的更多信息,请参阅《KingbaseES 高可用常见故障恢复指南》 1.3 术语 1 第 1 章 前言 术语 定义 金 仓 数 据 库 管 理 系 统 (King- 人大金仓数据库管理系统,本文指代单机服务版本,下文也被称作单机版。其成 baseES) 员可能包括数据节点(data node)、备份节点(repo node)。 金仓数据守护集群软件 金仓数据守护集群软件用于构建基于流复制技术实现数据同步的主备数据库集 (Kingbase Data Watch) 群。该类集群由主库、备库和守护进程组成,其中主库提供数据库读写服务,备 库作为主库的备份,守护进程负责检查各库及环境状态并实现自动故障转移。基 于该软件,用户可构建同机房内、同城、异地的容灾及可用性方案,确保各种故 障及灾害时的用户数据及数据库服务安全与连续。 金仓数据库读写分离集群软件 金仓数据库读写分离集群软件在金仓数据守护集群软件的基础上增加了对应用透 (KingbaseRWC) 明的读写负载均衡能力。相比数据守护集群,该类集群中所有备库均可对外提供 查询能力,从而减轻了主库的读负载压力,可实现更高的事务吞吐率;该软件支 持在多个备库间进行读负载均衡。 其成员可能包括主节点(primary node)、备节点(standby node)、辅助节点 (witness node)、备份节点(repo node)。 金仓 KingbaseRAC 集群数据 金仓 KingbaseRAC 集群数据库软件用于构建采用共享存储架构的对等多写数据 库软件(KingbaseRAC) 库集群,该软件通过缓存交换技术保持各个节点的一致性。该类集群具有对应用 透明、高可用、高性能扩展、低存储成本等特点,可满足绝大多数应用场景的功 能、性能、可用性要求。 金 仓 高 可 用 软 件 (King- 以“保障企业级关键业务不间断运行”为目标,为用户提供 Linux 平台上完整的 baseHA) 数据库高可用性解决方案,减少由计算机硬件或软件出现故障所带来的损失。当 集群中的某个节点由于软件或硬件原因发生故障时,集群系统可以把 IP 地址、 业务应用等服务资源切换到其他健康的节点上,使整个系统能连续不间断地对外 提供服务,从而为企业关键业务提供持续可靠的保障,实现系统零宕机的高可用 和可靠性。 金仓集群资源管理软件 (King- 可提供集群成员管理、故障检测、处置调度等功能。可用于构建共享存储集群冷 baseES Clusterware) 备方案,在单机已经满足性能需求的情况下,低成本的增加 KingbaseES 数据库 的可用性。同时,也是金仓 KingbaseRAC 集群数据库软件所依赖的集群管理组 件。 repmgrd 集群管理进程,负责集群的状态维护。 monitor 进程中的监控功能 wal_sender 该进程用于发送 wal 日志 wal_receiver 该进程用于接受 wal 日志 vip 虚拟 IP,始终跟随主库的 IP。 见续表 2 第 1 章 前言 表 1.3.1 – 续表 术语 定义 libpq 是 KingbaseES 的 C 应用程序的接口,是一套允许客户程序向数据库后端进程发 送查询并获取查询返回的库过程。 1.4 手册约定 本文档中可能出现“注意、提示、警告、另请参阅”等标志,它们所代表的含义如下: 注意: 用于突出重要/关键信息、最佳实践等。 提示: 用于突出小窍门、捷径等。 警告: 用于传递设备或环境安全警示信息,若不避免,可能会导致设备损坏、数据丢失、设备性能降低或其 它不可预知的结果。 另请参阅: 用于突出参考、参阅等。 以下程序代码书写约定适用于本文档: 符号 说明 [] 表示包含一个或多个可选项。不需要输入中括号本身。 {} 表示包含两个以上(含两个)的候选,必须在其中选取一个。不需要输入花括号本身。 | 分割中括号或者花括号中的两个或两个以上选项。不需要输入“|”本身。 ... 表示其之前的元素可以被重复。 斜体 表示占位符或者需要提供特定值的变量。 大写 表示系统提供的元素,以便与用户定义的元素相互区分。除出现在方括号中的元素外,应当按 照顺序逐字输入。当然,部分元素在系统中是大小写不敏感的,因此用户可以根据系统说明以 小写形式输入。 见续表 3 第 1 章 前言 表 1.4.1 – 续表 符号 说明 小写 表示由用户提供的元素。 4 第 2 章 概述 2 第 章 概述 本章节包含以下内容: • 集群切换原理介绍 • 参数含义 • 切机时间构成公式 • 同步转异步时间构成公式 2.1 集群切换原理介绍 切换流程及原理请参考:故障自动转移 2.2 参数含义 表 2.2.1: 参数含义 参数名 参数说明 参数默认值 monitor_interval_secs repmrd 监控执行间隔 2 (秒) reconnect_attempts 连接失败或者 ping 信任网关失败后重试次 10 (次) 数 sibling_nodes_disconnect_timeout 检测是否所有备节点都已成功 kill 30 (秒) wal_receiver 进程时间 reconnect_interval 重试间隔时间 6 (秒) 见续表 5 第 2 章 概述 表 2.2.1 – 续表 参数名 参数说明 参数默认值 connect_timeout libpq 连接超时 10(秒) ConnectTimeout scmd_options 参数中 ConnectTimeout 的值 10(秒) 为 ssh 命令超时时间 recovery 恢复模式,可配置为,automatic-- 自动恢 standby 复故障主库或备库,standby-- 自动恢复故 障备库,manual-- 手动恢复 vip_timeout 升主过程中卸载旧主节点的 vip 过程超时时 60(秒) 间 wal_sender_timeout 数据库配置参数,wal_sender 进程超时退 60(秒) 出时间 T1 判断网络是否正常耗时 ping 第一个信任网 关 第 一 次 就 成 功, 目前默认 ping 命令 耗时 2(秒) T2 卸载原主节点 vip,加载新主节点 vip 耗时 根据是否配置 vip ,T2 耗时 0 秒或者 X(秒), X 具体值详 见公式说明。 6 第 2 章 概述 2.3 切机时间构成公式 切换时间公式: (0~monitor_interval_secs)+ ( ((reconnect_attempts - 1) * reconnect_interval ) ~ ((reconnect_attempts - 1) * reconnect_interval + reconnect_attempts * connect_timeout))+ (1~(5+sibling_nodes_disconnect_timeout)) + (T1~(reconnect_attempts-1)* 2 + T1+T2) 表 2.3.1: 切机时间构成公式说明 监控耗时 公式 (0~monitor_interval_secs) 耗时说明 取决于距离上一次 repmrd 执行监控检测多久。 最小值为:0 距离上次检测 monitor_interval_secs 秒,立马开始下次检 测。 最大值为:monitor_interval_secs 距离上次检测 0 秒,需等待 monitor_interval_secs 秒才开始 下次检测。 见续表 7 第 2 章 概述 表 2.3.1 – 续表 判断上游节点故障耗时 公式 ( ((reconnect_attempts - 1) * reconnect_interval ) ~ ((reconnect_attempts - 1) * reconnect_interval + reconnect_attempts * connect_timeout)) 耗时说明 最小值为: (reconnect_attempts -1) * reconnect_interval 意为:每次上 游节点都是立即返回错误,重试次数完成后确认上游节点故 障。 最大值为: ((reconnect_attempts - 1) * reconnect_interval + reconnect_attempts * connect_timeout)) 第一次检测上游节点失败是因为连接超时,并且之后的每次 重试都是因为超时连接才失败的,重试次数完成后确认上游 节点故障。 备节点杀掉 wal_receiver 进 程耗时 公式 (1~(5+sibling_nodes_disconnect_timeout)) 耗时说明 最小值为:1 在确认主节点故障,准备升主时,备节点会 kill 自己的 wal_receiver 进程,同时去检测是否所有的备节点都已 kill 该 进程,每秒检测一次,确认所有备节点都 kill 掉 wal_receiver 进程后即视为成功,所以最短为 1 秒,即第一次检测所有备 节点节点都成功 kill 掉 wal_receiver。 最大值为:5+sibling_nodes_disconnect_timeout 先睡眠 5 秒,然后 kill 掉自己的 wal_receiver 进程后,每隔 1 秒检测一次其他备节点是否 kill 掉 wal_receiver 进程,最 多检测 sibling_nodes_disconnect_timeout 秒后,即会默认 所有备节点节点已成功 kill wal_receiver 进程,然后开始下 一阶段的操作。 判断网络是否正常 公式 (T1~(reconnect_attempts-1)* 2 +T1) 耗时说明 最小值为:T1 ping 第一个信任网关第一次就成功,目前默认 ping 命令耗时 2 秒。 最大值为:(reconnect_attempts-1)*2+T1 重试 reconnect_attempts-1 都失败了,每次耗时 2 秒,最后 一次 ping 命令成功,用时为 T1。 见续表 8 第 2 章 概述 表 2.3.1 – 续表 卸载加载 vip 耗时 公式 T2 未配置 vip: 0 配置 vip: T1~(T1+scmd_option:ConnectTimeout+vip_timeout) 耗时说明 卸载原主节点 vip,加载新主节点 vip 耗时,根据是否配置 vip,T2 耗时 0 秒或者 X 秒。 0 表示没配置 vip,所以无耗时。 X 表示已配置 vip,最短为 2 秒。 即 ping vip 不通,直接执行在新主加载 vip 或者 ping vip 通, 但是 vip 存在新主上。 最长为: T1+scmd_option: ConnectTimeout+vip_timeout Ping vip 通,且 vip 不在新主节点上,执行远程卸载 vip 命 令,远程命令执行超时,进行重试。 重试最大超时时间 vip_timeout,在 vip_timeout 秒时执行 远程卸载命令成功且 ping vip ping 不通并加载 vip 成功。 综上所述: 表 2.3.2: 切机时间构成公式综合说明 切机最短时间 公式 0+(((reconnect_attempts - 1) * reconnect_interval)+1+T1+T2 耗时说明 立即进行监控检测,等待 0 秒; 每次数据库直接返回连接错误,判断上游节点故障耗时 ( ((reconnect_attempts - 1) * reconnect_interval ); 检测是否所有备节点均 kill wal_receiver 进程,耗时 1 秒; 备节点升主时 ping 信任网关一次成功耗时 T1,目前默认 ping ip 一次耗 时 2 秒; 未配置 vip,T2=0 耗时 0 秒。 切机最长时间 公式 monitor_interval_secs+ ((reconnect_attempts-1) * recon- nect_interval + reconnect_attempts * connect_timeout)) + +5+sibling_nodes_disconnect_timeout +reconnect_attempts* 2 +T1+T2 见续表 9 第 2 章 概述 表 2.3.2 – 续表 耗时说明 上一轮检测结束后,等待 monitor_interval_secs 秒进入下一次监控检 测。 每 次 连 接 数 据 库 都 通 过 超 时 来 判 断 数 据 库 故 障, 判 断 上 游 节 点 故 障耗时:((reconnect_attempts- 1) * reconnect_interval + reconnect_attempts * connect_timeout)) 备节点升主时,ping 最后一个信任网关的最后一次重试才成功耗时: (reconnect_attempts-1)* reconnect_interval+T1 已配置 vip,耗时:T2=2+scmd_options:ConnectTimeout+vip_timeout 秒。 2.4 同步转异步时间构成公式 同步转异步模式耗时时间公式: (0~monitor_interval_secs)+(0~wal_sender_timeout) 表 2.4.1: 同步转异步时间构成公式说明 监控时间 公式 (0~monitor_interval_secs) 耗时说明 具体耗时取决于距离上一次 repmrd 执行监控检测多久。 最小值:0 距离上次检测 monitor_interval_secs 秒,立马开始下次检 测。 最大值:monitor_interval_secs 距离上次检测 0 秒,需等待 monitor_interval_secs 秒才开始 下次检测。 备节点故障检测时间 公式 (0~wal_sender_timeout) 耗时说明 上一轮检测结束后,等待 monitor_interval_secs 秒进入下一 次监控检测。 综上所述: 表 2.4.2: 同步转异步时间构成公式综合说明 同步转异步最短时间 公式 0+0 见续表 10 第 2 章 概述 表 2.4.2 – 续表 耗时说明 马上进行监控检测,等待 0 秒 sys_stat_replication 视图在备 节点故障后立即更新,耗时 0 秒。 同步转异步最长时间 公式 monitor_interval_secs+wal_sender_timeout 耗时说明 上一轮检测结束,等待 monitor_interval_secs 秒后,进入下 一次监控检测 wal_sender 进程在备节点故障后通过超时的方 式判断备节点故障,然后再更新 sys_stat_replication 视图。 11 第3章 3 第 章 典型场景示例 典型场景示例 本章是根据上一章节“集群切换原理概述”中描述的原理以及相关时间计算公式,进行实际环境测试。测试不同 配置、不同故障场景下的切换时间。 本章节包含以下内容: • 演练环境介绍 • 进程故障 • 设备重启 • 电源故障 • 网络故障 3.1 演练环境介绍 表 3.1.1: 硬件配置说明 操作系统 Linux 28-123-HA03 3.10.0-957.el7.x86_64 #1 SMP Thu Nov 8 23:39:32 UTC 2018 x86_64 GNU/Linux CPU 12 CPUs x Intel(R) Xeon(R) Bronze 3104 CPU @ 1.70GHz 内存 239.47 GB 见续表 12 第3章 典型场景示例 表 3.1.1 – 续表 磁盘 SATA 盘: Vendor: VMware Product: Virtual disk Revision: 2.0 Compliance: SPC-4 User Capacity: 107,374,182,400 bytes:[107 GB] Logical block size: 512 bytes LU is fully provisioned 网卡 Supported ports: [ TP ] Supported link modes: 1000baseT/Full 10000baseT/Full Speed: 10000Mb/s Duplex: Full Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: off Supports Wake-on: uag Wake-on: d Link detected: yes 操作系统参数配置: 详见《金仓数据守护集群和读写分离集群使用手册》配置文件说明章节,系统参数检查下的 系统参数配置表。 3.2 进程故障 本节主要针对 KingbaseES 的服务进程故障的实际场景。通过 Kill 数据库服务进程,构造数据库进程故障来进行 集群切主的实战演练。 13 第3章 3.2.1 典型场景示例 场景参数设置及预期 表 3.2.1: 进程故障参数配置示例 参数配置 1(单位:秒) 参数配置 2(单位:秒) monitor_interval_secs=1 monitor_interval_secs=2 reconnect_attempts=2 reconnect_attempts=6 reconnect_interval=3 reconnect_interval=10 sibling_nodes_disconnect_timeout=30 sibling_nodes_disconnect_timeout=60 connect_timeout=10 connect_timeout=10 ConnectTimeout=10 ConnectTimeout=10 recovery=automatic recovery=automatic vip_timeout=30 vip_timeout=60 wal_sender_timeout=60 wal_sender_timeout=60 预期说明: 杀掉主节点数据库进程,构造进程故障,那么 libpq 判断主节点是否故障的连接一般都是瞬间返回错误结果,而 不会等待超时。所以,”连接上游节点连接失败,重试连接上游节点”的耗时是固定的,不是范围波动值。而新主节 点加载 VIP 可以预期一次成功,所以预期时间为最小值。 根据上述流程介绍,预期时间如下: 例如:参数配置 1 已配置 vip 已配置 1 个信任网关 表 3.2.2: 进程故障参数配置 1 理论耗时 流程 耗时 (单位:秒) 监控检测间隔 (monitor_interval_secs) 0~1 连接上游节点连接失败,重试连接上游节点 3 检测是否所有备节点节点已杀掉 wal_receiver 进程 1~35 卸载原主节点 vip,加载新主节点 vip 耗时 2 ping 信任网关 2~4 总计 6~45 例如:参数配置 2 已配置 vip 已配置 1 个信任网关 14 第3章 典型场景示例 表 3.2.3: 进程故障参数配置 2 理论耗时 3.2.2 流程 耗时 (单位:秒) 监控检测间隔 (monitor_interval_secs) 0~2 连接上游节点连接失败,重试连接上游节点 50 检测是否所有备节点节点已杀掉掉 wal_receiver 进程 1~65 卸载原主节点 vip,加载新主节点 vip 耗时 2 ping 信任网关 2~12 总计 53~126 切机时间 表 3.2.4: 进程故障业务恢复时间 参数配置 流复制配置 同 是否配 配置信 杀掉主节点 db 业务恢复 杀掉备节点 db 业务恢复 步/异步 置 Vip 任网关 时间(会发生切机) 时间(不会发生切机,业 个数 务仅等待同步转异步时间 后恢复) 参数配置 1 同步 否 1 7 参数配置 1 异步 否 1 6 参数配置 2 同步 否 1 55 参数配置 2 异步 否 1 53 参数配置 1 同步 是 1 10 参数配置 1 异步 是 1 9 参数配置 2 同步 是 1 57 参数配置 2 异步 是 1 56 主 节 点 数 据 库 被 杀 掉 时, 备 节 点 的 repmrd 3.2.3 1 2 1 2 切机过程介绍 启 动 监 控 检 测, 检 测 到 上 游 节 点 连 接 错 误, 会 重 试 recon- nect_attempts 次,重试间隔 reconnect_interval 秒,因为是数据库进程故障,所以 libpq 判断主节点是否故障的连 15 第3章 典型场景示例 接一般都是瞬间返回错误结果,而不会等待超时,重试 reconnect_attempts 次后判断上游节点确定故障,然后判断 上游节点是主节点,备节点开始杀掉 wal_receiver 进程,所有备节点同时杀 wal_receiver 进程成功,则耗时 1 秒, 开始升主,备节点选举时,本地节点选举成功,检测信任网关,一次就成功耗时 2 秒,如果已配置 vip,就执行卸载 就集群主的 vip,并在集群新主加载 vip,这两个操作会 ping 两次 vip,执行真正的升主语句,升主成功。 备节点数据库被杀掉时,流复制为异步的情况下,主节点不会卡住,流复制为同步的情况下,虽然未切换, 但是因为同步流复制备节点故障,主节点一直等到同步备节点的反馈,导致主节点的写语句卡住,恢复时间为 (0~monitor_interval_secs)+reconnect_attempts*reconnect_interval 秒。 3.3 设备重启 本节主要针对 KingbaseES 的服务设备重启故障的实际场景。通过 reboot 命令重启操作系统,构造数据库设备重 启故障来进行集群切主的实战演练。 3.3.1 场景参数设置及预期 表 3.3.1: 重启故障参数配置示例 参数配置 1(单位:秒) 参数配置 2(单位:秒) monitor_interval_secs=1 monitor_interval_secs=2 reconnect_attempts=2 reconnect_attempts=6 reconnect_interval=3 reconnect_interval=10 sibling_nodes_disconnect_timeout=30 sibling_nodes_disconnect_timeout=60 connect_timeout=10 connect_timeout=10 ConnectTimeout=10 ConnectTimeout=10 recovery=automatic recovery=automatic vip_timeout=30 vip_timeout=60 wal_sender_timeout=60 wal_sender_timeout=60 预期说明: 使用 reboot 命令重启主节点数据库所在操作系统,构造设备重启故障,libpq 判断主节点是否故障时,操作系统 还未重启成功前,会通过连接超时,才能判断主节点故障。操作系统重启成功后,连接瞬间返回错误,而不需要等待 超时,但操作系统何时成功启动是不可控的,所以判断主节点故障耗时在最短到最长之间。在操作系统重启过程中, 原主节点的 vip 可能会对新主节点加载 vip 造成干扰(可以 ping 通但无法卸载),所以,此步骤的时间也是范围值。 所以根据上述流程介绍,预期时间如下: 16 第3章 典型场景示例 例如:参数配置 1 已配置 vip 已配置 1 个信任网关 表 3.3.2: 重启故障参数配置 1 理论耗时 流程 耗时 (单位:秒) 监控检测间隔 (monitor_interval_secs) 0~1 连接上游节点连接失败,重试连接上游节点 3~23 检测是否所有备节点节点已杀掉掉 wal_receiver 进程 1~35 卸载原主节点 vip,加载新主节点 vip 耗时 2~42 ping 信任网关 2~4 总计 6~105 例如:参数配置 2 已配置 vip 已配置 1 个信任网关 表 3.3.3: 重启故障参数配置 2 理论耗时 流程 耗时 (单位:秒) 监控检测间隔 (monitor_interval_secs) 0~2 连接上游节点连接失败,重试连接上游节点 50~110 检测是否所有备节点节点已杀掉 wal_receiver 进程 1~65 卸载原主节点 vip,加载新主节点 vip 耗时 2~72 ping 信任网关 2~12 总计 53~256 特别说明: 在杀掉 wal_receiver 进程时,会首先去检测是否存在 wal_receiver 进程,如果存在则会睡眠 5 秒之后才执行真 正的 kill 命令,当 reconnect_attempts 和 reconnect_interval 参数被配置成为 2 和 3 时,此时 wal_receiver 进程还 存在,所以会睡眠 5 秒,但当参数配置成 6 和 10 时,wal_receiver 进程已经不存在了,则不会睡眠 5 秒。 3.3.2 切机时间 17 第3章 典型场景示例 表 3.3.4: 重启故障业务恢复时间 参数配置 流复制配置 同 是否配 配置信 reboot 主节点 db 所在 OS reboot 备节点 db 所在 OS 步/异步 置 Vip 任网关 业务恢复时间(会发生切 业务恢复时间(不会发生 个数 机) 切机,业务仅等待同步转 异步时间后恢复) 参数配置 1 同步 否 1 9 参数配置 1 异步 否 1 8 参数配置 2 同步 否 1 16 参数配置 2 异步 否 1 15 参数配置 1 同步 是 1 41 参数配置 1 异步 是 1 40 参数配置 2 同步 是 1 78 参数配置 2 异步 是 1 77 3.3.3 1 2 1 2 切机过程介绍 使用 reboot 命令重启主节点数据库所在操作系统,备节点的 repmrd 启动监控检测,检测到上游节点连接错 误,会重试 reconnect_attempts 次,重试间隔 reconnect_interval 秒,因为重启主节点数据库所在操作系统故障, 所以 libpq 判断主节点是否故障时,操作系统还未重启成功前,通过连接超时,才能判断主节点故障,操作系统重启 成功后,连接瞬间返回错误,而不需要等待超时,但操作系统何时成功启动是不可控的,所以判断主节点故障耗时在 最短到最长之间,重试 reconnect_attempts 次后确认上游节点故障,然后判断上游节点是主节点,备节点开始杀掉 wal_receiver 进程,所有备节点同时杀 wal_receiver 进程成功,则耗时 1 秒,开始升主,备节点选举,本地节点选举 成功,检测信任网关,一次就成功耗时 2 秒,检测信任网关,一次就成功耗时 2 秒,如果已配置 vip,就执行卸载集 群旧主的 vip,并在集群新主加载 vip,这两个操作会 ping 两次 vip,然后执行真正的升主语句,升主成功。 备节点数据库所在操作系统被重启,流复制为异步的情况下,主节点不会卡住,流复制为同步的情况下,虽然未 切换,但是因为同步流复制备节点故障,主节点一直等到同步备节点的反馈,导致主节点的写语句卡住,恢复时间为 (0~ monitor_interval_secs) + reconnect_attempts * reconnect_interval ~((0 ~ monitor_interval_secs) + reconnect_attempts * (reconnect_interval+ connect_timeout)) 秒。 3.4 电源故障 本节主要针对 KingbaseES 的服务设备电源故障的实际场景。通过 shutdown 命令关闭操作系统,构造数据库设 备电源故障来进行集群切主的实战演练。 18 第3章 3.4.1 典型场景示例 场景参数设置及预期 表 3.4.1: 电源故障参数配置示例 参数配置 1(单位:秒) 参数配置 2(单位:秒) monitor_interval_secs=1 monitor_interval_secs=2 reconnect_attempts=2 reconnect_attempts=6 reconnect_interval=3 reconnect_interval=10 sibling_nodes_disconnect_timeout=30 sibling_nodes_disconnect_timeout=60 connect_timeout=10 connect_timeout=10 ConnectTimeout=10 ConnectTimeout=10 recovery=automatic recovery=automatic vip_timeout=30 vip_timeout=60 wal_sender_timeout=60 wal_sender_timeout=60 预期说明: 使用 shutdown 命令,对主节点数据库所在操作系统进行关机,构造操作系统电源故障,libpq 判断主节点是否 故障时,通过连接超时,才能判断主节点故障,所以,“连接上游节点”计算的时间一般都会接近最大值,才能判断 主节点故障(根据网络设置以及 OS shutdown 速度的不同,可能会有差异,但此处不考虑,仅计算最大值)。在操 作系统关机过程中,原主节点的 vip 可能会对新主节点加载 vip 造成干扰(可以 ping 通但无法卸载),所以,此步 骤的时间也是范围值。 根据上述流程介绍,预期时间为: 例如:参数配置 1 已配置 vip 已配置 1 个信任网关 表 3.4.2: 电源故障参数配置 1 理论耗时 流程 耗时 (单位:秒) 监控检测间隔 (monitor_interval_secs) 0~1 连接上游节点连接失败,重试连接上游节点 3~23 检测是否所有备节点节点已杀掉 wal_receiver 1~35 卸载原主节点 vip,加载新主节点 vip 耗时 2~42 ping 信任网关 2~4 总计 6~105 19 第3章 典型场景示例 例如:参数配置 2 已配置 vip 已配置 1 个信任网关 表 3.4.3: 电源故障参数配置 2 理论耗时 3.4.2 流程 耗时 (单位:秒) 监控检测间隔 (monitor_interval_secs) 0~2 连接上游节点连接失败,重试连接上游节点 110 检测是否所有备节点节点已杀掉 wal_receiver 进程 1~60 卸载原主节点 vip,加载新主节点 vip 耗时 2~72 ping 信任网关 2~12 总计 113~256 切机时间 表 3.4.4: 电源故障业务恢复时间 参数配置 流复制配置 同 是否配 配置信 shutdown 主节点 db 所 shutdown 备节点 db 所 步/异步 置 Vip 任网关 在 OS 业务恢复时间(会 在 OS 业务恢复时间(不 个数 发生切机) 会发生切机,业务仅等待 同步转异步时间后恢复) 参数配置 1 同步 否 1 8 参数配置 1 异步 否 1 6 参数配置 2 同步 否 1 55 参数配置 2 异步 否 1 53 参数配置 1 同步 是 1 44 参数配置 1 异步 是 1 41 参数配置 2 同步 是 1 131 参数配置 2 异步 是 1 134 1 2 1 2 20 第3章 3.4.3 典型场景示例 切机过程介绍 使用 shutdown 命令关闭主节点数据库所在操作系统时,备节点的 repmrd 启动监控检测,检测到上游节点连接 错误,会重试 reconnect_attempts 次,重试间隔 reconnect_interval 秒,因为关闭主节点数据库所在操作系统故障, 所以 libpq 判断主节点是否故障时,通过连接超时,才能判断主节点故障,重试 reconnect_attempts 次后判断上游节 点确定故障,然后判断上游节点是主节点,备节点开始杀掉 wal_receiver 进程,所有备节点同时杀 wal_receiver 进 程成功,则耗时 1 秒,开始升主,备节点选举时,本地节点选举成功,检测信任网关,一次就成功耗时 2 秒,如果已 配置 vip,就执行卸载集群旧主的 vip,并在集群新主加载 vip,这两个操作会 ping 两次 vip,然后执行真正的升主语 句,升主成功。 关闭备节点数据库所在操作系统时,流复制为异步的情况下,主节点不会卡主,流复制为同步的情况下,虽然未 切换,但是因为同步流复制备节点故障,主节点一直等到同步备节点的反馈,导致主节点的写语句卡住,恢复时间为 (0~monitor_interval_secs)+ reconnect_attempts * (reconnect_interval + connect_timeout) 秒。 3.5 网络故障 本节主要针对 KingbaseES 的服务设备网络故障的实际场景。通过断网工具,构造数据库设备网络故障来进行集 群切主的实战演练。 3.5.1 场景参数设置及预期 表 3.5.1: 网络故障参数配置示例 参数配置 1(单位:秒) 参数配置 2(单位:秒) monitor_interval_secs=1 monitor_interval_secs=2 reconnect_attempts=2 reconnect_attempts=6 reconnect_interval=3 reconnect_interval=10 sibling_nodes_disconnect_timeout=30 sibling_nodes_disconnect_timeout=60 connect_timeout=10 connect_timeout=10 ConnectTimeout=10 ConnectTimeout=10 recovery=automatic recovery=automatic vip_timeout=30 vip_timeout=60 wal_sender_timeout=60 wal_sender_timeout=60 预期说明: 21 第3章 典型场景示例 主节点数据库所在操作系统网络断开,libpq 判断主节点是否故障时,通过连接超时,才能判断主节点故障,所 以,“连接上游节点”计算的时间一般都会接近最大值,才能判断主节点故障(根据网络设置可能会有差异,但此处 不考虑,仅计算最大值)。同时,因为断网,原主节点上的 vip 无需卸载,新主节点可以直接加载成功,计算最小 值。 根据上述流程介绍,预期时间为: 例如:参数配置 1 已配置 vip 已配置 1 个信任网关 表 3.5.2: 网络故障参数配置 1 理论耗时 流程 耗时 (单位:秒) 监控检测间隔 (monitor_interval_secs) 0~1 连接上游节点连接失败,重试连接上游节点 3~23 检测是否所有备节点节点已杀掉 wal_receiver 进程 1~35 卸载原主节点 vip,加载新主节点 vip 耗时 2 ping 信任网关 2~4 总计 28~65 例如:参数配置 2 已配置 vip 已配置 1 个信任网关 表 3.5.3: 网络故障参数配置 2 理论耗时 3.5.2 流程 耗时 (单位:秒) 监控检测间隔 (monitor_interval_secs) 0~2 连接上游节点连接失败,重试连接上游节点 110 检测是否所有备节点节点已杀掉 wal_receiver 进程 1~60 卸载原主节点 vip,加载新主节点 vip 耗时 2 ping 信任网关 2~12 总计 115~186 切机时间 22 第3章 典型场景示例 表 3.5.4: 网络故障业务恢复时间 参数配置 流复制配置 同 是否配 配置信 主节点 db 所在 OS 网络断 备节点 db 所在 OS 网络断 步/异步 置 Vip 任网关 开 业务恢复时间(会发生 开 业务恢复时间(不会发 个数 切机) 生切机,业务仅等待同步 转异步时间后恢复) 参数配置 1 同步 否 1 55 参数配置 1 异步 否 1 53 参数配置 2 同步 否 1 94 参数配置 2 异步 否 1 95 参数配置 1 同步 是 1 51 参数配置 1 异步 是 1 49 参数配置 2 同步 是 1 96 参数配置 2 异步 是 1 98 3.5.3 61 62 61 62 切机过程介绍 主节点数据库所在操作系统网络断开时,备节点的 repmrd 启动监控检测,检测到上游节点连接错误,会重试 reconnect_attempts 次,重试间隔 reconnect_interval 秒,因为主节点数据库所在操作系统网络断开,所以 libpq 判断 主节点是否故障时,通过连接超时,才能判断主节点故障,重试 reconnect_attempts 次后判断上游节点确定故障, 然后判断上游节点是主节点,备节点开始杀掉 wal_receiver 进程,所有备节点同时杀 wal_receiver 进程成功,则耗 时 1 秒,开始升主,备节点选举时,本地节点选举成功,检测信任网关,一次就成功耗时 2 秒,如果已配置 vip,就 执行卸载集群旧主的 vip,并在集群新主加载 vip,这两个操作会 ping 两次 vip,然后执行真正的升主语句,升主成 功。 备 节 点 数 据 库 所 在 操 作 系 统 网 络 断 开 时, 流 复 制 为 异 步 的 情 况 下, 主 节 点 不 会 卡 住, 流 复 制 为 异 步 的 情 况 下, 主 节 点 不 会 卡 主, 流 复 制 为 同 步 的 情 况 下, 虽 然 未 切 换, 但 是 因 为 同 步 流 复 制 备 节 点 故 障, 主 节 点 一 直 等 到 同 步 备 节 点 的 反 馈, 导 致 主 节 点 的 写 语 句 卡 住, 恢 复 时 间 为 (0~monitor_interval_secs) +recon- nect_attempts*(reconnect_interval+connect_timeout) 秒。 23 版权声明 版权声明 北京人大金仓信息技术股份有限公司(简称:人大金仓)版权所有,并保留对本手册及本声明的一切权利。 未得到人大金仓的书面许可,任何人不得以任何方式或形式对本手册内的任何部分进行复制、摘录、备份、修 改、传播、翻译成其他语言、将其全部或部分用于商业用途。 免责声明 本手册内容依据现有信息制作,由于产品版本升级或其他原因,其内容有可能变更。人大金仓保留在没有任何通 知或者提示的情况下对手册内容进行修改的权利。 本手册仅作为使用指导,人大金仓在编写本手册时已尽力保证其内容准确可靠,但并不确保手册内容完全没有错 误或遗漏,本手册中的所有信息也不构成任何明示或暗示的担保。 技术支持 • 人大金仓官方网站:http://www.kingbase.com.cn/ • 人大金仓文档中心:http://help.kingbase.com.cn/ • 全国服务热线:400-601-1188 • 人大金仓技术支持与反馈信箱:support@kingbase.com.cn 24 服务周期承诺 服务周期承诺 由于市场需求在不断变化,技术创新和发展的进程不断加剧,产品的版本更迭不可避免。人大金仓对于产品版本 生命周期的有效管理,有助于您提前规划项目,更好地从产品服务终止上过渡。 表 5: KingbaseES 产品生命周期里程碑 关键里程碑点 定义 产品发布日期 产品正式发布版本,即 GA(general availability)版本的发布日期。 停止销售日期 正式停止销售的日期,版本停止接受订单日。该日之后,产品将不再销售。 停止功能升级日期 在该日期之后,不再提供新特性和新硬件支持。但依旧提供错误修复、安全修复、功 能维护等服务。 停止功能维护日期 在该日期之后,不再维护功能,修复问题。但依旧提供安全修复等服务 停止安全维护日期 在该日期之后,不再发布补丁版本修复中高风险漏洞,仅提供有限的支持。 产品服务终止日期 停止提供产品服务和支持的日期。包括软件维护版本,缺陷修复,以及针对该产品的 所有服务支持(包括服务热线和远程/现场支持)。 服务周期策略 金仓数据库管理系统 KingbaseES 产品确保以下的服务周期: 1)产品自发布之日起至产品停止功能升级(包含新特性、新硬件支持)之日不少于 5 年。 2)产品停止功能升级之日起至产品停止功能维护(主要包括问题修复)之日不少于 4 年。 3)产品功能维护停止之日起至产品停止安全维护(包括中高风险漏洞修复)之日不少于 2 年。 服务终止策略 金仓数据库管理系统 KingbaseES 产品确保在销售后,至少提供 6 年的服务支持。 注意: 人大金仓将会综合各方因素来确定产品服务终止日期。并将在实际产品服务终止日期之前至少 90 天,通过公 25 服务周期承诺 开方式宣布产品服务终止日期。 26

相关文章