linux mysql 物理备份-增量备份

大家好,我是霸王卸甲,今天给大家带来的是数据库中的物理备份,物理备份又包括增量备份和差异备份,今天要讲的是增量备份!!!!!!!

物理备份 + binlog

准备工作:
PERCONA XtraBakuo
它是开源免费的支持MySQL 数据库热备份的软件,它能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份。它不暂停服务创建Innodb热备份;
为mysql做增量备份;在mysql服务器之间做在线表迁移;使创建replication更加容易;备份mysql而不增加服务器的负载。
percona是一家老牌的mysql技术咨询公司。它不仅提供mysql的技术支持、培训、咨询,还发布了mysql的分支版本--percona Server。并围绕
percona Server还发布了一系列的mysql工具。

官方站点:https://www.percona.com/

安装:wget http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm 下载yum源

yum -y install percona-release-0.1-3.noarch.rpm 安装yum源

yum -y install percona-xtrabackup-24.x86_64 安装percona

rpm -ql percona-xtrabackup-24 查询安装结果 安装文件

单一完全备份

首先准备备份目录
mkdir /xtrabackup/full -p
连接数据库,开始备份。
innobackupex --user=root --password=‘[email protected]‘ /xtrabackup/full
请注意备份结果是否完成
xtrabackup: Transaction log of lsn (74182721) to (74182730) was copied.
171127 15:04:12 completed OK!

查看备份目录。数据库,配置文件,日志文件
ls /xtrabackup/full/
2018-08-01_00-00-02/

二进制日志位置
cat /xtrabackup/full/2017-08-01_00-00-18/xtrabackup_binlog_info

完全恢复流程

首先停止数据库
systemctl stop mysqld

