mysql新建表96k_innodb表 手工导入导出
上一篇文章介绍了“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。
mysql新建表96k_innodb表 手工导入导出相关推荐
- innodb表 手工导入导出
上一篇文章介绍了"innobackupex 热备指定库表操作",分析其整个过程,就是将表的字典和数据文件导出在导入的原理,那么针对单表的备份与恢复(新实例或者新库中恢复),我们可以 ...
- oracle新建用户sql局域,oracle 新建数据库,及创建用户,表空间,sqlplus导入导出数据库...
oracle11G 新建数据库: 默认下一步: 默认下一步: 默认下一步: 填写数据库名下一步: 默认下一步: 完成,再按指示确定,就完成了数据库的创建. 数据库创建完后,在oracle11G Net ...
- 2005数据库导入mysql没有主键_MSSQL2005数据库导入导出+带主键、自动增量、关系图、表架构等...
MSSQL2005数据库导入导出+带主键.自动增量.关系图.表架构等 关键词:mssql2005.导入导出 1.在本地安装Mssql Server 2005 2.接着安装SQLServer2005_X ...
- Oracle创建表空间/用户及导入导出
文章目录 一.SQL Plus登录 二.创建表空间,用户 1.创建文件夹 2.创建表空间 2.创建用户 3.用户绑定表空间 4.用户授权 三.Oracle导入导出 2.导出 3.导入 四.Navica ...
- Hadoop Hive概念学习系列之HDFS、Hive、MySQL、Sqoop之间的数据导入导出(强烈建议去看)(十八)...
把MySQL里的数据导入到HDFS 1.使用MySQL工具手工导入 把MySQL的导出数据导入到HDFS的最简单方法就是,使用命令行工具和MySQL语句. 为了导出整个数据表或整个数据库的内容,MyS ...
- mysql 安装、建库、导入导出数据
一.安装mysql数据库(如果已经有数据库,跳过这一步) 1. 下载和安装Yum repository 下载地址:https://dev.mysql.com/downloads/repo/yum/ 使 ...
- mysql导vertica_vertica系列:数据的导入导出
本文仅涉及 Vertica 导入导出本地文件, 以及两个 Vertica 集群相互导出, 不涉及 Vertica 和 hdfs/Hive 导入导出和互操作. copy 数据导入工具 copy 命令无疑 ...
- MySQL新建数据库和表
首先在MySQL Workbench上(如果没有的话建议安装一个)新建一个数据库 首先在SCHEMAS区域右击,选择创建"create schema" 填入自定义名称,点击&quo ...
- impdp oracle 只导入表结构_Oracle数据导入导出(expdp impdp)
oracle数据泵的使用方式, 以及数据泵命令的参数说明 使用expdp和impdp时应该注重的事项: 1.exp和imp是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. 2.expdp ...
最新文章
- Android客户端开发—数据库SQLite基本语句
- Rocksdb 的一些参数调优策略
- Visual C++ Windows 用来定位 DLL 的搜索路径
- Triangular Sums http://acm.nyist.net/JudgeOnline/problem.php?pid=122
- CentOS关机大法之shutdown应用实例
- 一款很好用的JQuery dtree树状图插件(一)
- 19岁中专学历是怎么在广州找到前端工作的?
- 【软件开发综合实验】文本压缩软件
- STM32工作笔记0059---独立看门狗实验
- pytho---之easydict使用
- 光伏发电设备被淹或浸水时的相关注意事项
- 计算机网络知识点脑图 王道 考研
- html制作dnf,dnf怎么制作img文件 时装拼合教程
- 清理git本地帐户信息
- 国开计算机专业英语答案,国开电大计算机专业英语阅读(河北)形考三参考答案...
- 电子计算机的字母是什么意思,计算器上的英文字母
- 有什么能测试安卓硬件的软件吗,手机硬件检测工具有哪些 总有一款适合你
- centos mysql mariadb_centos7 mysql和mariadb的资料 - 菜鸟头头
- 深度 | 蚂蚁金融智能平台:让AI在金融场景发挥作用
- oracle认证考试试题及答案,Oracle DBA认证考试存储管理试题及答案
热门文章
- LeetCode简单题之数组中第 K 个独一无二的字符串
- 合肥工业大学—SQL Server数据库实验二:数据库架构的创建与使用
- C++ OP相关注意事项
- 如何在TVM上集成Codegen(下)
- 用NVIDIA NsightcComputeRoofline分析加速高性能HPC的应用
- Python反爬研究总结
- 华东理工大学计算机应用基础,最新华东理工大学计算机应用基础网上作业及全部答案...
- Android 绘制同心圆 (2个圆叠加在一起)
- 显示intent的使用讲解
- 微信小程序 在使用wx.request时显示加载中