在以前我的blog中,曾经记录过使用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权限

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

导出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 只导入索引_使用imp导入表和索引至不同表空间方法相关推荐

  1. mysql dump 导入导出_使用mysqldump导入导出数据

    DRDS支持MySQL官方数据导出工具mysqldump.本文围绕DRDS数据导入导出的几种常见场景对操作步骤和注意事项进行说明.mysqldump命令的详细说明请参见MySQL官方文档. mysql ...

  2. mysql创建非聚集索引_一文看懂聚集索引和非聚集索引的区别

    一.深入浅出理解索引结构 实际上,可以把索引理解为一种特殊的目录.微软的SQL SERVER提供了两种索引:聚集索引(clustered index,也称聚类索引.簇集索引)和非聚集索引(nonclu ...

  3. oracle 索引_分享三个Oracle数据库索引监控脚本,值得收藏

    概述 我们在维护业务系统时,可能会建立很多索引,那么这些索引的使用到底怎么样,是否有些索引一直都没有用到过,那么oracle 是如何监控索引的使用状况,是否可以清除它们? 监控索引 一般有两种方式: ...

  4. python花式索引_初探Numpy中的花式索引

    Numpy中对数组索引的方式有很多(为了方便介绍文中的数组如不加特殊说明指的都是Numpy中的ndarry数组),比如:基本索引:通过单个整数值来索引数组 import numpy as np arr ...

  5. mysql to days 索引_高性能mysql优化二之索引篇

    前言 为什么要使用索引?索引有什么用途呢?我的亲身经历,一个几千万数据的项目,我写了一条查询,没有用到索引,由于访问量比较大,瞬间网站就跪了,从此以后我写的每一条sql都会explain解析看是否用到 ...

  6. 千万级大表如何更快速的创建索引_分享一份生产环境mysql数据库大表归档方案,值得收藏...

    概述 分享下最近做的一个mysql大表归档方案,仅供参考. 整体思路 一.明确哪些大表需做归档 1.数据库表概要信息统计 SELECTt1.table_schema,t1.table_name,`EN ...

  7. python哪个关键字可以导入模块_关于python导入模块import与常见的模块详解

    0.什么是python模块?干什么的用的? Java中如果使用abs()函数,则需要需要导入Math包,同样python也是封装的,因为python提供的函数太多,所以根据函数的功能将其封装在不同的m ...

  8. 加速mysql导入时间_加快mysql导入导出速度

    MySQL导出的SQL语句在处理百万级数据的时候,可能导入要花几小时.在导出时合理使用几个参数,可以大大加快导入的速度. -e 使用包括几个VALUES列表的多行INSERT语法; --max_all ...

  9. idea项目依赖导入失败_解决idea导入项目后依赖报错问题

    1.在idea首页 Confige-->setting-->build,execution,deployment-->buildTool-->maven-->work o ...

最新文章

  1. 玩玩TCPCOPY+ intercept+mysql-replay-module(未成功)
  2. 根据数据库表gengxin实体类_Python学习第四十八天记录打call:SQLALchemy操作MySQL关系型数据库...
  3. 使用 OpenLDAP 集中管理用户帐号
  4. 工程师如何解决穿衣搭配烦恼?——滴搭平台与算法 1
  5. 没有工作经验找it_校招和社招有什么区别?没有工作经验,如何找工作?
  6. 了解招聘中的这些潜台词,找工作少走弯路
  7. Node Sass could not find a binding for your current environment: OS X 64-bit with Node.js 10.x
  8. Python中函数的定义和参数传递
  9. python面试题No2
  10. CIELAB色差计算
  11. GB BIG5 转码原理全解析
  12. 高级Java程序员必备:《IDEA问题库》常见问题及解决方案,提升开发效率(JAVA 小虚竹)
  13. 模电笔记3 三极管 光电三极管
  14. 《如何有效阅读一本书》:读再多书,不如先学会如何读书
  15. git 远程仓库和本地仓库建立连接
  16. 统计代码放在网站php,网站添加简单访客统计代码
  17. Java识别获取pdf中文字信息(此方法任意pdf的信息都可以拿到)
  18. 【开源推荐】XMM Go语言环境中完全自主实现的第三方内存管理库
  19. GPU渲染技术及性能优化
  20. 数据中心技术最新发展趋势

热门文章

  1. 如何在工作中自学UI设计
  2. MongoDB 主从复制集搭建
  3. 工作中常用,实用工具推荐!
  4. shell脚本逻辑判断,文件目录属性判断,if,case用法
  5. jquery easyui datagrid实现单行的上移下移,以及保存移动的结果
  6. 图解C/C++中函数参数的值传递、指针传递与引用传递
  7. WebCenter Space中配置使用WSRP Portlet
  8. 第五章:管理数据库存储结构
  9. Centos6.5下配置DNS服务器
  10. MPLS的几种备份方式——Vecloud