oracle是可以导出用户所有的表以及函数视图成一个dmp文件的,操作如下:
注意,适用于数据库版本11g(导入导出数据库版本必须一致)
相同schema之间的导入导出
在sqlplus 或者数据库工具中创建临时目录(使用其他变量也可以)
create directory DUMP_DOC as '/home/oracle/tmpdoc';
--创建导出的地址
create directory DUMP_DIR as 'D:/officedoc';
检查
select * FROM dba_directories ;
如果加错了可以
drop directory DUMP_DIR ;
给mwfimp赋权
grant read,write on directory DUMP_DIR to mwfimp
grant read,write on directory DUMP_DOC to officedoc
※登录137数据库的 oracle用户
mkdir /home/oracle/tmp
导出 注意这里是隐式指定连接,因为连接到数据库服务器,window环境直接用cmd执行即可
expdp officedoc/OFFICEDOC schemas=officedoc directory=DUMP_DIR DUMPFILE=officedoc.dmp logfile=dmp_out.log
检查生成的dump文件
ll /home/oracle/tmp
expdp officedoc/officedoc schemas=officedoc directory=DUMP_DOC DUMPFILE=officedoc_bak2.dmp logfile=dmp_bakout2.log
导入 ,是直接会创建用户的,如何导入的库已经有了同名用户,会覆盖同名的表以及函数视图等
impdp officedoc/officedoc schemas=officedoc directory=DUMP_DOC DUMPFILE=officedoc.dmp table_exists_action=replace logfile=dmp_in.log exclude=user
创建用户表空间语句:
CREATE TABLESPACE "OFFICEDOC" DATAFILE
'/home/oracle/oradata/orcl/OFFICEDOC' SIZE 838860800
AUTOEXTEND ON NEXT 104857600 MAXSIZE 32767M
LOGGING ONLINE PERMANENT BLOCKSIZE 8192
EXTENT MANAGEMENT LOCAL AUTOALLOCATE DEFAULT
NOCOMPRESS SEGMENT SPACE MANAGEMENT AUTO