xtrabackup如何备份mysql数据库
admin
2023-06-10 02:02:53
0

参考:http://mingxiao.blog.51cto.com/8124243/1623634


一 全备

1.命令安装:

yum install -y gnupg
rpm -Uhv http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm(64位源)
rpm -Uhv https://www.percona.com/redir/downloads/percona-release/percona-release-0.0-1.i386.rpm(32位源)
yum install -y percona-xtrabackup


[root@aliyun-112 ~]# xtrabackup -v

xtrabackup version 2.3.3 based on MySQL server 5.6.24 Linux (x86_64) (revision id: 525ca7d)

2.命令功能:

对InnoDB做数据备份的工具,支持在线热备份

3.命令参数:

--database=sundong  单独对hu数据库做备份 ,若是不添加此参数那就那就是对全库做备份 

--stream =tar   打包格式 目前只支持 tar and xbstream

2>/var/backups/hu.log 输出信息写入日志中 

1> /var/backups/hu.tar.gz 打包压缩存储到该文件中  

--incremental-dir=/var/backups/plus/  增量备份目录

--copy-back选项的命令从备份目录拷贝数据,索引,日志到my.cnf文   件里规定的初始位置

--apply-log选项的命令是准备在一个备份上启动mysql服务

--port=PORT

4.命令实例:

备份并打包压缩 (只备份hu这个数据库)

innobackupex  --defaults-file=/home/DB/mysql/my.cnf   --user=root --password=xxxxx  --database=hu  --stream=tar  /var/backups/ 2>/var/backups/hu.log   | gzip 1> /var/backups/hu.tar.gz

整库备份。(一次性备份所有的数据库)

  1. innobackupex --defaults-file=/etc/my.cnf    --user=root --password=cdqd  /var/backups/ 

(root为数据库用户名,cdqd为数据库密码,/etc/my.cnf为mysql配置文件所在位置,/var/backups/为备份文件存储目录)

恢复

 首先停掉数据库,然后删除数据库目录下的所有数据库文件。

首先写日志文件,然后恢复,如下。(注:2010-04-17_22-19-30是自动生成的以备份时间命名的文件夹,恢复时根据情况进行选择)

  1. # innobackupex  --defaults-file=/etc/my.cnf  --apply-log  /var/backups/2010-04-17_22-19-30 (写日志)

  2. # innobackupex   --defaults-file=/etc/my.cnf  --copy-back   /var/backups/2010-04-17_22-19-30 (恢复)


然后去你的备份目录查看是否有备份的文件,然后还需要更改权限(这步我是cd到原数据库目录下进行的)

#chown -R mysql:mysql *


重启数据库,开恢复是否成功。

二 增量备份与恢复

在这里为了表述清楚我们做两次增量备份。

为student表插入数据,为增量备份做基础。

mysql>use hu;
mysql>create table student (`id` int(4),`name` char(40),`values`char(40)) 
mysql> INSERT INTO student (Name) VALUES ('XiaoHei3'),('XiaoHei4');

完全备份:

innobackupex  --defaults-file=/etc/my.cnf  --user=root --password=123456   /data/backup

备份完成之后产生这个

2015-03-23_23-19-24/  文件夹,这是完全备份的目录


第一次增量备份,--incremental-basedir=指的是完全备份所在的目录。/backup是备份的目录

INSERT INTO student (Name) VALUES ('XiaoHei1'),('XiaoHei2');


[root@localhost /]#

 
innobackupex --incremental  /backup --incremental-basedir=/backup/2015-03-23_23-19-24/


执行完这个之后会产生一个2015-03-23_23-21-49/  ,第二次增量备份指定它就可以


mysql>

 INSERT INTO student (Name) VALUES ('XiaoHei5'),('XiaoHei6');


第二次增量备份,--incremental-basedir=指的是第上一次增量备份所在的目录,这里指第一次,以此类推。

[root@localhost /]# 
innobackupex --incremental /backup --incremental-basedir=/backup/2015-03-23_23-21-49/

 

