1. 程式人生 > >數據庫 之 Mysql復制的監控和維護

數據庫 之 Mysql復制的監控和維護

清理 nds 需要 命令 -c 自動更新 概率 sla cond

(1) 清理日誌:

PURGE ,刪除二進制文件,不能直接物理刪除,否則重啟mysql服務可能會導致各種異常,需要使用命令PURGE進行刪除,因為mysql重啟後,就不會再找對應的文件,使用purge命令刪除會自動更新索引文件,下次mysql重啟時,就不會找對應的二進制文件

PURGE { BINARY | MASTER } LOGS { TO 'log_name' | BEFORE datetime_expr };

TO表示到該二進制文件之前的,不包括該二進制文件,都會被清除

或者,BEFORE某個時間,則到該時間之前的二進制日誌文件都會被刪除,如果這個時間恰好是某個二進制文件中間的某個時間點,那麽也會把這個文件的該時間點之前的日誌都刪掉,但是該日誌的該時間點後的日誌不會被清除。

二進制日誌一定不能刪除,用來恢復數據,如果一定要刪除,建議復制二進制文件到其他機器上,然後再用purge命令刪除本機上的二進制文件

查找當前的二進制文件內容

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按位復制,數據不一致的概率小


數據庫 之 Mysql復制的監控和維護