[TOC]
已有主库需要持续为用户提供服务,因此不能够停机或者重启,所以需要采用热备份的方式创建一个当前数据库的副本。
innobackupex --user=root --password=PASSWORD --no-timestamp /data/backup/20190314/
innobackupex 实际上是个perl脚本,封装了 xtrabackup 程序的使用,安装执行:
yum install -y percona-xtrabackup
备份完成后,打包传输到从库所在服务器
tar -zcvf 20190314.tar.gz ./20190314
scp 20190314.tar.gz root@xx.xx.xx.xx:/data
在从库所在服务器(xx.xx.xx.xx)上面,解压该压缩包
cd /data
tar -zxvf 20190314.tar.gz
innobackupex --apply-log ./20190314
注意图中红框中的内容,这部分内容非常关键,记录了当前的binlog文件名称和偏移量。后面我们创建主从关系的时候需要用到,当前文件名为 mysql-bin.000001
,偏移量为 369472581
。
innobackupex --copy-back ./20190314
该命令会根据mariadb配置文件 my.cnf,将备份文件还原到mariadb数据目录,比如 /data/mysql
根据数据库的大小,经过漫长的等待,都是类似的文件拷贝...
执行备份恢复之后,需要修复文件权限
chown -R mysql:mysql /data/mysql
恢复完成后,启动mariadb
systemctl start mysql
登录到mariadb
mysql -uroot -p
创建主从同步
mysql> CHANGE MASTER TO MASTER_HOST='master服务器ID',
MASTER_USER='复制用户',
MASTER_PASSWORD='复制用户密码',
MASTER_LOG_FILE='mysql-bin.000001',
MASTER_LOG_POS=369472581;
mysql> START SLAVE;
最后,查看主从同步状态
mysql> SHOW SLAVE STATUS\G;