`
lizhuang
  • 浏览: 888112 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

mysql bin文件还原

 
阅读更多
1.幸好本人养成了个好习惯,无论改动的大小我都会先备份一份数据

-rw-r--r-- 1 root root 2473664 07-30 09:38 terminfo-bak0730.sql

找到了,果然是7月30号早上09点38分左右备份的,幸好有备份啊,要不然就悲催了.......先把备份的导到测试数据库上,表名改为terminfo0730,然后再把当前生产的数据导到,表名改为terminfo0926,这样的做法是在还原数据后匹配一下数据有没有对得上。

mysql>use reed
Database changed
mysql> show tables;
+----------------+
|Tables_in_reed|
+----------------+
| terminfo0730  |
| terminfo0926  |
+----------------+

2.最重要的一步来了,就是提取binlog日志。因为7月30号备份的,所以要找7月30号之后到9月26号的binlog。

-rw-rw----1 mysql mysql 107374208408-0920:03 mysql-bin.000086
-rw-rw----1 mysql mysql 107374189408-2604:51 mysql-bin.000087
-rw-rw----1 mysql mysql 107374207809-1211:12 mysql-bin.000088
-rw-rw----1 mysql mysql 107663780509-2611:55 mysql-bin.000089
-rw-rw----1 mysql mysql  4533942009-2618:50 mysql-bin.000090

利用mysqlbinlog命令先进行第一轮的sql语句提取

#mysqlbinlog --no-defaults --database=ecard --start-datetime='2012-07-30 09:38:00' mysql-bin.000086 > log86.txt  # 这里要设置起始时间
#mysqlbinlog --no-defaults --database=ecard  mysql-bin.000087 > log87.txt
#mysqlbinlog --no-defaults --database=ecard  mysql-bin.000088 > log88.txt
#mysqlbinlog --no-defaults --database=ecard  mysql-bin.000089 > log89.txt
#mysqlbinlog --no-defaults --database=ecard  mysql-bin.000090 > log90.txt

#ls -l

-rw-r--r-- 1 root  root  1553740972 09-26 19:38 log86.txt
-rw-r--r--1 root  root  153286277909-2619:52 log87.txt
-rw-r--r--1 root  root  157780920009-2619:55 log88.txt
-rw-r--r--1 root  root  158045208209-2619:57 log89.txt
-rw-r--r--1 root  root    6494588409-2619:58 log90.txt

提取出来后是全部的sql语句,而我需要的是只对terminfo操作的sql语句,所以要进行第二轮提取

#grep terminfo log86.txt > log86-terminfo.txt #依次grep出来

[root@localhost txt]# ll
总计264
-rw-r--r--1 root root 2020609-2619:50 log86-terminfo.txt
-rw-r--r--1 root root 7874009-2619:59 log87-terminfo.txt
-rw-r--r--1 root root 6542909-2619:59 log88-terminfo.txt
-rw-r--r--1 root root 6529409-2619:59 log89-terminfo.txt
-rw-r--r--1 root root  94109-2620:00 log90-terminfo.txt

提取出来后,里面就是所有对terminfo的sql语句了,把这些数据导入到测试库terminfo0730表中

mysql > source log86-terminfo.txt; #依次source进去,务必要注意顺序问题!!!

导进去之后再比较一下terminfo0730和terminfo0926表的数据数量有没有一样,然后再叫部门同事验证一下数据正确性。

到此,数据成功恢复还原。一次难忘的经历啊,也同时告诫自己,细心细心再细心!!
分享到:
评论

相关推荐

    一个多线程MySQL备份和还原工具,比mysqldump更快-Golang开发

    / bin / myloader -h测试$ make test用法mydumper ./bin / mydumper -h用法:./bin/mydumper -c conf / mydumper.ini.sample -c字符串配置文件示例:$。/ bin / mydumper -c conf / mydumper.ini.sample 2017/10/25

    使用bin-log日志还原数据库的例子

    3、查找当前有哪些二进制日志文件: mysql> show binary logs; 4、查看mysql日志:mysqlbinlog mysql-bin.000001mysqlbinlog mysql-bin.000006 > /root/bbx.log 5、使用新的binlog日志:(更新数据库日志) 代码...

    Centos7实现MySQL基于日志还原数据的示例代码

    Binlog日志,即二进制日志文件,用于记录用户对数据库操作的SQL语句信息,当发生数据误删除的时候我们可以通过binlog日志来还原已经删除的数据,还原数据的方法分为传统二进制文件还原数据和基于GTID的二进制文件...

    mysql备份脚本,非常好用

    # 热备份mysql库表,打包文件结构是"日期-库-表"。 # 选项参数: # -t[必选参数]:操作类型,backup-备份,restore-还原。 # -d[可选参数]:指定库名,库名之间用逗号隔开。 # -f[必选参数]:tar包路径,操作类型参数-t...

    MySQL用作备份还原的导入和导出命令用法整理

    mysqldump 命令行导出数据库: 1,进入MySQL目录下的bin文件夹:cd MySQL中到bin文件夹的目录 如我输入的命令行:cd C:\Program Files...3、会看到文件news.sql自动生成到bin文件下 命令行导入数据库: 1,将要导入的.s

    mysql数据库太大了如何备份与还原

    命令:mysqlhotcopy 这个命令会在拷贝文件之前会把表锁住,并把数据同步到数据文件中,以避免拷贝到不完整的数据文件,是最安全快捷的备份方法。...1.进入MySQL目录下的bin文件夹:e:回车; e:\>cd mysql\bin 回车 2

    MySql8.0恢复备份或迁移时,函数创建失败

    原因:开启了binlog日志,默认关闭函数的生成。 1.临时开启函数生成方法: set GLOBAL log_bin_trust_function_creators=1;...2.永久开启,修改数据库my.cnf配置文件 log_bin_trust_function_creators=1 重启数据库服务

    linux定时备份mysql并同步到其它服务器

    1、mysql的定期备份; 2、同步到其它服务器 mysql 备份 备份还原某个数据库 备份还原 # 导出数据库 /usr/bin/mysqldump -u root -ppwd database > database20160929.sql # 导入数据库 mysql -u root -p database ...

    mysql数据库从服务器移植到个人PC的方法

    进入mysql安装文件的bin目录下,如:D:\mysql5.5\bin> 2. 用 mysqldump -uroot -p123 qh>d:\qh.sql 命令备份数据库 mysqldump -uroot -p123 登陆到数据库用户为 root 密码为 123 qh>d:\qh.sql 将 数据库qh 备份到 d...

    mysql中Table is read only的解决方法小结

    如果是导入还原数据 ,所以将该数据库文件夹下面所有表文件chmod成777,chown成”_mysql”,但这次问题更严重,drupal里面现实table crached。没办法,马上Google,发现其实解决起来挺容易的。 首先,找到m

    python批量导出导入MySQL用户的方法

    有2种方法进行快速迁移:1,在同版本的条件下,直接备份A服务器的mysql数据库,还原到B服务器。2,要是不同版本的数据(5.1 -> 5.5),很可能mysql数据库下面的一些表结构,甚至表数据的默认值都不一样,按照1的方法...

    qpress-11-linux-x64.tar

    xtrabackup-解压备份文件报错sh: qpress: command not found # xtrabackup --decompress --target-dir=/data/...解决方法是下载qpress安装包,解压后将qpress文件移动到/bin/目录下,然后授予执行权限 mv qpress /bin/

    基于MySQL玩转SQL数据分析课程 互联网数据分析师-SQL数据分析实战视频教程.txt

    还原数Ju库及文件导出.flv ├─(7) 课时14.数Ju库基本查询.flv ├─(8) 课时15.汇总函数及Group.by.flv ├─(9) 课时16.Where和Like函数.flv ├─(10) 课时17.数Ju库函数.flv ├─(11) 课时18.字符函数.flv ├...

    班级信息管理系统源码

    1.下载并安装MYSQL5.0 引述此目录下的055.sql备份文件还原数据库。 2.要求JRE版本为1.4以上。 3.TOMCAT版本为5.5. 4.将class055文件夹拷贝至..\Apache Software Foundation\Tomcat 5.5\webapps\目录下。 5.将mysql-...

    binlogback:反序分析mysql binlog(仅针对row格式),解决误操作

    #用法:./binlogback.py -f mysql-bin.000001 -m dsec -B unit -t t1 -c c1,c2,c3 -f,--file binlog path,多文件用','分割,不支持路径正则表达式-m,--mode asc 或 desc,默认为 desc,恢复数据需要设置 mode=desc -B...

    Liquibase 3.3.3 bin

    它将所有数据库的变化(包括结构和数据)都保存在XML文件中,便于版本控制。 Liquibase具备如下特性: * 不依赖于特定的数据库,目前支持包括Oracle/Sql Server/DB2/MySql/Sybase/PostgreSQL/Caché等12种数据库...

    liquibase-3.4.2-bin.zip(Nov 24, 2015)

    它将所有数据库的变化(包括结构和数据)都保存在XML文件中,便于版本控制。 Liquibase具备如下特性: * 不依赖于特定的数据库,目前支持包括Oracle/Sql Server/DB2/MySql/Sybase/PostgreSQL/Caché等12种数据库...

    Veritas Backup Exec16帮助文档

    Veritas Backup Exec16帮助文档,BE2016,支持备份VMware虚拟机、MS SQL数据库、Exchange、文件、Oracle等。

    cmd操作命令和linux命令大全收集

    bin指用二进制方式传送(可执行文件进);默认为ASCII格式传送(文本文件时) route print 显示出IP路由,将主要显示网络地址Network addres,子网掩码Netmask,网关地址Gateway addres,接口地址Interface arp ...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    简单来说是本身可视为电子化的文件柜——存储电子文件的处所,用户可以对文件中的数据运行新增、截取、更新、删除等操作。 常见的数据模型 1. 层次结构模型: 层次结构模型实质上是一种有根结点的定向有序树,IMS...

Global site tag (gtag.js) - Google Analytics