zoukankan      html  css  js  c++  java
  • Mysql binlog的基本使用和数据库恢复步骤

    前言

    简单记录下使用binlog的使用和恢复数据库的操作

    开启binlog

    开启mysql binlog日志,进入mysql配置文件(vi /etc/my.cnf) 在mysqld区域内添加如下内容,

     # 单个节点id
    server-id = 1
     # 位置一般和mysql库文件所在位置一样
    log-bin= /var/lib/mysql/mysql-bin
    # 表示此日志保存时间为10天
    expire_logs_days = 10
    

    重启mysqld,再次查看binlog日志开启状态为ON

    binlog常用命令

    show variables like '%log_bin%'; //查看binlog开启状态
    show variables like '%datadir%'; //查看binlog存放日志文件目录
    show master logs; //查看所有binlog日志文件列表
    show binlog events in ‘mysql-bin.000003’; //查看binglog日志内容
    Flush logs  //刷新日志
    

    恢复数据库

    一般流程

    备份数据库=> 刷新binlog => 操作失误 => 使用mysqlbinlog生成最近备份到失误前的命令的.sql文件 => 还原最新的备份数据库 => 执行.sql文件(执行备份后执行的正确命令)

    1.1 linux下使用

    # 使用pos生成
    /usr/bin/mysqlbinlog  --start-position=573 --stop-position=718 --database=hello  /var/lib/mysql/mysql-bin.000006 | /usr/bin/mysql -uroot -p密码 -v hello
    # 使用日期生成
    /usr/bin/mysqlbinlog --start-datetime="2018-04-27 20:57:55" --stop-datetime="2018-04-27 20:58:18" --database=hello /var/lib/mysql/mysql-bin.000009 | /usr/bin/mysql -uroot -p密码 -v hello
    

    1.2 windows下使用

    # 使用pos生成
    /usr/bin/mysqlbinlog  --start-position=573 --stop-position=718 --database=hello  /var/lib/mysql/mysql-bin.000006 > sql6.sql
    
    

    2 恢复

    source sql6.sql
    

    总结:

    1.恢复之前先用备份数据库恢复数据

    2.使用mysqlbinlog命令时 不可以在window powershell下执行,可以在cmd下执行

    3.最后使用binlog生成的sql文件恢复数据时,不可以在navicate里面执行文件,只能在cmd下执行

    4.备份数据库和使用binlogs命令的时候,最好使用flush logs刷新binlog日志,可以简化日后对binlog日志的pos查找

    5.mysqlbinlog可在mysql的bin目录下找到 windows: C:Program FilesMySQLMySQL Server 8.0in

  • 相关阅读:
    《课后习题》
    《课后习题---求两点之间的距离》
    《day06---面向对象入门》
    《java作业》
    《选择排序》
    《冒泡排序》
    《java版进制转换》
    《c语言全局变量的用法》
    《递归问题_2》
    C#把动态创建的多个控件中指定控件显示在最上层
  • 原文地址:https://www.cnblogs.com/xpengp/p/12766468.html
Copyright © 2011-2022 走看看