mysql实战——xtrabackup全量备份/增量备份及恢复

王柳  金牌会员 | 2024-8-28 15:22:47 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 540|帖子 540|积分 1620

一、测试前准备


mysql数据库

端口3306
数据文件目录 /data/mysql/3306/data
安装目录/usr/lcoal/mysql
设置文件/etc/my.cnf
创建数据库

testXtra 
创建备份目录

备份目录/data/backup/
备份恢复数据文件目录/data/mysql/3307/data
备份恢复设置文件/etc/my_3307.cnf
 二、开始测试

1、全量备份数据库

命令:
   xtrabackup --user=root --password=mysql --backup --parallel=10 --target-dir=/data/backup/full
  

2、全量备份恢复(先准备,再恢复)

(1)准备

   xtrabackup --prepare --use-memory=2G --target-dir=/data/backup/full
  


(2)恢复

恢复的机器必须有my.cnf设置文件,再设置文件中设置好datadir目录即数据问目录,数据目录也必须为空,若不为空则会报错。
测试在本机恢复
   vi my_3307.cnf
  
  [client]
socket=/data/mysql/3307/data/mysql.sock
  [mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql/3307/data
user=mysql
port=3307
socket=/data/mysql/3307/data/mysql.sock
log_error=/data/mysql/3307/data/mysqld.err
log_timestamps=system
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
  [mysqld_safe]
log-error=/data/mysql/3307/data/mysqld.err
pid-file=/data/mysql/3307/data/mysqld.pid
  #
# include all files from the config directory
#
!includedir /etc/my.cnf.d
  恢复命令
    xtrabackup --defaults-file=/etc/my_3307.cnf --copy-back --parallel=10 --target-dir=/data/backup/full
  




(3)授权

    chown -R mysql.mysql /data/mysql/3307/data 
  (4)启动数据库实例

   mysqld_safe --defaults-file=/etc/my_3307.cnf & 
  

(5)grep mysql


(6)检察备份文件


三、增量备份

 1、先全量备份

   xtrabackup --user=root --password=mysql --backup --target-dir=/data/backup/base
  

 2、全量备份之后增长些数据


3、第一次增量备份

增量备份需要获取全量备份的to_lsn。
(1)检察全量备份的to_lsn

    cd /data/backup/base
  cat xtrabackup_checkpoints
  

如上图to_lsn=18374406
(2)第一次增量备份的命令

   xtrabackup --user=root --password=mysql --backup --target-dir=/data/backup/inc4 --incremental-lsn=18374406
  


可以看到inc4是第一次增量备份天生的文件
(3)查抄下备份文件是否有新增的数据文件


可以看到test2表空间 
4、第二次增量备份

(1)添加些数据


(2)检察第一次增量备份文件的to_lsn



(3)第二次增量备份的命令

   xtrabackup --user=root --password=mysql --backup --target-dir=/data/backup/inc5 --incremental-lsn=18411278 
  

5、增量备份恢复步骤

(1) 全量备份准备

   xtrabackup --prepare --apply-log-only --target-dir=/data/backup/base
  

(2)第一次增量备份准备

    xtrabackup --prepare --apply-log-only --target-dir=/data/backup/base --incremental-dir=/data/backup/inc4
  

 (3)第二次增量备份准备

   xtrabackup --prepare --target-dir=/data/backup/base --incremental-dir=/data/backup/inc5
  

(4)修改设置文件

   vi /etc/my_3307.cnf
  
  
  [client]
socket=/data/mysql/3307/data/mysql.sock
  [mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql/3307/data
user=mysql
port=3307
socket=/data/mysql/3307/data/mysql.sock
log_error=/data/mysql/3307/data/mysqld.err
log_timestamps=system
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
  [mysqld_safe]
log-error=/data/mysql/3307/data/mysqld.err
pid-file=/data/mysql/3307/data/mysqld.pid
  #
# include all files from the config directory
#
!includedir /etc/my.cnf.d
  (5)恢复命令

   xtrabackup --defaults-file=/etc/my_3307.cnf --copy-back --target-dir=/data/backup/base
  (6)查抄备份的数据文件 


可以看到第一次增量备份后新增的表空间被恢复了。
(7)启动备份的数据库实例


(8)grep mysql


(9)登录数据库实例




免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王柳

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表