Oracle 11g expdp impdp 数据库导入导出完全指南

5星 · 超过95%的资源 需积分: 34 21 下载量 69 浏览量 更新于2024-09-10 收藏 18KB DOCX 举报
"Oracle数据库的导入导出工具expdp和impdp是数据库管理和维护中非常重要的功能,用于数据迁移、备份和恢复。本文将详细解释如何使用这些命令进行数据操作。" Oracle数据库提供了两个实用程序,expdp (Export Data Pump) 和 impdp (Import Data Pump),用于高效地导出和导入数据。这两个工具在Oracle 11g中得到广泛使用,支持大量数据的快速处理。 首先,我们来看创建逻辑目录的过程。在Oracle中,`createdirectory` 命令用于创建一个逻辑目录对象,它并不在实际操作系统中创建目录,而是在数据库内部定义一个路径引用。例如: ```sql createdirectory dpdata1 as 'd:\test\dump'; ``` 这条命令创建了一个名为 `dpdata1` 的逻辑目录,指向 `d:\test\dump` 这个物理路径。 接下来,通过查询 `dba_directories` 视图可以查看所有已创建的目录,并检查与操作系统的对应关系。确保所指路径在操作系统中存在,否则在执行导出或导入时可能会遇到问题。 然后,我们需要给用户授予对指定目录的访问权限。比如,我们可以这样为 `scott` 用户赋权: ```sql grant read, write on directory dpdata1 to scott; ``` 现在,我们可以开始使用expdp进行数据导出了。以下是一些示例: 1. 按用户导出: ```sql expdp scott/tiger@orcls schemas=scott dumpfile=expdp.dmp directory=dpdata1; ``` 这将导出 `scott` 用户下的所有对象到 `expdp.dmp` 文件。 2. 使用并行进程导出: ```sql expdp scott/tiger@orcl directory=dpdata1 dumpfile=scott3.dmp parallel=40 job_name=scott3 ``` 这里设置了40个并行进程来加速导出。 3. 按表名导出: ```sql expdp scott/tiger@orcl tables=emp,dept dumpfile=expdp.dmp directory=dpdata1; ``` 仅导出 `emp` 和 `dept` 表。 4. 按查询条件导出: ```sql expdp scott/tiger@orcldirectory=dpdata1 dumpfile=expdp.dmp tables=emp query='WHERE deptno=20'; ``` 只导出 `emp` 表中 `deptno` 为20的记录。 5. 按表空间导出: ```sql expdp system/manager directory=dpdata1 dumpfile=tablespace.dmp tablespaces=temp,example; ``` 导出 `temp` 和 `example` 表空间的所有数据。 6. 导出整个数据库: ```sql expdp system/manager directory=dpdata1 dumpfile=full.dmp full=y; ``` 这将导出整个数据库的全部内容。 对于导入操作impdp,有以下几种常见用法: 1. 导入到指定用户下: ```sql impdp scott/tiger DIRECTORY=dpdata1 DUMPFILE=expdp.dmp SCHEMAS=scott; ``` 将数据导入到 `scott` 用户的模式中。 2. 改变表的所有者: ```sql impdp system/manager DIRECTORY=dpdata1 DUMPFILE=expdp.dmp TABLES=scott.dept REMAP_SCHEMA=scott:system; ``` 此命令将 `scott` 用户的 `dept` 表导入并重定向到 `system` 用户。 3. 导入特定表空间: ```sql im ``` 此处的信息似乎不完整,但通常,可以指定 `TABLESPACES` 参数来导入到特定的表空间。 在实际使用中,根据具体需求调整这些参数,可以实现灵活的数据管理。记住,使用expdp和impdp时,确保有足够的磁盘空间,并且数据库权限设置得当,以避免出现错误。同时,为了确保数据的安全性,建议定期备份并测试恢复过程。