mysql使用传输表空间对大表或分区表进行快速复制-阿里云开发者社区

开发者社区> the_script> 正文

mysql使用传输表空间对大表或分区表进行快速复制

简介: mysql使用传输表空间对大表或分区表进行快速复制
+关注继续查看

在有些情况下,需要对单个或多个大表、分区表进行复制、数据迁移等操作,使用mysqldump可能比较慢,这种情况下可以使用mysql的传输表空间进行,以下是操作过程
1.在源服务器上查看需要复制的创表结构
image
2.在目的服务器上创建对应表
image
可以看到对应的数据目录下已经创建了表结构定义文件与表空间文件
image
3.通过discard删除表空间文件
alter table t_search discard tablespace;
image
确认表空间文件被删除
4.在源数据库中通过export命令导出表空间文件(同时加了读锁)
flush tables t_search for export;
image
image
可以看到export到多出了一个cfg文件,里面保存了一些元数据信息
5.将源服务器上导出的cfg文件与ibd文件拷贝至目的服务器数据库数据目录下对应的数据库目录test下面
image
更改cfg文件与ibd文件的属主,chown -R mysql.mysql .
6.在源目的数据库中解锁t_search
image
注意必须要在将cfg文件与ibd文件复制后才能解锁,否则cfg文件将被删除
7.在目的数据库import倒入数据完成表空间复制
alter table t_search import tablespace;
image
8.这种方法也可以用于对分区表的倒入导出
语法为:
alter table t discard partition p0 tablespace;
alter table t import partition p0 tablespace

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
分区表查询条件使用浅析
如果有个分区表,分区列为A、B、C三列,我要查询B列为某些值的数据,MaxCompute还能充分发挥分区表的优势吗?答案是肯定的,MaxCompute依然能发挥分区列的优势!在底层解析SQL执行计划时,只会将符合条件的分区纳入计算,而不是进行全表扫描。
1790 0
oracle、mysql、sybase和sqlserver复制表结构和数据
Sql Server(sybase): 1.复制表结构: 新建表student2,并且结构同表syn_xj_student一致。Sql语句如下: select * into syn_xj_student2 from syn_xj_student where 1=2 2.复制表数据,并...
664 0
教程:如何使用Data Lake Analytics创建分区表
# 前言 [Data Lake Analytics ](https://www.aliyun.com/product/datalakeanalytics)(后文简称DLA)提供了无服务化的大数据分析服务,帮助用户通过标准的SQL语句直接对存储在OSS、TableStore上的数据进行查询分析。
3036 0
Mysql数据库表分区深入详解
0、mysql数据库分区的由来? 1)传统不分区数据库痛点
12 0
oracle表空间,角色,权限,表,索引,序列号,视图,同义词,约束条件,存储函数和过程,常用数据字典,基本数据字典信息,查看VGA信息,维护表空间,创建表空间等信息
查看当前用户的缺省表空间   SQL>select username,default_tablespace from user_users;   查看当前用户的角色   SQL>select * from user_role_privs;   查看当前用户的系统权限和表级权限   SQL>select * from user_sys_privs;       
1226 0
+关注
34
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
文娱运维技术
立即下载
《SaaS模式云原生数据仓库应用场景实践》
立即下载
《看见新力量:二》电子书
立即下载