将模式数据(表、权限)导出到同一数据库上的另一个模式

Tha*_*eni 0 oracle oracle-11g-r2 impdp expdp

我想从一个模式 schema1 中获取数据并将其放入模式 2 这应该很容易做到,但我已经搜索了 oracle 文档,但找不到办法做到这一点。

Phi*_*lᵀᴹ 7

与选项结合使用expdp和。impdpremap_schema

例如...

首先,确保已经创建了目标用户/模式。它可能也暂时需要这个IMP_FULL_DATABASE角色,但我没有测试过这个。

创建一个目录对象来保存转储文件和日志(确保它存在于您的文件系统中):

create directory DUMPDIR as '/path/to/your/dump/directory';
grant read, write on directory DUMPDIR to system;
Run Code Online (Sandbox Code Playgroud)

导出数据,指定要导出的架构(FROMUSER在本例中):

expdp fromuser/frompass@yourdb schemas=FROMUSER directory=DUMPDIR dumpfile=fromuser.dmp logfile=expdp.log
Run Code Online (Sandbox Code Playgroud)

导入impdp

impdp touser/topass@yourdb directory=DUMPDIR dumpfile=fromuser.dmp logfile=impdp.log remap_schema=fromuser:touser
Run Code Online (Sandbox Code Playgroud)

remap_schema=fromuser:touser 有魔法吗!

您也可以使用该network_link=参数在不创建临时转储文件的情况下执行此操作。有关更多信息,请参阅Oracle 文档