今天是中秋节,吃完晚饭后想起来还有几套mysql复制没有作完,因而打开电脑开始了工做:mysql
若是你的mysql数据库有几百G甚至是T级别,要作mysql复制环境,那xtrabackup确定是首先,下面是步骤供参考:sql
1.建立备份:数据库
innobackupex --defaults-file=/etc/my.cnf -uroot -pxxxxx --slave-info /backupapp
或者:
innobackupex --defaults-file=/etc/my.cnf -uroot -pxxx /backupsocket
若是不想生成日期格式文件指定--no-timestamp:ide
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.gzip
2.scp到远程的机器:get
scp -r 2018-09-24_12-41-44/ root@192.168.52.100:/backupit
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。