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.gz
xtrabackup --prepare --target-dir=/root/mysqlbak
mysql -hIP -uNAME -pPASS
mysql> stop slave;
从节点关闭mysql服务
systemctl stop mysqld
systemctl status mysqld
从节点清空数据目录
cd /var/lib/
mv mysql{,.bak}
从节点恢复数据
innobackupex --user=NAME --password=PASS --copy-back /root/mysqlbak
chown -R mysql.mysql /var/lib/mysql
systemctl start mysqld
设置从库同步
cd /root/mysqlbak
cat xtrabackup_binlog_info # 记录file 和pos
mysql -hIP -uNAME -pPASS
mysql> 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;