一、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= --user=mebuser --password='Pass@352' \
--compress --skip-binlog --skip-relaylog --limit-memory= \
--read-threads= --process-threads= --write-threads= \
--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 --29_16--.mbi root@172.16.192.111:/tmp/

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

systemctl stop mysql
mv /database/mysql/data/ /database/mysql/data/.backup.
mkdir -p /database/mysql/data//

七、还原备份:

  1、还原脚本

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

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

ll /database/mysql/data//
total
-rw-r--r--. root root Aug : backup_gtid_executed.sql # 记录着gtid相关信息
-rw-r--r--. root root Aug : backup_variables.txt
-rw-r--r--. root root Aug : ib_buffer_pool
-rw-r--r--. root root Aug : ibdata1
-rw-r-----. root root Aug : ib_logfile0
-rw-r-----. root root Aug : ib_logfile1
drwxr-x---. root root Aug : mysql
drwxr-x---. root root Aug : performance_schema
-rw-r--r--. root root Aug : server-all.cnf
-rw-r--r--. root root Aug : server-my.cnf
drwxr-x---. root root Aug : sys

  3、修改数据目录的权限

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

八、启动slave并配置复制:

  1、启动slave

systemctl start mysql

  2、更新slave上gtid信息

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

  3、配置复制

change master to
master_user='repl',
master_password='xxxxxxxx',
master_host='172.16.192.110',
master_port=,
master_auto_position=; 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有过多的讲解,

  官方文档见:MySQL Enterprise Backup 4.1

交流学习

----

mysqlbackup 重建带有gtid特性的slave的更多相关文章

  1. How to create/restore a slave using GTID replication in MySQL 5.6

    MySQL 5.6 is GA! Now we have new things to play with and in my personal opinion the most interesting ...

  2. 与MySQL传统复制相比,GTID有哪些独特的复制姿势?

    与MySQL传统复制相比,GTID有哪些独特的复制姿势? http://mp.weixin.qq.com/s/IF1Pld-wGW0q2NiBjMXwfg 陈华军,苏宁云商IT总部资深技术经理,从事数 ...

  3. MYSQL 5.7 主从复制 -----GTID说明与限制 原创

    http://www.cnblogs.com/cenalulu/p/4309009.html http://txcdb.org/2016/03/%E7%B3%BB%E7%BB%9F%E8%A1%A8- ...

  4. MySQL 5.6 复制:GTID 的优点和限制(第一部分)

    全局事务标示符(Global Transactions Identifier)是MySQL 5.6复制的一个新特性.它为维护特定的复制拓扑结构下服务器的DBA们大幅度改善他们的工作状况提供了多种可能性 ...

  5. 阿里云ECS服务器上搭建keepalived+mha+mysql5.6+gtid+一主两从+脚本判断架构踩的坑

    最近,公司项目搭建了一套后端数据库架构,不是在RDS,是在阿里云的ECS服务器上搭建keepalived.mha.mysql5.6.gtid.一主两从架构,目前还没有实现读写分离,以后架构升级,可能代 ...

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

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

  7. MySQL 5.6 GTID Replication

    一. MySQL 5.6引入了GTID的概念,那么GTID是何方神圣?其实也不复杂,就是一个全局事务标示符.使用GTID时,每次事务提交都会在binlog里生成1个唯一的标示符,它由UUID和事务ID ...

  8. MySQL5.6 GTID Replication

    MySQL 5.6 的新特性之一,是加入了全局事务 ID (Global Transaction ID) 来强化数据库的主备一致性,故障恢复,以及容错能力.官方文档:http://dev.mysql. ...

  9. MySQL 5.6 GTID Replication【转】

    一. MySQL 5.6引入了GTID的概念,那么GTID是何方神圣?其实也不复杂,就是一个全局事务标示符.使用GTID时,每次事务提交都会在binlog里生成1个唯一的标示符,它由UUID和事务ID ...

随机推荐

  1. libsvm svmtrain函数运行出错问题

    我安装的是matlab R2013a   安装上libsvm后需要设置set path 为libsvm的所有文件夹加载上,但是发现每次重新打开之后,之前加载的又不见了,所有导致出现,使用svmsrai ...

  2. OpenFace库(Tadas Baltrusaitis)中基于Haar Cascade Classifiers进行人脸检測的測试代码

    Tadas Baltrusaitis的OpenFace是一个开源的面部行为分析工具.它的源代码能够从 https://github.com/TadasBaltrusaitis/OpenFace 下载. ...

  3. Mapnik读取PostGIS数据渲染图片

    __author__ = 'Administrator' # encoding: utf-8 import sys import datetime import mapnik m = mapnik.M ...

  4. T-SQL 之 游标

    游标是面向行的,它会使开发人员变懒,懒得去想用面向集合的查询方式实现某些功能. 在性能上,游标会占有更多的内存,减少可用的并发,占用带宽,锁定资源,当然还有更多的代码量. 用一个比喻来说明为什么游标会 ...

  5. PG里如何查看表,索引,表空间,数据库大小

    --查询一个索引大小 select pg_size_pretty(pg_relation_size('indexname)) --查看一张表及此它上的索引总大小select pg_size_prett ...

  6. tail 命令(转)

    原文:http://www.cnblogs.com/peida/archive/2012/11/07/2758084.html ail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可 ...

  7. 简单分页查询(web基础学习笔记十三)

    一.建立资源文件和工具类 1.1 .database.properties jdbc.driver_class=oracle.jdbc.driver.OracleDriver jdbc.connect ...

  8. Oracle function实现根据输入的日期以及天数,获取此日期之后的天数的工作日

    前提:在法定节日表(t_fdjr )中维护法定节日包括周六周天 /** * 功能描述:根据输入的日期以及天数,获取此日期之后的天数的工作日 * 输入参数: * i_date YYYY-MM-DD * ...

  9. 如何:在 DHTML 代码和客户端应用程序代码之间实现双向通信

    https://msdn.microsoft.com/zh-cn/library/a0746166 可以使用 WebBrowser 控件向 Windows 窗体客户端应用程序添加现有的动态 HTML ...

  10. 如何在hosts文件添加自己想要解析的网站?及修改hosts的作用

    http://union.zhuna.cn/help/144.asp 在Windows2003/XP系统中位于C:\Winnt\System32\Drivers\Etc 目录中,找到host文件. 首 ...