mysql online在线备份,[MySQL] innobackupex在线备份及恢复(全量和增量)_Zhu_Julian's Notes (朱显杰的技术博客)-CSDN博客...

tar -zxvf percona-xtrabackup-2.1.5.tar.gz

cd percona-xtrabackup-2.1.5

utils/build.sh脚本会根据指定的引擎版本,自动解压缩适当的MySQL源码包并进行编译,这是最简单的安装方式。当你在命令行下不带任何参数执行该脚本时,出现如下提示:

[mysql@epay100 ~/software/percona-xtrabackup-2.1.5 ]$ ./utils/build.sh

Build an xtrabackup binary against the specified InnoDB flavor.

Usage: build.sh CODEBASE

where CODEBASE can be one of the following values or aliases:

innodb51 | plugin build against InnoDB plugin in MySQL 5.1

innodb55 | 5.5 build against InnoDB in MySQL 5.5

innodb56 | 5.6,xtradb56, build against InnoDB in MySQL 5.6

| mariadb100

xtradb51 | xtradb,mariadb51 build against Percona Server with XtraDB 5.1

| mariadb52,mariadb53

xtradb55 | galera55,mariadb55 build against Percona Server with XtraDB 5.5根据上面提示和你使用的存储引擎及版本,选择相应的参数即可。因为我用的是MySQL 5.6,所以执行如下语句安装:

./utils/build.sh innodb56以上语句执行成功后,表示安装完成。最后,把生成的二进制文件拷贝到一个自定义目录下(本例中为/home/mysql/admin/bin/percona-xtrabackup-2.1.5),并把该目录放到环境变量PATH中。

cp ./innobackupex /home/mysql/admin/bin/percona-xtrabackup-2.1.5

cp ./src/xtrabackup_56 ./src/xbstream /home/mysql/admin/bin/percona-xtrabackup-2.1.5

全备及其恢复

执行如下语句进行全备:

innobackupex --defaults-file=/opt/mysql/my.cnf --user=root --password=*** /backup/mysql/data该语句将拷贝数据文件(由my.cnf里的变量datadir指定)至备份目录下(/backup/mysql/data),注意:如果不指定--defaults-file,默认值为/etc/my.cnf。

备份成功后,将在备份目录下创建一个时间戳目录(本例创建的目录为/backup/mysql/data/2013-10-29_09-05-25),在该目录下存放备份文件。

innobackupex --defaults-file=/opt/mysql/my.cnf --user=root --password=*** --use-memory=4G --apply-log /backup/mysql/data/2013-10-29_09-05-25

innobackupex --defaults-file=/opt/mysql/my.cnf --user=root --password=*** --copy-back /backup/mysql/data/2013-10-29_09-05-25

从什么可以看出,恢复分为两个步骤,第1步是apply-log,为了加快速度,一般建议设置--use-memory,这个步骤完成之后,目录/backup/mysql/data/2013-10-29_09-05-25下的备份文件已经准备就绪。

第2步是copy-back,即把备份文件拷贝至原数据目录下。

恢复完成之后,一定要记得检查数据目录的所有者和权限是否正确。

innobackupex --defaults-file=/opt/mysql/my.cnf --user=root --password=*** --incremental-basedir=/backup/mysql/data/2013-10-29_09-05-25 --incremental /backup/mysql/data其中--incremental-basedir指向全备目录,--incremental指向增量备份的目录。

上面语句执行成功之后,会在--incremental执行的目录下创建一个时间戳子目录(本例中为:/backup/mysql/data/2013-10-29_09-52-37),在该目录下存放着增量备份的所有文件。

在备份目录下,有一个文件xtrabackup_checkpoints记录着备份信息,全备的信息如下:

backup_type = full-backuped

from_lsn = 0

to_lsn = 563759005914

last_lsn = 563759005914基于该全备的增量备份的信息如下:

backup_type = incremental

from_lsn = 563759005914

to_lsn = 574765133284

last_lsn = 574765133284从上面可以看出,增量备份的from_lsn正好等于全备的to_lsn。

那么,我们是否可以在增量备份的基础上再做增量备份呢?答案是肯定的,只要把--incremental-basedir执行上一次增量备份的目录即可,如下所示:

innobackupex --defaults-file=/opt/mysql/my.cnf --user=root --password=*** --incremental-basedir=/backup/mysql/data/2013-10-29_09-52-37 --incremental /backup/mysql/data它的xtrabackup_checkpoints记录着备份信息如下:

backup_type = incremental

from_lsn = 574765133284

to_lsn = 574770200380

last_lsn = 574770200950可以看到,该增量备份的from_lsn是从上一次增量备份的to_lsn开始的。

