测试环境有台主从同步的MariaDB 为了清理空间停止集群,使用单点。
1. 备份:
mysqldump -uroot -p123456 -A -R --triggers --single-transaction | gzip > /root/all_$(date +%F-%H-%M-%S).sql.gz
参数说明:
-A:全备
-R:导出存储过程以及自定义函数。
--single-transaction:该选项在导出数据之前提交一个BEGIN SQL语句,BEGIN 不会阻塞任何应用程序且能保证导出时数据库的一致性状态。
它只适用于多版本存储引擎(它不显示加锁通过判断版本来对比数据),仅InnoDB。本选项和--lock-tables 选项是互斥的,
因为LOCK TABLES 会使任何挂起的事务隐含提交。要想导出大表的话,应结合使用--quick 选项。
2. 【从节点开始操作】
开始停止从节点:
MariaDB [(none)]> show slave status \G;
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.118.11
Master_User: backup
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin-master.000001
Read_Master_Log_Pos: 7550
Relay_Log_File: mariadb-relay-bin.000002
Relay_Log_Pos: 7841
Relay_Master_Log_File: mysql-bin-master.000001
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
MariaDB [(none)]> stop slave;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> show slave status \G;
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: 192.168.118.11
Master_User: backup
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysql-bin-master.000001
Read_Master_Log_Pos: 7550
Relay_Log_File: mariadb-relay-bin.000002
Relay_Log_Pos: 7841
Relay_Master_Log_File: mysql-bin-master.000001
Slave_IO_Running: No
Slave_SQL_Running: No
MariaDB [(none)]> reset slave;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> show slave status \G;
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: 192.168.118.11
Master_User: backup
Master_Port: 3306
Connect_Retry: 60
Master_Log_File:
Read_Master_Log_Pos: 4
Relay_Log_File: mariadb-relay-bin.000001
Relay_Log_Pos: 4
Relay_Master_Log_File:
Slave_IO_Running: No
Slave_SQL_Running: No
3. 关闭从节点
systemctl stop mariadb
到此,完成了从节点的剔除。全部过程都在 从节点 上执行。
原文:https://www.cnblogs.com/hukey/p/12849259.html