測試環境有台主從同步的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
到此,完成了從節點的剔除。全部過程都在 從節點 上執行。
