zoukankan      html  css  js  c++  java
  • xtrabackup之Innobackupex增量备份及恢复

    演示增量备份

    #启动一个全备
    innobackupex 
    > --defaults-file=/mysql/mysqldata/3306/my.cnf 
    > --host=127.0.0.1 
    > --user=xtrabk 
    > --password='onlybackup' /mysql/mysqldata/backup/
    
    ............
    160527 05:47:55  innobackupex: completed OK!
    [mysql@hadoop1 mysqldata]$
    #新增记录,以便区分全备与增备
    [mysql@hadoop1 mysqldata]$ mysql
    mysql> create database polestar_myisam;
    mysql> create database polestar_innodb;
    mysql> create table m_polestar engine=myisam select * from mysql.user;
    mysql> create table i_polestar engine=innodb select * from mysql.user;
    #启动一个增量备份 
    innobackupex 
    --defaults-file=/mysql/mysqldata/3306/my.cnf 
    --host=127.0.0.1 
    --user=xtrabk 
    --password='onlybackup' 
    --incremental-basedir=/mysql/mysqldata/backup/2016-05-27_05-47-34 
    --incremental /mysql/mysqldata/backup/
    
    ............
    160527 06:08:43  innobackupex: completed OK!
    [mysql@hadoop1 mysqldata]$
    #再新增记录,以便区分第一次增备
    mysql> use polestar_myisam;
    Database changed
    mysql> insert into m_polestar  select * from mysql.user;
    mysql> use polestar_innodb;
    mysql> insert into i_polestar  select * from mysql.user;
    #以上次增量备份为基础 再次增量备份
    innobackupex 
    --defaults-file=/mysql/mysqldata/3306/my.cnf 
    --host=127.0.0.1 
    --user=xtrabk 
    --password='onlybackup' 
    --incremental-basedir=/mysql/mysqldata/backup/2016-05-27_06-08-22 
    --incremental /mysql/mysqldata/backup/
    
    .......
    160527 06:15:15  innobackupex: completed OK!
    [mysql@hadoop1 mysqldata]$ 

      至此,三次备份完成(一次全备,两个增量备份).下面看下三个备份集中的LSN号顺序:

    [mysql@hadoop1 backup]$ more ./2016-05-27_05-47-34/xtrabackup_checkpoints
    backup_type = full-backuped
    from_lsn = 0
    to_lsn = 1626134
    last_lsn = 1626134
    [mysql@hadoop1 backup]$ more ./2016-05-27_06-08-22/xtrabackup_checkpoints
    backup_type = incremental
    from_lsn = 1626134
    to_lsn = 1643331
    last_lsn = 1643331
    [mysql@hadoop1 backup]$ more ./2016-05-27_06-14-55/xtrabackup_checkpoints
    backup_type = incremental
    from_lsn = 1643331
    to_lsn = 1650836
    last_lsn = 1650836
    [mysql@hadoop1 backup]$

    恢复增量备份

    #先备份整个备份集
    [mysql@hadoop1 mysqldata]$ ls
    3306   3307  backup
    [mysql@hadoop1 mysqldata]$ cp -rf backup  backup02
    #先做基于全备的apply,注意,此时使用了--redo-only   
    innobackupex 
    --defaults-file=/mysql/mysqldata/3306/my.cnf 
    --apply-log 
    --redo-only 
    /mysql/mysqldata/backup/2016-05-27_05-47-34
    
    ..........
    160527 06:22:33  innobackupex: completed OK!
    [mysql@hadoop1 3306]$
    注意目录中文件的修改时间变化
    [mysql@hadoop1 2016-05-27_05-47-34]$ pwd
    /mysql/mysqldata/backup/2016-05-27_05-47-34
    [mysql@hadoop1 2016-05-27_05-47-34]$ ls -l
    total 104592
    -rw-rw-r-- 1 mysql mysql       241 May 27 05:47 backup-my.cnf
    -rw-rw---- 1 mysql mysql 104857600 May 27 06:22 ibdata01
    drwx------ 2 mysql mysql      4096 May 27 05:47 mysql
    drwxrwxr-x 2 mysql mysql      4096 May 27 05:47 performance_schema
    drwxrwxr-x 2 mysql mysql      4096 May 27 05:47 polestar
    drwxrwxr-x 2 mysql mysql      4096 May 27 05:47 polestar02
    drwxrwxr-x 2 mysql mysql      4096 May 27 05:47 test
    -rw-rw-r-- 1 mysql mysql        13 May 27 05:47 xtrabackup_binary
    -rw-rw-r-- 1 mysql mysql        23 May 27 05:47 xtrabackup_binlog_info
    -rw-rw---- 1 mysql mysql        77 May 27 06:22 xtrabackup_checkpoints
    -rw-rw---- 1 mysql mysql   2097152 May 27 06:22 xtrabackup_logfile
    [mysql@hadoop1 2016-05-27_05-47-34]$
    --基于第一个增备的apply
    innobackupex 
    --defaults-file=/mysql/mysqldata/3306/my.cnf 
    --apply-log 
    --redo-only 
    /mysql/mysqldata/backup/2016-05-27_05-47-34 
    --incremental-dir=/mysql/mysqldata/backup/2016-05-27_06-08-22
    ...........
    160527 06:26:42  innobackupex: completed OK!
    [mysql@hadoop1 3306]$
    注意文件的修改时间和上次恢复时的不同
    [mysql@hadoop1 2016-05-27_05-47-34]$ ls -l
    total 104600
    -rw-rw-r-- 1 mysql mysql       241 May 27 05:47 backup-my.cnf
    -rw-rw---- 1 mysql mysql 104857600 May 27 06:26 ibdata01
    drwx------ 2 mysql mysql      4096 May 27 05:47 mysql
    drwxrwxr-x 2 mysql mysql      4096 May 27 05:47 performance_schema
    drwxrwxr-x 2 mysql mysql      4096 May 27 06:26 polestar
    drwxrwxr-x 2 mysql mysql      4096 May 27 06:26 polestar02
    drwxrwx--- 2 mysql mysql      4096 May 27 06:26 polestar_innodb
    drwxrwxr-x 2 mysql mysql      4096 May 27 06:26 polestar_myisam
    drwxrwxr-x 2 mysql mysql      4096 May 27 05:47 test
    -rw-rw-r-- 1 mysql mysql        13 May 27 05:47 xtrabackup_binary
    -rw-rw-r-- 1 mysql mysql        24 May 27 06:26 xtrabackup_binlog_info
    -rw-rw---- 1 mysql mysql        77 May 27 06:26 xtrabackup_checkpoints
    -rw-rw---- 1 mysql mysql   2097152 May 27 06:22 xtrabackup_logfile
    [mysql@hadoop1 2016-05-27_05-47-34]$ 
    --基于最后一个增备的apply 
    innobackupex 
    --defaults-file=/mysql/mysqldata/3306/my.cnf 
    --apply-log 
    /mysql/mysqldata/backup/2016-05-27_05-47-34 
    --incremental-dir=/mysql/mysqldata/backup/2016-05-27_06-14-55
    
    ...........
    160527 06:33:17  innobackupex: completed OK!
    [mysql@hadoop1 3306]$ 
    注意文件修改时间的变化
    [mysql@hadoop1 2016-05-27_05-47-34]$ ls -l
    total 104600
    -rw-rw-r-- 1 mysql mysql       241 May 27 05:47 backup-my.cnf
    -rw-rw---- 1 mysql mysql 104857600 May 27 06:33 ibdata01
    drwx------ 2 mysql mysql      4096 May 27 05:47 mysql
    drwxrwxr-x 2 mysql mysql      4096 May 27 05:47 performance_schema
    drwxrwxr-x 2 mysql mysql      4096 May 27 06:26 polestar
    drwxrwxr-x 2 mysql mysql      4096 May 27 06:26 polestar02
    drwxrwx--- 2 mysql mysql      4096 May 27 06:26 polestar_innodb
    drwxrwxr-x 2 mysql mysql      4096 May 27 06:26 polestar_myisam
    drwxrwxr-x 2 mysql mysql      4096 May 27 05:47 test
    -rw-rw-r-- 1 mysql mysql        13 May 27 05:47 xtrabackup_binary
    -rw-rw-r-- 1 mysql mysql        24 May 27 06:33 xtrabackup_binlog_info
    -rw-rw---- 1 mysql mysql        77 May 27 06:33 xtrabackup_checkpoints
    -rw-rw---- 1 mysql mysql   2097152 May 27 06:22 xtrabackup_logfile
    [mysql@hadoop1 2016-05-27_05-47-34]$ 

    数据库恢复

    innobackupex 
    --defaults-file=/mysql/mysqldata/3306/my.cnf 
    --copy-back 
    /mysql/mysqldata/backup/2016-05-27_05-47-34
    
    ......
    
    160527 06:38:03  innobackupex: completed OK!
    [mysql@hadoop1 3306]$
    --验证
    [mysql@hadoop1 3306]$mysqld_safe --defaults-file=/mysql/mysqldata/3306/my.cnf &
    mysql> use polestar_myisam;
    mysql> show tables;
    +---------------------------+
    | Tables_in_polestar_myisam |
    +---------------------------+
    | m_polestar                | 
    +---------------------------+
    mysql> select count(*) from m_polestar;
    +----------+
    | count(*) |
    +----------+
    |       14 | 
    +----------+
    mysql> 

    小结

    a、增量备份是基于增量或全备的基础之上完成的。
    b、增量备份的基础是InnoDB引擎使用了LSN机制,非InnoDB引擎不存在增量备份的说法,每次都是全备。
    c、对于增量备份的恢复期间需要对已提交的事务前滚,未提交的事务回滚。
    d、增量备份的恢复应按照备份的顺利逐个逐个replay,需要使用--apply-log --redo-only选项。
    e、仅仅最后一个增量备份不需要使用--redo-only选项
  • 相关阅读:
    如何为惠普笔记本ProBook 4431S清理电源风扇通风口灰尘
    office app之 Mail App 从新建到发布
    sublime_text3汉化,破解,安装Package_control支持中文显示
    poj3126prime+BFS
    android开发之欢迎界面
    poj 1151 离散化
    DbVisualizer 9 解决中文乱码问题
    RS232、RS422与RS485串口标准简介
    动态创建菜单和动态关联菜单项事件
    更改路径
  • 原文地址:https://www.cnblogs.com/polestar/p/5636278.html
Copyright © 2011-2022 走看看