MySQL:show slave status 關鍵值和MGRrelay log的清理策略
MySQL:show slave status 關鍵值和MGRrelay log的清理策略
2018.11.27 16:13* 字數 437 閱讀 7 評論 0 喜歡 0
簡單記錄一下,有朋友問 @richard
一、show slave status關鍵值
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event (IO THREAD狀態)
Master_Host: 192.168.99.42(通道主庫IP)
Master_User: repl991(同步使用者名稱)
Master_Port: 3310(埠)
Connect_Retry: 60(IO thread 重試時間)
Master_Log_File: binlog.000002(讀取到的binlog檔名)
Read_Master_Log_Pos: 44688(讀取到的binlog位置)
Relay_Log_File: test-relay-bin.000003(本IO THREAD replay檔名)
Relay_Log_Pos: 24360(當前寫到relay log的位置)
Relay_Master_Log_File: binlog.000002(SQL thread應用到的binlog的檔名)
Slave_IO_Running: Yes (IO thread狀態是否正常)
Slave_SQL_Running: Yes (SQL THREAD狀態是否正常)
...
Last_Errno: 0 (錯誤號)
Last_Error: (錯誤資訊)
Skip_Counter: 0
Exec_Master_Log_Pos: 44688 (SQL thread應用到的binlog的位置)
Relay_Log_Space: 44599 (relay 日誌檔案總的的大小)
...
Seconds_Behind_Master: 0 (延遲)
...
Master_Server_Id: 9942 (主庫的server_id)
Master_UUID: 0e733bbb-a594-11e7-ab07-52540020afef (主庫的UUID)
Master_Info_File: /root/mysql5.7.14/percona-server-5.7.14-7/mysql-test/var/mysqld.1/data/master.info (master info的檔案或者表)
SQL_Delay: 0(是否配置延時應用)
...
Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates (sql thread狀態)
Master_Retry_Count: 86400 (可以重試的總次數)
...
Retrieved_Gtid_Set: 0e733bbb-a594-11e7-ab07-52540020afef:9-129 (收到的GTID)
Executed_Gtid_Set: 0e733bbb-a594-11e7-ab07-52540020afef:1-129 (應用的GTID)
Auto_Position: 1 (是否透過GTID自動尋找binlog位置)
...
Channel_Name: 通道名
...
二、MGR relaylog 清理策略
普通sql執行緒刪除relay檔案
#0 MYSQL_BIN_LOG::purge_logs (this=0x37ea570, to_log=0x7fff2400d1a0 "./test-relay-bin.000004", included=false, need_lock_index=false, need_update_threads=false, decrease_log_space=0x37ec628, auto_purge=true) at /root/mysql5.7.14/percona-server-5.7.14-7/sql/binlog.cc:5950#1 0x000000000185073f in MYSQL_BIN_LOG::purge_first_log (this=0x37ea570, rli=0x37e9b30, included=false) at /root/mysql5.7.14/percona-server-5.7.14-7/sql/binlog.cc:5818#2 0x0000000001892224 in next_event (rli=0x37e9b30) at /root/mysql5.7.14/percona-server-5.7.14-7/sql/rpl_slave.cc:9299#3 0x0000000001886443 in exec_relay_log_event (thd=0x7fff24000950, rli=0x37e9b30) at /root/mysql5.7.14/percona-server-5.7.14-7/sql/rpl_slave.cc:5145#4 0x000000000188d092 in handle_slave_sql (arg=0x3790690) at /root/mysql5.7.14/percona-server-5.7.14-7/sql/rpl_slave.cc:7387#5 0x0000000001d7b4b0 in pfs_spawn_thread (arg=0x7fff3c01b5f0) at /root/mysql5.7.14/percona-server-5.7.14-7/storage/perfschema/pfs.cc:2188#6 0x0000003f74807aa1 in start_thread () from /lib64/libpthread.so.0#7 0x0000003f740e8bcd in clone () from /lib64/libc.so.6
MGR group_replication_applier通道的sql執行緒刪除relay檔案
#0 MYSQL_BIN_LOG::purge_logs (this=0x7fff9c0562f0, to_log=0x7fff800160b0 "./gp4-relay-bin-group_replication_applier.000006", included=false, need_lock_index=false, need_update_threads=false, decrease_log_space=0x7fff9c058320, auto_purge=true) at /root/softm/percona-server-5.7.22-22/sql/binlog.cc:6391#1 0x0000000001870333 in MYSQL_BIN_LOG::purge_first_log (this=0x7fff9c0562f0, rli=0x7fff9c0558a0, included=false) at /root/softm/percona-server-5.7.22-22/sql/binlog.cc:6259#2 0x00000000018b6bcf in next_event (rli=0x7fff9c0558a0) at /root/softm/percona-server-5.7.22-22/sql/rpl_slave.cc:9480#3 0x00000000018aa5a6 in exec_relay_log_event (thd=0x7fff80007e10, rli=0x7fff9c0558a0) at /root/softm/percona-server-5.7.22-22/sql/rpl_slave.cc:5193#4 0x00000000018b1980 in handle_slave_sql (arg=0x7fff9c04e850) at /root/softm/percona-server-5.7.22-22/sql/rpl_slave.cc:7543#5 0x0000000001932112 in pfs_spawn_thread (arg=0x7fff9803ff60) at /root/softm/percona-server-5.7.22-22/storage/perfschema/pfs.cc:2190#6 0x00007ffff7bc6aa1 in start_thread () from /lib64/libpthread.so.0#7 0x00007ffff6719bcd in clone () from /lib64/libc.so.6
可以看出沒有什麼區別。實際上都是一樣的還是透過sql執行緒應用了event後刪除。當然有如下程式碼 受到引數relay_log_purge控制
if (relay_log_purge) { /* purge_first_log will properly set up relay log coordinates in rli. If the group's coordinates are equal to the event's coordinates (i.e. the relay log was not rotated in the middle of a group), we can purge this relay log too. We do ulonglong and string comparisons, this may be slow but - purging the last relay log is nice (it can save 1GB of disk), so we like to detect the case where we can do it, and given this, - I see no better detection method - purge_first_log is not called that often */ if (rli->relay_log.purge_first_log (rli, rli->get_group_relay_log_pos() == rli->get_event_relay_log_pos() && !strcmp(rli->get_group_relay_log_name(),rli->get_event_relay_log_name()))) { errmsg = "Error purging processed logs"; goto err; } DBUG_PRINT("info", ("next_event group master %s %lu group relay %s %lu event %s %lu\n", rli->get_group_master_log_name(), (ulong) rli->get_group_master_log_pos(), rli->get_group_relay_log_name(), (ulong) rli->get_group_relay_log_pos(), rli->get_event_relay_log_name(), (ulong) rli->get_event_relay_log_pos())); } else
-
flush logs等命令不會影響MGR的repay log包括recovery通道和applier通道
作者微訊號碼:gp_22389860
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-2284046/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- SHOW SLAVE STATUS 詳解
- [MySQL進階之路][No.0002] SHOW SLAVE STATUSMySql
- MySQL show status關鍵結果釋義和提升效能建議MySql
- show master logs 和 show master status 區別AST
- MySQL主從複製中的“show slave status”詳細含義MySql
- MySQL的show engine innodb statusMySql
- Mysql---show table statusMySql
- MySQL show status 命令詳解MySql
- MySQL SHOW STATUS命令介紹MySql
- MySQL show engine innodb status 詳解MySql
- 【Mysql】show engine innodb status詳解MySql
- 已計算的關鍵值和限制的關鍵值
- mysql slave 跟進 master 的關鍵狀態指標MySqlAST指標
- mysql檢視儲存過程show procedure status;MySql儲存過程
- MySQL show status命令輸出結果詳解MySql
- MySQL執行狀態show status中文詳解MySql
- MySQL show status命令常用輸出欄位詳解MySql
- mysql清理binlog的方法MySql
- show engine innodb status 詳解
- MySQL:5.6 大事務show engine innodb status故障一例MySql
- 實驗-審計資訊的清理和策略關閉.txt
- mysql 優化:使用show status檢視MySQL伺服器狀態資訊MySql優化伺服器
- SHOW ENGINE INNODB STATUS資訊詳解
- MySQL Slave異常關機的處理 (pt-slave-restart)MySqlREST
- mysql master和slave配置MySqlAST
- [筆記]解析v$log/v$logfile中status列值的含義筆記
- mysql學習之-show table status(獲取表的資訊)引數說明MySql
- 【MySQL】SHOW WARNINGS和SHOW ERRORS的作用是什麼?MySqlError
- show engine innodb status操作解析之一
- [原創] How to show chinese character in Git StatusGit
- MySQL Slave異常關機的處理MySql
- mysql 5.5 中對SLAVE relay-log相關日誌檔案同步的強化MySql
- MySql的Master/SlaveMySqlAST
- MySQL中undo log介紹及清理MySql
- mysql的show processlistMySql
- MySQL:slave 延遲一列 外來鍵檢查和自增加鎖MySql
- MYSQL5.7 MASTER-SLAVE 線上關閉和啟動GTIDMySqlAST
- MySQL 5.7中的關鍵字和保留字MySql