千家信息网

使用imp导入表和索引至不同表空间的方法是什么

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,使用imp导入表和索引至不同表空间的方法是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。使用expdp/impdp方式将表和索引导入
千家信息网最后更新 2026年11月02日使用imp导入表和索引至不同表空间的方法是什么

使用imp导入表和索引至不同表空间的方法是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

使用expdp/impdp方式将表和索引导入至不同表空间的方法

导出:

expdp test/test directory=dump_dir dumpfile=test.dmp logfile=test_expdp.log tables=t

导入表数据:

impdp test/test directory=dump_dir dumpfile=test.dmp logfile=impdp_data.log remap_tablespace=system:datatb exclude=index

导入索引数据:

impdp test/test directory=dump_dir dumpfile=test.dmp logfile=impdp_index.log remap_tablespace=system:idxtb include=index

查询语句:

select segment_name,tablespace_name from dba_segments where owner='TEST';

本文记录的是exp/imp方式将表和索引导入至不同表空间的方法,先说明一下原因:

由于应用数据需要迁移,要将原来数据库中应用数据通过导入导出的方式,迁移至目标数据库,同时由于新的规划需求,需要将表中数据和索引存放的表空间区分,迁移前后数据库版本均为Oracle 10g。此操作本来是可以用上述expdp/impdp方式完成的,不过由于在源端数据库没有足够空间存放导出后的dmp文件,所以需要使用其他方式完成数据迁移。

先给出一般的exp/imp迁移数据方法:

(为方便说明,以下示例是将a用户下的数据导入至b用户,同时表中数据和索引表空间需迁移至不同表空间)

exp/imp方式将数据进行迁移时,如果想改变数据存放的表空间的话,需要注意2点:

(1) 导入用户无DBA权限

(2) 导入用户无unlimited tablespace权限

这样的话,导入的数据会存放在其缺省表空间下,具体说明可参考eygle大师的文章http://www.eygle.com/archives/2005/04/ecineeeeiaeioae.html。

不过这样是无法将表中数据和索引导入至不同表空间的,如果想将索引导入至其他表空间,方法如下:

导出a用户下数据

exp a/a file=exp_test.dmp log=exp_test.log

首先不导入索引,只导入表数据部分:

imp b/b file=exp_test.dmp log=imp_test_data.log fromuser=a touser=b indexes=n

之后,通过indexfile参数,将创建索引的SQL语句保存至文本中:

imp b/b file=exp_test.dmp log=imp_test_index.log fromuser=a touser=b indexfile=index.sql

最后,通过修改并执行索引创建的SQL语句index.sql,完成实际导入需求。

以上方式可以完成需求,不过操作起来比较麻烦,尤其需要注意:

(1) 应用用户导入的缺省表空间及该用户相关权限。

(2) 修改index.sql文本的方法颇显麻烦。

以下给出我的Oracle 10g下exp/imp迁移数据方法,也是本次数据迁移实际使用的方法:

首先使用expdp/impdp方法迁移元数据(metadata):

导出:

expdp system/oracle directory=dump_dir dumpfile=expdp_test.dmp logfile=expdp_test.log CONTENT=METADATA_ONLY schemas=a

导入元数据(metadata),指定不同表空间。

impdp system/oracle directory=dump_dir dumpfile=expdp_test.dmp logfile=impdp_test_data.log remap_schema=a:b remap_tablespace=splex:datatb exclude=index

impdp system/oracle directory=dump_dir dumpfile=expdp_test.dmp logfile=impdp_test_index.log remap_schema=a:b remap_tablespace=splex:proftb include=index

之后,通过exp/imp方式迁移应用数据,注意源数据库字符集、目标端数据库字符集、客户端字符集设置应当一致,避免字符转换:

exp a/a file=exp_test.dmp log=exp_test.log STATISTICS=none buffer=52428800

imp b/b file=exp_test.dmp log=imp_test.log fromuser=a touser=b ignore=y commit=y buffer=52428800 indexes=n grants=n constraints=n

通过上述方式,可完成exp/imp迁移数据的方法。

数据泵的其他导出方法:

虽然本次数据迁移未使用到,不过还是记录一下。

其实数据泵是可以在客户端导出数据的,即指定NETWORK_LINK参数:

expdp system/password NETWORK_LINK=db_link_name DIRECTORY=data_pump_dir DUMPFILE=server.dmp TABLES=employees

这种方式需要涉及到2个数据库实例,相当于是客户端的数据库通过使用database link访问了服务器端的数据库,并通过数据泵方式实现服务器端数据的导出。

看完上述内容,你们掌握使用imp导入表和索引至不同表空间的方法是什么的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

数据 方法 空间 索引 方式 数据库 不同 用户 字符 应用 字符集 客户 权限 语句 需求 内容 原因 参数 同时 实际 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 互联网科技有限公司经营范围 互联网与科技金融数据 互联网科技战争 高科技与互联网 猪兼强互联网科技 狮子座互联网科技 互联网 的科技创新 致骋互联网科技 鑫亿盛互联网科技 互联网科技logo设计 互联网 新科技 湖南诚度互联网科技有限公司 科技互联网大厂 广西互联网科技孵化中心 互联网方面的科技前沿 半导体行业属于互联网高科技类吗 互联网科技包装股份有限公司上市 九思连强互联网电子科技有限公司 互联网科技接地气 山东亿川互联网科技有限责任公司 互联网科技股午盘股票涨跌 广西拼得多互联网科技有限公司 互联网科技博主是什么意思 顶级互联网科技成果有哪些 互联网科技与大数据专业 互联网新科技动漫ppt素材 山东星卡互联网科技有限公司官网 全球科技与互联网公司市值变化 易租星互联网科技有限公司 互联网科技的前景
0