步骤三:准备完全备份和增量备份
增量备份完成,下面要准备完全备份和增量备份。
--redo-only后面是完全备份所在目录。
--incremental-dir指增量备份所在目录,若有多个,按时间先后执行多次。

[root@localhost /]# 
innobackupex --apply-log --redo-only /backup/2015-03-23_23-19-24/
[root@localhost /]# 
innobackupex --apply-log --redo-only /backup/2015-03-23_23-19-24/ --incremental-dir=/backup/2015-03-23_23-21-49/    --incremental-dir指向第一次增量备份目录
[root@localhost /]# 
innobackupex --apply-log --redo-only /backup/2015-03-23_23-19-24/ --incremental-dir=/backup/2015-03-23_23-22-44/  --incremental-dir指向第二次增量备份目录



步骤四:模拟mysqld故障
[root@localhost /]# service mysqld stop
Shutting down MySQL. SUCCESS! 

[root@localhost /]# rm -rf /mydata/data/*

步骤五:恢复数据

[root@localhost data]# innobackupex --copy-back /backup/2015-03-23_23-19-24/ (第一次全备份的目录)

然后进入到备份目录查看是否有备份文件存在


注意:恢复数据后,在重启mysqld前,需要修改数据目录权限,默认是root用户,root组,需要改为mysql用户,mysql组。
[root@localhost data]# chown -R mysql.mysql ./*

service mysqld start

mysql> use hu;

Database changed
mysql> select * from student;
+----+-------------------+---------------+
| ID | Name              | Course        |
+----+-------------------+---------------+
|  1 | xiaoming          | English       |

|  2 | xiaohong          | Kuihuabaodian |

| 16 | XiaoHei1          |               |
| 17 | XiaoHei2          |               |
| 18 | XiaoHei3          |               |
| 19 | XiaoHei4          |               |
| 20 | XiaoHei5          |               |
| 21 | XiaoHei6          |               |
+----+-------------------+---------------+
9 rows in set (0.00 sec)

可以看到所有数据都完好无损,至此,备份恢复操作都已完成。




相关内容

热门资讯

吉田茂的这句告诫,值得日本政府... 高市早苗出任首相后,日本修宪动向再度成为舆论焦点。自民党一方面以“安全保障形势发生剧变”为借口,谋求...
人形机器人,要有身份证了! ◎ 科技日报记者 华凌 22日, 全国首个人形机器人全生命周期管理服务平台在北京发布,《人形机器人全...
伊朗现在哭笑不得 感觉伊朗现在正哭笑不得。与美国的谈判在进行中,特朗普也在不断发帖“指导”中,但按照伊朗的说法,美国官...
最新研究:银河系多数岩质行星构... IT之家 5 月 24 日消息,我们对太阳系内的行星已有诸多认知,长期以来,我们都认为银河系其他区域...
灵动岛缩减35% 史上颜值巅峰... PChome 5月23日消息,随着iPhone 18 Pro和iPhone 18 Pro Max的贴...
双方互攻伤亡大,学校被袭引关切... 【环球时报驻俄罗斯特派记者 隋鑫 郑真】俄罗斯国防部24日表示,为回应乌克兰对俄方民用基础设施的恐怖...
神舟二十三号飞船有多项创新 我国2026年度载人发射任务首战告捷——神舟二十三号飞船有多项创新本报记者 刘诗瑶 李君强《人民日报...
人民日报刊文:警惕日本军国主义... 警惕日本军国主义卷土重来(国际论坛)斯特凡·卢比奇《人民日报》(2026年05月25日 第 03 版...
一线调研|从太空到3000米深... 来源:券商中国 当一颗卫星以每秒7公里的速度驶入太空,或者一台机器人潜入3000米深的海底,它们在传...
第8次会师!神舟二十三号航天员... 新华社酒泉5月25日电(记者李国利、高蕊)神舟二十三号航天员乘组25日顺利进驻“天宫”,中国航天员完...