首页 > 数据库 > 国内数据库 > GoldenDB 快速安装分布式集群
之前的文章里介绍了通过配置
install_senior.ini 文件来标准安装
GoldenDB 集中式集群,前提是需要我们了解
GoldenDB 的集群架构以及参数意义,这对初学者来说不太友好。好在官方提供了三种安装模式,这次我们介绍一下通过配置
install_fast.ini 文件,快速安装分布式集群。
- 快速安装: 单机房(install_fast.ini)
- 自定义安装: 单机房(install_advance.ini)
- 标准安装: 多机房(install_senior.ini)
跟 标准安装不同, 快速安装无需规划每个节点安装的组件及角色。
| 主机名 | IP 地址 | 配置大小 |
|---|---|---|
| golden1 | 192.168.182.41 | 12C/24G |
| golden2 | 192.168.182.42 | 8C/16G |
| golden3 | 192.168.182.43 | 8C/16G |
每台机器各自执行:
hostnamectl set-hostname golden1 hostnamectl set-hostname golden2 hostnamectl set-hostname golden3
systemctl stop NetworkManager firewalld.service systemctl disable NetworkManager firewalld.service
sudo curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo yum clean all yum makecache
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
timedatectl | grep "Time zone" sudo timedatectl set-timezone Asia/Shanghai date
#禁用透明大页 sed -i 's/GRUB_CMDLINE_LINUX="/GRUB_CMDLINE_LINUX="transparent_hugepage=never /g' /etc/default/grub #禁用NUMA( Intel 环境建议关闭), Hygon、AMD、ARM 环境中,建议打开 NUMA sed -i 's/GRUB_CMDLINE_LINUX="/GRUB_CMDLINE_LINUX="numa=off /g' /etc/default/grub grub2-mkconfig -o /boot/grub2/grub.cfg #重启生效 reboot cat /sys/kernel/mm/transparent_hugepage/enabled dmesg | grep -i numa
cat >> /etc/security/limits.conf <<EOF * soft nofile 655350 * hard nofile 655350 * soft stack unlimited * hard stack unlimited * soft nproc 655360 * hard nproc 655360 * soft core unlimited * hard core unlimited EOF
yum install -y python2 python2-devel numactl perl-Time-HiRes bind-chroot java-2.8.0-openjdk gcc unixODBC bind-libs tar expect # 安装 Python 开发扩展包和工具 yum install -y python-devel python-setuptools python-pip gcc
上传安装包到 golden1 节点 /root/ 目录,并解压到 /home 目录。
[root@golden1 home]# ll 总用量 2 drwxr-xr-x 13 root root 4096 9月 14 17:57 ZXCLOUD-GoldenDB-ALL-RHV6.1.03.12 -rw-r--r-- 1 root root 0 9月 14 15:07 ZXCLOUD-GoldenDB-ALL-RHV6.1.03.12.zip
解压完后,在相同目录
touch 一个与文件夹同名的 zip 包,避免每次解压浪费时间。
安装包附带 PyMySQL-master.tar.gz ,在节点1 安装 PyMySQL。
[root@golden1 install]# pwd /home/ZXCLOUD-GoldenDB-ALL-RHV6.1.03.12/oneKeyInstallUpdate/install [root@golden1 install]# find ./ -name PyMySQL* ./prepare_env/PyMySQL-master.tar.gz [root@golden1 install]# tar -zxvf ./prepare_env/PyMySQL-master.tar.gz [root@golden1 install]# cd PyMySQL-master/ [root@golden1 PyMySQL-master]# python setup.py install
安装包附带 kazoo-2.6.1.tar.gz 包,在节点1 安装 kazoo。
[root@golden1 install]# find ./ -name "*kazoo*" ./prepare_env/kazoo-2.6.1.tar.gz [root@golden1 install]# tar -zxvf ./prepare_env/kazoo-2.6.1.tar.gz [root@golden1 install]# cd kazoo-2.6.1/ [root@golden1 kazoo-2.6.1]# python setup.py install
修改的内容如下:
GoldenDB 集群的机器 IP 地址;GoldenDB 安装时所涉及的密码,统一配置成了 Gdcp@2026# 适用快速体验安装, 单区域,单个管理节点或ZK环境,多分片集群,服务器资源最小8C16G [general] # 安装机器IP, 填写一个或多个,以逗号分割,首IP请填写本机IP # IP支持ipv4或ipv6格式 IP=192.168.182.41,192.168.182.42,192.168.182.43 # 安装机器用户,具有root权限的高权用户 user=root # 安装机器用户pw root_pwvalue=root_password # 安装路径 install_path=/home/goldendb # rdb super用户pw rdb_super_pwvalue=Gdcp@2026 # rdb repl用户pw rdb_repl_pwvalue=Gdcp@2026 # rdb normal用户pw rdb_normal_pwvalue=Gdcp@2026 # rdb root用户pw rdb_root_pwvalue=Gdcp@2026 # manager节点应用用户pw manager_apply_user_pwvalue=Gdcp@2026 # gtm节点应用用户pw gtm_apply_user_pwvalue=Gdcp@2026 # dbproxy节点应用用户pw dbproxy_apply_user_pwvalue=Gdcp@2026 # 连接实例dbproxy用户pw dbproxy_pwvalue=Gdcp@2026 # db节点应用用户pw db_apply_user_pwvalue=Gdcp@2026 # db root用户pw default_pwvalue=Gdcp@2026 # dbagent访问db pw dbagent_pwvalue=Gdcp@2026 # MDS访问DB mds2proxy_pwvalue=Gdcp@2026 super_maint_pwvalue=Gdcp@2026 # loadserver节点应用用户pw loadserver_apply_user_pwvalue=Gdcp@2026 # insight应用用户pw insight_apply_user_pwvalue=Gdcp@2026 # 安装机器普通用户pw gdb_normal_user_pwd=Gdcp@2026 # AWR运维只读pw gdbquery2db_pwvalue=Gdcp@2026 # 最小化安装默认资源规格限制 # manager资源限制, cm/pm/mds manager_cgroup_limit=1C2G # rdb资源限制 rdb_cgroup_limit=1C1G # cn资源限制 cn_cgroup_limit=1C2G # dn资源限制 dn_cgroup_limit=1C2G # gtm资源限制 gtm_cgroup_limit=1C1G # lds资源限制 lds_cgroup_limit=1C1G # insight资源限制 insight_cgroup_limit=2C6G
在第 12 步安装组件,初始化数据库时,默认等待 40 次,每次 30 秒,如果由于磁盘性能不够等因素导致超过了 1200 秒,安装主程序就会报错,但是数据库仍可始化成功,可以将时间间隔或者等待次数调大一些,避免主程序报错终止。
vim /ZXCLOUD-GoldenDB-ALL-RHV6.1.03.12/oneKeyInstallUpdate/install/global_args.py # 安装组件超时时间计算方式为 MAX_INTERVAL_COUNT*SLEEP_TIME # 默认 1200秒=20min MAX_INTERVAL_COUNT = 40 # 单位:次数 INTERVAL_TIME = 60 # 单位:秒
执行如下命令开始安装:
sh setup.sh -a "" "/home/ZXCLOUD-GoldenDB-ALL-RHV6.1.03.12.zip" "/home/ZXCLOUD-GoldenDB-ALL-RHV6.1.03.12/oneKeyInstallUpdate/install/config/install_fast.ini"
如遇到报错,使用如下命令清空环境,重新安装:
-- 杀掉相关进程
pkill -9 -u insight 2>/dev/null;
pkill -9 -u zxgtm1 2>/dev/null;
pkill -9 -u zxgtm2 2>/dev/null;
pkill -9 -u zxgtm3 2>/dev/null;
pkill -9 -u zxdb1 2>/dev/null;
pkill -9 -u zxdb2 2>/dev/null;
pkill -9 -u zxdb3 2>/dev/null;
pkill -9 -u zxdbproxy1 2>/dev/null;
pkill -9 -u zxdbproxy2 2>/dev/null;
pkill -9 -u zxmanager 2>/dev/null;
pkill -9 -u zxload1 2>/dev/null;
-- 清理 insight 的 agent
ps -ef |grep insight | grep -v grep | awk '{print $2}' | xargs kill -9
-- 删除已安装的用户
for u in $(cat /etc/passwd | awk -F: '{print $1}' | grep -E "insight|zxgtm|zxdb|zxdbproxy|zxgdbcheck|zxmanager|zxload");
do userdel -r "$u" 2>/dev/null; done;
-- 删除用户组
groupdel goldendb 2>/dev/null;
安装程序自动根据
install_fast.ini 文件中的信息生成
install_senior.ini 文件。自动规划的组件如下:
[root@golden1 config]# cat install_senior.ini [DBPROXY] ip=192.168.182.41,192.168.182.42 dbproxy_apply_user_pwvalue=Gdcp@2026 dbproxy_pwvalue=Gdcp@2026 [REMOTEENV] DBPROXY|ip_local_reserved_ports=8880-10000 [INSIGHT] zk_server_ip=192.168.182.41 live_reload_port=35729 https_port=8024 insight_apply_user_pwvalue=Gdcp@2026 insight_cgroup_limit=0C0G https_server_port=8444 zk_server_port=32181 insight_apply_user_uid=1334 insight_user=insight zk_elect_port=3888 socketPort=8028 install_zk=1 zk_heartbeat_port=2888 [GTM] increment_persistence=3 is_master_count=0 gtm_cgroup_limit=1C1G hw=1 sys_gtmg1_team1=192.168.182.41,M,N;192.168.182.42,S,N lw=1 gtm_apply_user_pwvalue=Gdcp@2026 response_num=1 sys_gtm_template= auto_switch_between_different_room=0 [MANAGER_ZK] manager_apply_user_pwvalue=Gdcp@2026 city_room2_ip= remote_room1_ip= remote_room2_ip= manager_cgroup_limit=1C2G manager_apply_user_uid=1332 city_room1_ip= local_room_ip=192.168.182.41,192.168.182.42 [CLUSTER] c1_g2_team1=192.168.182.41,M,N;192.168.182.42,S,N;192.168.182.43,S,N c1_binlog_compress_flag=0 super_maint_pwvalue=Gdcp@2026 c1_group_mode=0 dbagent_pwvalue=Gdcp@2026 db_apply_user_pwvalue=Gdcp@2026 c1_template= default_pwvalue=Gdcp@2026 mds2proxy_pwvalue=Gdcp@2026 c1_binlog_compress_level=1 c1_conn1=192.168.182.41_dbproxy1:8880 c1_cn_cgroup_limit=1C2G gdbquery2db_pwvalue=Gdcp@2026 c1_character_set_server=utf8mb4 c1_conn2=192.168.182.42_dbproxy1:8881 c1_dn_cgroup_limit=1C2G c1_binlog_compress_mode=zstd c1_g1_team1=192.168.182.41,M,N;192.168.182.42,S,N;192.168.182.43,S,N [MANAGER_SINGLE] city_room1_ip= remote_room1_ip= manager_cgroup_limit=0C0G manager_apply_user_uid=1332 manager_apply_user_pwvalue=****** local_room_ip=10.0.0.10 [GENERAL] rdb_port=3309 rdb_super_pwvalue=Gdcp@2026 user_prefix=zx jdk_switch=1 user_group_name=goldendb license_dat_path= system_parameter=1 install_tenancy=0 rdb_root_pwvalue=Gdcp@2026 gdb_normal_user_pwd=Gdcp@2026 root_user=root rdb_admin_port=65100 install_path=/home/goldendb install_carrier=0 rdb_cgroup_limit=1C1G mysql_client_switch=1 gdb_install_type=0 rdb_normal_pwvalue=Gdcp@2026 install_type=2 omm_listen_port=6471 omm_domain_name=192.168.182.41 rdb_repl_pwvalue=Gdcp@2026 license_type=0 user_group_id= root_pwvalue=1qazXSW@123 [NODES] city_room1= remote_room1= remote_room2= city_room2= local_room=南京|南京机房1-南京|192.168.182.41,192.168.182.42,192.168.182.43 [LOADSERVER] lds_template= ip=192.168.182.42 loadserver_apply_user_pwvalue=Gdcp@2026 lds_cgroup_limit=1C1G
安装日志:
2026-10-08 17:19:42,749 [INFO] - doExcuteLog.py(173) - 步骤15/16: 启动非管理节点, 安装结果:成功 progress: 94%|████████████████████████████████████████████████▊ | 15/16 [00:00<00:00, 129.38it/s] 2026-10-08 17:19:42,875 [INFO] - doExcuteLog.py(178) - 总体进度:94.0% 2026-10-08 17:19:42,885 [INFO] - doExcuteLog.py(181) - >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 2026-10-08 17:19:42,895 [INFO] - doExcuteLog.py(161) - >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 2026-10-08 17:19:42,907 [INFO] - doExcuteLog.py(162) - 步骤16/16: 安装后环境检查, 开始 2026-10-08 17:19:42,919 [INFO] - doExcuteLog.py(164) - 总体进度:95.0% 2026-10-08 17:19:42,930 [INFO] - doExcuteLog.py(165) - >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 2026-10-08 17:19:42,967 [INFO] - do_verify_install.py(555) - ************* start read config info. ************** 2026-10-08 17:19:45,434 [INFO] - do_verify_install.py(572) - wait to verify rdb in insight(192.168.182.41) 2026-10-08 17:19:45,441 [INFO] - do_verify_install.py(572) - wait to verify rdb in insight(192.168.182.42) 2026-10-08 17:19:45,450 [INFO] - do_verify_install.py(576) - ************* end read install_senior.ini. ************** 2026-10-08 17:19:45,460 [INFO] - do_verify_install.py(580) - ************* start get component info. ************** 2026-10-08 17:19:45,474 [INFO] - do_verify_install.py(114) - wait to verify gtm in zxgtm1(192.168.182.41) 2026-10-08 17:19:45,483 [INFO] - do_verify_install.py(114) - wait to verify gtm in zxgtm1(192.168.182.42) 2026-10-08 17:19:45,493 [INFO] - do_verify_install.py(114) - wait to verify proxy in zxdbproxy1(192.168.182.41) 2026-10-08 17:19:45,502 [INFO] - do_verify_install.py(114) - wait to verify proxy in zxdbproxy1(192.168.182.42) 2026-10-08 17:19:45,510 [INFO] - do_verify_install.py(114) - wait to verify db in zxdb1(192.168.182.41) 2026-10-08 17:19:45,519 [INFO] - do_verify_install.py(114) - wait to verify db in zxdb1(192.168.182.42) 2026-10-08 17:19:45,534 [INFO] - do_verify_install.py(114) - wait to verify db in zxdb1(192.168.182.43) 2026-10-08 17:19:45,545 [INFO] - do_verify_install.py(114) - wait to verify db in zxdb2(192.168.182.41) 2026-10-08 17:19:45,553 [INFO] - do_verify_install.py(114) - wait to verify db in zxdb2(192.168.182.42) 2026-10-08 17:19:45,559 [INFO] - do_verify_install.py(114) - wait to verify db in zxdb2(192.168.182.43) 2026-10-08 17:19:45,568 [INFO] - do_verify_install.py(599) - ************* end get component info. ************** 2026-10-08 17:19:45,573 [INFO] - do_verify_install.py(603) - ************* start check omm function. ************** 2026-10-08 17:19:45,728 [INFO] - zookeeper.py(230) - get [(u'192.168.182.41', u'32181')]:zk_client.zkc success 2026-10-08 17:19:45,743 [INFO] - zookeeper.py(236) - zk_client.auth is [digest:sjHvQPDslHzj8sVrlFSFraJ7HYa7mQxdONQWZVBwg4Q=] 2026-10-08 17:19:46,059 [INFO] - zookeeper.py(159) - master manager node: [192.168.182.41] 2026-10-08 17:19:46,279 [INFO] - do_verify_install.py(152) - ommtool -status is OK. 2026-10-08 17:19:46,288 [INFO] - do_verify_install.py(611) - ************* end check omm function. ************** 2026-10-08 17:19:46,297 [INFO] - do_verify_install.py(612) - ************* start check component status. ************** 2026-10-08 17:19:46,487 [INFO] - do_verify_install.py(255) - db in zxdb1(192.168.182.41) is OK. 2026-10-08 17:19:46,642 [INFO] - do_verify_install.py(255) - db in zxdb1(192.168.182.42) is OK. 2026-10-08 17:19:46,798 [INFO] - do_verify_install.py(255) - db in zxdb1(192.168.182.43) is OK. 2026-10-08 17:19:46,969 [INFO] - do_verify_install.py(255) - db in zxdb2(192.168.182.41) is OK. 2026-10-08 17:19:47,157 [INFO] - do_verify_install.py(255) - db in zxdb2(192.168.182.42) is OK. 2026-10-08 17:19:47,339 [INFO] - do_verify_install.py(255) - db in zxdb2(192.168.182.43) is OK. 2026-10-08 17:19:47,532 [INFO] - do_verify_install.py(255) - rdb in rdb(192.168.182.41) is OK. 2026-10-08 17:19:47,690 [INFO] - do_verify_install.py(255) - rdb in rdb(192.168.182.42) is OK. 2026-10-08 17:19:47,696 [INFO] - do_verify_install.py(626) - ************* end check components status. ************** 2026-10-08 17:19:47,702 [INFO] - do_verify_install.py(630) - ************* start check component links. ************** 2026-10-08 17:19:47,709 [INFO] - do_verify_install.py(642) - ************* end check component links. ************** 2026-10-08 17:19:47,723 [INFO] - do_execute_sql.py(274) - Start to execute SQL 2026-10-08 17:19:47,871 [INFO] - zookeeper.py(230) - get [(u'192.168.182.41', u'32181')]:zk_client.zkc success 2026-10-08 17:19:47,885 [INFO] - zookeeper.py(236) - zk_client.auth is [digest:sjHvQPDslHzj8sVrlFSFraJ7HYa7mQxdONQWZVBwg4Q=] 2026-10-08 17:19:48,185 [INFO] - zookeeper.py(159) - master manager node: [192.168.182.41] 2026-10-08 17:20:10,729 [INFO] - do_execute_sql.py(316) - execute cluster1 SQL success! ... 2026-10-08 17:20:25,224 [INFO] - zookeeper.py(159) - master manager node: [192.168.182.41] 2026-10-08 17:20:27,458 [INFO] - do_verify_install.py(843) - start to checking insightServer's status...... 2026-10-08 17:21:07,704 [INFO] - do_verify_install.py(855) - insightServer's status is functional 2026-10-08 17:21:07,717 [INFO] - do_verify_install.py(993) - +------------------------------+--------------------------------------------------+--------------------+ 2026-10-08 17:21:07,727 [INFO] - do_verify_install.py(993) - |check item |check desc |check result | 2026-10-08 17:21:07,735 [INFO] - do_verify_install.py(993) - +------------------------------+--------------------------------------------------+--------------------+ 2026-10-08 17:21:07,745 [INFO] - do_verify_install.py(993) - |omm function verify |omm function is OK. |success | 2026-10-08 17:21:07,755 [INFO] - do_verify_install.py(993) - |component status verify |component status is OK. |success | 2026-10-08 17:21:07,764 [INFO] - do_verify_install.py(993) - |component links verify |component links is OK. |success | 2026-10-08 17:21:07,772 [INFO] - do_verify_install.py(993) - |ommAgent links verify |ommAgent links is OK. |success | 2026-10-08 17:21:07,780 [INFO] - do_verify_install.py(993) - |proxy function verify |proxy function is OK. |success | 2026-10-08 17:21:07,789 [INFO] - do_verify_install.py(993) - |rdb data verify |rdb data is OK. |success | 2026-10-08 17:21:07,798 [INFO] - do_verify_install.py(993) - |rdb master slave verify |rdb master slave is OK. |success | 2026-10-08 17:21:07,808 [INFO] - do_verify_install.py(993) - +------------------------------+--------------------------------------------------+--------------------+ 2026-10-08 17:21:07,816 [INFO] - do_verify_install.py(999) - +---------------------------------------------------------------------------------+--------------------+ 2026-10-08 17:21:07,828 [INFO] - do_verify_install.py(999) - |Final Result |pass/total | 2026-10-08 17:21:07,836 [INFO] - do_verify_install.py(999) - +---------------------------------------------------------------------------------+--------------------+ 2026-10-08 17:21:07,846 [INFO] - do_verify_install.py(999) - |PASS |7/7 | 2026-10-08 17:21:07,860 [INFO] - do_verify_install.py(999) - +---------------------------------------------------------------------------------+--------------------+ 2026-10-08 17:21:07,869 [INFO] - doExcuteLog.py(172) - >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 2026-10-08 17:21:07,888 [INFO] - doExcuteLog.py(173) - 步骤16/16: 安装后环境检查, 安装结果:成功 progress: 100%|████████████████████████████████████████████████████| 16/16 [00:00<00:00, 138.79it/s] 2026-10-08 17:21:08,015 [INFO] - doExcuteLog.py(178) - 总体进度:100.0% 2026-10-08 17:21:08,024 [INFO] - doExcuteLog.py(181) - >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 2026-10-08 17:21:08,035 [INFO] - install_control.py(1780) - install_type:2 2026-10-08 17:21:08,758 [WARNING] - install_control.py(1818) - please delete /home/log, when it no longer needed 2026-10-08 17:21:08,774 [WARNING] - install_control.py(1841) - clear install temp dir: /home error:File is not a zip file
安装过程和标准安装类似,安装完所有组件后,会启动所有组件,并组建集群。
打开 insight 所在的服务器 IP:8444 ,输入 admin/ Insight@2020 登录,查看集群信息。
发现目前存在两个分片组,每个分片组由一主两备的 mysqld 实例组成;两个 DBProxy 以及两个 GTM(互为主备)。我们创建一张 range 分区表,并插入数据:
-- 通过 DBProxy 登录 mysql -h 192.168.182.41 -P 8880 -u dbproxy -p'Gdcp@2026' test goldendb_client> CREATE TABLE t_order_range ( order_id INT NOT NULL, user_id INT NOT NULL, amount DECIMAL(10, 2) DEFAULT NULL, create_time DATETIME DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (order_id) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin DISTRIBUTED BY RANGE (order_id) ( g1 VALUES LESS THAN (5000), g2 VALUES LESS THAN MAXVALUE ); goldendb_client> CALL p_batch_insert_data(1, 40000); goldendb_client> SELECT 'g1_count' as shard, COUNT(*) FROM t_order_range STORAGEDB g1; +----------+----------+ | SHARD | COUNT(*) | +----------+----------+ | g1_count | 4999 | +----------+----------+ 1 row in set (0.16 sec) goldendb_client> SELECT 'g2_count' as shard, COUNT(*) FROM t_order_range STORAGEDB g2; +----------+----------+ | SHARD | COUNT(*) | +----------+----------+ | g2_count | 35001 | +----------+----------+ 1 row in set (0.17 sec)
输入分片 ID 为 4,数据节点数为 3(一共包含 3 个 MySQL 底层实例),响应数为 1(即
response_num=1 ,代表在执行分布式分布式两阶段提交或主备同步时,
只要有 1 个备节点成功响应,该 Team 就会向 Proxy 汇报成功,允许事务提交。)
新增的数据分片会在每个节点再部署一个实例。
分片 4 新建成功:

现在 golden1 和 golden2 两个节点分别存在 4 个 mysqld 实例,golden3 存在 3 个 mysqld 实例。
至此,通过配置
install_fast.ini 文件快速安装分布式集群成功了。下一期,我们演示一下
GoldenDB 的分区表操作。
这里是《实战派K8S&DB》,更多干货敬请关注公众号。如果本文对你有所帮助,欢迎点赞、推荐和转发,也欢迎关注后续文章,一起考证、一起学习
GoldenDB 分布式数据库。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31444449/viewspace-3184718/ ,如需转载,请注明出处,否则将追究法律责任。