我在 AWS 中创建了 2 个 EC2 实例。
一个充当DB服务器,一个充当客户端。
Oracle 12c DB 实例安装在 DB 服务器上,Oracle 12c 即时客户端安装在客户端服务器上。
我创建了一个模式,在其中添加了一些表和数据,然后导出了数据库转储和日志。
我能够从 Oracle 客户端服务器通过 sys 用户连接到 Oracle 服务器。
我已将导出的数据库转储(使用 expdp 命令)和日志传输到客户端服务器。
我正在尝试使用 impdp 命令从客户端服务器导入导出的数据库转储。
create directory dumpdir as '/home/oracle/exportDB';
impdp smithj/pwd4smithj@newdevdb schemas=smithj directory=dumpdir dumpfile=smithj.dmp logfile=expdpsmithj.log
但我不知道如何将本地服务器(客户端服务器)路径作为目录提及。
每当我尝试添加虚拟目录时,它都说路径不存在。
此路径 /home/oracle/exportDB 位于客户端服务器中。
由于我没有选择,您能给我一些建议吗?
PS:我这样做是为了 POC 目的,因为 DB 服务器空间较小,无法将 DB 转储文件发送到 DB 服务器,因为它太大了。请不要否决这个问题。我搜索了很多论坛,但没有提到这一点。
答案1
dumpdir
从数据库(服务器)的角度来看,始终会创建该目录。您的impdp
命令会使用该目录。最好的方法是创建指向客户端上的目标目录的链接,或者挂载共享或任何你喜欢的方式。然后使用类似CREATE OR REPLACE DIRECTORY dumpdir AS '/mount/dump_directory_on_client/';
或CREATE OR REPLACE DIRECTORY dumpdir AS '\\client\dumpdir';
(例如,对于 Windows)在 Oracle 中创建目录并再次开始导入。