數據庫 之 Mysql複製的監控和維護

(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按位複製,數據不一致的機率小

相關文章
相關標籤/搜索