昨天某张表数据被某个开发人员误删除了!由于整个库实在是太大了,恢复时间比较长,以后为了避免这种情况,需要实现某一历史时间点恢复单张表的备份恢复策略!时间在1个小时之内,最好5分钟之内最好!免费软件或者收费软件都可以的。(考虑下实现这个功能是否会影响现在的备份策略)
解决方案 »
- 请教数据是汉字 ,数据类型这么设值不对 !应该怎么设置呢 ?
- 数据库别名问题
- 使用mysql manager 2007无法输入中文注释
- .net调mysql的存储过程出错: Data too long for column '$message' at row 1
- 在powerDesiger中生成的脚本导入mysql中出现乱码怎么办?
- 如何检查服务器数据大小,如何下载数据库内容?
- 关于UPDATE的一个菜鸟问题
- My Sql中有没有作业?可不可以复制?
- 请问我这个查询语句哪里错了?
- MYSQL UDF函数里面调用外部动态库
- mysql 临时表限制
- 求centos系统下 xtrabackup备份工具的下载安装文档!
只能把最新的全备找出, 你或者可以恢复到另一台MYSQL服务器上。然后再通过 BINLOG导出SQL语句进行分析。 这些操作即使使用某种工具也必须去执行的。
binlog中的sql文件找不到啊!-- 找到csf_pub库的所有记录。
[root@sh-192-168-250-20 daily]# /usr/local/mysql/bin/mysqlbinlog mysql-bin.000042 -dcsf_pub > csf_pub_22.sql;-- 找到所有file_trace_b表的记录
[root@sh-192-168-250-20 daily]# grep -i "file_trace_b" csf_pub_22.sql >trac_file_d.sql;-- 找到所有file_trace_b表的inesrt记录
[root@sh-192-168-250-20 daily]# grep -v -i "delete" trac_file_d.sql > trac_file_d_insert.sql最后
[root@sh-192-168-250-20 daily]# more trac_file_d_insert.sql
显示出来确是:
#101221 14:02:45 server id 1 end_log_pos 139263144 Table_map: `csf_pub`.`file_trace_b` mapped to number 13677
#101221 14:06:06 server id 1 end_log_pos 140344665 Table_map: `csf_pub`.`file_trace_b` mapped to number 13677
#101221 14:06:06 server id 1 end_log_pos 140345266 Table_map: `csf_pub`.`file_trace_b` mapped to number 13677
#101221 14:06:06 server id 1 end_log_pos 140346197 Table_map: `csf_pub`.`file_trace_b` mapped to number 13677
不是insert的sql语句,大家指点,问题出在哪里啊?
grep -i "insert" trac_file_d.sql > trac_file_d_insert.sql 这样呢,要是没的话,.估计这个binlog里面没有insert的记录
2 你的需求是库分表,时分段。
3 我觉得像你这种情况,分表备份是必须的,也是容易实现的。
可以写脚本来完成,也就是说枚举出所有库名,然后进入第一个库,枚举所有表名,然后备份第一个表。如此循环,就可以每个表生成一个sql文件。
但有个小缺点,是这种备份方法出来的sql没有建库语句。也就是说这个备份,不适合到另外一台机子上恢复。当然你也可以用脚本单独生成这些语句。
4 binglog 正相反,它可以基于时间回复,但是却不是每个表单独一个文件,如何实现binlog只恢复单个表,还没想到,不知道
mysqlbinlog hostname-bin.[0-9]* | mysql aaa bbb
这样的命令可以不?
http://www.zmanda.com/backup-mysql.html