mysql高可用
发布日期:2021-05-18 07:14:08 浏览次数:11 分类:精选文章

本文共 3561 字,大约阅读时间需要 11 分钟。

MySQL 主从复制与 Galera 集群配置指南

MySql 主从复制

概述

MySQL 主从复制是一种简单且高效的数据库复制机制,基于半同步复制进行数据同步。其优点包括架构简单、资源需求少、故障恢复便捷等特点。

主从复制优点

  • 架构简单:基于原生半同步复制进行数据同步,无需额外依赖。

  • 无单点故障:主节点故障时,直接切换到从节点,无需选主。

  • 资源占用低:双节点架构,资源需求少,部署简单。

  • 缺点:

  • 依赖半同步复制:若半同步复制出现问题,数据一致性可能无法保证。

  • 需配置keepalived:确保高可用性。

MySql 主从复制配置

Master 配置

  • 防火墙设置
  • firewall-cmd --add-port=123/udpfirewall-cmd --add-port=3306/tcp
    1. 修改MySQL配置文件
    2. # /etc/my.cnf[mysqld]log-bin = master-binserver-id = 1binlog_do_db = db1binlog_ignore_db = db2
      1. 授权从服务器
      2. mysql> GRANT REPLICATION SLAVE ON *.* TO root@'192.168.10.%' IDENTIFIED BY '123456';
        1. 查看日志文件与同步状态
        2. mysql> SHOW MASTER STATUS\G
          1. 备份与导出数据库
          2. mysqldump -u root -p --all-databases > /path/master.sql
            1. 导入到从服务器
            2. mysql -u root -p < /path/master.sql

              ###Slave 配置

            3. 同步主节点时间
            4. ntpdate 192.168.10.1
              1. 修改MySQL配置文件
              2. # /etc/my.cnf[mysqld]log-bin = slave-binserver-id = 2replicate-do-db = db1replicate-ignore-db = db2
                1. 导入主节点数据库
                2. mysql -u root -p < /path/master.sql
                  1. 启动复制
                  2. mysql> CHANGE MASTER TO MASTER_HOST='192.168.10.1', MASTER_USER='root', MASTER_PASSWORD='123456', MASTER_LOG_FILE='master-bin.000003', MASTER_LOG_POS=1234;mysql> START SLAVE;
                    1. 查看复制状态
                    2. mysql> SHOW SLAVE STATUS\G

                      Galera 集群配置

                      安装 MariaDB Galera Cluster

                    3. 卸载旧有MySQL安装包
                    4. rpm -qa | grep mysql | xargs rpm -e --nodeps
                      1. 配置YUM源
                      2. vim /etc/yum.repos.d/galera.repo
                        [galley]baseurl=http://yum.mariadb.org/10.0/centos7-amd64gpgcheck=0enabled=1
                        1. 安装MySQL Galera
                        2. yum install MariaDB-Galera-server -y

                          配置Galera集群

                        3. 修改配置文件
                        4. vim /etc/my.cnf.d/server.cnf
                          [galera]wsrep_provider=/usr/lib64/galera/libgalera_smm.sowsrep_cluster_address="gcomm://192.168.10.1,192.168.10.2"binlog_format=row
                          1. 启动节点
                          2. /usr/bin/mysqld_safe --datadir=/var/lib/mysql --pid-file=/var/lib/mysql/localhost.pid --wsrep-new-cluster

                            Percona XtraDB 集群

                          3. 安装Percona XtraDB
                          4. # 安装相关rpm包rpm -ivh http://mirrors.ustc.edu.cn/percona/tools/yum/release/7/RPMS/x86_64/percona-xtrabackup-24-2.4.22-1.el7.x86_64.rpmrpm -ivh http://mirrors.ustc.edu.cn/percona/pxc-57/yum/release/7/RPMS/x86_64/Percona-XtraDB-Cluster-shared-57-5.7.33-31.49.1.el7.x86_64.rpm
                            1. 配置XtraDB 集群
                            2. vim /etc/percona-xtradb-cluster.conf.d/wsrep.cnf
                              wsrep_cluster_address=gcomm://192.168.10.1,192.168.10.2wsrep_node_address=192.168.10.3wsrep_sst_auth="sstuser:sstpass"
                              1. 启动数据库服务
                              2. systemctl start mysql@bootstrap.service

                                keepalived 高可用机制

                                基本配置

                              3. 下载并编译keepalived
                              4. tar -xzvf keepalived-2.2.2.tar.gzcd.keepalived-2.2.2/./configure && make
                                1. 配置keepalived
                                2. vim ./keepalived/etc/keepalived/keepalived.conf
                                  global_defs {    notification_email {        sysadmin@fire.loc    }    notification_email_from Alexandre.Cassen@firewall.loc    smtp_server 127.0.0.1    smtp_connect_timeout 30    router_id LVS_164    vrrp_skip_check_adv_addr    vrrp_strict}vrrp_instance VI_1 {    state BACKUP    interface ens33    virtual_router_id 51    priority 100    advert_int 1    authentication {        auth_type PASS        auth_pass 1111    }    virtual_ipaddress { 192.168.10.37 }}virtual_server 192.168.10.37 3306 {    lb_algo rr    lb_kind NAT    persistence_timeout 50    protocol TCP    real_server 192.168.10.164 3306 {        weight 1        notify_down /path/shutdown.sh        tcp_check {            connect_timeout 3            nb_get_retry 3            delay_before_retry 3            connect_port 3306        }    }}

                                  防火墙配置

                                  firewall-cmd --direct --permanent --add-rule ipv4 filter INPUT 0 --destination 224.0.0.18 --protocol vrrp -j ACCEPTfirewall-cmd --direct --permanent --add-rule ipv4 filter OUTPUT 0 --destination 224.0.0.18 --protocol vrrp -j ACCEPTfirewall-cmd --reload

                                  总结

                                  上述文档详细介绍了MySQL主从复制相关配置方法以及基于Galera协议的高可用集群解决方案,涵盖了从单节点复制到Galera集群的多种部署方式,并提供了keepalived作为高可用解决方案的配置示例。

    上一篇:初学笔记 day1
    下一篇:正则表达式

    发表评论

    最新留言

    哈哈,博客排版真的漂亮呢~
    [***.90.31.176]2025年04月14日 16时58分00秒