国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

MySQL獲取binlog的開始時間和結束時間(最新方法)

瀏覽:149日期:2023-05-08 10:17:45
目錄
  • 1:通過xtrabackup_info文件獲取
  • 2:通過mysqlbinlog解析獲取
  • 方法3:stat命令查看創(chuàng)建時間

MySQL數據庫恢復到指定時間點時,我們必須通過MySQL全備+MySQL增量備份(可選)+MySQL的二進制日志(binlog)進行重放來恢復到指定時間點,實際的生產環(huán)境中,可能一段時間內生成了多個二進制日志文件(binlog), MySQL本身不會存儲二進制日志文件(binlog)的開始時間和結束時間,如果要還原到某個時間點,我們需要知道還原后重放哪些二進制日志文件。那么就必須獲取二進制日志(binlog)的開始時間和結束時間。那么我們如何獲取MySQL二進制日志文件(binlog)的開始時間和結束時間呢?下面簡單總結幾個方法,以供參考。

1:通過xtrabackup_info文件獲取

Xtrabckup還原全備或增量備份時,會生成一個xtrabackup_info文件,如下所示:

$?more?xtrabackup_info?uuid?=?3bd8a0f7-ea2f-11ed-9896-00505697b437name?=?tool_name?=?xtrabackuptool_command?=?--defaults-file=/data/conf/my.cnf?--login-path=****?--backup?--target-dir=/db_backup/mysql_backup/db_backup/backup_cycle_2023_04_30/full_backup_2023_05_04_11_53_25tool_version?=?8.0.31-24ibbackup_version?=?8.0.31-24server_version?=?8.0.31start_time?=?2023-05-04?11:53:26end_time?=?2023-05-04?11:53:30lock_time?=?0binlog_pos?=?filename?"mysql_binlog.000042",?position?"289",?GTID?of?the?last?change?"d01ecb4f-c944-11ed-9896-00505697b437:1-111:1000108-1953894,d01edb91-c944-11ed-9896-00505697b437:1-5,f8ef839e-c942-11ed-9bd2-00505697b437:1-13"innodb_from_lsn?=?0innodb_to_lsn?=?824007891partial?=?Nincremental?=?Nformat?=?filecompressed?=?Nencrypted?=?N

如上所示,你可以看到一行關于binlog_pos的信息:binlog文件名為mysql_binlog.000042,起始位置為289,我們應用MySQL二進制日志(binlog)可以從這個二進制日志開始:

mysqlbinlog?--start-position="289"?./mysql_binlog.000042??>?restore.sql

這個方法有局限性,只能被動獲取我們需要重放二進制日志的文件名和開始位置。這里僅供參考。

2:通過mysqlbinlog解析獲取

如下所示,我們想知道m(xù)ysql_binlog.000042什么時候開始生成,什么時候開始結束的,其實MySQL二進制日志里面包含有這樣的信息,如下所示:

$?mysqlbinlog?mysql_binlog.000042??|?head?-10#?The?proper?term?is?pseudo_replica_mode,?but?we?use?this?compatibility?alias#?to?make?the?statement?usable?on?server?versions?8.0.24?and?older./*!50530?SET?@@SESSION.PSEUDO_SLAVE_MODE=1*/;/*!50003?SET?@OLD_COMPLETION_TYPE=@@COMPLETION_TYPE,COMPLETION_TYPE=0*/;DELIMITER?/*!*/;#?at?4#230504?11:53:30?server?id?1??end_log_pos?126???Start:?binlog?v?4,?server?v?8.0.31?created?230504?11:53:30BINLOG?"OixTZA8BAAAAegAAAH4AAAAAAAQAOC4wLjMxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEwANAAgAAAAABAAEAAAAYgAEGggAAAAICAgCAAAACgoKKioAEjQA

我們可以通過獲取關鍵字Start: binlog獲取這一行的信息,從而獲取MySQL二進制日志(binlog)的開始時間,如下所示:

$?mysqlbinlog??mysql_binlog.000042?|grep?"Start:?binlog"?#230504?11:53:30?server?id?1??end_log_pos?126???Start:?binlog?v?4,?server?v?8.0.31?created?230504?11:53:30$?mysqlbinlog??mysql_binlog.000042?|grep?"Start:?binlog"?|?awk?-F?"server?id"?"{print?$1}"#230504?11:53:30

如上所示,生成mysql_binlog.000042的時間點為230504 11:53:30,這里年份使用了縮寫模式,即2023縮寫為23,230504代表的是2023-05-04.

如果要獲取二進制日志(binlog)的結束時間,這個還要看二進制日志是正常循環(huán)結束還是實例關閉結束,它們會對應不同的信息

STOP_EVENT
A STOP_EVENT has not payload or post-header
ROTATE_EVENT
The rotate event is added to the binlog as last event to tell the reader what binlog to request next.

如下所示:

