测试环境有台主从同步的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
到此,完成了从节点的剔除。全部过程都在 从节点 上执行。