MySQL:簡單記錄刪除binary log的介面
歡迎關注我的《深入理解MySQL主從原理 32講 》,如下:
![image.png](https://upload-images.jianshu.io/upload_images/7398834-0ffa3bdc078cddf4.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
如果圖片不能顯示可檢視下面連結:
一、棧幀
#0 my_delete (name=0x7ffff0fa0490 "./binlog.000005", MyFlags=0) at /root/softm/percona-server-5.7.22-22/mysys/my_delete.c:25#1 0x000000000186416f in inline_mysql_file_delete (key=2, src_file=0x2293340 "/root/softm/percona-server-5.7.22-22/sql/binlog.cc", src_line=6735, name=0x7ffff0fa0490 "./binlog.000005", flags=0) at /root/softm/percona-server-5.7.22-22/include/mysql/psi/mysql_file.h:1331#2 0x0000000001871497 in MYSQL_BIN_LOG::purge_index_entry (this=0x2e39c40, thd=0x7fffa4000b70, decrease_log_space=0x0, need_lock_index=false) at /root/softm/percona-server-5.7.22-22/sql/binlog.cc:6735#3 0x0000000001870b35 in MYSQL_BIN_LOG::purge_logs (this=0x2e39c40, to_log=0x7ffff0fa0a80 "./binlog.000007", included=false, need_lock_index=true, need_update_threads=true, decrease_log_space=0x0, auto_purge=false) at /root/softm/percona-server-5.7.22-22/sql/binlog.cc:6495#4 0x0000000001868839 in purge_master_logs (thd=0x7fffa4000b70, to_log=0x7fffa4006570 "binlog.000007") at /root/softm/percona-server-5.7.22-22/sql/binlog.cc:3127#5 0x00000000015b7874 in mysql_execute_command (thd=0x7fffa4000b70, first_level=true) at /root/softm/percona-server-5.7.22-22/sql/sql_parse.cc:2989#6 0x00000000015c0362 in mysql_parse (thd=0x7fffa4000b70, parser_state=0x7ffff0fa2600) at /root/softm/percona-server-5.7.22-22/sql/sql_parse.cc:5901#7 0x00000000015b3ef6 in dispatch_command (thd=0x7fffa4000b70, com_data=0x7ffff0fa2d70, command=COM_QUERY) at /root/softm/percona-server-5.7.22-22/sql/sql_parse.cc:1490#8 0x00000000015b2c83 in do_command (thd=0x7fffa4000b70) at /root/softm/percona-server-5.7.22-22/sql/sql_parse.cc:1021#9 0x00000000016fb8fc in handle_connection (arg=0x38f2910) at /root/softm/percona-server-5.7.22-22/sql/conn_handler/connection_handler_per_thread.cc:312#10 0x0000000001932112 in pfs_spawn_thread (arg=0x3860a50) at /root/softm/percona-server-5.7.22-22/storage/perfschema/pfs.cc:2190#11 0x00007ffff7bc6aa1 in start_thread () from /lib64/libpthread.so.0#12 0x00007ffff6719bcd in clone () from /lib64/libc.so.6
二、大概過程
整個刪除過程大概是:
- 先提取需要刪除的binary log 記錄到一個 臨時的index檔案binlog.~rec~中。
- 將需要保留的binary log檔案存放到一個叫做binlog.index_crash_safe的檔案中。
- 將原有的binlog.index進行刪除,將binlog.index_crash_safe重新命名為binlog.index。
下面是中間時刻的檔案列表。
-rw-r----- 1 root root 80 Jun 26 10:25 binlog.index-rw-r----- 1 root root 32 Jun 26 10:38 binlog.~rec~-rw-r----- 1 root root 48 Jun 26 10:39 binlog.index_crash_safe
- 然後就刪除binlog.~rec~記錄中的binary log檔案。
- 最後刪除binlog.~rec~檔案。整個過程集中在。
函式MYSQL_BIN_LOG::purge_logs中,我們可以將斷點設定在my_delete函式上很容易看出這種過程。
下面是我的debug中的一部分:
(gdb) p purge_index_file->file $6 = 61OS中我們可以看到這個檔案描述符為61 -> /root/softm/percona-server-5.7.22-22/mysql-test/var/mysqld.1/data/binlog.~rec~
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7728585/viewspace-2649839/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL Binary LogMySql
- mysql刪除一條記錄MySql
- mysql支援跨表delete刪除多表記錄MySqldelete
- win10 開始選單照片記錄怎麼刪除 win10刪除開始選單記錄方法Win10
- MYSQL資料庫表記錄刪除解決方案MySql資料庫
- MySQL刪除重複記錄並保留第一條MySql
- 刪除重複id的記錄
- 單表的更新UPDATE和刪除記錄DELETE(二十六)delete
- 使用者對某條賬單記錄的刪除操作
- MySQL:簡單記錄訊號處理MySql
- 簡單介紹mysql如何刪除資料表和關聯的資料表刪除詳情MySql
- Mysql-基本練習(09-刪除單表記錄、查詢指定列資料、列的別名、簡單單表條件查詢、簡單分組查詢)MySql
- MySQL:connect_timeout引數簡單記錄MySql
- windows10更新記錄刪除_怎樣刪除win10更新歷史記錄WindowsWin10
- [20190130]刪除tab$記錄的恢復.txt
- GBase XDM(單機/分片叢集)資料庫 刪除記錄資料庫
- MySQL日誌警告'[Warning] Unsafe statement written to the binary log'MySql
- mysql/mariadb學習記錄——建立刪除資料庫、表的基本命令MySql資料庫
- MySQL資料庫中刪除重複記錄的方法總結[推薦]MySql資料庫
- Mysql Master-slave複製簡單配置記錄MySqlAST
- MySQL:簡單記錄一下Waiting for commit lockMySqlAIMIT
- ASM磁碟簡單維護,新增,刪除ASM
- 為什麼刪除記錄表檔案不會減小?(記錄的插入與刪除在磁碟上的變化)
- 怎麼刪除電腦中開啟的檔案記錄?刪除電腦中開啟的檔案記錄方法教程
- win10怎麼刪除搜尋框記錄_win10系統刪除搜尋框記錄的步驟Win10
- [20190225]刪除tab$記錄的恢復5.txt
- [20190130]刪除tab$記錄的恢復2.txt
- [20190212]刪除tab$記錄的恢復3.txt
- MariaDB刪除重複記錄效能測試
- jQuery動態新增和刪除表格記錄jQuery
- mysql關於二進位制日誌binary log的總結MySql
- rosbridge簡單的安裝記錄ROS
- 簡單記錄下wkhtmltoimage的使用HTML
- MySQL Binlogging Fails With Writing One Row To The Row-based Binary Log FailedMySqlAI
- win10更新失敗記錄怎麼刪除_win10更新失敗記錄刪除操作方法Win10
- MySQL:簡單記錄character_set_server影響引數MySqlServer
- mysql增加列,刪除列學習筆記MySql筆記
- php(js)批量刪除/單個刪除PHPJS