mysqldump备份恢复
主节点锁表
mysql> flush tables with read lock;mysql> show master status; # 记录file和pos;
主节点备份
mysqldump -hIP -uNAME -pPASS --add-drop-table --routines --events --all-databases --force > all-databases.sql
拷贝备份文件到从节点
scp all-databases.sql IP:/root/
从节点停止slave
mysql> stop slave;
从节点导入备份sql文件
mysql -hIP -uNAME -pPASS < all-databases.sql
设置从库同步
change master to master_host='IP',master_port=3306,master_user='repl',master_password='PASS',master_log_file='mysql-bin.000002',master_log_pos=6557;
从节点启动slave
mysql> start slave;
从节点查看slave状态
mysql> show slave status \G;
主节点解锁
mysql> unlock tables;
xtrabackup备份恢复
主节点备份数据
xtrabackup --user=NAME --password=PASS --backup --datadir=/var/lib/mysql/ --target-dir=/root/mysqlbak/tar -czvf mysqlbak.tar.gz /root/mysqlbak/scp mysqlbak.tar.gz 从IP:/root/
从节点关闭slave
tar -xvf mysqlbak.tar.gzxtrabackup --prepare --target-dir=/root/mysqlbakmysql -hIP -uNAME -pPASSmysql> stop slave;
从节点关闭mysql服务
systemctl stop mysqldsystemctl status mysqld
从节点清空数据目录
cd /var/lib/mv mysql{,.bak}
从节点恢复数据
innobackupex --user=NAME --password=PASS --copy-back /root/mysqlbak chown -R mysql.mysql /var/lib/mysqlsystemctl start mysqld
设置从库同步
cd /root/mysqlbakcat xtrabackup_binlog_info # 记录file 和posmysql -hIP -uNAME -pPASSmysql> change master to master_host=IP,master_port=3306,master_user='repl',master_password=PASS,master_log_fil e=FILE,master_log_pos=POS;mysql> start slave;
从节点查看slave 状态
mysql> show slave status \G;