$?mysqlbinlog?mysql_binlog.000042??|?tail?-10#?at?533#230504?12:13:35?server?id?3??end_log_pos?560???Xid?=?50948183COMMIT/*!*/;#?at?560#230504?12:14:03?server?id?1??end_log_pos?606???Rotate?to?mysql_binlog.000043??pos:?4SET?@@SESSION.GTID_NEXT=?"AUTOMATIC"?/*?added?by?mysqlbinlog?*/?/*!*/;DELIMITER?;#?End?of?log?file/*!50003?SET?COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;/*!50530?SET?@@SESSION.PSEUDO_SLAVE_MODE=0*/;
$?mysqlbinlog??mysql_binlog.000042??|grep?Rotate#230504?12:14:03?server?id?1??end_log_pos?606???Rotate?to?mysql_binlog.000043??pos:?4$?mysqlbinlog??mysql_binlog.000042??|grep?Rotate?|?awk?-F?"server?id"?"{print?$1}"#230504?12:14:03

如果MySQL關閉后,對應的MySQL二進制日志的格式如下所示:

$?mysqlbinlog?mysql_binlog.000045?|?tail?-10#?at?126#230504?17:02:23?server?id?10??end_log_pos?157?CRC32?0x2d378ba5?????????Previous-GTIDs#?[empty]#?at?157#230504?17:08:11?server?id?10??end_log_pos?180?CRC32?0xb6b08f2c?????????StopSET?@@SESSION.GTID_NEXT=?"AUTOMATIC"?/*?added?by?mysqlbinlog?*/?/*!*/;DELIMITER?;#?End?of?log?file/*!50003?SET?COMPLETION_TYPE=@OLD_COMPLETION_TYPE*/;/*!50530?SET?@@SESSION.PSEUDO_SLAVE_MODE=0*/;
$??mysqlbinlog??mysql_binlog.000045?|?grep?Stop?|?awk?-F?"server?id"?"{print?$1}"

方法3:stat命令查看創(chuàng)建時間

在Linux平臺,我們可以通過stat命令查看文件的創(chuàng)建時間,如下所示

$?stat?mysql_binlog.000042??File:?mysql_binlog.000042??Size:?606?????????????Blocks:?8??????????IO?Block:?4096???regular?fileDevice:?fd08h/64776d????Inode:?100663444???Links:?1Access:?(0640/-rw-r-----)??Uid:?(??801/???mysql)???Gid:?(??800/???mysql)Access:?2023-05-04?13:36:54.872910222?+0800Modify:?2023-05-04?12:14:18.712310369?+0800Change:?2023-05-04?12:14:18.712310369?+0800?Birth:?2023-05-04?11:53:30.640989646?+0800

如上所示,我們可以通過Birth字段信息,知道m(xù)ysql_binlog.000042是2023-05-04 11:53:30創(chuàng)建的。但是我們沒法獲取二進制日志的結束時間,不過由于MySQL的二進制日志文件是有數字序列的,所以我們可以通過下一個二進制日志文件(binlog)的開始時間來判斷上一個二進制日志文件(binlog)的結束時間。

$?stat?mysql_binlog.000043??File:?mysql_binlog.000043??Size:?335?????????????Blocks:?8??????????IO?Block:?4096???regular?fileDevice:?fd08h/64776d????Inode:?100663430???Links:?1Access:?(0640/-rw-r-----)??Uid:?(??801/???mysql)???Gid:?(??800/???mysql)Access:?2023-05-04?13:36:58.524978710?+0800Modify:?2023-05-04?16:55:07.161545830?+0800Change:?2023-05-04?16:55:07.161545830?+0800?Birth:?2023-05-04?12:14:18.713310387?+0800

到此這篇關于MySQL如何獲取binlog的開始時間和結束時間的文章就介紹到這了,更多相關mysql binlog開始時間和結束時間內容請搜索以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持!

標簽: MySQL
相關文章:
主站蜘蛛池模板: 欧美成人吃奶高清视频 | 国产主播大尺度精品福利 | 亚洲资源在线观看 | 日本欧美精品 | 欧美xxxx性xxxxx高清视频 | 国产亚洲精品自在线观看 | 精品国产免费观看久久久 | 草草视频手机在线观看视频 | 男人在线天堂 | 热er99久久6国产精品免费 | 久久影院一区二区三区 | 国产欧美日韩在线人成aaaa | www国产精品 | 久久草在线观看 | 一级毛片韩国 | 一本高清 | 91福利国产在线观一区二区 | 国产高清在线精品 | 亚洲三级中文字幕 | 高h原耽肉汁动漫视频 | 国产三级日本三级在线播放 | 亚洲精品线在线观看 | 天天夜夜久久 | 欧美激情一区二区亚洲专区 | 欧美另类视频在线观看 | 国产aⅴ片 | 日本久久香蕉一本一道 | 亚洲精品国自产拍在线观看 | 久久99综合国产精品亚洲首页 | 精品一久久 | m男亚洲一区中文字幕 | 成在线人视频免费视频 | 国产日韩精品一区在线观看播放 | 日本道综合一本久久久88 | 欧美三级黄色 | 免费久久 | 国产乱子视频 | 黄a 大片a v 永久免费 | 久艹视频在线免费观看 | 日韩一级影院 | 久久精品国产精品青草不卡 |