Comment exécuter des commandes de vidage de données en tant que sysdba à partir d'une machine distante

14

Je voudrais connaître la syntaxe pour appeler les commandes de vidage de données (expdp / impdp) enregistrées en tant que «sys as sysdba» à partir d'une machine distante.

Je sais que lorsque je suis connecté à la machine qui exécute la base de données, je peux utiliser:

expdp \"/ as sysdba\"

Cependant, je ne trouve pas comment faire cela à partir d'une machine distante, par exemple, cela ne fonctionne pas:

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

Dans les deux cas, le message d'erreur est:

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

Réponses:

22
expdp \"SYS@service AS SYSDBA\"

Cela fonctionne pour moi (10.2 et 11.1), mais vous devez soit définir le service dans votre tnsnames.ora, soit utiliser un SCAN approprié. Généralement, ORACLE_SID est un identifiant différent du service TNS, mais pour des raisons de simplicité, ils sont souvent définis administrativement sur la même valeur.

kubanczyk
la source
2
Chers futurs lecteurs: L'utilisation du user/pass@db_linkformat dans la connexion peut conduire à un UDE-00018: Data Pump client is incompatible with database versionmessage. Pour contourner ce problème, fournissez NETWORK_LINKplutôt le lien de base de données via le paramètre.
M. Llama
comme une note pour tout le monde, veuillez noter la fuite des guillemets doubles. les contre-obliques ont résolu le problème pour moi
Peter Perháč
wow, comment ça marche?
Parv Sharma
0

J'utilise IMPDMP comme suit:

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
la source