oracle expdp impdp

背景:

用户在自己的电脑上做了一台数据库,将下载的数据文件全部存入到数据库中,之前给的方案是exp/imp导入导出的方式,发现比较慢。

思路:
使用exp/imp的方式,主要是在客户端就可以操作,但是中间还是需要通信,直接在服务器使用数据泵的方式来导入导出数据

过程

用户的服务器为windows

sqlplus /nolog

connect  sys/?????? as sysdba

create or replace directory dir_data_dump 'd:\dir_data_dump';

grant read,write on directory  dir_data_dump to public;



select * from dba_directories;

expdp tl_zyk/??????  schemas=tl_zyk dumpfile=exp_zyk.dmp directory=dir_data_dump;

20g导完需要2min;


在导出的过程中遇到以下报错


ORA-39002: invalid operation

ORA-39070: Unable to open the log file.

ORA-29283: invalid file operation

ORA-06512: at "SYS.UTL_FILE", line 475

ORA-29283: invalid file operation


后面查看d盘,没有文件夹dir_data_dump
重建后,重新执行没有问题

将该方案提交给用户,用户考虑到空间磁盘的大小,否定了该方案。

expdp只能在服务器操作,确实占用服务器空间。


官方文档


下面是expdp/impdp案例


Oracle数据泵导入导出案例
 
Oracle数据库导入导出工具,可以使用exp/imp,但这是比较早期的工具。本文主要介绍数据泵expdp/impdp工具的使用。
建立数据泵目录
使用数据泵需要先建directory
create directory dump_scott as'/home/oracle/dump/scott'
查看建立的目录
Select * from dba_directories
赋权
Grant read,write on directory dump_scott toscott
 
导出案例1,按表导出
expdp scott/tiger directory=dump_scottdumpfile=tab.dmp logfile=scott.log tables=dept,emp
 
导出案例2,按用户导出
expdp scott/tiger directory=dump_scottdumpfile=dumpscott.dmp schemas=scott
 
导出案例3,全库导出,且并行导出
expdp scott/tiger directory=dump_scottdumpfile=full.dmp parallel=4 full=y
 
导入案例1,按表导入,从scott到scott2
impdp scott2/tiger directory=dump_scottdumpfile=tab.dmp tables=scott.dept,scott.emp remap_schema=scott:scott2
 
导入案例2,按用户导入,从scott到scott2
impdp scott/tiger directory=dump_scottdumpfile=schema.dmp remap_schema=scott:scott2
 
导入案例3,全库导入
impdp scott/tiger directory=dump_scottdumpfile=full.dmp full=y
 
导入案例4,无落地文件的用户拷贝,需要建立db link
impdp scott/tiger directory=dump_scott network_link=remote_link remap_schema=scott:scott2

上一篇:MFC 消息映射表和虚函数实现消息映射到底谁的效率高


下一篇:特征的Attribute Only选项