您现在的位置是:首页 > 技术人生 > 服务器相关服务器相关

mysql通过binlog日志导出某时间段内指定表变化

高晓波2021-09-14【服务器相关】人已围观

简介如何通过mysql binlog文件,导出某个时间段某张表的变更记录?

mysql如何通过binlog,查询某张表在某一时间段内的变更情况?
 
mysqlbinlog -v --base64-output=decode-rows --start-datetime='开始时间' --stop-datetime='结束时间' binlog文件 |grep -i -A 50 -B 50  '表名' >> 文件名

上述命令的作用:将指定表的某个时间段内的更改操作导出到文件中进行查看。
-A 表示筛选出的行后面多少行,after的意思;
-B 表示筛选出的行前面多少行,before的意思;

导出文件格式如下所示:

#210719  9:26:22 server id 1  end_log_pos 871435633 CRC32 0x948408f1 	Table_map: `db_wms`.`out_application_sheet` mapped to number 324
# at 871435633
#210719  9:26:22 server id 1  end_log_pos 871435864 CRC32 0x13151bbc 	Update_rows: table id 324 flags: STMT_END_F
### UPDATE `db_wms`.`out_application_sheet`
### WHERE
###   @1=210719100000
###   @2=190519100000
###   @3=6
###   @4='1'
###   @5='1'
###   @6=191021100000
###   @7=210719100000
###   @8=NULL
###   @9=NULL
###   @10=191021100000
###   @11=NULL
###   @12='0'
###   @13='0'
###   @14=''
###   @15=201202100000
###   @16=NULL
###   @17='1'
###   @18=0.00
###   @19='尺寸录错重新录'
###   @20='2021-07-19 09:24:21'
###   @21='2099-12-31 00:00:00'
### SET
###   @1=210719100000
###   @2=190519100000
###   @3=6
###   @4='1'
###   @5='1'
###   @6=191021100000
###   @7=210719100000
###   @8=NULL
###   @9=NULL
###   @10=191021100000
###   @11='2021-07-19 09:26:22'
###   @12='0'
###   @13='0'
###   @14=''
###   @15=201202100000
###   @16=NULL
###   @17='9'
###   @18=0.00
###   @19='尺寸录错重新录'
###   @20='2021-07-19 09:24:21'
###   @21='2099-12-31 00:00:00'
# at 871435864
#210719  9:26:22 server id 1  end_log_pos 871435895 CRC32 0x460acea2 	Xid = 67765795
COMMIT/*!*/;

一目了然吧~

 

Tags:mysql

很赞哦! ()

文章评论