最近在研究mysql的主從,發現一個問題,我在主庫做任何修改時,在從庫中只有slave_relay_log_info中的Master_log_pos在變化,而slave_master_info中的Master_log_pos竟然不發生變化
1. 首先看參數
(root@localhost)[mysql]> show variables like '%repository%';
+---------------------------+-------+
| Variable_name | Value |
+---------------------------+-------+
| master_info_repository | TABLE |
| relay_log_info_repository | TABLE |
+---------------------------+-------+
2. 通過官方文檔看這兩張表的定義
3. 看從庫的同步情況
4. 查看這兩張表的內容
5. 問題
可以看到slave_master_info中的Master_log_pos一直是154,而按照官方文檔的說明,它應該也是1051才對,這是什么原因呢。通過詢問摩天輪的大神,原來是這個參數sync_master_info搞的鬼。這個參數控制從庫多久更新一次slave_master_info,默認是10000,即每10000個events更新一次。