数据库泵(expdp/impdp)导入导出流程
2017-05-05 14:27
465 查看
一、 数据库的导出(expdp)
1. 创建默认导出目录
SQL>create directory [dirname] as ‘[dirpath]’;
2. 赋予指定用户在此目录的读写权限
SQL>GRANT READ, WRITE ON DIRECTORY [dirname] to [dbuser];
3. 使用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];3. 使用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
附录:
数据泵导出/导入Expdp/impdp
Oracle 10g引入了DATA PUMP提供的是一种基于服务器的数据提取和恢复的实用程序,DATA
PUMP在体系结构和功能上与传统的EXPORT和IMPORT实用程序相比有了显著的提升。DATA PUMP允许您停止和重启作业,查看运行的作业的状态,及对导入和导出的数据做限制。
注意:数据泵文件与传统的EXP/IMP数据转储文件是不兼容的。
一、以下是DATA PUMP的几个优点介绍:
1.数据泵(DataPump)的所有工作都有数据库实例来完成,数据库可以并行来处理这些工作,不仅可以通过建立多个数据泵工作进程来读/写正在被导出/导入的数据,也可以建立并行I/O服务器以更快地读取或插入数据,从而,单进程瓶颈被彻底解决。
2.通过数据泵,以前通过EXP/IMP主要基于Client/Server的逻辑备份方式转换为服务器端的快速备份,数据泵主要工作在服务器端,可以通过并行方式快速装入或卸载数据,而且可以在运行过程中调整并行的程度,以加快或减少资源消耗。
二、步骤如下
1. 创建DIRECTORY
DATA PUMP要求为将要创建和读取的数据文件及日志文件创建目录,这个参数是用来定义一个目录,前面已经提到数据泵主要在Server端工作,导出文件需要写出到Server端本地目录,这个DIRECTORY就是对应的Server端的目录。将要访问数据泵文件的用户必须要拥有该目录的读/写权限。
注意:在开始操作之前要验证外部目录是否存在,并且下达create directory命令的用户需要拥有create anydirectory的系统权限。
下面给出一个创建名为TEST的目录并授予system用户访问此目录读/写权限。
创建目录并赋予权限:
SQL> Create directory TEST as 'd:\test'; SQL> Grant read,write on directory TEST to system; |
查看数据库中已创建的directory的两个视图:
SELECT * FROM ALL_DIRECTORIES; SELECT * FROM dba_DIRECTORIES; |
然后在目标磁盘下手工创建文件夹d:\test
2. 数据泵导出
数据泵导出的方法有多种,这里我们只介绍两种:
Ø 单个用户方案导出
Expdp [用户名]/[密码]@[主机字符窜] schemas=[用户名]
directory=TEST dumpfile=X.dmp logfile=X.log
Ø 数据库全库导出
Expdp [用户名]/[密码]@[主机字符窜] full=y directory=TEST dumpfile=X.dmp logfile=X.log
3. 数据泵导入
按以上导出方式:
Ø 单个用户方案导入
impdp [用户名]/[密码]@[主机字符窜] schemas=[用户名]
directory=TEST
dumpfile=X.dmp logfile=X.log ignore=y
Ø 数据库全库导入
impdp [用户名]/[密码]@[主机字符窜] full=y directory=TEST dumpfile=X.dmp logfile=X.log ignore=y
注意:directory的位置
drop directory test 删除目录
相关文章推荐
- Oracle expdp/impdp导出导入命令及数据库备份
- expdp impdp导入导出指定数据库表
- Oracle数据库:impdp导入数据库及expdp导出数据过程详解
- Oracle数据库:impdp导入数据库及expdp导出数据过程详解
- Oracle expdp/impdp导出导入命令及数据库备份
- Oracle数据库:impdp导入数据库及expdp导出数据过程详解
- Oracle数据库:impdp导入数据库及expdp导出数据过程详解
- Oracle数据库:impdp导入数据库及expdp导出数据过程详解
- Oracle 11g数据库expdp/impdp导入导出
- Oracle datapump expdp/impdp 导入导出数据库时hang住
- Oracle数据库:impdp导入数据库及expdp导出数据过程详解
- 数据库导出导入操作(expdp,impdp)
- Oracle数据库:impdp导入数据库及expdp导出数据过程详解
- Oracle数据库:impdp导入数据库及expdp导出数据过程详解
- Oracle expdp/impdp导出导入命令及数据库备份
- Oracle数据库:impdp导入数据库及expdp导出数据过程详解
- Oracle数据库:impdp导入数据库及expdp导出数据过程详解
- Oracle数据库:impdp导入数据库及expdp导出数据过程详解
- Oracle数据库:impdp导入数据库及expdp导出数据过程详解
- Oracle数据库:impdp导入数据库及expdp导出数据过程详解