• MySQL在线实现主从配置


    前提是主库的MySQL开启了Binlog,不然需要修改配置,然后重启MySQL

    1.主库配置

    [mysqld]
    max_allowed_packet=1024M
    server-id=1
    log-bin=mysql-bin
    binlog_format=row
    
    # 必须为FULL,MySQL-5.7后才有该参数
    binlog_row_image  = FULL
    expire_logs_days  = 15
    
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    
    symbolic-links=0
    
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    
    

    2.从库配置

    [mysqld]
    max_allowed_packet=1024M
    server-id=2
    log-bin=mysql-bin
    binlog_format=row
    
    # 必须为FULL,MySQL-5.7后才有该参数
    binlog_row_image  = FULL
    expire_logs_days  = 15
    
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock
    
    symbolic-links=0
    
    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
    

    3.xtrabackup安装

    3.1 Xtrabackup介绍

    Xtrabackup中主要包含两个工具:
    xtrabackup:是用于热备innodb,xtradb表中数据的工具,不能备份其他类型的表,也不能备份数据表结构;
    innobackupex:是将xtrabackup进行封装的perl脚本,提供了备份myisam表的能力。

    #常用选项:  
       --host    		指定主机
       --user     		指定用户名
       --password  		指定密码
       --port   	    指定端口
       --databases    	指定数据库
       --incremental 	创建增量备份
       --incremental-basedir 	 指定包含完全备份的目录
       --incremental-dir   	     指定包含增量备份的目录   
       --apply-log        	     对备份进行预处理操作             
       --defaults-file=/etc/my.cnf  指定的备份数据的配置文件
    # 一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处理不一致状态。“准备”的主要作用正是通过回滚未提交的事务及同步已经提交的事务至数据文件也使得数据文件处于一致性状态。
       --redo-only      不回滚未提交事务
       --copy-back     恢复备份目录
    

    3.2 下载地址

    MySQL版本不同,对应的xtrabackup版本也不同,可以自己选择下载,注意选择Percona XtraBackup
    https://www.percona.com/downloads/

    3.3 安装

    方式一:通过yum安装,yum安装支持的版本是MySQL5.6.24,不知道是否支持5.7.

    yum install xtrabackup
     xtrabackup -v #查看版本
    

    注意安装的版本,如下提示即支持5.6
    xtrabackup version 2.3.6 based on MySQL server 5.6.24 Linux (x86_64) (revision id: )

    方式二:通过自己下载rpm包安装。
    由于我使用的MySQL是5.7版本的,所以使用该安装包。

    下载地址:
    wget https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.9/binary/redhat/7/x86_64/percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm
    
    yum -y install rsync perl l perl-Digest-MD5  #需要先安装依赖
    yum install  perl-DBD-MySQL # 视情况安装
    yum install libev           # 视情况安装
    rpm -ivh percona-xtrabackup-24-2.4.9-1.el7.x86_64.rpm
    

    4. 全量备份以及配置

    #全量备份主库
    innobackupex --defaults-file=/etc/my.cnf --socket=/var/lib/mysql/mysql.sock --user=root --password='root' --parallel=4  /root/mysql_back/
    
    #copy备份文件到从库主机
    scp -r mysql_back root@hadoop201:/root/mysql_back/
    
    #进入从库所在主机,停止从库,移除data目录
    systemctl stop mysqld
    cd /root/mysql_back/
    mv /var/lib/mysql /var/lib/mysql_old
    
    #应用日志
    innobackupex --use-memory=1G --apply-log /root/mysql_back/2022-09-22_00-18-44/
    
    #恢复数据到从库
    innobackupex --defaults-file=/etc/my.cnf --move-back /root/mysql_back/2022-09-22_00-18-44/
    
    #修改从库data目录属主,启动从库
    chown -R mysql:mysql /var/lib/mysql
    systemctl start mysqld
    
    

    如果启动systemctl start mysqld报错,查看日志信息:InnoDB: os_file_get_status() failed on './ibdata1'. Can't determine file permissions
    请检查vi /etc/selinux/config
    将SELINUX=enforcing 改为 SELINUX=disabled,设置后需要重启才能生效。
    临时生效办法:setenforce 0 #临时关闭,重启后又会打开。

    5. 主从配置

    #主库创建slave账号
    mysql -u root -p
    GRANT REPLICATION SLAVE ON  *.*  TO  'rep_user'@'%' IDENTIFIED BY 'rep_user';
    
    flush privileges;
    
    
    #从库操作,查看binlog位置,启动从库slave进程
    cat /root/mysql_back/2022-09-22_00-18-44/xtrabackup_binlog_info
    
    #启动从库slave进程
    mysql -u root  -p
    CHANGE MASTER TO MASTER_HOST='192.168.80.200',MASTER_PORT=3306, MASTER_USER='rep_user',MASTER_PASSWORD='rep_user',MASTER_LOG_FILE='mysql-bin.000013',MASTER_LOG_POS=924757;
    
    start slave;
    show slave status\G;
    
    

    6. 测试

  • 相关阅读:
    GB 51411-2020 金属矿山土地复垦工程设计标准
    GB/T 51413-2020 有色金属工业余热利用设计标准
    DL/T 1907.1-2018等最新电力行业标准
    GB 50205-2020 钢结构工程施工质量验收标准
    DL/T 5210.6-2019 电力建设施工质量验收规程 第6部分:调整试验
    GB/T 38640-2020 盲用数字出版格式
    GB 50325-2020 民用建筑工程室内环境污染控制标准(含条文说明)
    GB 50216-2019 铁路工程结构可靠性设计统一标准
    最新发布的国家标准下载(2020-5-21)
    bind、apply、call的区别
  • 原文地址:https://www.cnblogs.com/30go/p/16717791.html
Copyright © 2020-2023  润新知