如何从远程机器以 sysdba 身份执行数据泵命令

Den*_* R. 14 oracle data-pump

我想知道从远程机器调用记录为“sys as sysdba”的数据泵命令(expdp/impdp)的语法。

我知道当登录运行数据库的机器时,我可以使用:

expdp \"/ as sysdba\"
Run Code Online (Sandbox Code Playgroud)

但是,我找不到如何从远程机器执行此操作,例如,这些不起作用:

expdp 'SYS@SID AS SYSDBA'
expdp "SYS AS SYSDBA"@SID
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,错误消息都是:

LRM-00108: invalid positional parameter value [...]
Run Code Online (Sandbox Code Playgroud)

kub*_*zyk 23

expdp \"SYS@service AS SYSDBA\"
Run Code Online (Sandbox Code Playgroud)

这对我有用(10.2 和 11.1),但是您需要在 tnsnames.ora 中定义服务或使用适当的 SCAN。通常,ORACLE_SID 是与 TNS 服务不同的标识符,但为简单起见,它们通常在管理上设置为相同的值。

  • 亲爱的未来读者:在登录中使用“user/pass@db_link”格式可能会导致“UDE-00018:数据泵客户端与数据库版本不兼容”消息。要解决此问题,请改为通过“NETWORK_LINK”参数提供数据库链接。 (2认同)