xtrabackup实现全量备份和增量备份

mysql增量和完全备份
innobackupex2.1.9版本
1 yum安装:

官网地址:https://www.percona.com/doc/percona-xtrabackup/LATEST/installation/yum_repo.html
yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm
yum list | grep percona
yum remove percona-xtrabackup
yum install percona-xtrabackup-24 -y
xtrabackup -version

2使用编译好的通用包

自行选择版本:https://www.percona.com/downloads/XtraBackup/LATEST/binary/redhat/6/x86_64/
本次使用版本: https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.8/binary/tarball/percona-xtrabackup-2.4.8-Linux-x86_64.tar.gz
tar xf percona-xtrabackup-2.4.8-Linux-x86_64.tar.gz -C /usr/local/
mv /usr/local/percona-xtrabackup-2.4.8-Linux-x86_64/ /usr/local/xtrabackup
echo "export PATH=$PATH:/usr/local/xtrabackup/bin" >> /etc/profile
source /etc/profile
yum install numactl -y #安装依赖

--------全量备份---------
数据备份放到/data/backup/下面,innobackuppex会自动创建一个文件夹+当前系统时间戳
先备份下,然后测试一下,再备份。
备份:
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456
--socket=/usr/local/mysql/mysqld.sock /data/backup/full --host=192.168.133.140
测试:
grant all slave on *.* to ‘backup‘@‘%‘ identified by ‘123456‘;
再次备份:
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456
--socket=/usr/local/mysql/mysqld.sock /data/backup/full --host=192.168.133.140

一下这个删除不要了。
#innobackupex --defaults-file=/usr/local/mysql/my.cnf --user=root
#--password=123456 --host=127.0.0.1 --parallel=2 --throttle=200
#/backup/mysql/data 2>/backup/mysql/data/bak.log 1>/backup/mysql/data/`data +%Y-%m-%d_%H-%M%S`

--user=root 备份操作用户名
--password=123456 数据库密码
--host=192.168.133.140 数据库的ip,本地的可以不加(适用于远程备份)。
提前在mysql中授权连接的权限,最好备份前测试用户名,密码,host能否正常连接mysql
--parallel=2 --throttle=200 并行个数,根据主机配置选择合适的,默认是1,多个加速备份速度
/data/backup 备份存放的目录
2>/data/backup/bak.log 备份日志,将日志备份过程中的输出信息重定向到bak.log

备份完成后会在备份目录下创建一个以当前时间日期为名字的目录,存放备份文件
ll /data/backup/时间
backup-my.cnf --备份命令用到的配置选项信息
ibdata1 --备份的表空间文件
xtarbackup_binary --备份中用到的xtrabackup的可执行文件
xtarbackup_binlog_info --mysql服务器当前正在使用的二进制日志文件及至备份这一刻为止的二进制日志事件的位置。
xtrabackup_checkpoints --备份类型(如完全或者增量),备份状态(如是否为prepare状态)
LSN(日志序列号)范围信息
xtarbackup_logfile --备份的重做日志文件

