Oracle数据泵expdp impdp操作指南

需积分: 9 1 下载量 92 浏览量 更新于2024-09-21 收藏 9KB TXT 举报
"expdp impdp数据泵是Oracle数据库中用于数据迁移和备份的重要工具。expdp(Export Data Pump)用于导出数据,而impdp(Import Data Pump)则用于导入数据。这些工具提供了高效的数据传输能力,并支持大量选项来定制导出和导入过程。在使用expdp和impdp时,需要创建并配置目录对象来指定存储导出和导入文件的位置。" 在Oracle环境中,首先,我们需要创建一个目录,例如`STADBBAK`,并给予相应的权限,以便数据泵可以访问。这通常涉及切换到操作系统根用户,创建一个目录,如`data`和`dmp`,然后将所有权分配给Oracle用户,并设置适当的权限。例如: ```bash # mkdir /data # chmod 755 /data # chown oracle.dbadata /data # cd /data # mkdir dmp # cd dmp ``` 接下来,我们需要在SQL*Plus中以系统管理员身份登录,创建一个数据库目录对象,比如`STADBBAK`,并将其指向刚才创建的物理目录: ```sql SQL> conn system/sysdba SQL> CREATE DIRECTORY STADBBAK AS '/data/dmp/STADB'; SQL> GRANT READ, WRITE ON DIRECTORY STADBBAK TO PUBLIC; ``` 然后,我们可以使用expdp命令导出数据。例如,要导出`dept`模式下的所有对象,我们可以运行以下命令: ```bash expdp system/m directory=STADBBAK dumpfile=deptbak20100603_%U.dmp parallel=4 schemas=dept ``` impdp命令用于导入数据,其语法与expdp类似,但导入时可能需要指定额外的参数,如`CONTENT`,它可以是`ALL`、`DATA_ONLY`或`METADATA_ONLY`。`ALL`表示导入所有内容,包括数据和元数据;`DATA_ONLY`仅导入数据;`METADATA_ONLY`只导入元数据。 此外,expdp和impdp还支持并行执行,通过`parallel`参数可以控制并行度,以提高数据传输速度。例如: ```bash impdp system/m directory=STADBBAK dumpfile=deptbak20100603_%U.dmp parallel=4 schemas=dept ``` 如果需要在其他用户之间共享数据,可以通过授予读写权限来实现。例如,为`scott`用户创建一个名为`dpdata1`的目录,并允许它访问: ```sql SQL> CREATE DIRECTORY dpdata1 AS 'd:\test\dump'; SQL> GRANT READ, WRITE ON DIRECTORY dpdata1 TO scott; ``` 最后,expdp和impdp命令可以进一步定制,包括指定特定表进行导出或导入,例如: ```bash expdp scott/tiger@orcls schemas=scott dumpfile=expdp.dmp directory=dpdata1 expdp scott/tiger@orcldirectory=dpdata1 dumpfile=scott3.dmp parallel=40 job_name=scott3 expdp scott/tiger@orcl TABLES=emp,dept ``` 在实际操作中,应根据具体需求调整这些参数,确保数据的正确导出和导入。同时,通过查询`dba_directories`视图,可以检查已创建的目录对象及其状态。