基于gtid复制主要操作记录

一、安装系统依赖包

  在主从上都要安装该依赖包。

yum -y install perl-DBI
yum -y install perl-DBD-MySQL
yum -y install perl-IO-Socket-SSL.noarch
yum -y install perl-Time-HiRes
yum -y install perl-TermReadKey
yum -y install perl-ExtUtils-MakeMaker
yum -y install perl-Digest-MD5
yum -y install cmake gcc gcc-c++ libaio libaio-devel automake autoconf bzr

二、安装xtrabackup工具

cd /opt/
wget https://www.percona.com/downloads/Percona-XtraBackup-LATEST/Percona-XtraBackup-8.0-7/binary/tarball/percona-xtrabackup-8.0.7-Linux-x86_64.libgcrypt145.tar.gz
tar -zxf percona-xtrabackup-8.0.-Linux-x86_64.libgcrypt145.tar.gz
cd /usr/local/
ln -s /opt/percona-xtrabackup-8.0.-Linux-x86_64 xtrabackup
ln -fs /opt/percona-xtrabackup-8.0.-Linux-x86_64/bin/* /usr/bin/
xtrabackup -v

三、在主库上创建复制账号

create user 'bk_user'@'%' identified WITH mysql_native_password by 'v9SimLKsIHpwzyOgVwlM' PASSWORD EXPIRE NEVER ;
GRANT BACKUP_ADMIN,SELECT, RELOAD, PROCESS, SUPER, LOCK TABLES, REPLICATION SLAVE, REPLICATION CLIENT, SHOW VIEW ON *.* TO 'bk_user'@'%';

四、主库全量备份

压缩备份命令:

xtrabackup --defaults-file=/data/mysql/mysql_3306/my_3306.cnf --host=10.10.146.28 --user=bk_user --password=v9SimLKsIHpwzyOgVwlM \
--port=3306 --backup --compress --compress-threads=8 --use-memory=4G --slave-info --parallel=8 --target-dir=/data/bak/data/ 2>>/data/bak/logs/bak.log
# 备份脚本
[root@bj-db-m1 scripts]# cat xtraback.sh
#!/bin/bash
# MySQL 端口
Ip_Host="10.10.146.28"
Port="" # 备份用户
User_Name="bk_user"
Pass_Word="v9SimLKsIHpwzyOgVwlM" Time=`date +%Y%m%d_%H%M%S` # 备份路径
BaseDIR="/data/bak"
Data_Bak="/data/bak/data" # 备份保留天数
Backup_Save_Days="" # 备份过程->Log文件
LogFILE="${BaseDIR}/logs/${Time}_info.log"
touch ${LogFILE} # 开始备份
Start_Time=`date +%Y%m%d_%H%M%S`
echo "Start-Time :${StartTime}" |tee -a ${LOGFILE}
echo "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" |tee -a ${LOGFILE} # 备份命令
# xtrabackup --defaults-file=/data/mysql/mysql_3306/my_3306.cnf --host=10.10.146.28 --user='bk_user' --password='v9SimLKsIHpwzyOgVwlM' --port= --backup --compress --compress-threads= --use-memory=4G --slave-info --parallel= --target-dir=/data/backup/
# xtrabackup --defaults-file=/data/mysql/mysql_3306/my_3306.cnf --host=${Ip_Host} --user=${User_Name} --password=${Pass_Word} --port=${Port} --backup --compress --compress-threads= --use-memory=4G --slave-info --parallel= --target-dir=${Data_Bak}/${Time} >>${LogFILE}
xtrabackup --defaults-file=/data/mysql/mysql_3306/my_3306.cnf --host=${Ip_Host} --user=${User_Name} --password=${Pass_Word} --port=${Port} --backup --compress --compress-threads=8 --use-memory=4G --parallel=8 --target-dir=${Data_Bak}/${Time} 2>>${LogFILE} # 结束备份
StopTime=`date +%Y%m%d_%H%M%S`
echo "Stop-Time :${StopTime}" |tee -a ${LOGFILE}
echo "++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" |tee -a ${LOGFILE} # 清除N天之前的备份
cd ${BASEDIR}
#/usr/bin/find -name "*.tar.gz" -mtime +${Backup_Save_Days} -exec rm {} \;
#/usr/bin/find -name "*info.log" -mtime +${Backup_Save_Days} -exec rm {} \;

五、备份文件传输至从库机器

/*
wget http://www.quicklz.com/qpress-11-linux-x64.tar
tar xvf qpress-11-linux-x64.tar
cp qpress /usr/bin # 如果无法下载,登录其官网,单独下载,再上传
*/
xtrabackup --defaults-file=/data/mysql/mysql_3306/my_3306.cnf --use-memory=4G --decompress --parallel= --remove-original --target-dir=/data/backup/ # 解压缩备份
xtrabackup --defaults-file=/data/mysql/mysql_3306/my_3306.cnf --prepare --use-memory=4G --parallel= --target-dir=/data/backup/ # 恢复数据
xtrabackup --defaults-file=/data/mysql/mysql_3306/my_3306.cnf --copy-back --use-memory=4G --parallel= --target-dir=/data/backup/ # 拷贝会目录所在,这里推荐使用--copy-back方式,因为我的my.cnf中的配置路径是分散的
chown -R mysql.mysql *

