我的场景是本地windows系统(要安装了oracle)远程导出liunx系统中的数据库.
1、创建用户,并授权
#进入数据库
sqlplus / as sysdba
#创建用户test,密码也是test,默认空间为users(可以不指定空间)
#高版本数据库,在CDB容器中用户名必须加c##前缀才能创建成功,不是高版本就不用加(什么是高版本?就是你不加执行失败,就要加)
create user c##test identified by test default tablespace users;
#给用户授权(尽量不要多授权,如本地权限大于远程,会导致导出失败)
grant connect,resource,dba to c##test;
2、给用户增加逻辑目录
#创建逻辑目录
create directory xx(逻辑目录名) as 'e:\xx';(as后面是自己事先创建的物理路径)
#给用户授权目录
grant read,write on directory xx(逻辑目录名) to c##test;
3、创建dblink
create public database link dblink名称 connect to 远程数据库账号 identified by 远程数据库密码
using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)
(HOST = 远程数据库IP)(PORT = 远程数据库端口)))(CONNECT_DATA =(SERVICE_NAME
= 远程数据库实例名)))';
4、远程导出到本地 test/test为本地的用户名、密码,要先exit退出oracle再执行下面语句
expdp c##test/test@orcl directory=xx network_link=刚才创建的dblink名称 dumpfile=aaa.dmp logfile=aaa.log