Я хотел бы знать синтаксис для вызова команд datapump (expdp / impdp), записанных как sys as sysdba, с удаленного компьютера.
Я знаю, что при входе на машину, на которой работает база данных, я могу использовать:
expdp \"/ as sysdba\"
Однако я не могу найти, как это сделать с удаленного компьютера, например, они не работают:
expdp 'SYS@SID AS SYSDBA'
expdp "SYS AS SYSDBA"@SID
В обоих случаях сообщение об ошибке:
LRM-00108: invalid positional parameter value [...]
expdp \"SYS@service AS SYSDBA\"
У меня это работает (10.2 и 11.1), но вам нужно либо определить службу в вашем tnsnames.ora, либо использовать правильное сканирование. Как правило, ORACLE_SID - это другой идентификатор, чем служба TNS, но для простоты они часто административно устанавливаются на одно и то же значение.
Я использую 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