![如何以 sysdba 身份从远程机器执行数据泵命令](https://linux22.com/image/578165/%E5%A6%82%E4%BD%95%E4%BB%A5%20sysdba%20%E8%BA%AB%E4%BB%BD%E4%BB%8E%E8%BF%9C%E7%A8%8B%E6%9C%BA%E5%99%A8%E6%89%A7%E8%A1%8C%E6%95%B0%E6%8D%AE%E6%B3%B5%E5%91%BD%E4%BB%A4.png)
我想知道从远程机器调用以“sys as sysdba”记录的数据泵命令(expdp/impdp)的语法。
我知道当登录运行数据库的机器时,我可以使用:
expdp \"/ as sysdba\"
但是,我找不到如何从远程机器执行此操作,例如,这些不起作用:
expdp 'SYS@SID AS SYSDBA'
expdp "SYS AS SYSDBA"@SID
在两种情况下,错误消息都是:
LRM-00108: invalid positional parameter value [...]
答案1
expdp \"SYS@service AS SYSDBA\"
这对我来说是可行的(10.2 和 11.1),但您需要在 tnsnames.ora 中定义服务或使用正确的 SCAN。通常,ORACLE_SID 是与 TNS 服务不同的标识符,但为了简单起见,它们通常在管理上设置为相同的值。
答案2
我使用 IMPDMP 如下:
Impdp SYS@SYSDBA/45561602 SCHEMAS=PRUEBAS DIRECTORY=DATA_PUMP_DIR DUMPFILE=PRUEBAS.dmp remap_schema=PRUEBAS:TEST TABLE_EXISTS_ACTION=replace LOGFILE=impdmp.log