mariadb示例2

  1. 编写脚本,支持让用户自主选择,使用 mysqldump 还是 xtraback 全量备份

    #!/bin/bash -e
    # Author: 杨超逸
    # Date: 2020-01-12
    # ------------------------------------------------------------------------
    BACKUP_DIR=/data
    USER=root
    PASSWORD=123456
    
    select var in {'mysqldump','xtraback'} ;do
        case $var in
            'mysqldump' )
                # mysqldump
                mysqldump -A -u$USER -F -E -R -x -p$PASSWORD --master-data=1\
                          --flush-privileges --triggers \
                          --default-character-set=utf8 --hex-blob\
                          >$BACKUP_DIR/fullbak_`date +%F-%T`.sql
                ;;
            'xtraback' )
                # xtraback
                innobackupex --user=$USER --password=$PASSWORD $BACKUP_DIR
                ;;
            * ) echo 'please choice mysqldump or xtraback';;
        esac
        break
    done
  2. 配置 Mysql 主从同步
    原则上主从同步时要使用二进制日志上的日志号,较为麻烦.故使用 GTID 复制
    1. 注意: 数据库目录下的 auto.conf uuid 不能一样
    2. 主服务器 my.cnf

      server-id=11
      log_bin
      gtid_mode=ON
      enforce_gtid_consistency
    3. 从服务器 my.cnf

      server-id=12                    #不同从服务器不一样
      gtid_mode=ON
      read-only
      enforce_gtid_consistency
    4. 主服务器为复制用户授权

      -- 复制权限
      grant replication slave on *.* to root@'%';
    5. 从服务器设置复制信息

      CHANGE MASTER TO MASTER_HOST = '192.168.11.11',
        MASTER_USER='root',
        MASTER_PASSWORD='123456',
        MASTER_PORT=3306,
        MASTER_AUTO_POSITION=1;
  3. 使用 MHA 实现 Mysql 高可用
    1. 在 2.的基础上
      • 在管理节点上安装两个包
        mha4mysql-manager
        mha4mysql-node
      • 在被管理节点安装
        mha4mysql-node
    2. 增加一台 mha 监控主机
    3. 管理节点
      vim /etc/mastermha/app1.cnf

      [server default]
      user=root
      password=123456
      manager_workdir=/data/mastermha/app1/
      manager_log=/data/mastermha/app1/manager.log
      remote_workdir=/data/mastermha/app1/
      ssh_user=root
      repl_user=chao
      repl_password=123456
      ping_interval=1
      
      [server1]
      hostname=192.168.11.7
      candidate_master=1
      
      [server2]
      hostname=192.168.11.11
      candidate_master=1
      
      [server3]
      hostname=192.168.11.12
    4. 实现主从与从从相互之间 ssh key 验证
      • 配置 ssh

        # 生成公钥私钥
        ssh-keygen
        # 设置authorized_keys
        ssh-copy-id localhost
        # 拷贝.ssh文件夹到各个服务器
        scp ~/.ssh [email protected]:
      • Mha 验证和启动

        masterha_check_ssh --conf=/etc/mastermha/app1.cnf
        masterha_check_repl --conf=/etc/mastermha/app1.cnf
    5. 实现 Master
      vim /etc/my.cnf 加入

      [mysqld]
      skip_name_resolve=1
    6. 实现 Slave
      vim /etc/my.cnf 加入

      [mysqld]
      relay_log_purge=0
      skip_name_resolve=1
    7. 在管理节点上开启 mha
      masterha_manager --conf=/etc/mastermha/app1.cnf

猜你喜欢

转载自www.cnblogs.com/chaoyiyang/p/12181911.html