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