阅读 121

xtrabackup的初使用(1)

这里参考了jeanron大师的文章:http://chuansong.me/n/1696438151334 

http://www.cnblogs.com/chenpingzhao/p/4905310.html
经过前边恶心的安装以后,接下来尝试一番xtrabackup的备份功能。 
xtrabackup主要是用于热备份innodb,或者是 xtradb表中数据的工具,不能备份其他类型的表,也不能备份数据表结构; 
innobackupex是将xtrabackup进行封装的perl脚本,可以备份和恢复MyISAM表以及数据表结构。 
**


1、备份的解析

** 
从innobackupex –help命令可以看到innobackupex 的参数有很多,下面尝试做一个全备。

innobackupex -S /data/3306/mysql.sock /data/backup/0408/ --no-timestamp --no-lock --throttle=100 -uroot -pmysql123


经过一段时间的备份,可以看到备份完成了 
让我们查看一下备份文件如下:

watermark,size_16,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_90,type_ZmFuZ3poZW5naGVpdGk=

可以看到备份了my.cnf,ibdata1,各种数据库,这时候还多出来几个xtrabackup打头的文件 
查看这几个文件的内容如下: 
–xtrabackup_binlog_info文件记录了对应当下binlog的信息

[root@cxqtest 0408]# more xtrabackup_binlog_infomore xtrabackup_binlog_info
mybinlog.000006 191 82f3c6ed-007a-11e7-9b50-000c298ee31c:1-7


–xtrabackup_checkpoints记录了备份的类型是全备,是从0到1626008的最新的全备

[root@cxqtest 0408]# more xtrabackup_checkpointsbackup_type = full-backupedfrom_lsn = 0to_lsn = 1626008last_lsn = 1626008compact = 0recover_binlog_info = 0


–xtrabackup_info记录的是命令的信息

[root@cxqtest 0408]# more xtrabackup_infouuid = f0083067-0086-11e7-8435-000c298ee31cname = innobackupextoolcommand = -S /data/3306/mysql.sock /data/backup/0408/ --no-timestamp --no-lock --throttle=100 -uroot -pmysql123version = 2.4.6ibbackup_version = 2.4.6server_version = 5.6.30logstart_time = 2017-03-04 11:01:24end_time = 2017-03-04 11:02:01lock_time = 1488596521binlog_pos = filename 'mybinlog.000006', position '191', 
GTID of the last change '82f3c6ed-007a-11e7-9b50-000c298ee31c:1-7'innodb_from_lsn = 0innodb_to_lsn = 1626008partial = Nincremental = Nformat = filecompact = Ncompressed = Nencrypted = N


–xtrabackup_logfile 看到logfile无法用more查看,是一个二进制日志文件格式,所以使用strings进行查看如下: 
记录的是备份的时间

[root@cxqtest 0408]# more xtrabackup_logfile--More--(88%)

?庰掟栶氿烉︷
[root@cxqtest 0408]# XshellXshellXshellXshellXshellXshellXshellXshellXshellXshell -bash: XshellXshellXshellXshellXshellXshellXshellXshellXshellXshell: command not found[root@cxqtest 0408]#
 [root@cxqtest 0408]# strings xtrabackup_log
 filextrabkup 170304 11:01:25


2、全备恢复测试

数据的恢复还是使用innobackupex这个工具 
这里的数据恢复分为两个步骤,prepare和还原恢复,prepare意义是如果我们备份数据的时候,存在未提交的事务,但是数据却存在于备份中,这样就是一个数据不一致的状态,在启动数据库的时候需要走一个前滚,然后是一个回滚的操作。这个体现主要就在于logfile和ibdata。是使用apply-log这个选项实现的。 
前提需要先将之前的目录删除,停掉mysql服务。

[root@cxqtest 0408]# /etc/init.d/mysqld stopShutting down MySQL...                                     [  OK  ]
[root@cxqtest 0408]# [root@cxqtest 0408]# cd [root@cxqtest ~]# [root@cxqtest 3306]# lsdata
[root@cxqtest 3306]# mv data data.bak[root@cxqtest 3306]# lsdata.bak
[root@cxqtest 3306]# mkdir data


可以使用如下命令进行恢复操作: 
第一步:执行innobackupex –defaults-file=/data/backup/0408/backup-my.cnf -uroot -pmysql123 –apply-log /data/backup/0408/

然后执行如下:

innobackupex --defaults-file=/etc/my.cnf  -uroot -pmysql123 --copy-back /data/backup/0408/


然后将对应的属组修改回MySQL,默认是root。启动MySQL服务登陆正常

[root@cxqtest data]# /etc/init.d/mysqld startStarting MySQL................                             [  OK  ]
[root@cxqtest data]# [root@cxqtest data]# [root@cxqtest data]# mysql -uroot -pmysEnter password: 
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
[root@cxqtest data]# mysql -uroot -pEnter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2Server version: 5.6.30-log Source distribution

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

root@localhost:mysql.sock  12:56:04 [(none)]>
root@localhost:mysql.sock  12:56:05 [(none)]>
root@localhost:mysql.sock  12:56:05 [(none)]>
root@localhost:mysql.sock  12:56:05 [(none)]>show databases;
+--------------------+| Database           |
+--------------------+| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+4 rows in set (0.14 sec)

root@localhost:mysql.sock  12:56:08 [(none)]>
root@localhost:mysql.sock  12:56:09 [(none)]>
root@localhost:mysql.sock  12:56:09 [(none)]>exit


---------

未完待续!!!


文章分类
后端
文章标签
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