目录标题
人大金仓高可用
人大金仓的高可用性主要体现在以下几个方面:
高可用架构
- 读写分离集群架构:提供一主一备以及一主多备的高可用集群架构,实现数据及实例级(异地)故障容灾。例如,在金融行业,通过这种架构可以确保在主节点出现故障时,备节点能够迅速接管,保障金融交易等关键业务的连续性。
- Clusterware集群架构:提供多节点并行服务,内存融合及存储共享,实现高并发性能利用最大化,结合读写分离或备份使用同步实现数据保护最大化。在电信行业,面对海量用户数据和高并发访问需求,该架构可有效提升系统性能和可靠性。
- Kingbase FlySync异构数据同步架构:提供数据实时同步服务,实现同构/异构数据实时同步。对于一些需要将数据从人大金仓数据库同步到其他异构数据库的场景,如企业数据仓库建设中,该架构可确保数据的实时性和一致性。
高可用技术手段
- 数据备份与恢复:支持全备份、差异备份、事务日志备份等多种备份方式,可灵活选择备份策略以满足不同业务场景的需求。同时,提供快速恢复功能,能够在发生故障时迅速恢复数据,减少停机时间。
- 故障自动检测与切换:具备故障自动检测机制,当主节点出现故障时,能够自动检测并触发故障切换,将业务请求自动重定向到备用节点,整个过程对用户透明,保障业务的连续性。
- 负载均衡:通过负载均衡技术,合理分配用户请求到不同的节点,避免单个节点过载,提高系统的整体性能和可用性。
高可用特性
- 高可靠:作为人大金仓的核心产品,KingbaseES具有高可靠的特点,能够有效保障数据的安全性和完整性,减少因系统故障导致的数据丢失风险。
- 高性能:支持大规模并发交易处理,结合多核架构的极致性能,能够满足各行业用户多种场景下的高性能数据处理需求,即使在高可用架构下,也能保持良好的性能表现。
- 高安全:遵循行业最高的安全标准,具备完善的安全机制,如数据加密、访问控制、审计跟踪等,确保在高可用环境下,数据的安全性和隐私性得到充分保护。
高可用部署与管理工具
- 数据库部署工具:提供图形化界面的数据库部署工具,方便用户进行高可用集群的部署和配置,包括创建项目、创建集群、创建集群主节点和备节点等操作。
- 运维管控一体化平台KOPS:将运维和监控指标体系、数据库的健康评价模型、性能分析模型和故障诊断模型贯穿数据库全生命周期管理的整个过程,可以实现数据库批量安装、集中纳管、集群扩缩容、备份与恢复、补丁一键升级、监控与告警、数据库健康检查、自动巡检和故障诊断与分析等能力。
主备集群如何搭建
搭建人大金仓KingbaseES主备集群的步骤如下:
搭建前准备
- 硬件与网络:准备两台设备,分别作为主机和备机,确保它们之间网络畅通。例如,主机IP为10.11.1.51,备机IP为10.11.1.50。
- 软件安装:主机上已安装好KingbaseES V8R6版本数据库。
安装集群版数据库
- 获取安装包与license:从人大金仓官网下载集群版数据库安装包和企业版license。使用sudo权限挂载安装包,如:
sudo mount KingbaseES_V008R006C004B0021_Lin64_cluster_install.iso /home/cli/install
- 开始安装:进入挂载目录,执行
sh setup.sh
,通过图形化方式安装数据库。勾选同意协议,选择安装路径,确认后进行安装。安装完成后,选择不立即启动集群部署工具。
高可用集群部署
- 收集必要文件:将以下五个文件收集到一个文件夹中,注意文件权限属主需与集群所属用户一致:
- 安装目录/DeployTools/zip中的db.zip
- 安装目录/Server/bin/下或/DeployTools/zip中的部署脚本V8R6_cluster_install.sh或cluster_install.sh
- 安装目录/Server/bin/下或/DeployTools/zip中的配置文件install.conf
- 安装目录/Server/bin/下或/DeployTools/zip中的配置SSH免密脚本trust_cluster.sh
- license.dat授权文件。
- 修改install.conf:
- 必要参数(通用机):
all_ip=(10.10.9.15 10.10.9.16 10.10.8.16)
:声明集群中将要配置的各个节点,用空格分割。install_dir="/home/xieyp/cluster0/install1"
:配置集群存放的目录。zip_package="/home/xieyp/cl/db.zip"
:指定db.zip包的绝对路径。license_file=(license.dat)
:配置授权文件的路径。db_user="system"
:访问数据库的用户名。db_port="50001"
:数据库端口号,默认是54321,建议修改,避免重复。db_mode="oracle"
:数据库模式,可选pg、oracle或mysql。trusted_servers="10.10.9.15,10.10.9.16,10.10.8.16"
:同部署工具中的trust配置项。execute_user="xieyp"
:填写执行者的用户名。deploy_by_sshd=1
:表示通过SSH部署。use_scmd=1
:代表先用ssh启动securecmd服务,再用securecmd部署集群。
- 其他参数:根据实际情况修改主备机IP、集群安装路径、zip压缩包存放路径、端口号、可信服务器信息等。
- 必要参数(通用机):
- 配置SSH免密:执行配置SSH免密脚本trust_cluster.sh,确保主机和备机之间可以免密登录。
- 执行部署脚本:运行部署脚本V8R6_cluster_install.sh或cluster_install.sh,开始集群部署。
集群状态检查
- 工具端检查:集群部署完成后,可以在工具端双击集群名称查看集群状态。
- 服务端检查:登录集群任一节点,进入集群部署的bin目录,执行
./repmgr service status
检查集群状态。
witness节点说明
Witness 节点说明
定义
Witness 节点,也称为仲裁节点或观察节点,是一个普通的数据库实例,但不是流复制的一部分。它的主要作用是在发生故障转移的情况下,提供见证信息,证明是主节点本身不可用,而不是由于不同的物理网络中断导致的脑裂现象。
功能
-
故障转移仲裁:
- 当主节点不可用时,备节点会参考 Witness 节点对主节点的可见性,决定是否提升为新的主节点。如果备节点只能与 Witness 节点通信,而无法与主节点通信,这证明主节点本身不可用,备节点可以安全地提升为新的主节点。
- 如果备节点与主节点和 Witness 节点都无法通信,可能是因为网络中断,备节点不应进行故障转移,以避免脑裂现象。
-
支持极端场景下的故障自动切换:
- 在 1 主 1 备 + Witness 的集群中,当本节点无法联系主节点时,会参考 Witness 节点对主节点的可见性,决定是否升主。
- 在 1 主 2 备 + Witness 的集群中,主节点故障时,2 个备节点正常的切换不受影响;仅存活 1 个备节点和 Witness 节点时能够正常切换;若仅 Witness 节点也故障,不影响 2 个备节点切换。
- 在 1 主 3 备 + Witness 的集群中,主节点故障时,3 个备节点正常的切换不受影响;仅存活 1 个备节点和 Witness 节点时能够正常切换。
部署要求
- 独占设备:Witness 节点应当独占一台设备,该设备应该与其他数据库节点在同一交换机下,处于同一网段。
- 资源要求:Witness 节点的资源要求相对较低,但需要确保其稳定运行。例如,NetApp HCI 见证节点的资源要求为 4 vCPU、12 GB 内存和 67 GB 磁盘空间。
配置步骤
-
注册 Witness 节点:
- 在 Witness 节点上,执行以下命令注册到主节点:
其中[kingbase@node2 bin]$ ./repmgr witness register -h 192.168.7.248
-h
指向主库节点的 IP。
- 在 Witness 节点上,执行以下命令注册到主节点:
-
查看集群状态:
- 注册完成后,可以使用以下命令查看集群状态:
输出示例:[kingbase@node2 bin]$ ./repmgr cluster show
ID | Name | Role | Status | Upstream | Location | Priority | Timeline | Connection string ----+----------+---------+-----------+----------+----------+----------+----------+--------------------------------------------------------------------------------------------------------------------------------------------------- 1 | node248 | primary | * running | | default | 100 | 18 | host=192.168.7.248 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=2 2 | node249 | witness | * running | node248 | default | 0 | 1 | host=192.168.7.249 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=2 3 | node243 | standby | running | node248 | default | 100 | 18 | host=192.168.7.243 user=esrep dbname=esrep port=54321 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=2 5 | node243B | standby | running | node248 | default | 100 | 18 | host=192.168.7.243 user=esrep dbname=esrep port=54322 connect_timeout=10 keepalives=1 keepalives_idle=10 keepalives_interval=1 keepalives_count=2
- 注册完成后,可以使用以下命令查看集群状态:
-
故障排除:
- 如果 Witness 节点在其他节点的状态显示为“? unreachable”,可以检查网络连接和防火墙配置。例如,可以使用
ping
命令测试网络连接,使用iptables -L
查看防火墙规则,并清理不必要的防火墙规则。
- 如果 Witness 节点在其他节点的状态显示为“? unreachable”,可以检查网络连接和防火墙配置。例如,可以使用
通过以上步骤,可以成功配置和管理 Witness 节点,确保集群在故障转移时的高可用性和一致性。
标签:金仓,数据库,人大,故障,集群,Witness,keepalives,节点,witness From: https://blog.csdn.net/hezuijiudexiaobai/article/details/145076576