博客
关于我
mysql高可用
阅读量:648 次
发布时间:2019-03-15

本文共 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作为高可用解决方案的配置示例。

    转载地址:http://hscmz.baihongyu.com/

    你可能感兴趣的文章
    Hadoop学习笔记—Yarn
    查看>>
    Jenkins - 部署在Tomcat容器里的Jenkins,提示“反向代理设置有误”
    查看>>
    wxWidgets源码分析(3) - 消息映射表
    查看>>
    wxWidgets源码分析(5) - 窗口管理
    查看>>
    wxWidgets源码分析(8) - MVC架构
    查看>>
    wxWidgets源码分析(9) - wxString
    查看>>
    [梁山好汉说IT] 梁山好汉和抢劫银行
    查看>>
    [源码解析] 消息队列 Kombu 之 基本架构
    查看>>
    [源码分析] 消息队列 Kombu 之 启动过程
    查看>>
    wx.NET CLI wrapper for wxWidgets
    查看>>
    Silverlight for linux 和 DLR(Dynamic Language Runtime)
    查看>>
    ASP.NET MVC Action Filters
    查看>>
    Powershell中禁止执行脚本解决办法
    查看>>
    OO_Unit2 多线程电梯总结
    查看>>
    git clone 出现fatal: unable to access ‘https://github 错误解决方法
    查看>>
    04_Mysql配置文件(重要参数)
    查看>>
    python 加密算法及其相关模块的学习(hashlib,RSA,random,string,math)
    查看>>
    JavaSE总结
    查看>>
    手动造轮子——基于.NetCore的RPC框架DotNetCoreRpc
    查看>>
    Python IO编程
    查看>>