写点什么

dbops 助力 GreatSQL MGR 架构安装部署

作者:GreatSQL
  • 2025-06-11
    福建
  • 本文字数:6344 字

    阅读完需:约 21 分钟

dbops 助力 GreatSQL MGR 架构安装部署


在上一篇中讲到了如何使用 dbops 部署 GreatSQL 主从架构,这篇中将介绍如何使用 dbops 部署 MGR 架构。


  • dbops 助力 GreatSQL 单机架构安装部署

  • dbops 助力 GreatSQL 主从架构安装部署


部署 GreatSQL MGR 架构,还可启用 GreatSQL 的动态 VIP 功能,以及仲裁节点功能。

环境介绍

本次部署所使用的操作系统为麒麟 V10 系统,以下是系统的详细信息:


$ cat /etc/*releaseKylin Linux Advanced Server release V10 (Sword)NAME="Kylin Linux Advanced Server"VERSION="V10 (Sword)"ID="kylin"VERSION_ID="V10"PRETTY_NAME="Kylin Linux Advanced Server V10 (Sword)"ANSI_COLOR="0;31"Kylin Linux Advanced Server release V10 (Sword)
$ uname -aLinux gip 4.19.90-24.4.v2101.ky10.x86_64 #1 SMP Mon May 24 12:14:55 CST 2021 x86_64 x86_64 x86_64 GNU/Linux
复制代码


  • 环境 Glibc 版本信息为


$ ldd --versionldd (GNU libc) 2.28
复制代码


  • 使用的 dbops 版本为


dbops.1.10.20250329 release
复制代码


在此文章撰写时,芬达老师对 dbops 进行了更新,所以此篇采用新版本安装部署。


  • 使用的 GreatSQL 版本为


GreatSQL-8.0.32-27 minimal
复制代码


  • 架构如下:


下载 dbops

从 gitee 下载最新版本 dbops



$ cd /usr/local$ wget https://gitee.com/fanderchan/dbops/releases/download/dbops.1.10.20250329/dbops.1.10.20250329-Linux-x86_64.tar.gz
复制代码


下载完成后,对 dbops 进行解压:


$ tar -xvzf dbops.1.10.20250329-Linux-x86_64.tar.gz 
复制代码

安装 Ansible

dbops 自带绿色版 Ansible,dbops 的核心依赖于 Ansible,执行此命令用于注册:


$ cd dbops/portable-ansible-v0.5.0-py3$ sh setup_portable_ansible.sh$ source ~/.bashrc
复制代码


最后检查下 Ansible 是否安装成功:


$ ansible --versionansible 2.10.5
复制代码

自动下载 GreatSQL 安装包

dbops 默认会自动下载 GreatSQL 安装包,所以本篇采用自动下载方式。


在公共配置文件common_config.yml中可以看到,只要选择了 GreatSQL 版本后,默认自动下载安装包。


# 此处默认设置 true 会自动下载安装包fcs_auto_download_mysql: true     # only support mysql. percona, greatsql pls download yourself first.
复制代码


但由于 dbops 限制,只能下载 GreatSQL-8.0.32-27-Linux-glibc2.17-x86_64-minimal* 这个 Linux Generic 通用包。


minimal 版本是对二进制文件执行 strip 操作,所以文件尺寸较小,功能上与正常版本一样

编辑配置清单

$ vim /usr/local/dbops/mysql_ansible/inventory/hosts.ini 
复制代码


修改内容如下:


[dbops_mysql]192.168.139.37 ansible_user=root ansible_ssh_pass="'****'"192.168.139.38 ansible_user=root ansible_ssh_pass="'****'"192.168.139.39 ansible_user=root ansible_ssh_pass="'****'"# IP地址 ansible_user=root ansible_ssh_pass="'你的密码'"[all:vars]#ansible_python_interpreter=/usr/bin/python3
复制代码


注意!密码需要单引号包围,修改时不要漏掉。


验证服务器的连通性:


$ cd /usr/local/dbops/mysql_ansible/playbooks$ ansible all -m ping192.168.139.37 | SUCCESS => {    "ansible_facts": {        "discovered_interpreter_python": "/usr/bin/python"    },    "changed": false,    "ping": "pong"}
复制代码

配置公共参数文件

$ vim /usr/local/dbops/mysql_ansible/playbooks/common_config.yml
复制代码


修改数据库版本以及端口:


## In most cases, just adjust these two parameters.mysql_version: "8.0.32-27"mysql_port: 3306
复制代码


修改数据库类型为 “greatsql”:


## DB TYPE,suport mysql,percona,greatsqldb_type: greatsql
复制代码


采用自动下载安装包,此处默认为 true ,不做修改即可


fcs_auto_download_mysql: true     # only support mysql. percona, greatsql pls download yourself first.
复制代码


若有需要修改的,例如 my.cnf 配置文件,数据库初始密码、初始用户,都可在 common_config.yml 公共参数文件中修改。

修改 Playbook 参数

$ vim /usr/local/dbops/mysql_ansible/playbooks/vars/var_master_slave.yml
复制代码


修改主从库 IP 以及主从复制账号可信网段:


# vars loading order: common_config -> this filemysql_binlog_format: rowmysql_mgr_port: "{{ mysql_port * 10 + 1 }}"sub_nets: 192.168.139.%mysql_mgr_hosts:  - '192.168.139.37'  - '192.168.139.38'  - '192.168.139.39'
# If you have installed MySQL instead of GreatSQL, the following parameters will have no effect.greatsql_vip: 192.168.139.250greatsql_net_work_interface: "ens3"greatsql_netmask: "255.255.255.255"greatsql_group_replication_arbitrator: truegreatsql_group_replication_arbitrator_hosts: - '192.168.139.39'
复制代码


  • mysql_binlog_format:因为 MGR 架构,需要 binlog 为 row 格式,所以这里不能修改,为的是覆盖common_config.yml文件中的 binlog 格式。

  • mysql_mgr_port:mgr 的通讯端口,采用原本端口 * 10 + 1 设置。

  • sub_nets:可信网段、可信域、可信 IP。

  • mysql_mgr_hosts:MGR 实例的 IP 地址列表,部署后会按照字符串列表第一个 IP 设置为 Primary 节点。

  • greatsql_vip:GreatSQL HA 绑定的 VIP 地址,只有部署 GreatSQL HA 时才会生效。

  • greatsql_net_work_interface:GreatSQL HA 绑定的 VIP 地址所在的网卡号,只有部署 GreatSQL HA 时才会生效

  • greatsql_netmask:GreatSQL HA 绑定的 VIP 地址使用的 netmask,一般使用"32"即可,无需修改,只有部署 GreatSQL HA 时才会生效

  • greatsql_group_replication_arbitrator:是否开启仲裁节点功能

  • greatsql_group_replication_arbitrator_hosts:GreatSQL 的仲裁节点列表。和 greatsql_group_replication_arbitrator 搭配使用,greatsql_group_replication_arbitrator 为 true 此参数才生效。


dbops 支持直接部署 GreatSQL 的 VIP 和仲裁节点功能特性,两个功能特性可详见 GreatSQL 用户手册:

执行 GreatSQL 安装

执行安装 GreatSQL MGR 架构


$ cd /usr/local/dbops/mysql_ansible/playbooks$ ansible-playbook mgr.yml
复制代码


等待一会儿会打印如下信息


    "msg": [        "Hosts to be affected by Deploy MGR cluster using binary installation: 172.17.140.136, 172.17.138.215, 172.17.139.159",        "DB type: mysql",        "MySQL port: 3306",        "MySQL version: 8.0.32-27",        "Server specs: auto",        "Roles to be executed: ../roles/pre_check_and_set, ../roles/mysql_server, ../roles/make_mgr",        "mycnf_dir: /database/mysql/etc/3306",        "datadir: /database/mysql/data/3306",        "tmpdir: /database/mysql/tmp/3306",        "binlog_dir: /database/mysql/log/binlog/3306",        "relaylog_dir: /database/mysql/log/relaylog/3306",        "redolog_dir: /database/mysql/log/redolog/3306",        "socket_dir: /database/mysql/data/3306",        "mysqlx_socket_dir: /database/mysql/data/3306"    ]
复制代码


可以看到上面的信息,安装时请确认无误后,输入 “confirm” 确认安装。如果想修改,可按 Ctrl+C 退出安装,再修改文件 common_config.yml稍等片刻,GreatSQL 就部署完成。


[Prompt user for confirmation]This will perform Deploy MGR cluster using binary installation on the displayed hosts. Please type 'confirm' to continue or press Ctrl+C to cancel.:
复制代码


部署 MGR 架构可能会等待久一些

登入 GreatSQL 检查

$ mysql -uadmin -h127.0.0.1 -P3306 -pDbops@8888 -e "select @@version"+-----------+| @@version |+-----------+| 8.0.32-27 |+-----------+
复制代码


若没有修改安装密码,初始为Dbops@8888,请用户在安装后自行修改默认密码。


也可以使用快速登录,db+设置的端口号:


$ su mysql$ db3306(gip:3306)admin@localhost-14:42:33 [(none)]>SELECT @@VERSION;+-----------+| @@VERSION |+-----------+| 8.0.32-27 |+-----------+1 row in set (0.00 sec)
复制代码


检查下 MGR 情况:


-- PRIMARY 节点(gip:3306)admin@localhost-14:41:39 [(none)]>SELECT * FROM performance_schema.replication_group_members;+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST    | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK |+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+| group_replication_applier | 62855999-24cc-11f0-ae0a-00163e859dfb | 172.17.139.159 |        3306 | ONLINE       | ARBITRATOR  | 8.0.32         | XCom                       || group_replication_applier | 62987ed2-24cc-11f0-aa6d-00163e554220 | 172.17.138.215 |        3306 | ONLINE       | SECONDARY   | 8.0.32         | XCom                       || group_replication_applier | 62ab3b6d-24cc-11f0-a65a-00163e85a203 | 172.17.140.136 |        3306 | ONLINE       | PRIMARY     | 8.0.32         | XCom                       |+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+3 rows in set (0.00 sec)
-- SECONDARY 节点(gip:3306)admin@localhost-15:41:50 [(none)]>SELECT * FROM performance_schema.replication_group_members;+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+| CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK |+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+| group_replication_applier | 62855999-24cc-11f0-ae0a-00163e859dfb | 172.17.139.159 | 3306 | ONLINE | ARBITRATOR | 8.0.32 | XCom || group_replication_applier | 62987ed2-24cc-11f0-aa6d-00163e554220 | 172.17.138.215 | 3306 | ONLINE | SECONDARY | 8.0.32 | XCom || group_replication_applier | 62ab3b6d-24cc-11f0-a65a-00163e85a203 | 172.17.140.136 | 3306 | ONLINE | PRIMARY | 8.0.32 | XCom |+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+3 rows in set (0.01 sec)
-- ARBITRATOR 节点(gip:3306)admin@localhost-15:40:26 [(none)]>SELECT * FROM performance_schema.replication_group_members;+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+| CHANNEL_NAME | MEMBER_ID | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE | MEMBER_ROLE | MEMBER_VERSION | MEMBER_COMMUNICATION_STACK |+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+| group_replication_applier | 62855999-24cc-11f0-ae0a-00163e859dfb | 172.17.139.159 | 3306 | ONLINE | ARBITRATOR | 8.0.32 | XCom || group_replication_applier | 62987ed2-24cc-11f0-aa6d-00163e554220 | 172.17.138.215 | 3306 | ONLINE | SECONDARY | 8.0.32 | XCom || group_replication_applier | 62ab3b6d-24cc-11f0-a65a-00163e85a203 | 172.17.140.136 | 3306 | ONLINE | PRIMARY | 8.0.32 | XCom |+---------------------------+--------------------------------------+----------------+-------------+--------------+-------------+----------------+----------------------------+3 rows in set (0.05 sec)
复制代码

检查 MGR 动态读写 VIP 功能

登入 PRIMARY 节点查看


(gip:3306)admin@localhost-15:43:38 [(none)]>SHOW GLOBAL VARIABLES LIKE "%vip%";+---------------------------------------+------------------------------------------------------+| Variable_name                         | Value                                                |+---------------------------------------+------------------------------------------------------+| greatdb_ha_enable_mgr_vip             | ON                                                   || greatdb_ha_force_change_mgr_vip       | OFF                                                  || greatdb_ha_mgr_read_vip_floating_type | TO_PRIMARY                                           || greatdb_ha_mgr_read_vip_ips           |                                                      || greatdb_ha_mgr_vip_broad              | 255.255.255.255                                      || greatdb_ha_mgr_vip_ip                 | 172.17.140.250                                       || greatdb_ha_mgr_vip_mask               | 255.255.255.255                                      || greatdb_ha_mgr_vip_nic                | ens3                                                 || greatdb_ha_vip_tope                   | 62ab3b6d-24cc-11f0-a65a-00163e85a203::172.17.140.250 |+---------------------------------------+------------------------------------------------------+9 rows in set 
复制代码


使用 VIP 链接,查看是否链接 PRIMARY 节点


$ mysql -urepl -h172.17.140.250 -P3306 -pRepl@8888 
greatsql> SELECT uuid();+--------------------------------------+| uuid() |+--------------------------------------+| 8366c691-24cf-11f0-aa2b-00163e85a203 |+--------------------------------------+1 row in set (0.00 sec)
复制代码


至此,麒麟系统下 GreatSQL MGR 架构安装已顺利完成:D


发布于: 12 分钟前阅读数: 5
用户头像

GreatSQL

关注

GreatSQL社区 2023-01-31 加入

GreatSQL是由万里数据库维护的MySQL分支,专注于提升MGR可靠性及性能,支持InnoDB并行查询特性,是适用于金融级应用的MySQL分支版本。 社区:https://greatsql.cn/ Gitee: https://gitee.com/GreatSQL/GreatSQL

评论

发布
暂无评论
dbops 助力 GreatSQL MGR架构安装部署_GreatSQL_InfoQ写作社区