清理环境(模拟损坏)
rm -rf /var/lib/mysql/*

rm -rf /var/log/mysqld.log

rm -rf /var/log/mysql-slow/slow.log

生成回滚日志
innobackupex --apply-log /xtrabackup/full/2018-08-01_00-00-18/

恢复文件
innobackupex --copy-back /xtrabackup/full/2018-08-01_00-00-18/

登陆验证
ls /var/lib/mysql

给权限
chown -R mysql.mysql /var/lib/mysql
重启
systemctl start mysqld

mysql -uroot -p‘[email protected]‘

增量备份流程

create database testdb;
use testdb;
create table test(id int);
insert into test values (1);
select * from test;
模拟数据

首先完整备份下周一的
rm -rf /xtrabackup/*
自己设置下时间 以免做乱了
date 09010000
innobackupex --user=root --password=‘[email protected]‘ /xtrabackup
ll /xtrabackup/
2018-09-01_00-00-04
数据库中的记录是1条

备份下周二的
date 09020000
mysql -uroot -p‘[email protected]‘ -e ‘insert into testdb.test values (2)‘
basedir基于周一的备份。
会生成一个今天的。
innobackupex --user=root --password=‘[email protected]‘ --incremental /xtrabackup/ --incremental-basedir=/xtrabackup/2017-09-01_00-00-04

ls /xtrabackup/
2018-09-01_00-00-04
2018-09-02_00-00-58

备份下周三的
date 09030000
mysql -uroot -p‘[email protected]‘ -e ‘insert into testdb.test values (3)‘
innobackupex --user=root --password=‘[email protected]‘ --incremental /xtrabackup/ --incremental-basedir=/xtrabackup/2017-09-02_00-00-26

ls /xtrabackup/
2018-09-01_00-00-04
2018-09-02_00-00-58
2018-09-03_00-00-36

备份就到此结束
接下来是:增量恢复流程

停止数据库
systemctl stop mysqld
清理环境 模拟数据丢失
rm -rf /var/lib/mysql/*
回滚周一日志
innobackupex --apply-log --redo-only /xtrabackup/2018-09-01_00-00-04
回滚周二日志
innobackupex --apply-log --redo-only /xtrabackup/2018-09-01_00-00-04 --incremental-dir=/xtrabackup/2018-09-02_00-00-26
开始恢复数据
innobackupex --copy-back /xtrabackup/2017-09-01_00-00-06
chown -R mysql.mysql /var/lib/mysql
systemctl start mysqld

登陆查询记录。发现是周二的
想要恢复周三还得在回滚一次日志
innobackupex --apply-log --redo-only /xtrabackup/2017-09-01_00-00-04 --incremental-dir=/xtrabackup/2018-09-03_00-00-27

停止数据库
systemctl stop mysqld
恢复备份
innobackupex --copy-back /xtrabackup/2018-09-01_00-00-04

给下权力
chown -R mysql.mysql /var/lib/mysql

systemctl start mysqld

进入数据库查看数据是否恢复
mysql -uroot -p‘[email protected]‘

原文地址:http://blog.51cto.com/13575683/2090671

时间: 2024-10-12 08:35:55

linux mysql 物理备份-增量备份的相关文章

MySQL 备份和恢复(三)Xtrabackup实现热备:完全备份+增量备份

Percona XtraBackup is the world's only open-source, free MySQL hot backup software that performs non-blocking backups for InnoDB and XtraDB databases. With Percona XtraBackup, you can achieve the following benefits: Backups that complete quickly and

MySQL 利用binlog增量备份+还原实例

一,什么是增量备份 增量备份,就是将新增加的数据进行备份.假如你一个数据库,有10G的数据,每天会增加10M的数据,数据库每天都要备份一次,这么多数据是不是都要备份呢?还是只要备份增加的数据呢,很显然,我只要备份增加的数据.这样减少服务器的负担. 二,启用binlog vi my.cnf log-bin=/var/lib/mysql/mysql-bin.log,如果是这样的话log-bin=mysql-bin.log默认在datadir目录下面 [[email protected] mysql]

MySQL数据库备份:完全备份+增量备份

MySQL数据库备份:完全备份+增量备份 ************************************************************************************** 计划任务: crontab -e  -u root 00 6  * * 1  /shell/mysqlbak.sh &> /dev/null 00 23  * * 2-7  /shell/mysqladd.sh &> /dev/null **************

mysql 利用binlog增量备份,还原实例

mysql 利用binlog增量备份,还原实例 张映 发表于 2010-09-29 分类目录: mysql 一,什么是增量备份 增量备份,就是将新增加的数据进行备份.假如你一个数据库,有10G的数据,每天会增加10M的数据,数据库每天都要备份一次,这么多数据是不是都要备份呢?还是只要备份增加的数据呢,很显然,我只要备份增加的数据.这样减少服务器的负担. 二,启用binlog vi my.cnf log-bin=/var/lib/mysql/mysql-bin.log,如果是这样的话log-bin

mysql全备份 + 增量备份

mysql全备份 + 增量备份 配置文件: 管理mysql配置文件,打开binlog日志 对于mysql数据库: log_bin = /var/log/mysql/mysql_bin.log server-id = 1(必须有,否则重启fail) 对于mariadb数据库: log_bin = /var/log/mysql/mysql-bin.log 修改配置文件后需要重启mysql服务: service mysql restart | /etc/init.d/mysql restart 可登陆

完全备份+增量备份完成即时点还原

完全备份+增量备份完成及时点还原 首先是一些感念 备份类型: 热备份,温备份,冷备份 热备份;读写不受影响: 温备份:仅可以执行读操作: 冷备份:离线备份,读,写操作均终止: 物理备份和逻辑备份 物理备份:复制数据文件 逻辑备份:将数据导出至文本文件中. 完全备份,增量备份和差异备份: 完全备份:备份全部数据 增量备份:仅备份上次完全备份或者增量备份以后变化的数据: 差异备份:仅备份上次完全备份以来变化的数据: 备份策略:每周完全+每日增量 完全备份;mysqldump 增量备份;备份二进制日志

Mysql -- 完全备份 + 增量备份 + 恢复

文章目录 一.数据库备份的分类 二.MySQL 完全备份 (1)完全备份特点 (2)mysqldump 备份库 1.针对单个库进行完全备份 2.针对多个库进行完全备份 3.对所有库进行完全备份 (3)恢复数据库操作 1.source 命令 2.使用 mysql 命令 (4)mysqldump 备份表 1.备份表 2.备份表的结构 (5)恢复表的操作 三.MySQL 增量备份 一.数据库备份的分类: 1.从物理与逻辑的角度,备份可以分为: 物理备份:对数据库操作系统的物理文件(数据文件.日志文件等

mysql全库备份/增量备份脚本

http://hongge.blog.51cto.com/ 生产环境中Mysql数据库的备份是周期性重复的操作,所以通常是要编写脚本实现,通过crond计划任务周期性执行备份脚本 mysqldump备份方案: 周日凌晨1点全库备份 周一到周六凌晨每隔4个小时增量备份一次 设置crontab任务,每天执行备份脚本 # crontab –e #每个星期日凌晨1:00执行完全备份脚本 0 1 * * 0 /root/mysqlfullbackup.sh >/dev/null 2>&1 #周一

Mysql脚本实现增量备份

因为线上数据库有点大,磁盘又没有做个RAID,而且服务器紧缺.本来想用xtrabackup去做增量备份的,但是各种错误,我已经对它失去信心了,遂,自己写一个脚本去实现. 脚本分两部分,一部分是Full backup,这没什么好介绍的,就是全备嘛.另外一部分是Incremental backup,增量备份方面是以天为最少单位去执行的,每一天增量的内容都独立一个sql文件,当然也可以修改一下,追加到同一个文件去,但是我觉得还是分开比较好一点. 脚本刚写出来,简单测试过没问题,有兴趣的同学可以帮忙测试