设为首页 收藏本站
查看: 3244|回复: 0

[经验分享] Oracle数据泵EXPDP/IMPDP工具使用(按用户导出和导入)

[复制链接]
YunVN网友  发表于 2016-8-15 07:15:29 |阅读模式
1. Oracle环境变量配置

Oracle路径配置
可通过expdp help查看工具使用环境。通常对于未配置Oracle环境变量,会报以下使用错误:
 

UDE-00013: Message 13 not found; No message file for product=RDBMS, facility=UDE
UDE-00019: You may need to set ORACLE_HOME to your Oracle software directory
  出现上述问题是因为无法找到$ORACLE_HOME目录。尝试配置Oracle重要的环境变量,source /home/oracle/.bash_profile重新配置环境试试。
  
 

2. 创建Directory转储文件目录

该目录用来存放转储文件,目录必须存在且用户得有权限写。
 

-- sqlplus
create directory dump_dir as '/home/oracle/oradir';
  
  
当然如果使用的是普通用户来操作数据,你还需要给用户赋权限:
 

grant read, write directory on direcotry crxj_dump_dir to scott;
  查看当前所有Directory
  
 

select * from dba_directories;
   
  


OWNER
DIRECTORY_NAME
DIRECTORY_PATH


SYS
DUMP_DIR
/home/oracle/oradir

注意创建的需要确实存在
当目录不存在会报出如下错误(示例为sys用户):

[oracle@CRXJ_APP_218 bin]$ expdp sys/orcl directory=dump_dir dumpfile=schema_pon.dmp schemas=pon
Export: Release 11.2.0.1.0 - Production on Tue May 6 18:34:36 2014
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
UDE-28009: operation generated ORACLE error 28009
ORA-28009: connection as SYS should be as SYSDBA or SYSOPER
Username: sys as sysdba
Password:
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-29283: invalid file operation
ORA-06512: at "SYS.UTL_FILE", line 536
ORA-29283: invalid file operation
 
此时需要创建该目录

[oracle@CRXJ_APP_218 bin]$ mkdir /home/oracle/oradir
[oracle@CRXJ_APP_218 bin]$ ls /home/oracle/oradir
 
至此配置好环境,也配置好存放转储文件的路径,接下来就可以导入导出了。


示例将使用sys用户,采用按用户模式导出crxj_collect用户下所有结构和数据,并导入到同用户名的另外一个数据下。

按用户(模式)导出

-- expdp username/passwd dirctory=转储文件存放目录 dumpfile=要生成的转储文件名 schemas=用户名(可多个并用逗号分开)
-- 导出CRXJ_COLLECT用户[shell中直接执行]
expdp sys/orcl directory=dump_dir dumpfile=schema_crxj_collect.dmp schemas=crxj_collect
  

[oracle@CRXJ_APP_218 oradir]$ expdp sys/orcl directory=dump_dir dumpfile=schema_crxj_collect.dmp schemas=crxj_collect
Export: Release 11.2.0.1.0 - Production on Tue May 6 20:48:19 2014
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
UDE-28009: operation generated ORACLE error 28009
ORA-28009: connection as SYS should be as SYSDBA or SYSOPER
Username: sys as sysdba
Password:
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting "SYS"."SYS_EXPORT_SCHEMA_01":  sys/******** AS SYSDBA directory=dump_dir dumpfile=schema_crxj_collect.dmp schemas=crxj_collect
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 1.259 GB
Processing object type SCHEMA_EXPORT/USER
*****省略N多表******
. . exported "CRXJ_COLLECT"."HOST_SESSION"                   0 KB       0 rows
Master table "SYS"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SYS.SYS_EXPORT_SCHEMA_01 is:
/home/oracle/oradir/schema_crxj_collect.dmp
Job "SYS"."SYS_EXPORT_SCHEMA_01" successfully completed at 20:50:49
[oracle@CRXJ_APP_218 oradir]$
 

导入到指定用户(模式)

由于是导入到远程库,所以还需要创建下转储文件所在目录

-- 省略掉如何把导出的转储文件移动到指定远程库目录下
SQL> create directory dump_dir as '/home/oracle/oradir';
Directory created.
SQL>
 

-- 导入数据
-- impdp 用户名/密码 DIRECTORY=转储文件所在目录 DUMPFILE=带导入的转储文件名 SCHEMAS=待导入的用户(模式)名
impdp sys/orcl DIRECTORY= dump_dir DUMPFILE=schema_crxj_collect.dmp SCHEMAS=CRXJ_COLLECT;
 
因为不要求导出和导入的是同一个用户,所以数据泵这个工具可以方便的在不同用户(模式)见传到数据对象。
数据泵高级操作中可以实现数据对象的逻辑恢复,包括按表、按用户模式(本文即是),按表空间和全库导入导出。
更多内容有待更新,敬请期待。
转载请标明原文链接。
ifuteng@gmail.com :)
 
 
 

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-257892-1-1.html 上篇帖子: Oracle中快速导入导出数据库的几种方式 下篇帖子: oracle数据库如何把一列多行的字符串连接起来
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表