目录
1.用innobackupex物理备份主库数据至文件夹
2.在从库用innobackupex恢复数据库
3.配置主从并启动从库
innobackupex是一款MySQL备份工具,备份速度快(通过直接copy物理文件),而且支持压缩、流式传输、加密等功能
新安装的数据库自带innobackupex,如果找不到命令,需安装percona-xtrabackup-24-2.4.20-1.el7.x86_64.rpm
若遇到问题,请查看MySQL备份工具 Xtrabackup安装_J-贾的博客-CSDN博客
1.用innobackupex物理备份主库数据至文件夹
-
主库创建授权备份用户
GRANT SELECT, RELOAD, PROCESS, SUPER, REPLICATION CLIENT ON *.* TO '用户名'@'localhost' IDENTIFIED by "密码";
grant replication slave on *.* to 用户名@'%' identified by '密码';
-
执行备份
innobackupex --defaults-file=/export/servers/data/my3306/my.cnf --user=备份用户名 --password=备份密码 --slave-info 备份名称(all_bak)
-
将备份数据推送到从库
scp -rpq all_bak 从库IP:/export/servers/data/mybackup/
2.在从库用innobackupex恢复数据库
-
还原之前从库必须先进行停服
/etc/init.d/mysql3306.server stop
-
检查从库此目录下是否有传过来的数据
/export/servers/data/mybackup/2022-08-18_17-12-46
-
清空从库/export/servers/data/my3306/目录下的data、ibdata、iblog目录内容
-
Prepare准备,通过回滚未提交的事务及同步已经提交的事务至数据文件数据文件处于一致性状态
innobackupex --defaults-file=/export/servers/data/my3306/my.cnf --user=root --apply-log /export/servers/data/mybackup/备份目录
-
还原数据,原理即拷贝数据文件至data目录:
innobackupex --defaults-file=/export/servers/data/my3306/my.cnf --user=root --copy-back /export/servers/data/mybackup/备份目录
3.配置主从并启动从库
-
对导入的数据目录授权
chown -R mysql:myinstall /export/servers/data/my3306
-
启动数据库,登录账号密码同主库
/etc/init.d/mysql3306.server start
-
登录数据库,设置主从同步
/export/servers/app/mysql-5.7.22/bin/mysql -p -S /export/servers/data/my3306/run/mysqld.sock 输入密码后 进入mysql
mysql> stop slave;
mysql> reset master;
mysql> reset slave all;
mysql>change master to master_host='主节点IP',master_port=3306,master_user='主节点创建的用户',master_password='密码',MASTER_LOG_FILE='mysql-bin位置',MASTER_LOG_POS=日志位置;
mysql> start slave;
mysql> show slave status\G
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
注意:binlog及position信息从备份文件xtrabackup_info中获取