利用binlog来恢复数据库

开发库和线上表结构有很多不一样,分表个数也不同,我需要重新整理保持开发库和线上一致,之前已经告知开发数据是否允许丢失,开发说数据可以不要了,直接丢掉,等我搞好之后开发告诉我部分数据(ring)是不能删除的,我晕,只好想办法来恢复数据了,没有备份,不过还好有全部的binlog。
1.根据binlog解析出所有ring数据库的所有sql
[mysql@DEV_SNS1 log]$mysqlbinlog –no-defaults –database=ring –start-datetime=”2005-04-20 9:55:00″ –stop-datetim=”2009-04-08 08:05:00″ /u01/mysql/log/mysql-bin.000005 > /u01/mysql/log/mysql_restore5.sql
[mysql@DEV_SNS1 log]$ ls -l /u01/mysql/log/mysql_restore5.sql
-rw-r–r– 1 mysql dba 407 Apr 8 15:33 /u01/mysql/log/mysql_restore5.sql
–start-datetime=datetime 从哪个点开始解析
–stop-datetim=datetime 从哪个点停止解析
–database=ring 指定需要解析哪个数据库,只提取某个数据库的sql语句
–如果有多个binlog的话需要解析多次,需要解析所有的binlog

开发库和线上表结构有很多不一样,分表个数也不同,我需要重新整理保持开发库和线上一致,之前已经告知开发数据是否允许丢失,开发说数据可以不要了,直接丢掉,等我搞好之后开发告诉我部分数据(ring)是不能删除的,我晕,只好想办法来恢复数据了,没有备份,不过还好有全部的binlog。    1.根据binlog解析出所有ring数据库的所有sql
[mysql@DEV_SNS1 log]$mysqlbinlog –no-defaults –database=ring –start-datetime=”2005-04-20 9:55:00″ –stop-datetim=”2009-04-08 08:05:00″ /u01/mysql/log/mysql-bin.000005 > /u01/mysql/log/mysql_restore5.sql
[mysql@DEV_SNS1 log]$ ls -l /u01/mysql/log/mysql_restore5.sql    -rw-r–r– 1 mysql dba 407 Apr 8 15:33 /u01/mysql/log/mysql_restore5.sql
–start-datetime=datetime 从哪个点开始解析
–stop-datetim=datetime 从哪个点停止解析
–database=ring 指定需要解析哪个数据库,只提取某个数据库的sql语句
–如果有多个binlog的话需要解析多次,需要解析所有的binlog