mysql xtrabackup 结构_MySQL 采用Xtrabackupex进行全库备份过程汇总

1,xtrabackup简介

,这里来介绍xtrabackup已经如何使用xtrabackup进行对数据库的全备份已经恢复。

2,xtrabackup下载

Chorm浏览器下面,在“DOWNLOADPERCONA XTRABACKUP”下面,选择版本号以及os版本,有的浏览器打不开,可能会出现“No files found with current filters.”,那么就需要换个浏览器比如chrome就可以打开了,如下图1.png所示:

db13a3e887a65ac767f317c757145960.png

也可以直接在linux下面是用wget的方式下载:

3,xtrabackup安装

3.1配置datadir

先check下是否已经配置datadir,检查是否有mysql服务,有的话就在my.cnf配置文件里面设置datadir

[root@data01 ~]# more /etc/my.cnf |grepdatadir

[root@data01 ~]#

Ok,看到没有配置datadir,去my.cnf里面配置

vim my.cnf

datadir        = /home/data/mysql/data

再check下:

[root@data01 ~]# more /etc/my.cnf |grepdatadir

datadir        = /home/data/mysql/data

[root@data01 ~]#

[root@data01 ~]#

3.2解压

tar -xvfpercona-xtrabackup-2.2.9-5067-Linux-x86_64.tar.gz

3.3 copy到/usr/bin/

cp./percona-xtrabackup-2.2.9-Linux-x86_64/bin/innobackupex /usr/bin/innobackupex

cp./percona-xtrabackup-2.2.9-Linux-x86_64/bin/xtrabackup /usr/bin/xtrabackup

cp./percona-xtrabackup-2.2.9-Linux-x86_64/bin/xbcrypt /usr/bin/xbcrypt

cp ./percona-xtrabackup-2.2.9-Linux-x86_64/bin/xbstream/usr/bin/xbstream

PS:新版本已经没有了innobackupex-1.5.1这个小插件了。

3.4 查看xtrabackup是否可用

[root@data01 ~]# innobackupex --help |more

Options:

--apply-log

Prepare a backup in BACKUP-DIR by applying the transaction log file

named "xtrabackup_logfile" located in the same directory.Also,

create new transaction logs. The InnoDB configuration is read from

the file "backup-my.cnf".

--backup-locks

This option controls if backup locks should be used instead of FLUSH

TABLES WITH READ LOCK on the backup stage. The option has no effect

when backup locks are not supported by the server. This option is

enabled by default, disable with --no-backup-locks.

3.5 源码方式安装

4,二大工具组件

xtrabackup:支持innodb存储引擎表,xtradb存储引擎表

innobackupex:支持innodb存储引擎表、xtradb存储引擎表、myisam存储引擎表。

5,一些重要参数

--defaults-file

同xtrabackup的--defaults-file参数

--apply-log

对xtrabackup的--prepare参数的封装

--copy-back

做数据恢复时将备份数据文件拷贝到MySQL服务器的datadir ;

--remote-host=HOSTNAME

通过ssh将备份数据存储到进程服务器上;

--stream=[tar]

备份文件输出格式, tar时使用tar4ibd , 该文件可在XtarBackup binary文件中获得.如果备份时有指定--stream=tar, 则tar4ibd文件所处目录一定要在$PATH中(因为使用的是tar4ibd去压缩, 在XtraBackup的binary包中可获得该文件)。

在使用参数stream=tar备份的时候,你的xtrabackup_logfile可能会临时放在/tmp目录下,如果你备份的时候并发写入较大的话 xtrabackup_logfile可能会很大(5G+),很可能会撑满你的/tmp目录,可以通过参数--tmpdir指定目录来解决这个问题。

--tmpdir=DIRECTORY

当有指定--remote-host or --stream时, 事务日志临时存储的目录, 默认采用MySQL配置文件中所指定的临时目录tmpdir

--redo-only--apply-log组,

强制备份日志时只redo ,跳过rollback。这在做增量备份时非常必要。

--use-memory=#

该参数在prepare的时候使用,控制prepare时innodb实例使用的内存量,用来取代my.cnf中的buffer_pool_size值,如果你是独立服务器,而且内存足够大的话,为了加快备份恢复的效率,你可以调大--use-memory这个参数值

