Jam*_*tti 9 database oracle import oracle12c
首先,在这里为一个非常新手的问题道歉。当我支持的客户迁移到 12c 时,我才刚刚开始了解数据泵转储在 11g 中是如何工作的。该死的运气。:)
所以一个希望很快的问题:我正在使用运行 12c 的同事的 Windows 服务器来尝试导入客户的数据泵转储(有他们的转储和日志文件),但我不知道在哪里放置转储以进行导入。当我运行时:
select * from dba_directories where directory_name='DATA_PUMP_DIR';
Run Code Online (Sandbox Code Playgroud)
这是返回的输出:
c:\ade\aime_v\oracle/admin/seeddata/dpdump/
Run Code Online (Sandbox Code Playgroud)
该目录在这台机器上的任何地方都不存在,而且它看起来像一个不寻常的目录路径。(我的同事正在休假,否则我当然会问)。
那么 12c 中对目录的处理方式是否有所改变?我一直在想,创建这个服务器的人肯定不能只是将数据泵目录指向这样一条不存在的路径。我目前正在搜索自己的圈子,所以我想这个简短的问题很简单,作为第一步,我应该从哪里开始,以确定我的目录在哪里放置我的转储导入文件?
再次为这个令人尴尬的新手问题道歉,并提前感谢您接受我的问题。
小智 9
使用以下 sql 查询。
select * from dba_directories where directory_name='DATA_PUMP_DIR';
Run Code Online (Sandbox Code Playgroud)
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;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
44031 次 |
| 最近记录: |