Amazon RDS Oracle:impdp REMAP_SCHEMA

oli*_*666 5 oracle oracle11g amazon-web-services amazon-rds

我正在尝试使用官方教程中的说明将一些数据导入 Amazon AWS 。我已成功将转储文件上传到 RDS 计算机。

最后一步是使用impdpOracle 实用程序进行实际导入。如果我不重新映射架构,它会很好用。但是我确实需要重新映射架构,并且遇到了问题。

如果我使用我得到的impdp选项运行REMAP_SCHEMA

ORA-39122: Unprivileged users may not perform REMAP_SCHEMA remappings.
Run Code Online (Sandbox Code Playgroud)

谷歌搜索后,看起来启用此功能的唯一方法是:

grant imp_full_database to MY_USER;
Run Code Online (Sandbox Code Playgroud)

但 RDS 拒绝了这一点:

ORA-00604: error occurred at recursive SQL level 1
ORA-20997: "IMP_FULL_DATABASE" grants not allowed
ORA-06512: at "RDSADMIN.RDSADMIN", line 51
ORA-06512: at line 2
Run Code Online (Sandbox Code Playgroud)

这看起来绝对像是在 RDS 级别故意强制执行的事情。

您知道使用 RDS 和 impdp 时是否有办法重新映射架构?

oli*_*666 3

亚历克斯(请参阅对我的问题的评论)是对的。仅当非特权用户的架构是重映射的目标架构时,才能执行架构重映射

所以我采取的步骤是:

create user MY_USER identified by ****;
grant create session, create table to MY_USER;
alter user MY_USER quota unlimited on users;
-- both read and write are needed
grant read, write on directory data_pump_dir to MY_USER;
grant execute on dbms_datapump to MY_USER;
Run Code Online (Sandbox Code Playgroud)

进而:

impdp MY_USER/psswd@server DUMPFILE=file.dmp DIRECTORY=DATA_PUMP_DIR \
remap_tablespace=original_tablespace:users \
remap_schema=original_user:MY_USER
Run Code Online (Sandbox Code Playgroud)