Cómo ejecutar comandos de bomba de datos como sysdba desde una máquina remota

14

Me gustaría saber la sintaxis para llamar a los comandos de la bomba de datos (expdp / impdp) registrados como 'sys as sysdba' desde una máquina remota.

Sé que cuando inicie sesión en la máquina que ejecuta la base de datos, puedo usar:

expdp \"/ as sysdba\"

Sin embargo, no puedo encontrar cómo hacer esto desde una máquina remota, por ejemplo, esto no funciona:

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

En ambos casos, el mensaje de error es:

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

Respuestas:

22
expdp \"SYS@service AS SYSDBA\"

Esto funciona para mí (10.2 y 11.1), pero necesita definir el servicio en sus tnsnames.ora o usar SCAN adecuado. En general, ORACLE_SID es un identificador diferente que el servicio TNS, pero por simplicidad, a menudo se configuran administrativamente con el mismo valor.

kubanczyk
fuente
2
Estimados lectores futuros: el uso del user/pass@db_linkformato en el inicio de sesión puede generar un UDE-00018: Data Pump client is incompatible with database versionmensaje. Para evitar esto, proporcione el enlace de la base de datos a través del NETWORK_LINKparámetro.
Sr. Llama
como una nota para todos, tenga en cuenta el escape de las comillas dobles. las barras invertidas solucionaron el problema para mí
Peter Perháč
wow, ¿cómo funciona esto?
Parv Sharma
0

Yo uso IMPDMP de la siguiente manera:

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
fuente