首页 > 数据库技术 > 详细

【MySQL】MySQL事务回滚脚本

时间:2014-05-19 08:15:03      阅读:677      评论:0      收藏:0      [点我收藏+]

MySQL自己的 mysqlbinlog | mysql 回滚不好用,自己写个简单脚本试试:

想法是用mysqlbinlog把需要回滚的事务区域从mysql-bin.file中找到,然后通过脚本再插入DB。

## INSERT 需要将新增数据删除 对应DELETE
## DELETE 需要将删除数据恢复 对应INSERT
## UPDATE 需要将修改数据恢复 对应UPDATE
## 手动读取BINLOG,并找到对应位置和对应事务
## 手动删除除事务外的其他说明语句

 INSERT回滚最简单,其次是DELETE的,UPDATE操作比较麻烦。

bubuko.com,布布扣

bubuko.com,布布扣
fun_DELETE()
{

        ##### GET ONE TRANSACTION ROWS #####
        local rows=`awk "BEGIN{print $columns + 2}"`

        ##### GET COUNtS OF TRANSACTION #####
        n=`cat $bak_file | grep DELETE | wc -l`

        ##### GET TABLE NAME #####
        table=`sed -n "1p" $binlog | awk "{print $3}"`
        
        for ((i=1;i<=n;i++))
        do
                ##### MAKE SQL #####
                data=`sed -n 3,‘{$rows}’p $binlog | awk {print $1}| awk -F = {print $2} |  tr -t \n , | sed s/,$// | sed s/^/(/ | sed s/$/)/`
                
                echo $data >> /export/jiangxu/sh/tmp.txt
                
                #####  CLEAN bak_file FOR TRANSACTION HAVE DONE #####
        

        done
        echo done!
        tr -t \n , /export/jiangxu/sh/tmp.txt
}
bubuko.com,布布扣

 

【MySQL】MySQL事务回滚脚本,布布扣,bubuko.com

【MySQL】MySQL事务回滚脚本

原文:http://www.cnblogs.com/jiangxu67/p/3732188.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!