MySQL MGR 部署说明
本文说明如何使用 mgr.yml 部署 MySQL Group Replication。
1. 适用范围
- 目标架构:3 到 9 节点 MGR
- 数据库版本:MySQL
8.0.x、8.4.x或9.7.x - 主机组:
[dbbot_mysql] - 自动验收:默认检查 MySQL 实例、MGR 成员数量、成员状态和 primary 数量
建议在新环境执行。
mgr.yml会先安装 MySQL 实例,然后配置 Group Replication。MySQL
9.7.x使用glibc2.28包,不支持 CentOS/RHEL 7 系列;这类系统请使用 MySQL8.4.x。
2. inventory
[dbbot_mysql]
192.0.2.131 ansible_user=root ansible_ssh_pass="'密码'"
192.0.2.132 ansible_user=root ansible_ssh_pass="'密码'"
192.0.2.133 ansible_user=root ansible_ssh_pass="'密码'"
3. 关键变量
编辑 mysql_ansible/playbooks/common_config.yml:
db_type: mysql
mysql_version: "8.4.9"
mysql_port: 3306
fcs_allow_dbbot_default_passwd: true
编辑 mysql_ansible/playbooks/vars/var_mgr.yml:
mysql_binlog_format: row
mysql_mgr_port: "{{ (mysql_port | int) * 10 + 1 }}"
sub_nets: "192.0.2.%"
mysql_mgr_hosts:
- "192.0.2.131"
- "192.0.2.132"
- "192.0.2.133"
说明:
mysql_mgr_hosts必须与[dbbot_mysql]中的主机一致。mysql_mgr_hosts支持 3 到 9 个节点。sub_nets是 MGR 复制账号允许连接的来源网段。mysql_mgr_port默认按mysql_port * 10 + 1计算,例如3306对应33061。
4. 执行部署
cd /usr/local/dbbot/mysql_ansible/playbooks
ansible-playbook mgr.yml
执行过程中按提示输入 confirm。若在脚本中非交互执行,可追加:
python3 /usr/local/dbbot/portable-ansible/ansible-playbook mgr.yml -e dbbot_confirmation_input=confirm
5. 部署后验收
mgr.yml 默认会在 post_tasks 阶段自动执行 MGR 验收。也可以手工查看:
mysql -uadmin -h127.0.0.1 -P3306 -pDbbot_admin@8888 \
-e "SELECT MEMBER_HOST, MEMBER_STATE, MEMBER_ROLE FROM performance_schema.replication_group_members ORDER BY MEMBER_HOST;"
验收要点:
- 成员数量与
mysql_mgr_hosts一致。 - 所有成员
MEMBER_STATE为ONLINE。 - 只有一个成员为
PRIMARY。
6. 卸载
卸载会读取当前 common_config.yml / advanced_config.yml 的生效端口和目录配置。确认 mysql_port 指向要删除的实例后执行:
cd /usr/local/dbbot/mysql_ansible/playbooks
ansible-playbook unsafe_uninstall.yml
执行过程中按提示输入 confirm。该入口只删除目标 MySQL 实例的数据、日志和运行目录,不删除 MySQL 软件基目录、Linux 用户或 my.cnf。