mysqlbinlog恢复mysql表数据

发布于:2023-07-27 ⋅ 阅读:(71) ⋅ 点赞:(0)

    2021新年的第一天第一篇文章,2020年最后一天是不安宁的一天,生产数据误删除,在项目经理的夺命call中恢复数据,现在回想真是惊心动魄,此时就做下数据库数据恢复的过程。

1、查看binlog日志是否开启

     如果没开启那就尴尬了,下面的就不用进行了

  show variables like 'log_%';

    如果没有设置,下次记得在/etc/my.cnf中配置 

log-bin=mysql-bin

   

2、查看所有二进制日志

 show master logs;

     每次重启,都会接着上次生成新的mysql-bin.xxxx文件

            清空重置命令: reset master;

3、查看需要恢复时间段二进制日志

      方法一、 进入mysql数据存放目录,一般都是在my.cnf中配置的,使用mysqlbinlog查看日志数据

mysqlbinlog --no-defaults mysql-bin.000005

  方法二、 在服务器上连上mysql的客户端

 show binlog events in 'mysql-bin.000005';

二进制文件是查到了,那怎么恢复数据呢,请接下来看

4、用mysql的二进制文件恢复数据

  将二进制文件重定向到指定的位置

   mysqlbinlog --no-defaults mysql-bin.000005 > /home/xxx.sql

 mysqlbinlog --no-defaults --base64-output=decode-rows  -v mysql-bin.000005 > /home/app_db.sql

5、关于mysql 常用的日志

   binlog                     二进制日志

   general_log_file     查询日志(使用general_log开启)

   redolog                   持久化日志

   undolog                 回滚日志

   relaylog                 中继日志

  slowlog                    慢查询日志

 6、 关于mysql调优的参数

innodb_buffer_pool_size                             缓冲池(以kb为单位)

innodb_log_buffer_size                              日志缓存

max_connections                                       最大连接数

back_log                                                     tcp积压请求栈大小

table_open_cache                                      执行线程可以打开表缓存

thread_cache_size                                      连接缓存数

innodb_lock_wait_time                                事务锁等待时间


网站公告

今日签到

点亮在社区的每一天
去签到