innobackupex --apply-log --redo-only BASE-DIR

innobackupex --apply-log --redo-only BASE-DIR --incremental-dir=INCREMENTAL-DIR-1

innobackupex --apply-log BASE-DIR --incremental-dir=INCREMENTAL-DIR-2其中BASE-DIR是指全备目录,INCREMENTAL-DIR-1是指第一次的增量备份,INCREMENTAL-DIR-2是指第二次的增量备份,以此类推。

这里要注意的是:最后一步的增量备份并没有--redo-only选项!还有,可以使用--use_memory提高性能。

以上语句执行成功之后,最终数据在BASE-DIR(即全备目录)下。

第一步完成之后,我们开始第二步:回滚未完成的日志:

innobackupex --apply-log BASE-DIR上面执行完之后,BASE-DIR里的备份文件已完全准备就绪,最后一步是拷贝:

innobackupex --copy-back BASE-DIR同样地,拷贝结束之后,记得检查下数据目录的权限是否正确。

常见错误及解决方法

131028 17:45:57 innobackupex: Connecting to MySQL server with DSN 'dbi:mysql:;mysql_read_default_group=xtrabackup' (using password: NO).

innobackupex: Error: Failed to connect to MySQL server as DBD::mysql module is not installed at /home/mysql/admin/bin/percona-xtrabackup-2.1.5/innobackupex line 2913.解决方法:

yum -y install perl-DBD-MySQL.x86_64

sh: xtrabackup_55: command not found

innobackupex: Error: no 'mysqld' group in MySQL options at /home/mysql/admin/bin/percona-xtrabackup-2.1.6/innobackupex line 4341.解决方法:

cp xtrabackup_innodb55 xtrabackup_55

innobackupex对xtrabackup的封装,是percona推出的可靠物理备份工具,官方链接地址,对于mysql,逻辑备份可以使用mysqldump、mysqlpump、mysqldumper,物理备份可以直接使用innobackupex。

我这里为了方便,这里使用centos7.x的yum安装(如果感兴趣可以到官网下载linux generc版本,直接解压就能使用...

--compress-threads:该选项表示并行压缩worker线程的数量。

--compress-chunk-size:该选项表示每个压缩线程worker buffer的大小,单位是字节,默认是64K。

--encrypt:该选项表示...

innobackupex --password=test /backup/

备注:test是我的MySQL服务的root用户的密码,/backup/是我用于存放备份文件的目录。

执行完命令后,/backup/目录下会生成一个时间戳目录,在我这个例子中是/backup/2016-09-20_14-45-26/。

有几种方式:

1 mysqldump, 这种方式不仅适用于InnoDB,还适用于其它类型的存储引擎,如MyISAM。备份的时候将数据库备份成SQL(包含drop,create,insert等语句),恢复的时候直接导入即可。

2 copy file, 我们知道InnoDB底层存储的时候会将数据和元信息存在下列文件中:

ibdata*, *.ibd, *.frm, *.ib_logfile*,所

下载:Xtrabackup

https://www.percona.com/downloads/XtraBackup/Percona-XtraBackup-2.4.8/binary/redhat/7/x86_64/Percona-XtraBackup-2.4.8-r97330f7-el7-x86_64-bundle.tar

解压,yum安装

tar -xvf Percona-XtraBacku...

--databases databasename 针对单个数据库进行备份

--flush-logs为结束当前日志,生成新日志文件;

--master-data=2 选项将会在输出SQL中记录下完全备份后新日志文件的名称,

用于...

一、全库备份:

innobackupex   --defaults-file=/data/3306/my.cnf --user=root --password=root --socket=/data/3306/mysql.sock  /incrbackup

,全库恢复

[root@centos128 data]# mv 3306 3306.bk

[root@centos128

id沉沦:

isql myodbc5 -v 这一步可能会报错,需要先执行yum install readline-devel readline

[root@172-16-4-12 lib64]# ll *libreadline*

lrwxrwxrwx 1 root root 28 Dec 15 10:35 libreadline.so -> ../../lib64/libreadline.so.6

[root@172-16-4-12 lib64]# ln -s ../../lib64/libreadline.so.6  libreadline.so.5

[root@172-16-4-12 lib64]# ll *libreadline*

lrwxrwxrwx 1 root root 28 Dec 15 10:35 libreadline.so -> ../../lib64/libreadline.so.6

lrwxrwxrwx 1 root root 28 Dec 15 10:36 libreadline.so.5 -> ../../lib64/libreadline.so.6

[Oracle] 浅谈Sequence(序列)

Alifather:

不能修改序列号,这也太智障了。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值