提取MySQL binlog中指定表的操作記錄
一段簡單的Python指令碼,需要本地裝了合適版本的mysqlbinlog工具。
支援Python 2.7+
支援Python 2.7+
點選(此處)摺疊或開啟
-
#_*_ coding:utf-8 _*_
-
-
import sys
-
import os
-
import io
-
-
binlogfile = sys.argv[1]
-
database_name = sys.argv[2]
-
table_name = sys.argv[3]
-
-
def format_binlog():
-
os.system('mysqlbinlog --base64-output=decode-rows -v '+binlogfile+'>'+binlogfile+'.txt')
-
-
def pickupbinlog():
-
f = io.open(binlogfile+'.txt','r')
-
fw = io.open(database_name+'_'+table_name+'.txt','a')
-
priv_str = ''
-
priv_line = ''
-
goal_flag = 0
-
for row in f:
-
# 處理首行
-
if row[0:3] == '###' and priv_str != '###':
-
if database_name in row and table_name in row:
-
goal_flag = 1
-
fw.write(priv_line)
-
fw.write(row)
-
# 處理末行
-
if row[0:3] != '###' and priv_str == '###':
-
goal_flag = 0
-
# 處理目標操作
-
if row[0:3] == '###' and priv_str == '###' and goal_flag == 1:
-
fw.write(row)
-
priv_str = row[0:3]
-
priv_line = row
-
f.close()
-
fw.close()
-
-
if __name__ == '__main__':
-
# python2.7 pickupbinlog.py mysql-bin.001051 dbname tablename
-
# python3 pickupbinlog.py mysql-bin.001051 dbname tablename
-
format_binlog()
- pickupbinlog()
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28998293/viewspace-2139079/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【Mysql】從binlog中找出單個表的binlog資訊MySql
- Mysql之binlog日誌說明及利用binlog日誌恢復資料操作記錄MySql
- mysql誤修改全表記錄,使用binlog日誌找回資料MySql
- MySQL 查詢所有表中的記錄數MySql
- Mysql常用操作記錄MySql
- 檢視Oracle表中的指定記錄在資料檔案中的位置Oracle
- mysql binlog檢視指定資料庫MySql資料庫
- mysql之行(記錄)的詳細操作MySql
- MySQL的一些操作記錄MySql
- MySQL如何通過分析binlog日誌找出操作頻繁的表MySql
- !!!提取檔案記錄!!!
- [Mysql 查詢語句]——查詢指定記錄MySql
- Linux下mysql的歷史操作記錄LinuxMySql
- MySQL在ROW模式下通過binlog提取SQL語句MySql模式
- 在MySQL中使用init-connect與binlog來實現使用者操作追蹤記錄MySql
- 學習筆記:MySQL Cluster 的binlog筆記MySql
- 提取pdf指定頁
- MySQL中3種清除binlog的方法!MySql
- MySQL中複製資料表中的資料到新表中的操作教程MySql
- MySQL通過Binlog恢復刪除的表MySql
- mysql binlog_format和臨時表MySqlORM
- PUTTY 記錄操作記錄
- 通過php頁面向指定文件中追加記錄PHP
- MySQL操作表MySql
- mysql 查詢記錄數大於一千萬的表MySql
- 正規表示式提取 git 提交記錄中的新增程式碼行Git
- mysql表刪除重複記錄方法MySql
- 檢視mysql表大小和記錄數MySql
- MySQL學習記錄--操作時間資料MySql
- 追蹤mysql操作記錄時間1.MySql
- MySQL中binlog cache使用流程解惑MySql
- MySQL工具之binlog2sql閃回操作MySql
- Mysql的binlog原理MySql
- mysql的binlog格式MySql
- 查mysql欄位中的數字記錄MySql
- 利用Oracle GoldenGate記錄源系統所有表的操作OracleGo
- Mysql更換MyISAM儲存引擎為Innodb的操作記錄MySql儲存引擎
- MySQL批量刪除指定字首表MySql