我是靠谱客的博主 称心啤酒,最近开发中收集的这篇文章主要介绍innobackup备份恢复实操步骤--gtid复制(1)(1),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

  1. 首先在主库进行备份:

备份命令:

Innobackupex --defaults-file=/app/dbcluster/sgrdb/mysql/my19103.cnf --no-timestamp --user=dbscale --password=S6000@dbscale  --host=10.157.43.224  --port=19103  /data/backup

 

如果使用setsid:

setsid innobackupex --defaults-file=/data/mysql/my3390.cnf --no-timestamp --user=test   --password=test --host=172.16.90.233  --port=3390  /data/backup 2>backup.log &

 

2.接着执行apply-log,这一步可以在主库的服务器上执行也可以把备份集传输到从库服务器上之后,在从库服务器上再执行,我这里是在主库执行完成之后再传输到从库的:

innobackupex --apply-log  /data/backup

如果使用setsid:

setsid innobackupex --apply-log  /data/backup 2>apply.log &

 

 

(slave服务器上确认mysql是否关闭

先在slave上确保实例已经处于关闭状态(通过ps -ef | grep sgrdbd | grep 19103 来查看,输出为空表示已经关闭)

如果没有关闭数据库,需要先关闭数据库:

shell> cd /app/dbcluster/sgrdb/mysql/

shell> ./bin/sgrdbadmin -udbscale -p’密码’ -P19103 -h slaveip shutdown

关闭之后查看是否还有进程:

shell> ps -ef | grep sgrdbd

)

 

3.传输备份到从库,传输备份文件到从库有多种方法,这里介绍2种方法,二者选其一即可:

rsync:

rsync -avSH  /data/backup  172.16.90.234:/data/backup

其他使用方法参考:

http://newcity.blog.163.com/blog/static/21642904620151242639886/

Scp:

scp -r  /data/backup  10.157.43.223:/data/backup

 

4.备份文件传输到从库之后,直接在从库copy-back,或者把文件直接拷贝到从库的datadir下面,二者选其一即可:

copy-back方法:

innobackupex --defaults-file= /app/dbcluster/sgrdb/mysql/my19103.cnf--copy-back /data/backup

或者使用--move-back

innobackupex --defaults-file=/data/mysql/my3390.cnf --move-back /data/backup

 

手动copy方法:

cp -r /data/backup/*  /sdb1/mysqldata/sgb/data19103/

 

5.在从库修改数据目录权限:

chown -R sgrdb:sgrdb /sdb1/mysqldata/sgb/data19103

 

6.启动从库

cd $basedir

./bin/sgrdbadmin --defaults-file= /app/dbcluster/sgrdb/mysql/my19103.cnf--user=sgrdb &

 

7.根据备份信息修改change master to语句:

a.查看备份信息,xtrabackup_binlog_info文件中会有gtid的信息:

[root@mysql2 backup]# cat xtrabackup_binlog_info

my1binlog.000003        66563704        09c53004-6599-11e6-b3b8-525400aec7c7:1-920   

b.在从库修改、执行change master to语句,这里在执行change master to语句之前需要先在从库purge gtid的位置:

reset master;

set global gtid_purged='09c53004-6599-11e6-b3b8-525400aec7c7:1-920';

CHANGE MASTER TO master_host='10.157.43.224',master_port=19103,master_user='dbscale',master_password='S6000@dbscale',master_auto_position=1;

注意:

当备份的库之前是双主结构的从库,并且做过主从切换,gtid会有多组gtid的值,例如:

[mysql@db_slave1 data]$ cat xtrabackup_binlog_info

db_master2-bin.000427   388360834       ce70701f-dc1a-11e4-a375-5cf3fce7fd98:1-270900248,fb2934a4-dce8-11e4-a8b5-5cf3fce7f8c8:1-775393002

如果有多组的gtid值,在备份之后会在文件中显示,在purge gtid的时候需要把所有的组都purge,即:

SET GLOBAL gtid_purged="8bc8e42d-30f6-11ea-afa8-005056879c27:1-3595967,

ea7e8d1e-3139-11ea-b87f-00505687e26a:1-31750755";

 

8.最后在从库启动slave并且查看同步状态:

Start slave;

show slave statusG

 

最后

以上就是称心啤酒为你收集整理的innobackup备份恢复实操步骤--gtid复制(1)(1)的全部内容,希望文章能够帮你解决innobackup备份恢复实操步骤--gtid复制(1)(1)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(34)

评论列表共有 0 条评论

立即
投稿
返回
顶部