zoukankan      html  css  js  c++  java
  • my13_mysql xtrabackup备份的时间点

    备份原理

    xtrabackup的备份时间点是备份结束时刻,记录在xtrabackup_binlog_info 文件中;如果后续需要通过binlog追加操作,则该时间点是起点。

    备份开始后,xtrabckup就开始复制数据库中的文件,不锁表,同时监控日志变化;

    在复制完所有的database后,立即将此时数据库master status的位置写入xtrabackup_binlog_info 文件,所以从时间上来看,xtrabackup_binlog_info文件在数据库目录文件的下面,在其他文件的上面。

    如果这个时间点有未提交的事务,则最终会回退,此操作为crash-recovery(崩溃恢复)--应用所有已提交和未提交的事务,并回滚未提交的事务。

    备份前时刻

    个人测试库环境,除非手工执行SQL语句,否则不会有其他事务产生,备份前

    mysql> show master statusG;
    *************************** 1. row ***************************
                 File: mysql-bin.000038
             Position: 19842
         Binlog_Do_DB: 
     Binlog_Ignore_DB: 
    Executed_Gtid_Set: 
    1 row in set (0.00 sec)
    
    ERROR: 
    No query specified
    # rpm -qa | grep xtrabackup
    percona-xtrabackup-24-2.4.12-1.el7.x86_64

    开始备份

    innobackupex  --defaults-file=/etc/my_bakdb.cnf --no-timestamp --user automng --host=192.168.56.82 --port=3319 --password ***** /data0/backup/dbbak_20180813

    刚开始备份时备份目录的文件,此时并没有xtrabackup_binlog_info 文件

    [root@red4 dbbak_20180813]# ls -ltrh
    total 2.0G
    -rw-r-----. 1 root root 2.0K Aug 13 16:40 xtrabackup_logfile
    -rw-r-----. 1 root root 1.0G Aug 13 16:40 ibdata1

    手工执行DML语句,让数据库产生事务变化

    mysql> delete from sbtest9 limit 10;
    Query OK, 10 rows affected (0.63 sec)

    备份完成后,文件目录中,有xtrabackup_binlog_info 文件但要比相应的数据库的备份目录时间上靠后

    [root@red4 dbbak_20180813]# ls -ltrh
    total 1.1G
    -rw-r-----. 1 root root 1.0G Aug 13 16:40 ibdata1
    drwxr-x---. 2 root root 4.0K Aug 13 16:42 mysql
    drwxr-x---. 2 root root 8.0K Aug 13 16:42 sys
    drwxr-x---. 2 root root 4.0K Aug 13 16:42 txdb
    drwxr-x---. 2 root root 8.0K Aug 13 16:42 performance_schema
    -rw-r-----. 1 root root   23 Aug 13 16:42 xtrabackup_binlog_info
    -rw-r-----. 1 root root  30K Aug 13 16:42 xtrabackup_logfile
    -rw-r-----. 1 root root  119 Aug 13 16:42 xtrabackup_checkpoints
    -rw-r-----. 1 root root 3.5K Aug 13 16:42 ib_buffer_pool
    -rw-r-----. 1 root root  493 Aug 13 16:42 backup-my.cnf
    -rw-r-----. 1 root root  588 Aug 13 16:42 xtrabackup_info

    可以看到xtrabackup_binlog_info文件中记录并不是刚开始的19842这个位置,而是事务变化后的24218位置,

    # cat xtrabackup_binlog_info 
    mysql-bin.000038    24218
    mysql> show master statusG;
    *************************** 1. row ***************************
                 File: mysql-bin.000038
             Position: 24218
         Binlog_Do_DB: 
     Binlog_Ignore_DB: 
    Executed_Gtid_Set: 
    1 row in set (0.00 sec)
    
    ERROR: 
    No query specified
  • 相关阅读:
    Flux 是什么?
    看深度学习框架排名第一的TensorFlow如何进行时序预测!
    时间序列ARIMA模型预测方法,及相关函数使用方法介绍
    解决MATLAB在K-means提示“KMEANS does not accept complex data.”错误
    机器学习——朴素贝叶斯分类器
    K-近邻分类法及tabulate、rng、categorical、varfun、discretize函数用法介绍
    灰色预测模型及MATLAB实例
    数学建模——预测模型简介
    支持向量机(SVM)MATLAB 实例讲解,及选择训练方式使误差率尽可能减为0
    批量修改文件后缀名,文件批量排序
  • 原文地址:https://www.cnblogs.com/perfei/p/9469282.html
Copyright © 2011-2022 走看看