首先,在这里为一个非常新手的问题道歉。当我支持的客户转移到12c时,我刚刚开始了解数据泵转储如何在11g中工作。祝你好运。 :)
这是一个有希望的快速问题:我使用同事运行12c的Windows服务器尝试导入客户的数据泵转储(拥有转储和日志文件),但我有不知道在哪里放置转储导入。我跑的时候:
select * from dba_directories where directory_name='DATA_PUMP_DIR';
这是返回的输出:
c:\ade\aime_v\oracle/admin/seeddata/dpdump/
该目录在此计算机上的任何位置都不存在,而且它看起来像一个不寻常的目录路径。 (我的同事正在度假,否则我当然只是问)。
在12c中有什么变化,它对目录的处理有点不同?我一直在想,创建这个服务器的人无法将数据泵目录指向一个不存在的路径。我现在正在搜索自己的圈子,所以我想简短的问题就是我在哪里开始作为第一步来确定我的目录是什么用于删除我的转储导入文件?
再次,为这个令人尴尬的新手问题道歉,并提前感谢我的问题。
答案 0 :(得分:2)
从dba_directories中选择*,其中directory_name ='DATA_PUMP_DIR';
答案 1 :(得分:1)
Oracle将允许您创建一个目录元数据条目到一个不存在的物理目录,这是这里发生的事情。因此,任何具有CREATE ANY DICTIONARY
权限的用户都需要(重新)创建现有目录的Oracle元数据目录,并确保设置物理目录上的操作系统权限以允许Oracle用户ID读写到那个目录。正如@OldProgrammer建议的那样,看起来有人合并了一半的Unix和一半的Windows路径分隔符。
如果有一个目录c:\ ade \ aime_v \ oracle \ admin \ seeddata \ dpdump(并且您的转储文件在那里),则以下内容应该有效;如果您从非dba ID导入(下面示例中的some_user),您还需要在该目录上读取dba授权:
drop directory data_pump_dir;
create directory data_pump_dir as 'c:\ade\aime_v\oracle\admin\seeddata\dpdump';
-- grant read on data_pump_dir to some_user;