上一篇文章介绍了“innobackupex 热备指定库表操作”,分析其整个过程,就是将表的字典和数据文件导出在导入的原理,那么针对单表的备份与恢复(新实例或者新库中恢复),我们可以直接采用物理导出innodb表的办法。
具体操作如下:
1.将备份表加锁,导出cfg。

mysql> select * from t1;
+------+
| id |
+------+
| 1 |
| 2 |
| 3 |
| 4 |
| 2 |
| 3 |
| 4 |
+------+
7 rows in set (0.00 sec)

mysql> flush table t1 with read lock;
Query OK, 0 rows affected (0.01 sec)

发现t1生成了cfg文件。

[root@222 test]# ls
db.opt t1.cfg t1.frm t1.ibd t2.frm t2.ibd

执行unlock tables ,cfg文件回收。

mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)

[root@222 test]# ls ../test/
db.opt t1.frm t1.ibd t2.frm t2.ibd

2.在unlock tables前,将t1的cfg和ibd文件备份。

[root@222 test]# cp t1.ibd t1.cfg /home/backup/

3.创建一个新库,并创建相同结构的t1表。
mysql> create database test1;
Query OK, 1 row affected (0.00 sec)
mysql>
mysql> use test1;
Database changed
mysql>
mysql> create table t1 like test.t1;
Query OK, 0 rows affected (0.03 sec)

4.删除新建的t1表空间。

mysql> alter table t1 discard tablespace;
Query OK, 0 rows affected (0.02 sec)

发现新建的t1表空间的ibd文件被清除。

[root@222 test]# ls ../test1/
db.opt t1.frm

5.将备份的t1表的cfg和ibd文件拷贝到新建的库下。
[root@222 test]# cd /home/backup/

[root@222 test1]# ll -trh
总用量 116K
-rw-rw----. 1 mysql mysql 61 12月 16 09:49 db.opt
-rw-rw----. 1 mysql mysql 8.4K 12月 16 09:49 t1.frm
-rw-r-----. 1 root root 96K 12月 16 09:51 t1.ibd
-rw-r-----. 1 root root 354 12月 16 09:51 t1.cfg
[root@222 test1]# chown -R mysql.mysql *
[root@222 test1]#
[root@222 test1]#
[root@222 test1]# ll -trh
总用量 116K
-rw-rw----. 1 mysql mysql 61 12月 16 09:49 db.opt
-rw-rw----. 1 mysql mysql 8.4K 12月 16 09:49 t1.frm
-rw-r-----. 1 mysql mysql 96K 12月 16 09:51 t1.ibd
-rw-r-----. 1 mysql mysql 354 12月 16 09:51 t1.cfg

6.执行新建t1表导入表空间操作。
mysql> alter table t1 import tablespace;
Query OK, 0 rows affected (0.08 sec)

7.查询结果和第1步备份的表一致,操作完成

mysql> select * from test1.t1;
+------+
| id |
+------+
| 1 |
| 2 |
| 3 |
| 4 |
| 2 |
| 3 |
| 4 |
+------+
7 rows in set (0.00 sec)

