mysql 利用二进制日志进行数据恢复(mysqlbinlog)

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 老大让在windows下安装mysql服务(mysql免安装版http://download.softagency.net/MySQL/Downloads/MySQL-5.1/) 查看当前正在写的日志文件:mysql show master status  mysql> show maste...

老大让在windows下安装mysql服务(mysql免安装版http://download.softagency.net/MySQL/Downloads/MySQL-5.1/

查看当前正在写的日志文件:mysql show master status 

mysql> show master status;
+------------------+----------+--------------+------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000002 |      907 |              |                  |
+------------------+----------+--------------+------------------+

 

用mysqlbinlog命令导出可理解的文本文档:(两句都一样,下边的-r是--result-file参数的别名)

D:\mysql5163\data>mysqlbinlog --result-file=D:/result2.txt mysql-bin.000002

D:\mysql5163\data>mysqlbinlog -rD:/result2.txt mysql-bin.000002

用记事本打开result2.txt

# at 221
#120619 16:06:00 server id 1  end_log_pos 323     Query    thread_id=1    exec_time=0    error_code=0
SET TIMESTAMP=1340093160/*!*/;
insert into test value(1,12,'zhangsan')
/*!*/;
# at 323
#120619 16:26:13 server id 1  end_log_pos 421     Query    thread_id=1    exec_time=0    error_code=0
SET TIMESTAMP=1340094373/*!*/;
insert into test value(2,12,'lisi')
/*!*/;

按位置恢复(按日期恢复时,老提示我日期有错误,不合格)第一条:

D:\mysql5163\data>mysqlbinlog --start-position=221 --stop-position=323 mysql-bin.000002 | mysql -uroot

注意:1.恢复一条时用这一条的两边的两个at后的值(#at 221 #at 323)当然 也可以用相应的end_log_pos来定位某条语句或某几条语句

2.参数和命令跟 Linux下一样(mysqlbinlog -help)

3.我的二进制日志存放在数据库目录下(默认的路径),我的mysqlbinlog 命令是在日志文件的目录下敲的,如果你不是的话可以将目录补全

 找到了,实验成功:通过日期进行恢复,使用的是双引号http://www.cnblogs.com/xionghui/archive/2012/03/11/2389792.html

>mysqlbinlog --start-datetime="2009-09-14 0:20:00" --stop-datetim="2009-09-15 01:25:00" /diskb/bin-logs/xxx_db-bin.000001 | mysql -u root

ps:命令帮助

 --start-datetime=name
                     Start reading the binlog at first event having a datetime
                     equal or posterior to the argument; the argument must be
                     a date and time in the local time zone, in any format  //任何mysql能接收的日期格式
                     accepted by the MySQL server for DATETIME and TIMESTAMP
                     types, for example: 2004-12-25 11:25:56 (you should
                     probably use quotes for your shell to set it properly). //最好用引号(双引号)
 -j, --start-position=#
                     Start reading the binlog at position N. Applies to the
                     first binlog passed on the command line.
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
11天前
|
存储 安全 关系型数据库
Mysql 的binlog日志的优缺点
MySQL的binlog(二进制日志)是一个记录数据库更改的日志文件,它包含了所有对数据库执行的更改操作,如INSERT、UPDATE和DELETE等。binlog的主要目的是复制和恢复。以下是binlog日志的优缺点: ### 优点: 1. **数据恢复**:当数据库出现意外故障或数据丢失时,可以利用binlog进行点恢复(point-in-time recovery),将数据恢复到某一特定时间点。 2. **主从复制**:binlog是实现MySQL主从复制功能的核心组件。主服务器将binlog中的事件发送到从服务器,从服务器再重放这些事件,从而实现数据的同步。 3. **审计**:b
|
21天前
|
SQL 关系型数据库 MySQL
MySQL数据库,可以使用二进制日志(binary log)进行时间点恢复
对于MySQL数据库,可以使用二进制日志(binary log)进行时间点恢复。二进制日志是MySQL中记录所有数据库更改操作的日志文件。要进行时间点恢复,您需要执行以下步骤: 1. 确保MySQL配置文件中启用了二进制日志功能。在配置文件(通常是my.cnf或my.ini)中找到以下行,并确保没有被注释掉: Copy code log_bin = /path/to/binary/log/file 2. 在需要进行恢复的时间点之前创建一个数据库备份。这将作为恢复的基准。 3. 找到您要恢复到的时间点的二进制日志文件和位置。可以通过执行以下命令来查看当前的二进制日志文件和位
|
20天前
|
SQL 关系型数据库 MySQL
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(数据恢复补充篇)(一)
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(数据恢复补充篇)
29 0
|
1月前
|
存储 SQL 关系型数据库
[MySQL]事务原理之redo log,undo log
[MySQL]事务原理之redo log,undo log
|
1月前
|
SQL 缓存 关系型数据库
MySQL的万字总结(缓存,索引,Explain,事务,redo日志等)
MySQL的万字总结(缓存,索引,Explain,事务,redo日志等)
65 0
|
2月前
|
存储 监控 关系型数据库
ELK架构监控MySQL慢日志
ELK架构监控MySQL慢日志
|
2月前
|
SQL 运维 关系型数据库
MySQL中常见的几种日志类型
MySQL中常见的几种日志类型
|
2月前
|
关系型数据库 MySQL 数据库
MySQL员工打卡日志表——数据库练习
MySQL员工打卡日志表——数据库练习
136 0
|
16天前
|
Java
使用Java代码打印log日志
使用Java代码打印log日志
73 1
|
18天前
|
Linux Shell
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
Linux手动清理Linux脚本日志定时清理日志和log文件执行表达式
71 1