阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

使用innobackup实现 基于GTID的从库搭建

267次阅读
没有评论

共计 1821 个字符,预计需要花费 5 分钟才能阅读完成。

对于较大的数据库,我们一般都是使用 innobackup 进行备份,备份的及恢复的速度更快。

试验环境:
  CentOS6.8 x86_64
  MySQL5.6.34 社区 rpm 版
  xtrabackup 版本:percona-xtrabackup-24-2.4.5-1.el6.x86_64.rpm
  主库:node0 192.168.2.10(需要安装 xtrabackup 和 lz4)

  从库:node1 192.168.2.11(需要安装 xtrabackup 和 lz4)

5.6 下 GTID 复制必须配的参数(主库和从库都要加上这 3 行参数):
  gtid-mode=ON
  enforce_gtid_consistency = ON
  log_slave_updates=ON

step1、在从库创建备份文件的存放目录:
mkdir /tmp/db_restore

step2、在主库执行备份(最好开个 screen 操作,防止网络中断的问题),直接导出到从库机器上:
## 注意这里我们还需要提前在 2 台机器上安装 lz4 压缩工具,因为我们的脚本会调用 lz4 压缩和解压备份文件
innobackupex –user=root \

–password=123456  \
–parallel=4 \
–socket=/tmp/mysql.sock \
–no-timestamp \
–stream=xbstream . |\
lz4 -B4 |\
ssh node1 \
“cat – | lz4 -d -B7 | xbstream -x -C /tmp/db_restore”

step3、在从库 node1 上看下 主库的 gtid 位置
cd /tmp/db_restore
cat  xtrabackup_binlog_info 内容如下:

mysql.000008      1949     013bfb27-2edd-11e7-89c7-000c296a2c0d:1-72

为了便于理解,我们去主库查看下对应时间段的 binlog,截图如下:

使用 innobackup 实现 基于 GTID 的从库搭建

补充:xtrabackup_binlog_info 内容解读:
mysql.000008 表示主库的 binlog 文件名,1949 是尚未执行的 binlog position(就是说我们使用传统 change master 模式的时候 MASTER_LOG_FILE=’master2-bin.001′,MASTER_LOG_POS=1949)。
013bfb27-2edd-11e7-89c7-000c296a2c0d:1-72 指的是已经执行完的 GTID 编号(就是说我们 change master 的时候需要先执行 set global gtid_purged=’013bfb27-2edd-11e7-89c7-000c296a2c0d:1-72′;  来 purge 掉这些 GTID)。

step4、在从库上将上一步获取到的这些 gtid purge 掉,因为这些实际上已经执行过了。
set global gtid_purged=’013bfb27-2edd-11e7-89c7-000c296a2c0d:1-72′;   
如果提示 ERROR 1840 (HY000): @@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_EXECUTED is empty. 则需要执行下 reset master;

step5、配置并启动复制:
CHANGE MASTER TO MASTER_HOST=’192.168.2.10′,
 MASTER_USER=’rpl’,
 MASTER_PASSWORD=’rpl’,
 MASTER_PORT=3306,
 MASTER_AUTO_POSITION=1;
 
start slave;
show slave status\G

然后可以在主库的 test 库下尝试创建几个表,验证下复制是否正常。

待确认的问题:
对于某些版本的 innobackup,备份出的 xtrabackup_binlog_info 里面只有 mysql.000008  1949,而不带 GTID 编号。那么我们执行 purge 的时候就要根据 binlog pos 1949 这个位置到主库的 binlog 去找到它上一个的 gtid 编号(例如上图的就是 013bfb27-2edd-11e7-89c7-000c296a2c0d:72)。或者使用传统模式的复制,不用 GTID 复制即可。

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-05/143441.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-22发表,共计1821字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中