鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

增量备份与恢复

  1. 在主库创建备份目录
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    mkdir -p /data/xbackup/full/
    mkdir -p /data/xbackup/inc1/
    mkdir -p /data/xbackup/inc2/
    ll /data/xbackup/
    ll /data/xbackup/full/
    ll /data/xbackup/inc1/
    ll /data/xbackup/inc2/
    rm -rf /data/xbackup/full/*
    rm -rf /data/xbackup/inc1/*
    rm -rf /data/xbackup/inc2/*
    
  2. 在主库上备份主库的数据(增量备份,简称增备)
    1. 进入XtraBackup的bin目录。
      • xtrabackup-8.0.13版本:
        1
        cd /usr/local/xtrabackup-8.0.13/bin/
        
      • xtrabackup-2.4.20版本:
        1
        cd /usr/local/xtrabackup-2.4.20/bin/
        
    2. 创建全量备份。
      1
      ./xtrabackup --user=root --password=123456 --port=3306 --host=192.168.220.58 --socket=/data/mysql/run/mysql.sock --parallel=16 --backup --target-dir=/data/xbackup/full/
      
    3. 创建第一次增量备份。
      1
      ./xtrabackup --backup --user=root --password=123456 --port=3306 --socket=/data/mysql/run/mysql.sock --host=192.168.220.58 --target-dir=/data/xbackup/inc1/ --incremental-basedir=/data/xbackup/full/
      
    4. 创建第二次增量备份。
      1
      ./xtrabackup --backup --user=root --password=123456 --port=3306 --socket=/data/mysql/run/mysql.sock --host=192.168.220.58 --target-dir=/data/xbackup/inc2/ --incremental-basedir=/data/xbackup/inc1/
      
    5. 查看全量备份xtrabackup_checkpoints中的lsn(log sequence number,日志序列号)。
      1
      cat /data/xbackup/full/xtrabackup_checkpoints
      
    6. 查看全量备份xtrabackup_binlog_info中的binlog位置。
      1
      cat /data/xbackup/full/xtrabackup_binlog_info
      
    7. 查看增量备份xtrabackup_checkpoints中的lsn(log sequence number,日志序列号)。
      1
      2
      cat /data/xbackup/inc1/xtrabackup_checkpoints
      cat /data/xbackup/inc2/xtrabackup_checkpoints
      
    8. 查看增量备份xtrabackup_binlog_info中的binlog位置。
      1
      2
      cat /data/xbackup/inc1/xtrabackup_binlog_info
      cat /data/xbackup/inc2/xtrabackup_binlog_info
      
  3. 在主库查看备份数据
    1
    2
    3
    4
    5
    6
    7
    8
    ll /data/xbackup/
    ll /data/xbackup/full/
    ll /data/xbackup/inc1/
    ll /data/xbackup/inc2/
    du -sh /data/xbackup/
    du -sh /data/xbackup/full/
    du -sh /data/xbackup/inc1/
    du -sh /data/xbackup/inc2/
    
  4. 在主库把备份的主库数据拷贝到从库
    1. 在从库创建备份目录。
       1
       2
       3
       4
       5
       6
       7
       8
       9
      10
      mkdir -p /data/xbackup/full/
      mkdir -p /data/xbackup/inc1/
      mkdir -p /data/xbackup/inc2/
      ll /data/xbackup/
      ll /data/xbackup/full/
      ll /data/xbackup/inc1/
      ll /data/xbackup/inc2/
      rm -rf /data/xbackup/full/*
      rm -rf /data/xbackup/inc1/*
      rm -rf /data/xbackup/inc2/*
      
    2. 在主库把备份的主库数据拷贝到从库。
      1
      2
      3
      scp -r /data/xbackup/full/* root@192.168.220.152:/data/xbackup/full/
      scp -r /data/xbackup/inc1/* root@192.168.220.152:/data/xbackup/inc1/
      scp -r /data/xbackup/inc2/* root@192.168.220.152:/data/xbackup/inc2/
      
    3. 在从库查看备份数据
      1
      2
      3
      4
      5
      6
      7
      8
      ll /data/xbackup/
      ll /data/xbackup/full/
      ll /data/xbackup/inc1/
      ll /data/xbackup/inc2/
      du -sh /data/xbackup/
      du -sh /data/xbackup/full/
      du -sh /data/xbackup/inc1/
      du -sh /data/xbackup/inc2/
      
  5. 在从库的服务器上停止从库的MySQL进程
    1
    2
    3
    ps -ef | grep mysql
    /usr/local/mysql/bin/mysqladmin -uroot -p123456 shutdown -S /data/mysql/run/mysql.sock
    ps -ef | grep mysql
    
  6. 在从库把备份的主库数据恢复到从库(增备恢复)。
    1. 进入XtraBackup的bin目录。
      • xtrabackup-8.0.13版本
        1
        cd /usr/local/xtrabackup-8.0.13/bin/
        
      • xtrabackup-2.4.20版本:
        1
        cd /usr/local/xtrabackup-2.4.20/bin/
        
    2. 准备全量备份。
      1
      2
      ./xtrabackup --prepare --apply-log-only --target-dir=/data/xbackup/full/
      ll /data/xbackup/full/
      

      出现completed OK,则说明准备完成。

    3. 将第一次增量备份合并到全量备份。
      1
      2
      ./xtrabackup --prepare --apply-log-only --target-dir=/data/xbackup/full/ --incremental-dir=/data/xbackup/inc1/
      ll /data/xbackup/full/
      
    4. 将第二次增量备份合并到全量备份。
      ./xtrabackup --prepare --target-dir=/data/xbackup/full/ --incremental-dir=/data/xbackup/inc2/
      ll /data/xbackup/full/
    5. 恢复数据。
      1
      rsync -avrP /data/xbackup/full/ /data/mysql/data/
      
  7. 启动数据库
    ps -ef | grep mysql
    /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf &
  8. 登录数据库并查看数据
    1
    2
    /usr/local/mysql/bin/mysql -uroot -p123456 -S /data/mysql/run/mysql.sock
    show databases;