首先,也是最重要的,在这里为一个非常新手的问题道歉。当我支持的客户迁移到12c时,我刚刚开始掌握11g中数据泵转储是如何工作的。真倒霉。:)
因此,我有一个很有希望的快速问题:我正在使用一个同事的Windows服务器运行12c,试图导入客户的数据泵转储(有他们的转储和日志文件),但我不知道要导入的转储放在哪里。当我运行时:
select * from dba_directories where directory_name='DATA_PUMP_DIR'; 这是返回的输出:
c:\ade\aime_v\oracle/admin/seeddata/dpdump/这个目录在这台机器上的任何地方都不存在,而且它看起来像是一个不寻常的目录路径。(我的同事在度假,否则我当然会直接问)。
那么12c中对目录的处理方式有什么变化吗?我一直在想,创建这个服务器的人不可能只是将数据泵目录指向一个不存在的路径。我现在正在用谷歌搜索自己,所以我想这个简短的问题很简单,我应该从哪里开始,作为确定我的目录在哪里来放置我的转储导入文件的第一步?
再次为这个令人尴尬的新手问题道歉,并提前感谢您对我的问题的娱乐。
发布于 2014-12-23 12:43:29
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;发布于 2018-08-06 22:15:47
使用以下sql查询。
select * from dba_directories where directory_name='DATA_PUMP_DIR';https://stackoverflow.com/questions/27611981
复制相似问题