zoukankan      html  css  js  c++  java
  • mysqlbinlog恢复数据注意事项【转】

    mysqlbinlog 恢复数据注意事项

    前言:
    上次有个有个朋友恢复 MySQL 数据,一直恢复不成功,也没有报错信息,使用的环境是 MySQL 5.7 使用了 GTID 以及 binlog 格式为 ROW。现在我主要总结下没有恢复成功可能的原因以及解决方法。

    1.不要使用 base64-output=decode-rows 参数

    --base64-output=decode-rows主要是解析 ROW 级别 binlog 日志时使用。
    我们解析日志的时候都会使用:

    # mysqlbinlog -v --base64-output=decode-rows --start-position=XXX --stop-position=XXX mysql-bin.0000XX

    这是我们解析 binlog 日志时使用的命令,我们可以很直观的分析 binlog 日志。

    但是我们想要恢复到数据库中的时候,不能使用--base64-output=decode-rows 参数,否则是无法恢复到数据库的。

    2.是否使用--skip-gtids=true 参数

    --skip-gtids=xxx的作用为:mysqldump
    是否使用--skip-gtids=true 参数,要根据情况来定;
    第一种情况:
    如果我们是要恢复数据到源数据库或者和源数据库有相同 GTID 信息的实例,那么就要使用该参数。如果不带该参数的话,是无法恢复成功的。因为包含的 GTID 已经在源数据库执行过了,根据 GTID 特性,一个 GTID 信息在一个数据库只能执行一次,所以不会恢复成功。

    # mysqlbinlog --skip-gtids=true  mysql-bin.000012 |mysql -uroot -p

    或者

    # mysqlbinlog --skip-gtids=true  mysql-bin.000012 > backup.sql
    mysql -uroot -p < backup.sql

    第二种情况:
    如果是恢复到其他实例的数据库并且不包含源实例的 GTID 信息,那么可以不使用该参数,使用或者不使用都可以恢复成功。

    转自

    mysqlbinlog恢复数据注意事项 – UnixFBI 运维特工 http://www.unixfbi.com/499.html

  • 相关阅读:
    Centos6.5安装Oracle11.2.0.4 RAC(完整版)
    VMware搭建Oracle 11g RAC测试环境 For Linux
    Linux CentOS命令行界面字体重复问题解决记录
    SSH公钥认证(码云)
    Git 上传本地仓库到码云
    Git 相关工具及教程地址
    jdk8 新特性stream().map()
    PowerDesigner 使用记录
    IDEA 中.properties文件中文自动转Unicode编码及乱码问题
    idea在Maven Projects中显示灰色的解决办法
  • 原文地址:https://www.cnblogs.com/paul8339/p/9353587.html
Copyright © 2011-2022 走看看