博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mysqlbackup 重建带有gtid特性的slave
阅读量:6212 次
发布时间:2019-06-21

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

一、mysqlbackup简介:

  mysqlbackup是mysql的一个企业级备份工具,优点就是牛逼,缺点就是这东西要钱买。

 

二、gtid 特性简介:

  gtid 的中文名叫全局事务ID,也就是说每一个事务都会对应一个全局唯一的编号;由于这个编号也会被写入到binlog

  只要slave把自己的已经应用的gitd发给master, master就能知道slave同步到了二进制日志的那个位置。也就是说之前

  的master_log_file,master_log_pos被革命了。

 

三、重建slave大致上要分如下几步:

  1、备份master

  2、传输备份到slave主机

  3、确保slave已经停止,数据目录已经清空

  4、还原备份

  5、建立主从关系,启动复制

 

四、备份master:

  1、备份脚本

mysqlbackup --defaults-file=/etc/my.cnf --backup-dir=/tmp/ --with-timestamp \  --host=127.0.0.1 --port=3306 --user=mebuser --password='Pass@352' \  --compress --skip-binlog --skip-relaylog --limit-memory=1024 \  --read-threads=4 --process-threads=8 --write-threads=4  \  --backup-image=/tmp/$(date +'%F_%H-%M-%S').mbi \  backup-to-image

  2、注意事项

    --no-locking 这个选择使得mysqlbackup在备份的最后阶段不锁表,这样就得不到一个全局一致的备份;之所以说是全局一致是

    是因为对于innodb表来说是一致的,因为在还原的时候会前滚回滚,但是MyIASM表就不能保证一致了;所以这种情况下mysqlbackup

    得不到一个正确的binlog位置,这样做重建是有问题的。

  3、性能优化项:

    --read-threads --write-threads 如果你的磁盘性能比较牛逼就调大这两个参数

    --process-threads                    如果你的cpu性能比较牛逼就调大这个上参数

    --limit-memory                         如果你的内存比较空闲就调大这个上参数

 

五、传输备份到slave: 

scp 2017-08-29_16-23-16.mbi root@172.16.192.111:/tmp/

 

六、停止slave 并清空它的数据目录:

systemctl stop mysqlmv /database/mysql/data/3306 /database/mysql/data/3306.backup.20170829mkdir -p /database/mysql/data/3306/

 

七、还原备份:

  1、还原脚本

mysqlbackup --defaults-file=/etc/my.cnf --backup-dir=/tmp/meb --with-timestamp --backup-image=/tmp/2017-08-29_16-23-16.mbi \    --datadir=/database/mysql/data/3306/  --uncompress copy-back-and-apply-log

  2、还原后的数据目录内容

ll /database/mysql/data/3306/total 110656-rw-r--r--. 1 root root      302 Aug 29 16:43 backup_gtid_executed.sql # 记录着gtid相关信息-rw-r--r--. 1 root root      568 Aug 29 16:43 backup_variables.txt-rw-r--r--. 1 root root      383 Aug 29 16:43 ib_buffer_pool-rw-r--r--. 1 root root 12582912 Aug 29 16:43 ibdata1-rw-r-----. 1 root root 50331648 Aug 29 16:43 ib_logfile0-rw-r-----. 1 root root 50331648 Aug 29 16:43 ib_logfile1drwxr-x---. 2 root root     4096 Aug 29 16:43 mysqldrwxr-x---. 2 root root     8192 Aug 29 16:43 performance_schema-rw-r--r--. 1 root root    15623 Aug 29 16:43 server-all.cnf-rw-r--r--. 1 root root     4555 Aug 29 16:43 server-my.cnfdrwxr-x---. 2 root root     8192 Aug 29 16:43 sys

  3、修改数据目录的权限

chown -R mysql:mysql /database/mysql/data/3306

 

八、启动slave并配置复制:

   1、启动slave

systemctl start mysql

  2、更新slave上gtid信息

reset master;set sql_log_bin=0;source /database/mysql/data/3306/backup_gtid_executed.sql

  3、配置复制

change master to    master_user='repl',    master_password='xxxxxxxx',    master_host='172.16.192.110',    master_port=3306,    master_auto_position=1;start slave;

  4、查看复制的状态

show slave status \G*************************** 1. row ***************************               Slave_IO_State: Waiting for master to send event                  Master_Host: 172.16.192.110                  Master_User: repl                  Master_Port: 3306                Connect_Retry: 60              Master_Log_File: mysql-bin.000004          Read_Master_Log_Pos: 3206               Relay_Log_File: clusterb-relay-bin.000002                Relay_Log_Pos: 626        Relay_Master_Log_File: mysql-bin.000004             Slave_IO_Running: Yes            Slave_SQL_Running: Yes

 

总结:

  用mysqlbackup重建带有gtid特性的slave的过程大致就是上面这个样子了,这里并没有对mysqlbackup有过多的讲解,

  官方文档见:

 

 

 

交流学习

----

 

转载于:https://www.cnblogs.com/JiangLe/p/7448648.html

你可能感兴趣的文章
图片全屏轮播插件poposlides
查看>>
python进程注入shellcode
查看>>
推荐:采用 F5 AS3 的配置即代码
查看>>
杨老师课堂之JavaScript定时器_农夫山泉限时秒杀案例
查看>>
构建生产环境可用的高可用kubernetes集群
查看>>
软技能:开启程序员的职场“破冰之旅”
查看>>
《TCP IP 详解卷1:协议》阅读笔记 - 第十章
查看>>
阿里云 Code Pipeline 体验
查看>>
Android国际化:资源+初始化+系统适配
查看>>
大华股份殷俊:AI安防进入成熟期后,“产品应用体验”的价值显然大于技术...
查看>>
如何安全存储口令?了解下Hash加盐的原理
查看>>
阿里云服务器被挖矿怎么解决
查看>>
桌面云+企业云盘,超完美的桌面数据存储管理解决方案
查看>>
java B2B2C 多级分销多租户电子商城系统-单点登录(SSO)简介
查看>>
DPDK学习总结(一)简介
查看>>
jQuery动画---自定义动画animate()
查看>>
物联网要点深入浅出
查看>>
【开发】TensorFlow2.0新特性
查看>>
MPAndroidChart 教程:Y轴 YAxis
查看>>
JS进阶篇--JS数组reduce()方法详解及高级技巧
查看>>