今天是中秋节,吃完晚饭后想起来还有几套mysql复制没有做完,于是打开电脑开始了工作:

如果你的mysql数据库有几百G甚至是T级别,要做mysql复制环境,那xtrabackup肯定是首先,下面是步骤供参考:


1.创建备份:

innobackupex --defaults-file=/etc/my.cnf -uroot -pxxxxx --slave-info    /backup

或者:
innobackupex --defaults-file=/etc/my.cnf -uroot -pxxx   /backup

如果不想生成日期格式文件指定--no-timestamp:

innobackupex --defaults-file=/etc/my.cnf -uroot -pxxx --no-timestamp  /backup


使用压缩备份:
innobackupex --defaults-file=/etc/my.cnf -uroot -pxxxx  --stream=tar /tmp |gzip >  /backup/full20190219.tar.gz
解压:
tar -xizf shard120190219.tar.gz

2.scp到远程的机器:

scp  -r   2018-09-24_12-41-44/  [email protected]:/backup

3.应用日志:
# innobackupex --apply-log /backup/2018-09-24_12-41-44/

4.如果机器的空间不足可以选择不使用--copy-back ,而使用--move-back,而且--move-back的速度更快:
/usr/bin/innobackupex  --copy-back  /backup/2018-09-24_12-41-44/

也可也使用--move-back
innobackupex --defaults-file=/etc/my.cnf  --move-back --rsync  /backup/2018-09-24_12-41-44/

5.修改权限:

如果使用root进行恢复,则修改相应的目录权限:

# chown mysql:mysql -R mysql
  su - mysql
 
5.启动数据库:

mysqld_safe --defaults-file=/etc/my.cnf  --user=mysql &

关闭数据库:

mysqladmin -uroot --socket=/tmp/mysql.sock --port=3306   shutdown -p

6.创建slave,pos和日志可以从xtrabackup_info文件中找:
CHANGE MASTER TO MASTER_HOST='192.168.52.99',MASTER_PORT=3306,MASTER_USER='repl',MASTER_PASSWORD='rep#48passw',MASTER_LOG_FILE='mysql-bin.000007',MASTER_LOG_POS=95998982;

7.注意事项:

如果你的mysql做了双主复制或者是做级联复制,不想mysql启动的时候也启动复制,可以设置参数skip-slave-start = 1,这样mysql在启动的时候就不会自动启动复制,等配置好复制环境后再设置

skip-slave-start = 0。