use HTTP::Date qw(time2iso str2time time2iso time2isoz);
use POSIX;
my $SDATE = strftime("%Y-%m-%d",localtime());
if ( $#ARGV < 4 ){
print "please input like binglog-0001 '2013-07-01 00:00:00' '2013-07-02 00:00:00' dml db_name table!\n";
exit(-1);
};
my $binlog= $ARGV[0];
my $start_dt = $ARGV[1];
my $end_dt = $ARGV[2];
my $dml =$ARGV[3];
my $database=$ARGV[4];
my $table=$ARGV[5];
unlink("$table.$SDATE.txt");
unlink("$table.$SDATE.txt.tmp.1");
unlink("$table.$SDATE.txt.tmp.2");
unlink("$table.$SDATE.txt.tmp.3");
my @binlog=`mysqlbinlog
mysql 闪回表工具
最新推荐文章于 2024-08-19 09:43:43 发布
该脚本使用mysqlbinlog工具从binlog中提取指定时间范围内的DML操作(UPDATE和DELETE),并进行处理,生成用于回滚的SQL语句。通过读取information_schema.columns获取表的列名,根据binlog内容生成对应ID的哈希表,然后对UPDATE和DELETE语句进行匹配和替换,生成回滚所需的INSERT语句。
摘要由CSDN通过智能技术生成