btw.
a.由于新表存在cfg文件,在删除库操作的时候会报错,
ERROR 1010 (HY000): Error dropping database (can't rmdir './test1/', errno: 17)
如果使用innobackupex备份,并导入的exp文件,则会发现删除库后,exp文件无法删除,那么手工将exp文件删除,在删除库即可。
如果使用如上方法手工命令方式导入cfg文件,在删除库时报错,但是查看库文件时发现无文件,则在执行一遍即可;对于新导入的cfg文件,可以在次执行如下命令,则cfg文件消失。
mysql> flush table t1 for export;
Query OK, 0 rows affected (0.00 sec)

[root@222 test1]# ll -trh
总用量 116K
-rw-rw----. 1 mysql mysql 61 12月 16 09:49 db.opt
-rw-rw----. 1 mysql mysql 8.4K 12月 16 09:56 t1.frm
-rw-r-----. 1 mysql mysql 96K 12月 16 09:56 t1.ibd
-rw-r-----. 1 mysql mysql 355 12月 16 09:57 t1.cfg

mysql>
mysql>
mysql> unlock tables;
Query OK, 0 rows affected (0.00 sec)

[root@222 test1]# ll -trh
总用量 112K
-rw-rw----. 1 mysql mysql 61 12月 16 09:49 db.opt
-rw-rw----. 1 mysql mysql 8.4K 12月 16 09:56 t1.frm
-rw-r-----. 1 mysql mysql 96K 12月 16 09:56 t1.ibd

b.发现手工命令行方式备份恢复更加便捷,但是会有一个锁表的过程,那么则根据不同情况选择不同方式进行备份,对于线上有写入的表采用innobackupex方式,不会导致复制延迟;对于无写入的表,直接采用加锁导入cfg文件方式,操作更加便捷。

OK,done。

转载于:https://blog.51cto.com/liuzhanbin/2330985

innodb表 手工导入导出相关推荐

  1. mysql新建表96k_innodb表 手工导入导出

    上一篇文章介绍了"innobackupex 热备指定库表操作",分析其整个过程,就是将表的字典和数据文件导出在导入的原理,那么针对单表的备份与恢复(新实例或者新库中恢复),我们可以 ...

  2. SQL server 数据库表的配置及其表的导入导出

    SQL server 数据库表的配置及其表的导入导出 在实际应用中,需要对测试数据进行存储,以便于后续对数据进行查询.这里介绍SQL SEVER数据的表的配置及其数据库的导入和导出等操作. 一.安装S ...

  3. Oracle—dmp表的导入导出

    dmp表从Oracle数据库导入导出 导入: 开始->运行->输入cmd 回车 ##语法格式为:imp 用户名/密码@IP地址/数据库名 file='dmp文件路径' full=yC:\U ...

  4. oracle数据库表的导入导出cmd命令大全

    在实际的项目开发中经常会遇到导入导出oracle数据库中的表,以下是常用的一些cmd命令: 一.数据表的导出 1 将数据库TEST完全导出,用户名system 密码manager 导出到D:daoch ...

  5. imp命令导入指定表_Oracle—— 导入/导出 数据:exp,imp 命令

    exp,imp 命令是需要在windows  的 cmd  命令中执行的命令,主要用于数据的导入和导出工作,方便高效. 远程地址--  @ip:port/orcl   注:该远程地址不写,就意味着执行 ...

  6. 数据库(表)导入导出备份

    一.介绍 逻辑备份是指使用工具export将数据对象的结构和数据导出到文件的过程. 逻辑恢复是指当数据库对象被误操作而损坏后使用工具import利用备份的文件把数据对象导入到数据库的过程. 物理备份即 ...

  7. SQL Server 与 Excel,Access 数据表的导入导出(注:参照博园.NET大观)

    我们知道在Sql Server 中 集成了数据的导入导出这么一个工具,那用Sql 脚本怎么轻松操作 Access 和 Excel 中的数据呢,接下来我们看一看: 一. SQL SERVER 和EXCE ...

  8. Kepserver-数据点表配置导入导出

    本文章简单记录基于Kepserver软件,针对某个模拟设备的点表配置进行导入导出的相关步骤.方便初学者使用.这里以西门子s7-300的设备为例子.如下图所示: 一.点表导出 1.1 选中s7-300所 ...

  9. mysql数据库表的导入导出

    MySQL写入数据通常用insert语句,如 复制代码 代码如下: insert into person values(张三,20),(李四,21),(王五,70)-; 但有时为了更快速地插入大批量数 ...

最新文章

  1. 理解YOLOv2训练过程中输出参数含义
  2. c语言考试经典编程题目及答案,经典练习C语言编程的题目及答案整理
  3. A problem occurred starting process 'command '/home/jason/Android/Sdk/build-tools/23.0.3/aapt
  4. 文件加密问题(中文字符)
  5. ajaxfileupload上传显示图片_有了这个AI图片转换器,风景照片秒变二次元动画
  6. java基础不好框架能学会吗_转行Java能学会吗?零基础学习Java的学习路线
  7. sas ondemand for academics使用
  8. 高斯卷积核如何生成 C语言实现
  9. 贝叶斯软件genle教程_一文读懂蒙特卡罗方法和应用贝叶斯推理
  10. MATLAB(二)数据的输入
  11. 【高等数学】高等数学基础理论归纳
  12. cobbler get-loaders 错误解决方法
  13. 730阵列卡支持多大硬盘_730元/瓶的光瓶李渡酒销售过亿后,李渡还有哪些大招?...
  14. html dom对象简写,HTML DOM 对象
  15. 白化(Whitening): PCA白化 ZCA白化
  16. 启用iptables后,连接速度很慢
  17. 2021华为软件精英挑战赛的baseLine,Java版,仅供参考,无核心算法
  18. R-CNN文章详细解读
  19. Ballerina语言有望改善应用程序集成
  20. 大数据研发能力模型(面试准备)

热门文章

  1. chorme 下载文件 保留 放弃_西部数码使用指南:保留数据重装以后sqlserver数据库不能启动(sql2008,sql2012)...
  2. ylinux系统找到软件_电脑用了段时间发现多处一些软件该怎么办?
  3. hssfcolor 不建议使用_POI导出Excel经典实现
  4. arduino彩灯计时器电路_micro:bit是什么?和Arduino和单片机有什么不同?
  5. java文件上传_Java文件上传细讲
  6. 到底这个电路是如何振荡的?
  7. 利用OpenCV读取和写入视频
  8. 无电路板的微型电路制作
  9. 那些美的让人流连忘返的风景照片
  10. 2021年春季学期-信号与系统-第七次作业参考答案-第三小题