一. 背景介绍
线上数据库从库挂掉,所以重新安装并重新同步
二. 主库备份
- 登录主库
登录主库,输入以下命令并输入密码
$ mysql -u root -p
- 锁表
锁表后数据库不能写入数据,操作需谨慎。
$ FLUSH TABLES WITH READ LOCK;
- 备份全部数据库
退出登录并导出全部的数据库,同时压缩一下便于传输。
$ mysqldump -u root -p --all-databases > bak.sql | gzip > bak.sql.gz
- 查看主库Binlog文件和位置
登录主库并查看信息
$ mysql -u root -p
$ show master status;
显示信息如下
+---------------+----------+--------------+------------------+-------------------+
| File | | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+---------------+----------+--------------+------------------+-------------------+
| binlog.000024 | 11632560 | | | |
+---------------+----------+--------------+------------------+-------------------+
1 row in set (0.01 sec)
- 主库解锁
$ UNLOCK TABLES;
三. 从库恢复
- 传输备份文件并解压
gunzip bak.sql.gz
- 恢复数据
重新安装从库,并恢复数据
$ mysql -u root -p < bak.sql
- 登录从库并开启从库同步
主库IP是 198.168.0.2
, 同步用户是zqyu_rpl
, 密码是123456
, MASTER_LOG_FILE
和 MASTER_LOG_POS
是主库中使用 show master status;
查看到的信息。
$ CHANGE MASTER TO MASTER_HOST='198.168.0.2', MASTER_USER='zqyu_rpl', MASTER_PASSWORD='123456',MASTER_LOG_FILE='binlog.000024', MASTER_LOG_POS=11632560;
- 开启从库同步
start slave;
使用下面命令查看从库同步状态
show slave status\G;
确认属性如下即可
Slave_IO_Running: Yes # 或者 Connecting
Slave_SQL_Running: Yes
- 其它命令
重置从库同步的命令
$ stop slave; # 停止从库同步
$ reset slave; # 重置
$ start slave; # 开启
网友评论