数据库泵(expdp/impdp)导入导出流程

一、 数据库的导出(expdp)

  1. 创建默认导出目录
SQL>create directory [dirname] as ‘[dirpath]’;
  1. 赋予指定用户在此目录的读写权限
SQL>GRANT READ, WRITE ON DIRECTORY [dirname] to [dbuser];
  1. 使用expdp导出数据库
    ① 导出完整schema
> expdp [username/passwd] DUMPFILE=[dmpname].dmp DIRECTORY=[DIRECTORY_NAME] SCHEMAS=[schema_name]

② 导出除表以外的部分数据对象
可通过exclude参数排除无需导出的数据对象,如:

>expdp [username/passwd] DUMPFILE=[dmpname].dmp DIRECTORY=[DIRECTORY_NAME] logfile=[logname.log] exclude=[object_type]:”in (‘name_clause’,’ name_clause’,…)”, [object_type],…

example:

>expdp scott/tiger directory=dump_dir dumpfile=exc1.dmp logfile=exc1.log exclude=table:\”in \(\‘EMP\’,\’DEPT\’\)\”,view

其中单引号中的内容必须用大写才能生效

其他数据对象以此类推

③ 导出若干张表和若干张数据对象

>expdp [username/passwd] DUMPFILE=[dmpname].dmp DIRECTORY=[DIRECTORY_NAME] logfile=[logname.log] include=[object_type]:”in (‘name_clause’,’name_clause’,…)”,[object_type],…

example:

>expdp scott/tiger directory=dump_dir dumpfile=exc1.dmp logfile=exc1.log include=table:\ “in (\‘EMP\’,\’DEPT\’\)\”,view:\”in \(\‘V\_EMP\’\)\”,procedure
二、将导出的文件通过SCP传到需要导入的服务器上

example:

>scp * oracle@192.168.1.52:/data/dpdump
三、 将dmp文件导入到指定库中
  1. 创建默认导出目录
SQL>create directory [dirname] as ‘[dirpath]’;
2. 赋予指定用户在此目录的读写权限
SQL>GRANT READ, WRITE ON DIRECTORY [dirname] to [dbuser];
  1. 使用impdp工具导入
    ① 导入完整schema

用DBA权限登陆,指定schema进行全库导入

>impdp [dba_user/passwd] directory=[DIRECTORY_NAME]dumpfile=[dumpfile_name].dmp logfile=[logfile_name].log schemas=[schema_name]

如果想要更新已经存在的表则可以进行如下操作

> impdp [dba_user/passwd] directory=[DIRECTORY_NAME]dumpfile=[dumpfile_name].dmp logfile=[logfile_name].log schemas=[schema_name] table_exists_action=replace[truncate/append/skip]

② 导入除表以外的部分数据对象
>impdp [dba_user/passwd] directory=[DIRECTORY_NAME]dumpfile=[dumpfile_name].dmp logfile=[logfile_name].log schemas=[schema_name] exclude=table, [object_type]:”in (‘name_clause’),(‘name_clause’),…”,…

example:

>impdp system/oracle directory= dump_dir dumpfile=fulldb.dmp logfile=full_imp.log schemas=scott exclude =table,view:\”in \(\‘V\_BONUS\’\)\”

③ 导入若干张表和若张数据对象
>impdp [dba_user/passwd] directory=[DIRECTORY_NAME]dumpfile=[dumpfile_name].dmp logfile=[logfile_name].log schemas=[schema_name] include=[object_type]:”in (‘name_clause’),(‘name_clause’),…”, [object_type]:”in (‘name_clause’),(‘name_clause’),…”,…

example:

> impdp system/oracle directory=dump_dir dumpfile=fulldb.dmp logfile=full_imp.log schemas=scott include=table:\"in \(\'EMP\',\'DEPT\'\)\",view:\"in \(\'V\_EMP\',\'V\_DEPT\'\)\"

四、注意事项

  1. 如果导出的是指定模式下所有的数据对像,则想获得指定的数据对象时需在impdp中进行参数指定。
  2. 如果导出的是指定模式下的指定的数据对象,则impdp时无需指定可选参数。

补充:

  1. 仅导出数据库结构
impdp system/oracle directory=dump_dir dumpfile=fulldb.dmp logfile=full_imp.log schemas=scott content=metadata_only

本文转自ICT时空 dbasdk博客,原文链接:数据库泵(expdp/impdp)导入导出流程 ,如需转载请自行联系原博主。

Oracle数据库提供了expdpimpdp命令用于备份和恢复数据库。这两个命令的使用方式如下: 1. expdp命令 expdp命令用于备份Oracle数据库,它能够将某个schema或整个数据库导出到一个二进制文件中。具体命令格式如下: ``` expdp username/password@connect_string DIRECTORY=directory_name DUMPFILE=dumpfile_name.dmp SCHEMAS=schema_name ``` 其中: - `username/password@connect_string`:指定连接Oracle数据库的用户名、密码和连接字符串。 - `DIRECTORY=directory_name`:指定备份文件的目录。 - `DUMPFILE=dumpfile_name.dmp`:指定备份文件的名称。 - `SCHEMAS=schema_name`:指定要备份的schema名称,多个schema可以用逗号分隔。 执行命令后,Oracle数据库会将指定的schema或整个数据库导出到一个二进制文件中。 2. impdp命令 impdp命令用于恢复Oracle数据库,它能够将之前导出的二进制文件导入数据库中。具体命令格式如下: ``` impdp username/password@connect_string DIRECTORY=directory_name DUMPFILE=dumpfile_name.dmp SCHEMAS=schema_name ``` 其中: - `username/password@connect_string`:指定连接Oracle数据库的用户名、密码和连接字符串。 - `DIRECTORY=directory_name`:指定备份文件所在的目录。 - `DUMPFILE=dumpfile_name.dmp`:指定备份文件的名称。 - `SCHEMAS=schema_name`:指定要恢复的schema名称,多个schema可以用逗号分隔。 执行命令后,Oracle数据库会将指定的schema或整个数据库从备份文件中恢复出来。 需要注意的是,expdpimpdp命令需要在Oracle数据库服务器上执行,而不是在客户端。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值