我想知道从远程机器调用以“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