(1) 清理日誌:mysql
PURGE ,刪除二進制文件,不能直接物理刪除,不然重啓mysql服務可能會致使各類異常,須要使用命令PURGE進行刪除,由於mysql重啓後,就不會再找對應的文件,使用purge命令刪除會自動更新索引文件,下次mysql重啓時,就不會找對應的二進制文件
sql
PURGE { BINARY | MASTER } LOGS { TO 'log_name' | BEFORE datetime_expr };服務器
TO表示到該二進制文件以前的,不包括該二進制文件,都會被清除ide
或者,BEFORE某個時間,則到該時間以前的二進制日誌文件都會被刪除,若是這個時間剛好是某個二進制文件中間的某個時間點,那麼也會把這個文件的該時間點以前的日誌都刪掉,可是該日誌的該時間點後的日誌不會被清除。工具
二進制日誌必定不能刪除,用來恢復數據,若是必定要刪除,建議複製二進制文件到其餘機器上,而後再用purge命令刪除本機上的二進制文件spa
查找當前的二進制文件內容日誌
MariaDB [sunnydb]> show binary logs;索引
+-------------------+-----------+資源
| Log_name | File_size |同步
+-------------------+-----------+
| master-log.000001 | 542 |
| master-log.000002 | 468 |
| master-log.000003 | 1045 |
| master-log.000004 | 1296 |
+-------------------+-----------+
如清除master-log.000003 即清除master-log.000002 和master-log.000001的二進制log,命令以下
MariaDB [sunnydb]> purge binary logs to 'master-log.000003';
(2) 複製監控命令
查看複製相關的狀態和文件的命令
MASTER:
查看當前用哪一個二進制文件,以及當前二進制文件的位置
SHOW MASTER STATUS;
查看二進制文件的記錄
SHOW BINLOG EVENTS;
查看全部的二進制文件和文件大小
SHOW BINARY LOGS;
SLAVE:
查看從服務器的狀態數據
SHOW SLAVE STATUS\G;
判斷從服務器是否落後於主服務器的時間:
Seconds_Behind_Master: 0
(3) 如何肯定主從節點數據是否一致?
經過表的CHECKSUM檢查,表建立時能夠啓用checksum功能,可是,一旦啓用該功能,每一次更改表的信息都會計算表的校驗碼,消耗資源;
建議使用percona-tools中percona-toolkit 的功能 pt-table-checksum;計算出主從服務器上表的校驗和,並進行比較。percona-toolkit 還能夠檢查各類系統指標
(4) 主從數據不一致時的修復方法?
從新複製;
若是不一樣步的量不多,能夠直接手動修改數據便可
注意,工具PXC按位複製,數據不一致的機率小