Oracle数据泵工具 expdp与impdp常用命令详解
需积分: 16 62 浏览量
更新于2024-09-05
收藏 13KB TXT 举报
Oracle数据泵是Oracle数据库中两个关键的工具,expdp (Export Database Data Pump) 和 impdp (Import Database Data Pump),用于在不同Oracle数据库之间迁移数据和对象。这两个工具只能在数据库服务器端使用,因为它们涉及到对数据库的直接操作,而非客户端操作。
首先,让我们了解directory的概念。在使用expdp和impdp时,我们需要配置一个目录(directory)来指定数据传输的目标路径。DBA可以直接查询目录信息,如:
```sql
SELECT * FROM dba_directories;
```
通过`createdirectory`命令创建一个新的目录,并指定路径,例如:
```sql
CREATE DIRECTORY my_dir AS '/home/oracle/tmp';
GRANT read, write ON directory my_dir TO scott;
```
这样,用户scott就有了对指定目录的读写权限。
expdp命令的具体用法包括以下几个关键点:
1. 导出单个表或对象:例如,导出scott表emp的数据到名为expdp.dmp的文件,同时记录日志到expdp.log文件:
```shell
expdp system/oracle directory=my_dir dumpfile=expdp.dmp logfile=expdp.log tables=scott.emp
```
2. 导出多个表:可以使用通配符括号`\( ... \)`来指定一组表名:
```shell
expdp system/oracle directory=my_dir dumpfile=expdp.dmp logfile=expdp.log tables=\(scott.emp,scott.dept\)
```
3. 导出用户:导出指定用户的全部对象,如scott用户:
```shell
expdp system/oracle directory=my_dir dumpfile=expdp.dmp logfile=expdp.log schemas=scott
```
4. 导出多个用户:类似地,可以一次导出多个用户:
```shell
expdp system/oracle directory=my_dir dumpfile=expdp.dmp logfile=expdp.log schemas=\(scott,hr\)
```
5. 导出整个数据库:除了用户数据,还可以导出整个数据库的数据,但默认不包括sys、ordsys和mdsys等特殊用户的数据,若要包含,需添加`full=yes`参数:
```shell
expdp system/oracle directory=my_dir dumpfile=expdp.dmp logfile=expdp.log full=yes
```
6. 并行导出:对于大型数据集,可以通过设置并行度提高数据传输速度:
```shell
expdp system/oracle directory=my_dir dumpfile=expdp.dmp logfile=expdp.log parallel=4
```
值得注意的是,执行expdp命令的用户需要具有对所指定目录对象的读写权限,且操作系统中目录指向的路径必须存在。此外,系统用户导出用户数据时,还会包含创建用户和授予系统权限的元数据,而普通用户仅能导出其自己的对象。
Oracle数据泵是高效管理和迁移数据库数据的重要工具,熟悉其命令和参数的使用可以帮助数据库管理员实现数据的快速、安全传输。在实际操作中,务必仔细检查权限设置和路径配置,确保命令执行顺利。
2020-09-09 上传
2019-07-09 上传
2019-05-27 上传
2021-11-04 上传
2022-01-17 上传
2014-07-04 上传
2012-11-05 上传
2008-09-05 上传
点击了解资源详情
DBA_Yukki
- 粉丝: 0
- 资源: 3