MySQL可传输表空间:将一个表从一个实例拷贝到另一个实例

MySQL版本:5.7.23

1.在源实例上,创建一个表(如果不存在):

mysql> USE abce;
mysql> CREATE TABLE t(c1 INT) ENGINE=InnoDB;
mysql> insert into t values(1);

2.在目标实例上,如果不存在表,请创建一个表:

mysql> USE abce;
mysql> CREATE TABLE t(c1 INT) ENGINE=InnoDB;

3.在目标实例上,discard现有表空间:

mysql> ALTER TABLE t DISCARD TABLESPACE;

执行这一步操作后,目标实例上会将t表的ibd文件删除,只留下t.frm文件

4.在源实例上,运行FLUSH TABLES ... FOR EXPORT以使表停顿并创建.cfg元数据文件:

mysql> USE abce;
mysql> FLUSH TABLES t FOR EXPORT;

FLUSH TABLES ... FOR EXPORT语句可确保对表的更改已刷新到磁盘,以便在实例运行时可以进行二进制表拷贝。当运行FLUSH TABLES ... FOR EXPORT时,InnoDB在与表相同的数据库目录中生成一个.cfg文件。.cfg文件包含导入表空间文件时用于schema验证的元数据。

5.将.ibd文件和.cfg元数据文件从源实例复制到目标实例。 例如:

shell> scp /path/to/datadir/abce/t.{ibd,cfg} destination-server:/path/to/datadir/abce

必须先拷贝.ibd文件和.cfg文件,然后释放共享锁,如下一步所述。

6.在源实例上,使用UNLOCK TABLES释放由FLUSH TABLES ... FOR EXPORT获取的锁:

mysql> USE abce;
mysql> UNLOCK TABLES;

  

7.在目标实例上,导入表空间:

mysql> USE abce;
mysql> ALTER TABLE t IMPORT TABLESPACE;

  

8.目标验证一下:

[email protected]:abce 03:45:49>select * from t;
+------+
| c1   |
+------+
|    1 |
+------+
1 row in set (0.01 sec)

原文地址:https://www.cnblogs.com/abclife/p/11787591.html

时间: 2024-10-10 21:34:33

MySQL可传输表空间:将一个表从一个实例拷贝到另一个实例的相关文章

mysql 5.6 使用传输表空间迁移表或恢复误删除的表

mysql 5.6 使用传输表空间迁移表或恢复误删除的表 http://blog.csdn.net/lidan3959/article/details/25152623 以前在网上也看过一些对5.6传输表空间的介绍,不过都写的不够具体详细,今天有空就具体操作了一把,并详细记录了一下算留个档 一,简单说明:1),传输表空间的限制:   1,mysql 版本 5.6.6 及其以上,并且版本建议源和目标版本建议都是GA版并且大版本一样   2,表引擎为innodb并且开启独立表空间  innodb_f

检查使用共享表空间的表

检查使用共享表空间的表 最近接手一台新的数据库机器,发现某些库某些表没有ibd文件只有frm文件,而ibdata1文件一共有20G+,估计是使用了共享表空间 存放在ibdata1文件里 于是写了一个脚本,检查实例下哪些库哪些表使用了共享表空间,原理是如果有frm文件而没有ibd文件就认为是使用了共享表空间 #!/bin/bash # Written by steven # Name: checktablesharespace.sh # Version: v1.0 # Function: 检查使用

4.windows和Linux下创建oracleusername表空间,表,插入数据,用户管理表等操作

进入超级管理员,运行下面命令 Window下创建数据库.表空间,用户,插入数据等操作 -- 01 创建表空间 -- 注意表空间的路径 依据实际安装环境进行调整 CREATE TABLESPACE ts_myscott LOGGING DATAFILE 'F:/app/to-to/oradata/orcl/ts_myscott.dbf' SIZE 10M EXTENT MANAGEMENT LOCAL; CREATE TABLESPACE ts_myscott2 LOGGING DATAFILE

