阅读 171

xtrabackup初使用(2)

4、备份中的常用选项和场景

innobackupex中的选项很多,常用的比如stream选项,–slave-info选项能够方便搭建从库,生成偏移量的信息,比如并行–parallel等,还可以根据LSN来备份,选项是–incremental-lsn 
对于stream选项,默认是打包,可以结合管道来实现压缩,比如: 
innobackupex –defaults-file=/etc/my.cnf –user=root –stream=tar /data/backup/0408/ | gzip > /data/backup/0408/0408.tar.gz 
很多时候其实我不想备份整个库,我只想备份一个表,那么这个操作如何来实现呢。 
innobackupex –defaults-file=/etc/my.cnf –user=root -pn–include=’test.t’ /data/backup/0408 
这里有几点需要注意,工具还是会逐个去扫描,只是那些不符合的会被忽略掉,也就意味着备份出来的情况和全备的目录结构是一样的,但是指定的表会备份出ibd,frm文件。

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

而这种情况下,ibdata也会完整备份出来,如果这个文件很大,那就相当不给力了。 
不过有一个场景还是很实用的。那就是迁移表。



5、迁移表实验

如果我们还有一个实例3307的数据库,想把3306库中的test.t表导入到3307的test数据库中我们可以使用Innobackupex来做物理备份,然后还原导入,达到迁移的目的。

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

下面的命令会声明指定目录下的备份需要导出对象。

innobackupex --apply-log --export /data/backup/0408/2017-03-04_15-21-16

直接结果就是多了如下的文件:

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

然后在新的3307的test数据库中创建表t,并且对表t信息做截断:


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

然后将exp和ibd文件拷贝到目标目录然后修改属组导入即可(如是导入到mysql5.6拷贝.cfg,而不是.exp):


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

然后再在test数据库中对表t进行导入操作:


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

可以看到数据从3306的test数据库中导入到了3307的数据库当中。 
如果不是按如上步骤进行操作会报如下的错误: 
原因就是,1、在没有对表进行创建和discard之前就将文件拷贝到了test目录下;2、表创建完成以后,没有将对应的文件拷贝到test目录下,导致数据库无法找到对应的文件


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

有另外一点值得说的是,这个.exp文件是不是必须的,其实也不是。 
我们只拷贝.ibd文件也照样可以。可能在新版本中会有一些警告提示,我们重新来做一下。

root@localhost:mysql.sock  15:50:32 [test]>alter table t discard tablespace;Query OK, 0 rows affected (0.03 sec)


同时删除刚刚拷贝过来的.exp文件。 
然后拷贝ibd文件到指定目录,赋权限 
导入表空间信息。

root@localhost:mysql.sock  15:50:32 [test]> alter table t import tablespace; 
Query OK, 0 rows affected (0.00 sec)


over!!!



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