`
lizhuang
  • 浏览: 902756 次
  • 性别: 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还原备份文件

    根据题目中的描述,我们可以了解到MySQL数据库备份文件的还原步骤。下面将对这些步骤进行详细说明: 1. **创建对应同名的数据库**: - 首先需要使用 `EditPlus` 或其他文本编辑器打开备份文件(`.sql`),找到文件...

    Mysql数据库备份还原工具

    这个工具的使用方法简单,只需要指定MySQL安装路径下的bin目录,其中包含必要的备份程序如mysqldump。通过这样的方式,工具能够自动找到并调用这些程序来执行备份任务。用户通常需要提供数据库连接信息,包括服务器...

    mysql Xb文件--物理备份恢复数据库.docx

    MySQL的Xb文件是一种物理备份格式,用于在不同的主机之间恢复数据库。这种备份方式涉及到Percona XtraBackup工具,它提供了高效且可靠的InnoDB表的数据和日志文件备份功能。以下是对Xb文件物理备份恢复数据库的详细...

    mysql数据库备份还原

    为了便于管理,通常会将要导入的 `.sql` 文件移动到 MySQL 的 bin 文件夹下。 ##### 步骤 2: 进入 MySQL 目录下的 bin 文件夹 确保命令提示符当前所在的目录是 MySQL 的 bin 文件夹。 ##### 步骤 3: 登录 MySQL ...

    mysql数据备份还原

    ### MySQL 数据备份与还原详解 #### 一、MySQL 数据备份的重要性 在数据库管理中,数据备份是一项非常重要的工作。它可以防止因系统故障、误操作、病毒攻击等原因导致的数据丢失,确保业务连续性和数据安全性。...

    mysql备份与还原

    ### MySQL备份与还原知识点 #### 一、MySQL备份方法 MySQL数据库备份是非常重要的维护工作之一,主要用于防止数据丢失,确保业务连续性。备份通常分为全量备份和增量备份。 **全量备份**:指的是将数据库中的所有...

    Java实现对Mysql数据库的备份还原

    在Windows中,命令可能类似于`"C:\Program Files\MySQL\MySQL Server x.x\bin\mysqldump"`,而在Linux中,可能需要使用绝对路径或者在`$PATH`环境变量中包含`mysqldump`的路径。Java代码可以通过读取注册表(仅限...

    mysql数据库备份与还原

    ### MySQL数据库备份与还原知识点详解 #### 一、MySQL数据库备份的重要性 在现代数据库管理中,备份是一项至关重要的任务。它不仅可以帮助我们防止因意外事件(如硬件故障、人为错误或恶意攻击)而导致的数据丢失...

    mysql(完整、增量)备份与还原

    还原过程涉及将备份文件(通常是`.sql`文件)导入到MySQL数据库中。在Java中,我们可以使用`mysql`命令行客户端来实现: ```java Runtime.getRuntime().exec("mysql -u [username] -p[password] -h [hostname] ...

    mysql增量备份还原

    1. 编辑MySQL配置文件`my.cnf`,在[mysqld]段落下添加`log-bin`选项,指定binlog的存储路径,例如:`log-bin=/var/lib/mysql/mysql-bin.log`。 2. 保存配置文件并重启MySQL服务,使新配置生效。这将开始记录所有的...

    使用linux命令实现定时备份mysql数据+还原备份

    创建`reduce_db.sh`脚本,包含还原过程的逻辑,如解压备份文件并使用`mysql`命令导入数据。 2. **设置定时还原任务**: 使用`crontab -e`设置定时还原任务,例如每天早晨8点执行还原: ```bash 0 8 * * * /usr/...

    MySQL的备份与还原[0分]

    2. **切换到MySQL的bin目录**:使用`cd`命令切换到MySQL的安装目录下的bin目录,例如`cd /Program Files/MySQL/MySQL Server 5.0/bin`。 3. **执行备份命令**:使用`mysqldump`命令备份指定的数据库,例如`mysqldump...

    介绍备份和还原MySQL数据的两种方法

    总之,MySQL的备份和还原可以通过`mysqldump`进行逻辑备份,也可以直接操作数据库文件进行物理备份。根据实际情况选择合适的方法,并确保在备份和还原过程中考虑到权限、日志和系统设置等因素,以确保数据的完整性和...

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

    首先,将.sql备份文件放到MySQL的bin目录下。然后,在命令行界面登录到MySQL服务器。可以使用mysql命令登录,然后使用source命令执行.sql文件,来还原数据库到备份时的状态。 例如: mysql -u root -p Enter ...

    一个多线程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

    MYSQL日志与备份还原问题详解

    MySQL日志与备份还原是数据库管理中的重要环节,它们对于数据的安全性和可恢复性起着至关重要的作用。本文主要探讨了MySQL的错误日志、二进制日志(BINLOG)、数据备份和数据恢复这四个关键知识点。 首先,错误日志...

    MySQL数据库备份与还原脚本说明

    # perl Makefile.PL –mysql_config=/usr/local/mysql/bin/mysql_config # make ; make install ``` 2. **日志备份** 日志备份主要用于备份二进制日志文件,这些日志记录了数据库的所有更改,可用于增量恢复。...

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

    例如,如果要查看 `mysql-bin.000001` 和 `mysql-bin.000006` 文件的内容,并将其重定向到 `/root/bbx.log` 文件,命令行应写为:`mysqlbinlog mysql-bin.000001 mysql-bin.000006 > /root/bbx.log`。这将生成一个可...

    MySQL 备份还原数据库批处理

    例如,对于Windows系统,可以将路径`C:\Program Files\MySQL\MySQL Server 5.0\bin`添加到`Path`中。 2. **权限问题**:确保执行批处理文件的用户具有足够的权限访问MySQL数据库。 3. **WinRAR配置**:如果使用...

Global site tag (gtag.js) - Google Analytics