博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
percona innobackupex 使用
阅读量:5990 次
发布时间:2019-06-20

本文共 2638 字,大约阅读时间需要 8 分钟。

直接使用官方的二进制安装。

https://www.percona.com/doc/percona-xtradb-cluster/5.6/installation.html#installation

innobackupex:

这个是其实是下面三个工具的一个perl脚本封装,可以备份MyISAM, InnoDB, XtraDB表。

xtrabackup:

一个由C编译而来的二进制文件,只能备份InnoDB和XtraDB数据。

xbcrypt:

用来加密或解密备份的数据。

xbstream:

用来解压或压缩xbstream格式的压缩文件。

数据库备份的准备工作:

新建一个最小权限的用户进行备份。

mysql语法:

mysql> CREATE USER 'larry'@'localhost' IDENTIFIED BY 'QAZWSX123';

mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'larry'@'localhost';

mysql> GRANT RELOAD,LOCK TABLES, REPLICATION CLIENT ON *.* TO 'larry'@'localhost';

mysql> FLUSH PRIVILEGES;

创建备份的数据目录

root@hostname# mkdir /databackups

使用innobackupex进行一次完整的备份

root@hostname# innobackupex --user=databaseusername --password=QAZWSX123 /databackups

...

...

...

140401 12:02:20  innobackupex: completed OK!

备份过程的说明:

1.它将备份数据文件存放到了我新建的备份数据存放目录,并且它保存至了一个以时间命令的目录中。

2.binlogs文件的时间点,备份时它正处于那个二进制日志文件的哪个点上

3.完成备份立即断开与databases server的连接

4.通知备份完成

备份目录中文件的说明

(1)xtrabackup_checkpoints —— 备份类型(如完全或增量)、备份状态(如是否已经为prepared状态)和LSN(日志序列号)范围信息;TARE

在使用innobackupex进行备份时,还可以使用--no-timestamp选项来阻止命令自动创建一个以时间命名的目录;如此一来,innobackupex命令将会创建一个BACKUP-DIR目录来存储备份数据。

一般情况下,在备份完成后,数据尚且不能用于恢复操作,因为备份的数据中可能会包含尚未提交的事务或已经提交但尚未同步至数据文件中的事务。因此,此时数据文件仍处理不一致状态。“准备”的主要作用正是通过回滚未提交的事务及同步已经提交的事务至数据文件也使得数据文件处于一致性状态。

innobakupex命令的--apply-log选项可用于实现上述功能。如下面的命令:

root@hostname# innobackupex --user=databaseusername --password=QAZWSX123 --apply-log /databackups/2014-04-01_12-41-31/

/databackups/2014-04-01_12-41-31/这个目录就是刚才使用完全备份自动生成的备份目录。

140401 12:47:58  innobackupex: completed OK!

出现这行,备份成功。

在实现“准备”的过程中,innobackupex通常还可以使用--use-memory选项来指定其可以使用的内存的大小,默认通常为100M。如果有足够的内存可用,可以多划分一些内存给prepare的过程,以提高其完成速度。

切记,不能再刚整理(准备)完成就用来恢复,什么时候需要恢复就什么时候整理!

从一个完全备份中恢复数据

恢复不能启动mysql

innobackupex命令的--copy-back选项用于执行恢复操作,其通过复制所有数据相关的文件至mysql服务器DATADIR目录中来执行恢复过程。innobackupex通过backup-my.cnf来获取DATADIR目录的相关信息。

[root@Master ~]# innobackupex --copy-back --user=larry --password=QAZWSX123 /backups/2014-04-01_12-41-31/

......

......

......

140401 12:56:00  innobackupex: completed OK!

出现上面这行则执行成功。

然后在mysql数据目录更改其文件及目录的所有者和属组。

root@hostname# chown -R mysql:mysql /var/lib/mysql

最后启动mysql。

service mysql start

验证数据备份恢复的完整性。

查看数据库及数据表。

建议:在完成备份的恢复过程后,我们应当立即做一次完整备份。

[root@Master data]# innobackupex --user=databaseusername --password=QAZWSX123 /databackups

数据库的增量备份:

第一次的增量备份:

root@hostname# innobackupex --incremental /backups/ --incremental-basedir=/backups/2014-04-01_13-06-56/

说明:

--incremental 明确说明我们的操作是增量备份

--incremental-basedir= 明确说明我们是相对于谁做增量(上次完全/上次增量),如果每一次都相对于上次的完全备份做增量备份,那就是差异备份!

需要注意的是,增量备份仅能应用于InnoDB或XtraDB表,对于MyISAM表而言,执行增量备份时其实进行的是完全备份。

本文转自ting2junshui51CTO博客,原文链接: http://blog.51cto.com/ting2junshui/1729696,如需转载请自行联系原作者

你可能感兴趣的文章
关于js关闭窗口的事件和用法
查看>>
bzoj4408: [Fjoi 2016]神秘数
查看>>
【点分治】bzoj2152 聪聪可可
查看>>
archlinux 怎么样安装KDE界面
查看>>
su su- sudo的区别
查看>>
springboot的起步依赖
查看>>
leetcode 72: N-Queens
查看>>
Codeforces Round #427 (Div. 2)
查看>>
Python Django Learning Notes..
查看>>
JAVA实现带图片的列表——JList
查看>>
Zookeeper
查看>>
bootstrap-table前端修改数据
查看>>
在Mac/Linux/Windows上编译corefx遇到的问题及解决方法
查看>>
matplotlib绘制圆饼图
查看>>
[POJ] #1008# Maya Calendar : 字符处理/同余问题
查看>>
16、正则表达式
查看>>
好用的函数sign和decode
查看>>
MySQL索引类型一览
查看>>
基础事件(二)
查看>>
之前写了http解析高德地图时,json转对象搞了半天 , 今天同事用GSON把json转对象,一句代码就解决了,代码如下...
查看>>