zoukankan      html  css  js  c++  java
  • 二十四、二进制日志截取与恢复

    截取二进制日志

    1、按照位置截取二进制日志

    #使用>导出
    $ mysqlbinlog --start-position=219 --stop-position=335 mysql-bin.000004 >/tmp/a.sql
    

    2、按照时间截取二进制日志

    #使用-r参数导出
    $ mysqlbinlog 
    --start-datetime="2021-03-30 17:14:15" 
    --stop-datetime='2021-03-30 17:15:15' 
    mysql-bin.000004 -r /tmp/b.sql
    

    通过binlog恢复数据

    只能作为辅助修复方法,如果数据太多日志数量也就越多不方便查找。

    #模拟数据
    mysql> create database haoge charset utf8mb4;
    mysql> use haoge;
    mysql> create table t1(id int);
    mysql> insert into t1 values(1);
    mysql> commit;
    
    #模拟故障 
    mysql> drop database haoge;
    
    #确认使用的日志文件
    mysql> show master status;   
    
    #查看事件
    mysql> show binlog events in 'mysql-bin.000004'; 
    
    #如果事件太多可导出结果进行查找
    $ mysql -e  "show binlog events in 'mysql-bin.000004'; "   > /tmp/mysql-bin.txt
    
    #找到起点和终点,进行截取
    $ mysqlbinlog --start-position=823 --stop-position=1420 /data/binlog/mysql-bin.000004 >/tmp/bin.sql
    
    #恢复binlog
    mysql> set sql_log_bin=0;   #临时关闭二进制日志记录以防恢复时产生的新日志
    mysql> source /tmp/bin.sql
    mysql> set sql_log_bin=1;  
    

    学习来自:老男孩深标DBA课程 第六章 日志管理

    今天的学习是为了以后的工作更加的轻松!
  • 相关阅读:
    B端产品经理的价值
    APP场景流程分析
    大众点评
    降低成本
    抽象不变的,可变的
    优惠券统计报表
    JSON WEB TOKEN
    vue开发项目的坑-[Vue warn]: Do not use built-in or reserved HTML elements as component id: MenuItem
    redis分布式锁和消息队列
    thinkphp 面向切面编程-行为拓展
  • 原文地址:https://www.cnblogs.com/tz90/p/14598681.html
Copyright © 2011-2022 走看看