六、在从库中执行恢复

# 在从库上执行
rm -rf /data/mysql/mysql_3306/undolog/* /data/mysql/mysql_3306/data/* /data/mysql/mysql_3306/logs/mysql-bin*
xtrabackup --defaults-file=/data/mysql/mysql_3306/my_3306.cnf --use-memory=4G --decompress --parallel=8 --remove-original --target-dir=/data/m/20191029_155959
xtrabackup --defaults-file=/data/mysql/mysql_3306/my_3306.cnf --copy-back --use-memory=4G --parallel=8 --target-dir=/data/m/20191029_155959
chown -R mysql.mysql /data/mysql/mysql_3306/ # 修改server_id
# 启动数据库即可

七、配置同步复制

[root@bj-db-m2 data]# cat xtrabackup_info
uuid = 3d67d0cd-fa22-11e9-aa77-525400f4342d
name =
tool_name = xtrabackup
tool_command = --defaults-file=/data/mysql/mysql_3306/my_3306.cnf --host=10.10.146.28 --user=bk_user --password=... --port=3306 --backup --compress --compress-threads=8 --use-memory=4G --slave-info --parallel=8 --target-dir=/data/bak/data/20191029_155959
tool_version = 8.0.7
ibbackup_version = 8.0.7
server_version = 8.0.18
start_time = 2019-10-29 16:00:00
end_time = 2019-10-29 16:00:57
lock_time = 0
binlog_pos = filename 'mysql-bin.000018', position '', GTID of the last change '18026056-f574-11e9-9d03-525400f4342d:1-19494'
innodb_from_lsn = 0
innodb_to_lsn = 24342657453
partial = N
incremental = N
format = file
compressed = compressed
encrypted = N reset master SET @MYSQLDUMP_TEMP_LOG_BIN = @@SESSION.SQL_LOG_BIN;
SET @@SESSION.SQL_LOG_BIN= 0;
SET @@GLOBAL.GTID_PURGED='18026056-f574-11e9-9d03-525400f4342d:1-19494';
SET @@SESSION.SQL_LOG_BIN = @MYSQLDUMP_TEMP_LOG_BIN; # 或者在从库中直接执行: SET GLOBAL gtid_purged="18026056-f574-11e9-9d03-525400f4342d:1-19494"; change master to master_host='10.10.146.28', master_port=3306, master_user='repl', master_password='replpfhOTnWffQdQL3F3', master_auto_position = 1;
start slave;
show slave status\G;

至此完毕。

基于gtid复制主要操作记录的更多相关文章

  1. 深入MySQL复制(二):基于GTID复制

    相比传统的MySQL复制,gtid复制无论是配置还是维护都要轻松的多.本文对gtid复制稍作介绍. MySQL基于GTID复制官方手册:https://dev.mysql.com/doc/refman ...

  2. MySQL 5.7基于GTID复制的常见问题和修复步骤(二)

    [问题二] 有一个集群(MySQL5.7.23)切换后复制slave报1236,其实是不小心在slave上执行了事务导致 Got fatal error 1236 from master when r ...

  3. Mysql基于GTID复制模式-运维小结 (完整篇)

    先来看mysql5.6主从同步操作时遇到的一个报错:mysql> change master to master_host='192.168.10.59',master_user='repli' ...

  4. mysql之 MySQL 主从基于 GTID 复制原理概述

    一. 什么是GTID ( Global transaction identifiers ):MySQL-5.6.2开始支持,MySQL-5.6.10后完善,GTID 分成两部分,一部分是服务的UUid ...

  5. mysql之 mysql 5.6不停机主从搭建(一主一从基于GTID复制)

    环境说明:版本 version 5.6.25-log 主库ip: 10.219.24.25从库ip:10.219.24.22os 版本: centos 6.7已安装热备软件:xtrabackup 防火 ...

  6. MySQL 5.7基于GTID复制的常见问题和修复步骤(一)

    [问题一] 复制slave报错1236,是较为常见的一种报错 Got fatal error 1236 from master when reading data from binary log: ' ...

  7. Centos7.5部署MySQL5.7基于GTID主从复制+并行复制+半同步复制+读写分离(ProxySQL) 环境- 运维笔记 (完整版)

    之前已经详细介绍了Mysql基于GTID主从复制的概念,原理和配置,下面整体记录下MySQL5.7基于GTID主从复制+并行复制+增强半同步复制+读写分离环境的实现过程,以便加深对mysql新特性GT ...

  8. MYSQL 基于GTID的复制

    1.概述 从MYSQL5.6 开始,mysql开始支持GTID复制. 基于日志点复制的缺点: 从那个二进制日志的偏移量进行增量同步,如果指定错误会造成遗漏或者重复,导致数据不一致. 基于GTID复制: ...

  9. MySQL5.7 的GTID复制

    MySQL5.7 的GTID复制 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 在MySQL5.6之后其官方推出了GTID复制方式,和传统的基于bin log复制方式有所不同,接 ...

随机推荐

  1. ubuntu登录SYSU-SECURE

    1. 选中SYSU-SECURE网络连接. 2. 点击进入Wi-Fi 安全性选项卡. 3. 修改[认证(T)]项的值为[受保护的EAP(PEAP)]. 4. 连接成功.

  2. java:反射(Hibernate的雏形)

    * java.lang.Class类:Class类的实例表示正在运行的 Java 应用程序中的类和接口,没有构造方法. java反射机制是在运行状态中,对于任何一个类,都能够知道这个类的所有属性和方法 ...

  3. Kafka sender消息生产者

    1.pom文件引入Kafka依赖(我用的版本是2.2.2.RELEASE) <dependency> <groupId>org.springframework.kafka< ...

  4. JMeter接口测试印象篇(win10)

    参考博文1:https://www.cnblogs.com/suim1218/p/9257369.html 参考博文2:https://blog.csdn.net/u011541946/article ...

  5. #Java学习之路——基础阶段二(第十三篇)

    我的学习阶段是跟着CZBK黑马的双源课程,学习目标以及博客是为了审查自己的学习情况,毕竟看一遍,敲一遍,和自己归纳总结一遍有着很大的区别,在此期间我会参杂Java疯狂讲义(第四版)里面的内容. 前言: ...

  6. ros3。3教程 入门到高级

    115.com 目录route 基 础 篇(21课) 1 Ros简介 主要讲解ros的基础知识,让用户对ros有个大致了解,并对ros进行简单演示 语音视频 20分16秒   2 CDROM安装 主要 ...

  7. 第j九周学习总结暨第七周实验报告

    完成火车站售票程序的模拟. 要求: (1)总票数1000张: (2)10个窗口同时开始卖票: (3)卖票过程延时1秒钟: (4)不能出现一票多卖或卖出负数号票的情况. 一:实验代码 package d ...

  8. Codeforces Round #589 (Div. 2) (e、f没写)

    https://codeforces.com/contest/1228/problem/A A. Distinct Digits 超级简单嘻嘻,给你一个l和r然后寻找一个数,这个数要满足的条件是它的每 ...

  9. 洛谷 P3857 彩灯 题解

    题面 对于每一个开关,我们可以看成一个0/1串,初始是一个全部为0的串,要求经过这些开关的操作后,出现的不同的0/1串的个数 建模就是存在一些数,这些数异或起来是0(等价于没有操作).那么需要求一个集 ...

  10. Python 最常见的 170 道面试题全解析:2019 版

    Python 最常见的 170 道面试题全解析:2019 版 引言 最近在刷面试题,所以需要看大量的 Python 相关的面试题,从大量的题目中总结了很多的知识,同时也对一些题目进行拓展了,但是在看了 ...