Como executar comandos datapump como sysdba da máquina remota

14

Gostaria de saber a sintaxe para chamar comandos datapump (expdp / impdp) registrados como 'sys as sysdba' em uma máquina remota.

Sei que, quando conectado à máquina que executa o banco de dados, posso usar:

expdp \"/ as sysdba\"

No entanto, não consigo encontrar como fazer isso em uma máquina remota, por exemplo, isso não funciona:

expdp 'SYS@SID AS SYSDBA'
expdp "SYS AS SYSDBA"@SID

Nos dois casos, a mensagem de erro é:

LRM-00108: invalid positional parameter value [...]
Denis R.
fonte

Respostas:

22
expdp \"SYS@service AS SYSDBA\"

Isso funciona para mim (10.2 e 11.1), mas você precisa definir o serviço no seu tnsnames.ora ou usar a Verificação adequada. Geralmente, ORACLE_SID é um identificador diferente do serviço TNS, mas por simplicidade, eles geralmente são administrados com o mesmo valor.

kubanczyk
fonte
2
Caros futuros leitores: O uso do user/pass@db_linkformato no login pode levar a uma UDE-00018: Data Pump client is incompatible with database versionmensagem. Para contornar isso, forneça o link do banco de dados por meio do NETWORK_LINKparâmetro
Sr. Llama
como nota para todos, observe o escape das aspas duplas. as barras invertidas corrigiu o problema para mim
Peter Perháč
uau, como isso funciona?
Parv Sharma
0

Eu uso o IMPDMP da seguinte maneira:

Impdp SYS@SYSDBA/45561602 SCHEMAS=PRUEBAS DIRECTORY=DATA_PUMP_DIR DUMPFILE=PRUEBAS.dmp remap_schema=PRUEBAS:TEST TABLE_EXISTS_ACTION=replace LOGFILE=impdmp.log

Osvi
fonte