欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle Data Pump使用范例及部分注意事项(expdp/impdp)

程序员文章站 2024-01-18 20:12:10
...

Oracle版本:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production,另外,系统有进行了6个节点的RAC

最近系统要“缩容”,原因我不想多说,非常麻烦的一件事情,因为要把数据提出来压缩、存放。

和操作系统无关,主要系Oracle的数据。

Oracle版本:Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production

另外,系统有进行了6个节点的RAC集群,,每个表都按照月份或者日期进行了分区。

一、前置工作:

1. 在系统中建立生成dmp文件(导出的数据文件)的目录(一般情况下都需要root权限,这个*发挥了^_^):

root@bidb04# mkdir -p /data/oracle_backup
root@bidb04# chown oracle:oinstall /data/oracle_backup

另外提个醒,无论你导出导入的时候用的是什么用户和密码登陆,数据库都是用(linux系统中的)oracle用户导出文件的,所以这个目录一定要让(linux系统中的)oracle用户有写权限。

2. 在oracle中定义生成dmp文件(导出的数据文件)的目录:

使用sqlplus / as sysdba进入sqlplus:

sql> grant create any directory to scott; --这一步也可以不用。
sql> create or replace directory oracle_backup as '/data/oracle_backup'; --有了上面那一步,目录也可以使用scott用户建立,当然直接就这么建立就完了。
sql> grant read, write on directory oracle_backup to scott; --赋予目录访问权限。
sql> create or replace directory DATA_PUMP_DIR as '/oracle/app/oracle/product/11.2.0/dbhome_1/rdbms/log/'; --这个貌似我是没有这么建立的,系统自己有了。
sql> grant read, write on directory DATA_PUMP_DIR to scott; --同上备注。
sql> grant EXP_FULL_DATABASE to scott; --导出权限
sql> grant IMP_FULL_DATABASE to scott; --导入权限

二、Data Pump导出(expdp):

expdp CONTENT=PARALLEL=8 FILESIZE=2G ENCRYPTION=data_only ENCRYPTION_PASSWORD=password

备注:

#1. scott/**********@bidb4 (红色部分)用户名密码和SID,这个就和sqlplus登陆的一致了。
#2. TABLES (绿色部分)表名(表名称:分区)
#3. DIRECTORY (蓝色部分)要生成导出文件的目录名--在oracle dba_directories中定义(定义方法见前文)
#4. DUMPFILE (黄色部分)生成的导出文件名%u参数表示对个文件的后缀,与parallel、filesize一起使用
#5. LOGFILE (紫色部分)日志记录文件名称(log目录:log名称,其中log目录在oracle dba_directories中定义)(定义方法见前文)
#6. CONTENT (橙色部分)要包含的内容
#7. CLUSTER (灰色部分)是否使用集群,默认是Y,这里需要N(可以看看后记)
#8. PARALLEL (灰色部分)并行处理
#9. FILESIZE (灰色部分)单个文件最大大小
#10. ENCRYPTION (灰色部分)加密选项1,指定加密内容(附录中有描述参数可选内容)
#11. ENCRYPTION_PASSWORD (灰色部分)加密选项2,指定加密密钥

三、Data Pump导入(impdp):

impdp PARALLEL=8 FILESIZE=2G ENCRYPTION_PASSWORD=password

备注:

基本和expdp的参数配置一致,有区别主要在第2个和第10个,另外,导出的日志名最好稍微修改一下,不然就覆盖掉了。

#2. TABLES (绿色部分)表名(只要表名就好了,不用加上分区,因为导入的数据里面已经包含了分区信息)
#10. ENCRYPTION (不再需要了)

Oracle Data Pump使用范例及部分注意事项(expdp/impdp)