美文网首页MYSQL
15.xtrabackup完全,增量备份及还原

15.xtrabackup完全,增量备份及还原

作者: Stone_説 | 来源:发表于2020-07-25 22:36 被阅读0次

    目录:
    0.方案描述
    1.数据备份
    2.数据还原

    0.场景介绍

    xtrabackup备份场景.jpg

    1.备份

    1.1完全备份
    [root@node09 ~]# xtrabackup --backup --target-dir=/backup/base
    [root@node09 backup]# pwd
    /backup
    [root@node09 backup]# ls base/ -l
    total 18460
    -rw-r----- 1 root root      431 Jul 25 21:22 backup-my.cnf
    drwxr-x--- 2 root root      146 Jul 25 21:22 hellodb
    -rw-r----- 1 root root 18874368 Jul 25 21:22 ibdata1
    drwxr-x--- 2 root root     4096 Jul 25 21:22 mysql
    drwxr-x--- 2 root root     4096 Jul 25 21:22 performance_schema
    drwxr-x--- 2 root root       20 Jul 25 21:22 test
    -rw-r----- 1 root root       22 Jul 25 21:22 xtrabackup_binlog_info
    -rw-r----- 1 root root      113 Jul 25 21:22 xtrabackup_checkpoints
    -rw-r----- 1 root root      468 Jul 25 21:22 xtrabackup_info
    -rw-r----- 1 root root     2560 Jul 25 21:22 xtrabackup_logfile
    
    1.2模拟数据修改
    MariaDB [hellodb]> select * from teachers;
    +-----+---------------+-----+--------+
    | TID | Name          | Age | Gender |
    +-----+---------------+-----+--------+
    |   1 | Song Jiang    |  45 | M      |
    |   2 | Zhang Sanfeng |  94 | M      |
    |   3 | Miejue Shitai |  77 | F      |
    |   4 | Lin Chaoying  |  93 | F      |
    +-----+---------------+-----+--------+
    4 rows in set (0.00 sec)
    
    MariaDB [hellodb]> insert teachers (name,age) values('stone',18);
    Query OK, 1 row affected (0.00 sec)
    
    MariaDB [hellodb]> select * from teachers;
    +-----+---------------+-----+--------+
    | TID | Name          | Age | Gender |
    +-----+---------------+-----+--------+
    |   1 | Song Jiang    |  45 | M      |
    |   2 | Zhang Sanfeng |  94 | M      |
    |   3 | Miejue Shitai |  77 | F      |
    |   4 | Lin Chaoying  |  93 | F      |
    |   5 | stone         |  18 | NULL   |
    +-----+---------------+-----+--------+
    5 rows in set (0.00 sec)
    
    MariaDB [hellodb]> insert teachers (name,age) values('centos',20);
    Query OK, 1 row affected (0.00 sec)
    
    MariaDB [hellodb]> select * from teachers;
    +-----+---------------+-----+--------+
    | TID | Name          | Age | Gender |
    +-----+---------------+-----+--------+
    |   1 | Song Jiang    |  45 | M      |
    |   2 | Zhang Sanfeng |  94 | M      |
    |   3 | Miejue Shitai |  77 | F      |
    |   4 | Lin Chaoying  |  93 | F      |
    |   5 | stone         |  18 | NULL   |
    |   6 | centos        |  20 | NULL   |
    +-----+---------------+-----+--------+
    6 rows in set (0.00 sec)
    
    1.3第一次增量备份
    [root@node09 ~]# xtrabackup --backup --target-dir=/backup/inc1 --incremental-basedir=/backup/base
    [root@node09 backup]# pwd
    /backup
    [root@node09 backup]# ll
    total 0
    drwxr-x--- 6 root root 217 Jul 25 21:22 base
    drwxr-x--- 6 root root 243 Jul 25 21:39 inc1
    [root@node09 backup]# du -sh /backup/*
    20M /backup/base
    1.6M    /backup/inc1
    
    1.4再次修改数据
    [root@node09 ~]# mysql
    Welcome to the MariaDB monitor.  Commands end with ; or \g.
    Your MariaDB connection id is 35
    Server version: 5.5.65-MariaDB MariaDB Server
    
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    MariaDB [(none)]> use hellodb
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    
    Database changed
    MariaDB [hellodb]> insert teachers (name,age) values('redhat',30);
    Query OK, 1 row affected (0.00 sec)
    
    MariaDB [hellodb]> select * from teachers;
    +-----+---------------+-----+--------+
    | TID | Name          | Age | Gender |
    +-----+---------------+-----+--------+
    |   1 | Song Jiang    |  45 | M      |
    |   2 | Zhang Sanfeng |  94 | M      |
    |   3 | Miejue Shitai |  77 | F      |
    |   4 | Lin Chaoying  |  93 | F      |
    |   5 | stone         |  18 | NULL   |
    |   6 | centos        |  20 | NULL   |
    |   7 | redhat        |  30 | NULL   |
    +-----+---------------+-----+--------+
    7 rows in set (0.00 sec)
    
    1.5第二次增量备份
    [root@node09 ~]# xtrabackup --backup --target-dir=/backup/inc2 --incremental-basedir=/backup/inc1
    [root@node09 backup]# ll
    total 0
    drwxr-x--- 6 root root 217 Jul 25 21:22 base
    drwxr-x--- 6 root root 243 Jul 25 21:39 inc1
    drwxr-x--- 6 root root 243 Jul 25 21:42 inc2
    [root@node09 backup]# du -sh /backup/*
    20M /backup/base
    1.6M    /backup/inc1
    1.5M    /backup/inc2
    
    1.6数据拷贝至还原结点node10
    [root@node09 ~]# scp -r /backup/ 192.168.177.139:/
    [root@node09 ~]# ls /backup
    base  inc1  inc2
    

    2.数据还原

    2.1准备还原文件
    [root@node10 ~]# xtrabackup --prepare --apply-log-only --target-dir=/backup/base
    [root@node10 ~]# xtrabackup --prepare --apply-log-only --target-dir=/backup/base --inc
    remental-dir=/backup/inc1
    [root@node10 ~]# xtrabackup --prepare --target-dir=/backup/base --incremental-dir=/backup/inc2
    
    2.2数据还原
    [root@node10 ~]# systemctl stop mariadb
    [root@node10 ~]# ll  /data/mysql/
    total 0
    [root@node10 ~]# xtrabackup --copy-back --target-dir=/backup/base
    [root@node10 ~]# ll  /data/mysql/
    total 40980
    drwxr-x--- 2 root root      146 Jul 18 20:43 hellodb
    -rw-r----- 1 root root 18874368 Jul 18 20:43 ibdata1
    -rw-r----- 1 root root  5242880 Jul 18 20:43 ib_logfile0
    -rw-r----- 1 root root  5242880 Jul 18 20:43 ib_logfile1
    -rw-r----- 1 root root 12582912 Jul 18 20:43 ibtmp1
    drwxr-x--- 2 root root     4096 Jul 18 20:43 mysql
    drwxr-x--- 2 root root     4096 Jul 18 20:43 performance_schema
    drwxr-x--- 2 root root       20 Jul 18 20:43 test
    -rw-r----- 1 root root       35 Jul 18 20:43 xtrabackup_binlog_pos_innodb
    -rw-r----- 1 root root      509 Jul 18 20:43 xtrabackup_info
    -rw-r----- 1 root root        1 Jul 18 20:43 xtrabackup_master_key_id
    [root@node10 ~]# du -sh /data/mysql/
    42M /data/mysql/
    [root@node10 ~]# chown -R mysql.mysql /data/mysql
    [root@node10 ~]# systemctl start mariadb
    
    2.3验证还原结果
    [root@node10 ~]# mysql
    Welcome to the MariaDB monitor.  Commands end with ; or \g.
    Your MariaDB connection id is 2
    Server version: 5.5.65-MariaDB MariaDB Server
    
    Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
    
    Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
    
    MariaDB [(none)]> use hellodb
    Reading table information for completion of table and column names
    You can turn off this feature to get a quicker startup with -A
    
    Database changed
    MariaDB [hellodb]> select * from teachers;
    +-----+---------------+-----+--------+
    | TID | Name          | Age | Gender |
    +-----+---------------+-----+--------+
    |   1 | Song Jiang    |  45 | M      |
    |   2 | Zhang Sanfeng |  94 | M      |
    |   3 | Miejue Shitai |  77 | F      |
    |   4 | Lin Chaoying  |  93 | F      |
    |   5 | stone         |  18 | NULL   |
    |   6 | centos        |  20 | NULL   |
    |   7 | redhat        |  30 | NULL   |
    +-----+---------------+-----+--------+
    7 rows in set (0.00 sec)
    
    

    相关文章

      网友评论

        本文标题:15.xtrabackup完全,增量备份及还原

        本文链接:https://www.haomeiwen.com/subject/kpamlktx.html