>drop database test; (线上不使用)
恢复全备
恢复备份到mysql的数据文件目录,
先关mysql数据库
重命名或者删除原数据库目录
创建新的数据库目录
将备份的数据库目录复制到新的数据文件目录下
赋值,修改权限,启动数据库
service mysqld stop
mv /data/mysql/ /xxx (这个只是将数据库的目录复制)
或者直接删除: rm -rf /data/mysql/*

mkdir /data/mysql

innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456
--use-memory=4G --apply-log /data/backup/full/2017-12-24_07-33-51
加快速度用 --apply-log 目录准备就绪

innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456
--copy-back /data/backup/full/2017-12-24_07-33-51
copy-back将备份文件拷贝到原来的数据目录下
innobackupex增量备份仅针对于InnoDB,对于MyISAM仍是全备

修改数据目录权限,启动mysql,
chown -R mysql.mysql /data/mysql/
service mysqld start

yum安装的没有报错信息,如果是编译安装的(这个报错信息如下,但是没有碰到过)
可能报错:
sh: xtrabackup: command not found
innobackupex: Error: no ‘mysqld‘ group in MySQL options
at /home/mysql/admin/bin/percona-xtrabackup-2.1.9/innobackupex line 4350

解决:将xtrabackup_56复制成xtrabackup即可
[[email protected] percona-xtrabackup-2.1.9]# ls
innobackupex xbstream xtrabackup_56
[[email protected] percona-xtrabackup-2.1.9]# cp xtrabackup_56 xtrabackup
[[email protected] percona-xtrabackup-2.1.9]# ls
innobackupex xbstream xtrabackup xtrabackup_56

$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

增量备份:
先进行一次全量备份
第一次增量备份是基于全备的,
之后的是基于上一次的增量备份,

全备份放在/data/backup/full,
增量备份在/data/backup/incremental,
增量备份后在该目录下生成 2017-12-24_10-22-30文件夹

全量备份:
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456
--socket=/data/mysqldata/mysqld.sock /data/backup/full
在t1插入数据
inster into t1 values(null);
再增量备份:
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456
--socket=/usr/local/mysql/mysqld.sock --incremental /data/backup/incremental/
--incremental-basedir=/data/backup/full/2017-12-24_10-22-30/ --parallel=2
如果关于sock报错,去掉就OK了。
2017-12-24_10-22-30该文件是增量备份文件夹
查看增量备份的大小和文件内容
cat xtrabackup_checkpoints
创建t2表,插入数据然后创建增量备份2
innobackupex --defaults-file=/etc/my.cnf --user=root --password=123456
--socket=/usr/local/mysql/mysqld.sock --incremental /data/backup/incremental/
--incremental-basedir=/data/backup/full/2017-12-24_10-22-30/ --parallel=2
2017-12-31_11-09-09是第二个增量备份文件夹

&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
增量备份恢复:
--恢复完全备份
--恢复增量备份到完全备份
开始增量备份加--redo-only,最后一次去掉--redo-only
--对整体的完全备份进行恢复,回滚未提交的数据
--恢复完全备份
一定加--redo-only

恢复完全备份
innobackupex --apply-log --redo-only /data/backup/full/完全备份的文件夹日期
将增量备份1应用到完全备份
innobackupex --apply-log --redo-only /data/backup/full/完全备份的文件夹日期
--incremental-dir=/data/backup/incremental/增量备份1的文件夹
将增量备份2应用到完全备份
innobackupex --apply-log --redo-only /data/backup/full/完全备份的文件夹日期
--incremental-dir=/data/backup/incremental/增量备份2的文件夹日期
把所有合在一起的完全备份整体进行一次apply操作,回滚未提交的数据
innobackupex --apply-log /data/backup/full/2014-04-07_23-37-20/ ??????

把恢复完的备份复制到数据库目录文件中,赋权,然后启动mysql数据库,检测数据正确性
同上,省略

整理增量备份的内容:
innobackupex --apply-log --redo-only 完整备份路径
innobackupex --apply-log --redo-only 完整备份路径 --incremental-dir=增量备份1路径
innobackupex --apply-log --redo-only 完整备份路径 --incremental-dir=增量备份2路径
......
innobackupex --apply-log 完整备份路径 --incremental-dir=最后一个增量备份X的路径
这个增量备份是把增量备份下的目录的数据,整合到全变量目录下,然后进行全数据的还原。
现在已经把增量目录下是数据整合到全量备份目录下,然后进行全量还原
/etc/init.d/mysqld stop
rm -rf /data/mysql/data/*
innobackupex --defaults-file=/usr/local/mysql/my.cnf --user=root --password=123456
--copy-back /backup/mysql/data/备份过程中用的完整备份路径的文件夹
chown -R mysql.mysql /data/mysql/data/*
/etc/init.d/mysql start

****
*****
最好将备份目录和增量目录放到同一目录路径下
/backup/mysql/data/full 存放全量备份目录
/backup/mysql/data/daily1 存放第一次增量备份目录
/backup/mysql/data/daily2 存放第二次增量目录

原文地址:https://www.cnblogs.com/fengzhongzhuzu/p/8848578.html

时间: 2024-10-15 00:24:35

xtrabackup实现全量备份和增量备份的相关文章

Xtrabackup 备份大数据库(全量备份和增量备份)

Xtrabackup Xtrabackup是由percona开源的免费数据库热备份软件,它能对InnoDB数据库和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份同样需要加表锁): mysqldump备份方式是采用的逻辑备份,其最大的缺陷是备份和恢复速度较慢,如果数据库大于50G,mysqldump备份就不太适合. Xtrabackup优点 1)备份速度快,物理备份可靠 2)备份过程不会打断正在执行的事务(无需锁表) 3)能够基于压缩等功能节约磁盘空间和流量 4)自动备份校验 5

xtrabackup 全备份,增量备份,恢复 mysql数据库

Xtrabackup使用指南 InnoDB数据备份工具 Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写,也就是不加锁),是商业备份工具InnoDB Hotbackup的一个很好的替代品 一.Xtrabackup介绍  A.Xtrabackup是什么 Xtrabackup是一个对InnoDB做数据备份的工具,支持在线热备份(备份时不影响数据读写),是商业备份工具InnoDB Hotbackup的一个很好的替代品. Xtrabackup有两个主要的工具

Centos 6.9 安装xtrabackup-2.4.8 通用包,yum安装,全量备份,增量备份

xtrabackup-2.4.8的安装及使用 ---Yum安装 官网地址:https://www.percona.com/doc/percona-xtrabackup/LATEST/installation/yum_repo.html [[email protected] ~]# yum install http://www.percona.com/downloads/percona-release/redhat/0.1-4/percona-release-0.1-4.noarch.rpm [[

mysql全量备份与增量备份

一.全量备份 全量备份就是把数据库中所有的数据进行备份. 备份所有库: mysqldump -uroot -p456 -S /data/3306/mysql.sock -F -A -B |gzip >/server/backup/mysqlbak_$(date+%F).sql.gz 备份一个库: mysqldump -uroot -p456 -S /data/3306/mysql.sock -F -B oldboy|gzip >/server/backup/mysqlbak_$(date+%F

Percona Xtrabackup备份mysql全库及指定数据库(完整备份与增量备份)

原文地址:http://www.tuicool.com/articles/RZRnq2 Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份 同样需要加表锁).XtraBackup支持所有的Percona Server.MySQL.MariaDB和Drizzle. XtraBackup优势 : 1.无需停止数据库进行InnoDB热备 2.增量备份MySQL 3.流

mysql全量备份及增量备份流程

由于线上mysql数据量很大,天天进行全备份数据既浪费时间又占用资源,所以打算采用全量备份和增量备份结合的方式进行备份采用每周日全量备份.周一到周六增量备份的方式背景是从一台mysql上进行备份,然后还原到另一台mysql上实际上是从线上数据库备份,再还原到线下数据库上先从线下找两台机器测试用191机器模拟线上mysql在122机器上新装了一个mysql用来还原 全备份 先说一下全备份,在191上 #!/bin/bash cd /opt/bak/local/mysql/test date_str

mysql的全量备份与增量备份

全量备份:可以使用mysqldump直接备份整个库或者是备份其中某一个库或者一个库中的某个表. 备份所有数据库:[[email protected] ~]# mysqldump -uroot -p123456 --all-databases >/opt/all.sqlmysqldump: [Warning] Using a password on the command line interface can be insecure. 备份单个数据库的所有表:[[email protected]

Percona Xtrabackup备份mysql (完整备份与增量备份)

Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM 的备份同样需要加表锁).XtraBackup支持所有的Percona Server.MySQL.MariaDB和Drizzle. XtraBackup优势 : 1.无需停止数据库进行InnoDB热备 2.增量备份MySQL 3.流压缩到传输到其它服务器 4.能比较容易地创建主从同步 5.备份MySQL时不会增大服务器

Percona Xtrabackup备份mysql大数据库(完整备份与增量备份)

Percona Xtrabackup备份mysql大数据库(完整备份与增量备份) 文章目录 [隐藏] Xtrabackup简介 Xtrabackup安装 Xtrabackup工具介绍 innobackupex使用方法 完整备份及还原 增量备份及还原 Xtrabackup简介 Percona XtraBackup是开源免费的MySQL数据库热备份软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份(对于MyISAM的备份同样需要加表锁).XtraBackup支持所有的Percona