--throttle=IOS

同xtrabackup的--throttle参数

--sleep=是给ibbackup使用的,指定每备份1M数据,过程停止拷贝多少毫秒,也是为了在备份时尽量减小对正常业务的影响,具体可以查看ibbackup的手册;

--compress[=LEVEL]

对备份数据迚行压缩,仅支持ibbackup,xtrabackup还没有实现;

--include=REGEXP

对 xtrabackup参数--tables的封装,也支持ibbackup。备份包含的库表,例如:--include="test.*",意思是要备份 test库中所有的表。如果需要全备份,则省略这个参数;如果需要备份test库下的2个表:test1和test2,则写成:--include="test.test1|test.test2"。也可以使用通配符,如:--include="test.test*"。

--databases=LIST

列出需要备份的databases,如果没有指定该参数,所有包含MyISAM和InnoDB表的database都会被备份;

--uncompress

解压备份的数据文件,支持ibbackup,xtrabackup还没有实现该功能;

--slave-info

备份从库, 加上--slave-info备份目录下会多生成一个xtrabackup_slave_info 文件, 这里会保存主日志文件以及偏移, 文件内容类似于:CHANGE MASTER TO MASTER_LOG_FILE='', MASTER_LOG_POS=0

--socket=SOCKET

指定mysql.sock所在位置,以便备份进程登录mysql.

--safe-slave-backup

则会暂停Slave的SQL线程,等待到没有打开的临时表的时候开始备份.备份结束后SQL线程会自动启动,这样就可以确保一致性的复制状态.

6,xtrabackup全备份

6.1 全备份

只备份不压缩:

xtrabackup --defaults-file=/etc/my.cnf--user=root --password="" --port=3306 --backup--target-dir=/data/backups/mysql/$(date +%Y%m%d)/

备份压缩:

xtrabackup --defaults-file=/etc/my.cnf--user=root --password="" --port=3306 --backup    --socket=/usr/local/mysql/mysql.sock--stream=tar --target-dir=/data/backups/mysql/$(date +%Y%m%d)/ |gzip >alldbfullbackup.tar.gz

备份过程如下所示:

[root@data01 mysql]#xtrabackup--defaults-file=/etc/my.cnf--user=root--password=\"\" --port=3306--backup--socket=/usr/local/mysql/mysql.sock--stream=tar--target-dir=/data/backups/mysql/$(date+%Y%m%d)/ |gzip>alldbfullbackup.tar.gz

xtrabackup version 2.2.9 based on MySQLserver 5.6.22 Linux(x86_64) (revision id: )

xtrabackup: usesposix_fadvise().

xtrabackup:cd to /home/data/mysql/data

xtrabackup:open files limit requested 0,set to 1024

xtrabackup:using the following InnoDBconfiguration:

xtrabackup:innodb_data_home_dir= ./

xtrabackup:innodb_data_file_path=IBdata1:128M;IBdata2:128M:autoextend

xtrabackup:innodb_log_group_home_dir= ./

xtrabackup:innodb_log_files_in_group=3

xtrabackup:innodb_log_file_size=67108864

>>log scanned up to(423916780)

xtrabackup:Generating a list oftablespaces

[01]Streaming./IBdata1

>>log scanned up to(423916780)

>>log scanned up to(423916780)

>>log scanned up to(423916780)

>>log scanned up to(423916780)

>>log scanned up to(423916780)

[01] ...done

[01]Streaming./IBdata2

>>log scanned up to(423916780)

>>log scanned up to(423916780)

>>log scanned up to(423916780)

[01] ...done

[01]Streaming./mysql/slave_master_info.ibd

[01] ...done

[01]Streaming./mysql/slave_relay_log_info.ibd

[01] ...done

[01]Streaming./mysql/innodb_index_stats.ibd

[01] ...done

[01]Streaming./mysql/slave_worker_info.ibd

[01] ...done

[01]Streaming./mysql/innodb_table_stats.ibd

[01] ...done

[01]Streaming./sbtest/sbtest1.ibd

[01] ...done

[01]Streaming./sbtest/sbtest5.ibd

[01] ...done

[01]Streaming./sbtest/sbtest8.ibd

[01] ...done

