设为首页 加入收藏

TOP

Centos 推荐使用xtrabackup备份数据库(五)
2015-11-21 01:28:07 来源: 作者: 【 】 浏览:5
Tags:Centos 推荐 使用 xtrabackup 备份 数据库
过程中,innobackupex会调用xtrabackup命令从数据字典中移除缺失的表,因此,会显示出许多关于“表不存在”类的警告信息。同时,也会显示出为备份文件中存在的表创建.exp文件的相关信息。
?
(3)还原部分备份
?
还原部分备份的过程跟导入表的过程相同。当然,也可以通过直接复制prepared状态的备份直接至数据目录中实现还原,不要此时要求数据目录处于一致状态。
?
案列演示:
?
对jiaowu数据库进行备份和还原
?
1、查看数据库和表
?
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| jiaowu             |
| mysql              |
| performance_schema |
| test |
+--------------------+
5 rows in set (0.00 sec)
mysql> select * from jiaowu.tutor;
+------+---------------+--------+------+
| TID  | Tname         | Gender | Age  |
+------+---------------+--------+------+
|    1 | ZhengYansheng | M      |   25 |
|    2 | LiJian        | M      |   26 |
|    3 | OuYangyu      | M      |   27 |
|    4 | LuoChenghui   | M      |   25 |
|    5 | LiuYunbo      | M      |   25 |
|    6 | FuJian        | M      |   24 |
|    7 | LiMenglu      | F      |   23 |
|    8 | BaoYintu      | M      |   28 |
|    9 | WangYana      | F      |   25 |
|   11 | NULL          | NULL   | NULL |
|   12 | NULL          | NULL   | NULL |
|   13 | NULL          | NULL   | NULL |
|   21 | NULL          | NULL   | NULL |
|   22 | NULL          | NULL   | NULL |
|   23 | NULL          | NULL   | NULL |
+------+---------------+--------+------+

?

2、innobackupex进行备份
# innobackupex --user=root --password=123456 --databases='jiaowu' /opt/
?
3、准备并导入jiaowu表
# innobackupex --user=root --password=123456 --apply-log --export /opt/2015-03-18_22-46-47/
?
4、删除jiaowu数据库
# rm -rf /mydata/data/jiaowu
?
5、登陆数据库查看是否还存在jiaowu数据库
[root@localhost ~]# mysql -e 'show databases;'
+--------------------+
| Database ? ? ? ? ? |
+--------------------+
| information_schema |
| mysql ? ? ? ? ? ? ?|
| performance_schema |
| test |
+--------------------+
#jiaowu数据库不存在了
?
6、还原jiaowu数据库
# cp -a /opt/2015-03-18_22-46-47/jiaowu/ /mydata/data/
?
7、修改jiaowu权限
# chown -R mysql.mysql /mydata/data/jiaowu
?
8、再次查看jiaowu数据库是否存在
[root@localhost ~]# mysql -e 'use jiaowu;show tables;'
+------------------+
| Tables_in_jiaowu |
+------------------+
| tutor ? ? ? ? ? ?|
+------------------+
#jiaowu数据库已经被还原并且表tutor还在。成功!!!
?
八、导入或导出单张表
?
默认情况下,InnoDB表不能通过直接复制表文件的方式在mysql服务器之间进行移植,即便使用了innodb_file_per_table选项。而使用Xtrabackup工具可以实现此种功能,不过,此时需要“导出”表的mysql服务器启用了innodb_file_per_table选项(严格来说,是要“导出”的表在其创建之前,mysql服务器就启用了innodb_file_per_table选项),
并且“导入”表的服务器同时启用了innodb_file_per_table和innodb_expand_import选项。
?
(1)“导出”表
?
导出表是在备份的prepare阶段进行的,因此,一旦完全备份完成,就可以在prepare过程中通过--export选项将某表导出了:
# innobackupex --apply-log --export /path/to/backup
?
此命令会为每个innodb表的表空间创建一个以.exp结尾的文件,这些以.exp结尾的文件则可以用于导入至其它服务器。
?
(2)“导入”表
?
要在mysql服务器上导入来自于其它服务器的某innodb表,需要先在当前服务器上创建一个跟原表表结构一致的表,而后才能实现将表导入:
mysql> CREATE TABLE mytable (...) ?ENGINE=InnoDB;
?
然后将此表的表空间删除:
mysql> ALTER TABLE mydatabase.mytable ?DISCARD TABLESPACE;
?
接下来,将来自于“导出”表的服务器的mytable表的mytable.ibd和mytable.exp文件复制到当前服务器的数据目录,然后使用如下命令将其“导入”:
mysql> ALTER TABLE mydatabase.mytable ?IMPORT TABLESPACE;
?
案列演示:
?
1、查看表
mysql> use jiaowu;
Database changed
mysql> show tables;
+------------------+
| Tables_in_jiaowu |
+------------------+
| tutor ? ? ? ? ? ?|
+------------------+
1 row in set (0.00 sec)
?
2、修改表的存储引擎为InnoDB
mysql> alter table tutor engine=innodb;
Query OK, 15 rows affected (0.05 sec)
Records: 15 ?Duplicates: 0 ?Warnings: 0
?
3、innobacku
首页 上一页 2 3 4 5 6 下一页 尾页 5/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇centOS下安装mysql5.7 下一篇Navicat远程无法连接mysql问题解..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: