Oracle 关于expdp和impdp的应用实践
现在有一个场景需求,需要把在一台服务器上某个用户的对象全部迁移到另一台服务器。有以下几个情况:
1、原用户下的表分属于不同的表空间(由于维护人员在过程中修改过用户的默认表空间)
2、原用户的数据库量过大,导出慢。
3、迁出、迁入的oracle版本为11g
针对以上情况,迁移方法步骤如下:
1、由于用户下的数据库过大,故建议使用expdp方式来进行导出,需要先去建立一个DIRECTORY,用于放置导出的文件位置
2、由于是要导出某个用户下的全部对象,语句写法参考如下:
expdp PNC_GAS/PNC_GAS@ORCL schemas=PNC_GAS dumpfile=ncgas20180116.dmp DIRECTORY=dbbackup
3、由于被导出的用户下的表可能分属于不同表空间,故需要先查询原用户的表到底分属哪些表空间,查询语法如下:
select distinct tablespace_name 所使用表空间 from user_tables;
需要注意的是,以上语句是需要先登录到原用户后再去执行命令查询
4、然后在被迁入的服务器上建立一个新用户,建立一个新的表空间并指定为新用户的默认表空间(这里新建的用户名可以和原用户保持一致)
5、新定义的表空间需要注意被导入的数据占据的空间大小,最好留足足够空间。以下命令为新建一个最大为32G,当数据增加时默认以10m的大小扩张
CREATE TABLESPACE GAS DATAFILE
'D:\APP\ADMINISTRATOR\ORADATA\ORCL\GAS.DBF' SIZE 32768M AUTOEXTEND ON NEXT 10M MAXSIZE UNLIMITED
LOGGING
ONLINE
EXTENT MANAGEMENT LOCAL AUTOALLOCATE
BLOCKSIZE 8K
SEGMENT SPACE MANAGEMENT AUTO
FLASHBACK ON;
建议使用toad for oracle工具去建用户和表空间,可视化操作很方便
6、建立完新用户和新表空间后,需要执行导入命令。以下命令支持将同一个用户不同表空间的数据导入至同一用户的同一表空间
IMPDP GAS/GAS@ORCL DIRECTORY=dbbackup
schemas=GAS dumpfile=YAGAS20180116.dmp
REMAP_TABLESPACE=USERS:YA_GAS_WEB
REMAP_TABLESPACE=SYSTEM:YA_GAS_WEB
REMAP_TABLESPACE=GAS:YA_GAS_WEB
REMAP_TABLESPACE=YAN_GAS:YA_GAS_WEB
以上命令把原用户下4个表空间下的对象全部导入至新用户的同一表空间下
7、最后,需要验证新用户下的这个表空间下的表及数量是否与原用户下不同表空间的表及数量和相同。查询各个表空间的表语句如下:
select table_name 表名 ,tablespace_name 所使用表空间 from user_tables where tablespace_name='您要查询的表空间名'
需要注意的是:该命令也是在登录了所要查询的用户之后去执行的。查询的是当前登录用户的某个表空间下的表信息
我在经历了以上步骤后,验证了新旧用户及表空间下的表及其他对象,发现数据未出现丢失,经实际验证以上步骤操作有效!
补充:以上步骤是基于对数据导出及导入的理解探索式得到结果,过程中遇到了一些错误,在这里做下分享:
1、导入命令时,默认导入表的表空间大小不足,会报以下错误,当把表空间改大以后命令会继续执行起走。
以下错误是我在没有指定命名空间的情况下出现的,可参考语句:
expdp PNC_GAS/PNC_GAS@ORCL schemas=PNC_GAS dumpfile=ncgas20180116.dmp DIRECTORY=dbbackup

2、expd命令默认会把原用户与新用户相同表空间的对象导入过去:意思是在不特殊指定表空间情况下,参考以下语句
IMPDP YA_ZC/ya_zc@ORCL DIRECTORY=dbbackup schemas=YA_ZC dumpfile=yazc201801162144.dmp REMAP_TABLESPACE=GAS:YAN_GAS
该语句把原用户表空间为GAS下的对象迁移到新用户的YAN_GAS表空间下;
该语句同时会把原用户本身在表空间名为YAN_GAS下的对象自动导入到新用户下的YAN_GAS表空间中;执行了以上命令后,再去执行以下命令
IMPDP YA_ZC/ya_zc@ORCL DIRECTORY=dbbackup schemas=YA_ZC dumpfile=yazc201801162144.dmp REMAP_TABLESPACE=YAN_GAS:YAN_GAS
会出现以下截图的警告:

这就是因为上一个命令已经把原表空间YAN_GAS下的对象已迁移到了新表空间YAN_GAS之下了。
参考网站:Oracle expdp/impdp导出导入命令及数据库备份
Oracle 关于expdp和impdp的应用实践的更多相关文章
- ORACLE使用EXPDP和IMPDP数据泵进行导出导入的方法
ORACLE使用EXPDP和IMPDP数据泵进行导出导入的方法 (2010-05-28 12:54:34) http://blog.sina.com.cn/s/blog_67d41beb0100ixn ...
- (转)oracle使用expdp、impdp和exp、imp导入导出表及表结构
使用expdp.impdp和exp.imp时应该注重的事项: 1.exp和imp是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. 2.expdp和impdp是服务端的工具程序,他们只能在 ...
- 【Oracle】EXPDP和IMPDP数据泵进行导出导入的方法
一.expdp/impdp和exp/imp 客户端工具 1.exp和imp是客户端工具程序,它们既可以在客户端使用,也可以在服务端使用. 服务端工具 2.expdp和impdp是服务端的工具程序,他们 ...
- oracle导出expdp导入impdp
conn sys/password as sysdba;创建用户test1CREATE USER test1 IDENTIFIED BY "pass1";GRANT CONNECT ...
- 利用Oracle自带的impdp和expdp进行简单备份
目前有个这样的需求,每天晚上23点将生产库的数据备份到备份机器上,第二天备份机器的数据库可以直接使用,数据是昨天生产库的数据.(生产数据目前不多,全部数据不超过3000w条). 由于没有接触过高深的O ...
- [转]oracle pump expdp impdp使用
用expdp或impdp命令时, 可暂不指出用户名/密码@实例名 as 身份, 然后根据提示再输入, 如: expdp schemas=scott DIRECTORY=dpdata dum ...
- oracle expdp和impdp使用例子
情景: 由于生产需求,需要把rmtel用户的数据完全复制一份给rmtel_xzy,但排除rmtel用户 ('CAB_JJXPORT_TAB','T_SERVICEXX','TB_CROSSCONNEC ...
- 关于oracle数据库备份还原-impdp,expdp
初始化: -- 创建表空间 CREATE TABLESPACE 表空间名 DATAFILE '文件名.dat' SIZE 100M AUTOEXTEND ON NEXT 10M MAXSIZE UNL ...
- 使用数据泵expdp、impdp备份和还原oracle数据库
前面我已经整理过EXP 和 IMP备份和还原Oracle数据库的方法 今天我们只讲使用数据泵 expdp 和impdp的方法,有的同学会问他们有什么差别呢? EXP和IMP是客户端工具程序,它们既可以 ...
随机推荐
- 求二叉树第n层节点数
在知乎看到今日头条的一个面试题“求二叉树第n层节点数”:https://zhuanlan.zhihu.com/p/25671699,想到了这样一个解法,欢迎大家交流 我的解法采用递归的思想,从0层开始 ...
- Python sax模块(SAX解析XML)
XML样例: <?xml version="1.0"?> <collection shelf="New Arrivals"> <m ...
- Weblogic java生成wlfullclient.jar
进入weblogic的server\lib目录 cd G:\Oracle\Middleware\wlserver_10.3\server\lib 运行 java -jar G:\Oracle\Midd ...
- HDFS客户端的权限错误:Permission denied
报错:Permission denied: user=root, access=WRITE, inode="hadoop":hadoop:supergroup:rwxr-xr-x ...
- 盒子模型、网页自动居中、float浮动与清除、横向两列布局
1.CSS包含:标准文档流,浮动,绝对定位 标准文档流的特点:从上到下,从左到右,输出文档内容 盒子模型:块级元素(div ui li dl dt p)与行级元素(span strong img in ...
- Selenium Webdriver 中的 executeScript 使用方法
1.使用executeScript 返回一个WebElement . 下例中我们将一个浏览器中的JavaScript 对象返回到客户端(C#,JAVA,Python等). IWebElement el ...
- Unity Shader 基础(2) Image Effect
Unity中 Image Effect 是Post Processing的一种方,Unity自身也提供很多Effect效果供使用.Image Effect的使用官方文档做了很多介绍,这里重点Post ...
- #006 C语言大作业学生管理系统第三天
还差最后两部分 读取文件 恢复删除的学生信息 先学会处理文件的 知识点,再继续跟着视频做这个作业. 应该明天周六能把视频里手把手教的学生管理系统敲完 第二周尽量自己能完成C语言课本最后面那道学生管理系 ...
- Markdown编辑器开发记录(一):开发的初衷和初期踩的坑
先说下选择Markdown编辑器的原因,我们进行平台开发,需要很多的操作手册和API文档,要在网站中展示出来就需要是HTML格式的文件,但是由于内容很多,不可能全部由技术人员进行文档的编写,如果是只有 ...
- spring的工厂类
主要介绍两种工厂接口BeanFactory(老版本,已过时)和ApplicationContext ApplicationContext接口:每次在加载applicationContext.xml的时 ...