概述
- 首先在主库进行备份:
备份命令:
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 slave的ip 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)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复