Jak wykonywać polecenia bazy danych jako sysdba ze zdalnego komputera

14

Chciałbym poznać składnię wywoływania poleceń bazy danych (expdp / impdp) zalogowanych jako „sys as sysdba” ze zdalnego komputera.

Wiem, że po zalogowaniu się na komputerze, na którym działa baza danych, mogę użyć:

expdp \"/ as sysdba\"

Nie mogę jednak znaleźć sposobu na zrobienie tego ze zdalnego komputera, na przykład te nie działają:

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

W obu przypadkach komunikat o błędzie to:

LRM-00108: invalid positional parameter value [...]
Denis R.
źródło

Odpowiedzi:

22
expdp \"SYS@service AS SYSDBA\"

Działa to dla mnie (10.2 i 11.1), ale musisz albo zdefiniować usługę w swoim tnsnames.ora, albo użyć właściwego SKANOWANIA. Ogólnie ORACLE_SID jest innym identyfikatorem niż usługa TNS, ale dla uproszczenia często są one administracyjnie ustawiane na tę samą wartość.

kubańczyk
źródło
2
Drodzy przyszli czytelnicy: Użycie user/pass@db_linkformatu przy logowaniu może prowadzić do UDE-00018: Data Pump client is incompatible with database versionkomunikatu. Aby obejść ten problem, NETWORK_LINKzamiast tego podaj łącze do bazy danych za pomocą parametru.
Pan Llama,
jako notatkę dla wszystkich, zwróć uwagę na ucieczkę podwójnych cudzysłowów. odwrotne ukośniki naprawiły dla mnie problem
Peter Perháč,
wow, jak to działa?
Parv Sharma
0

Używam IMPDMP w następujący sposób:

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
źródło