4.windows和Linux下创建oracle用户名表空间,表,插入数据,用户管理表等操作

进入超级管理员,执行以下命令 Window下创建数据库,表空间,用户,插入数据等操作 -- 01 创建表空间 -- 注意表空间的路径 根据实际安装环境进行调整 CREATE TABLESPACE ts_myscott LOGGING DATAFILE 'F:/app/to-to/oradata/orcl/ts_myscott.dbf' SIZE 10M EXTENT MANAGEMENT LOCAL; CREATE TABLESPACE ts_myscott2 LOGGING DATAFILE

数据库实例: STOREBOOK > 表空间 > 编辑 表空间: USERS

ylbtech-Oracle:数据库实例: STOREBOOK  >  表空间  >  编辑 表空间: USERS 表空间  >  编辑 表空间: USERS 1. 一般信息返回顶部 1.1, 之一般信息 1.2, 之数据文件 1.3, 2. 存储返回顶部 2.1, 2.2, 3. 阈值返回顶部 3.1, 3.2, 4.返回顶部 4.1, 作者:ylbtech出处:http://ylbtech.cnblogs.com/本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,

数据库实例: STOREBOOK > 表空间 > 编辑 表空间: UNDOTBS1

ylbtech-Oracle:数据库实例: STOREBOOK  >  表空间  >  编辑 表空间: UNDOTBS1 表空间  >  编辑 表空间: UNDOTBS1 1. 一般信息返回顶部 1.1, 之一般信息 1.2, 之数据文件 1.3, 2. 存储返回顶部 2.1, 2.2, 3. 阈值返回顶部 3.1, 3.2, 4.返回顶部 4.1, 作者:ylbtech出处:http://ylbtech.cnblogs.com/本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保

数据库实例: STOREBOOK > 表空间 > 编辑 表空间: SYSAUX

ylbtech-Oracle:数据库实例: STOREBOOK  >  表空间  >  编辑 表空间: SYSAUX  表空间  >  编辑 表空间: SYSAUX 1. 一般信息返回顶部 1.1, 之一般信息 1.2, 之数据文件 1.3, 2. 存储返回顶部 2.1, 2.2, 3. 阈值返回顶部 3.1, 3.2, 4. 占有者返回顶部 4.1, 4.2, 5.返回顶部 5.1, 作者:ylbtech出处:http://ylbtech.cnblogs.com/本文版权归作者和博客园

数据库实例: STOREBOOK > 表空间 > 编辑 表空间: SYSTEM

ylbtech-Oracle:数据库实例: STOREBOOK  >  表空间  >  编辑 表空间: SYSTEM  表空间  >  编辑 表空间: SYSTEM 1. 一般信息返回顶部 1.1, 之一般信息 1.2, 之数据文件 1.3, 2. 存储返回顶部 2.1, 2.2, 3. 阈值返回顶部 3.1, 3.2, 4.返回顶部 4.1, 作者:ylbtech出处:http://ylbtech.cnblogs.com/本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段

Oracle表空间和表的入门操作指令

Oracle数据库-常用操作指令 查看端口号指令 netstat –a 清屏: SQL> clear scre; SQL> host cls; 表空间   建立表空间 SQL> create tablespace tc20 datafile 'e:\tc20_data_dbf' size 20m autoextend on next 5m maxsize 500m; 查询表空间名称 SQL> select tablespace_name,file_name from dba_dat

求解?表空间,表,用户这三者之间的 关系与区别?

发表于: 2012-02-11 16:40:58 小弟初学oracle,但是在表空间,用户,表这三者之间的关系,有点模糊,希望大牛指导下! 更多0分享到:       对我有用[0] 丢个板砖[0] 引用 | 举报| 管理 回复次数:21 关注 dengnanyi 一棵老松树 本版等级: #1 得分:0回复于: 2012-02-11 16:55:59 表空间:一个数据库划分为一个或多个逻辑单位,该逻辑单位称为表空间(TABLESPACE).一个表空间可将相关的逻辑结构组合在一起.表:表(tabl