[01]Streaming./sbtest/sbtest4.ibd

[01] ...done

[01]Streaming./sbtest/sbtest2.ibd

[01] ...done

[01]Streaming./sbtest/sbtest6.ibd

[01] ...done

[01]Streaming./sbtest/sbtest7.ibd

[01] ...done

[01]Streaming./sbtest/sbtest3.ibd

[01] ...done

[01]Streaming./test/t1.ibd

[01] ...done

[01]Streaming./test/t3.ibd

[01] ...done

[01]Streaming./test/t.ibd

[01] ...done

[01]Streaming./user_db/t1.ibd

[01] ...done

[01]Streaming./user_db/test.ibd

[01] ...done

[01]Streaming./user_db/test2.ibd

[01] ...done

[01]Streaming./user_db/t3.ibd

>>log scanned up to(423916780)

[01] ...done

[01]Streaming./user_db/UC_USER.ibd

>>log scanned up to(423916780)

[01] ...done

[01]Streaming./user_db/t.ibd

[01] ...done

>>log scanned up to(423916780)

xtrabackup:The latest check point(forincremental):\'423916780\'

xtrabackup:Stopping log copying thread.

.>>log scanned up to(423916780)

xtrabackup:Transaction logoflsn(423916780)to(423916780)was copied.

[root@data01 mysql]#

备份结束后,可以看到如下结果,备份目录为null,都压缩到了alldbfullbackup.tar.gz备份压缩包里面,如下所示:

[root@data01 mysql]#du-sh*

4.0K 20150318

5.1M alldbfullbackup.tar.gz

[root@data01 mysql]#

PS1:可以用gzip边备份边压缩,不过推荐是备份完了之后对整个备份目录进行压缩。

6.2 全量恢复

先删除测试表数据:

mysql> select * from t1;

+---+----+

| a | b |

+---+----+

| 5 | aa |

+---+----+

1 row in set (0.03 sec)

mysql> delete from t1;

Query OK, 1 row affected (0.02 sec)

mysql> select * from t1;

Empty set (0.00 sec)

mysql> exit

Bye

进行恢复

xtrabackup --defaults-file=/etc/my.cnf--prepare --target-dir=/data/backups/mysql/20150318

停止msyql数据库

service mysqld5612 stop

复制已经恢复好的文件到mysql数据目录并且赋予mysql账号执行权限

cd /data/backups/mysql/20150318

rsync -rvt --exclude'xtrabackup_checkpoints' --exclude 'xtrabackup_logfile'  ./ /home/data/mysql/data

chown -R mysql:mysql /home/data/mysql/data

启动mysql数据库

service mysqld5612 start

恢复完毕,check表t1数据,数据恢复回来了:

mysql> use test;

Database changed

mysql> select * from t1;

+---+----+

| a | b |

+---+----+

| 5 | aa |

+---+----+

1 row in set (0.09 sec)

mysql>

PS2: xtrabackup只备份InnoDB数据文件,表结构是不备份的,所以恢复的时候,你必须有对应表结构文件(.frm)。如下所示,只备份了*.ibd文件,如下所示:

[root@data01 20150318]# ll

总用量 262168

-rw-r-----. 1 root root 134217728 3月 18 02:31 IBdata1

-rw-r-----. 1 root root 134217728 3月 18 02:31 IBdata2

drwx------. 2 root root 4096 3月 18 02:31 mysql

drwx------. 2 root root 4096 3月 18 02:31 sbtest

drwx------. 2 root root 4096 3月 18 02:31 test

drwx------. 2 root root 4096 3月 18 02:31 user_db

-rw-r-----. 1 root root 93 3月 18 02:31 xtrabackup_checkpoints

-rw-r-----. 1 root root 2560 3月 18 02:31 xtrabackup_logfile

[root@data01 20150318]# cd test/

[root@data01 test]# ll

总用量 288

-rw-r-----. 1 root root 98304 3月 18 02:31 t1.ibd

-rw-r-----. 1 root root 98304 3月 18 02:31 t3.ibd

-rw-r-----. 1 root root 98304 3月 18 02:31 t.ibd

[root@data01 test]#

更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2015-03/11529p2.htm0b1331709591d260c1c78e86d0c51c18.png

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值