Oracle DMP-Datei importieren:ora Ausnahmen [geschlossen]
-
29-09-2020 - |
Frage
Ich versuche ein zu importieren .dmp
datei in meine Oracle RAC-Datenbank mit dem folgenden Befehl:
C:\app\ptmp>impdp [user]/[password]@'DEVRAC-SCAN:1521/DB' DUMPFILE=UPG_E_7d291ff.dmp
LOGFILE=UPG_E_7d291ff.log TABLE_EXISTS_ACTION=REPLACE
Und ich bekomme die folgende Ausgabe von Oracle:
Import: Release 12.1.0.2.0 - Production on Thu Dec 17 09:43:13 2015
Copyright (c) 1982, 2015, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit
Production
With the Partitioning, Real Application Clusters, Automatic Storage Management,
OLAP,
Advanced Analytics and Real Application Testing options
ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-29283: invalid file operation
ORA-06512: at "SYS.UTL_FILE", line 536
ORA-29283: invalid file operation
Ich habe mich ein bisschen umgesehen und einige Leute (https://community.oracle.com/thread/3788748?start=0&tstart=0 && https://stackoverflow.com/questions/11878631/expdp-from-oracle-rac-environment) habe gesagt, es könnte eine Berechtigungssache sein, also habe ich die Berechtigungen überprüft mit:
C:\app\ptmp>icacls c:\app\oracle\admin\pldb\dpdump
c:\app\oracle\admin\pldb\dpdump Everyone:(R,W)
BUILTIN\Administrators:(OI)(CI)(F)
NT AUTHORITY\SYSTEM:(OI)(CI)(F)
PL\PLORACLE:(OI)(CI)(F)
DEVRAC1\Administrator:(OI)(CI)(F)
DEVRAC1\ORA_GRID_LISTENERS:(OI)(CI)(F)
BUILTIN\Administrators:(I)(OI)(CI)(F)
NT AUTHORITY\SYSTEM:(I)(OI)(CI)(F)
PL\PLORACLE:(I)(OI)(CI)(F)
DEVRAC1\Administrator:(I)(OI)(CI)(F)
DEVRAC1\ORA_GRID_LISTENERS:(I)(OI)(CI)(F)
Oracle tnslistener
läuft unter PL\PLORACLE
Benutzer.<-- das stimmt eigentlich nicht, siehe Änderungen.
Ich habe diese Befehle verwendet, um das Datenpumpenverzeichnis zu erstellen / zu ändern:
echo create or replace directory DATA_PUMP_DIR as 'C:\app\oralce\admin\pldb\dpdump\'; >1_UPDATE_DUMP_LOC.SQL
echo grant read,write on directory DATA_PUMP_DIR to public; >>1_UPDATE_DUMP_LOC.SQL
Sie wurden mit diesem Befehl in einer Batchdatei ausgeführt:
sqlplus -S [user]/[password]@'DEVRAC-SCAN:1521/PLDB' <1_UPDATE_DUMP_LOC.SQL >1_UPDATE_DUMP_LOC.LST
Der Benutzer, der die Befehle ausführt, hat sysdba
berechtigungen für die Datenbank.Also, mit all dem kann ich nicht wirklich verstehen, warum der Import der .dmp
datei funktioniert nicht.
BEARBEITEN:
Oracle tnslistener
läuft eigentlich als local service
anstatt PL\PLORACLE
wie ich dachte.Der OracleJobSchedulePLDB_1
, OracleServicePLDB_1
und OracleVssWriterPLDB_1
laufen Sie unter PL\PLORACLE
obwohl.Der Rest der Oracle-Dienste wird wie folgt ausgeführt Local System/Service
Lösung 2
Der Weg, den ich versucht hatte c:\app\oracle\admin\pldb\dpdump
schien von Oracle gesperrt zu sein, also ging ich stattdessen einfach mit c:\app\ptmp
und alles schien für mich gut zu funktionieren...ich weiß nicht warum.
Andere Tipps
Sieht so aus, als ob das Schreiben in das Verzeichnis fehlschlägt, aber auf Betriebssystemebene.
Verfügt der Betriebssystembenutzer, der impdp ausführt, über Betriebssystemberechtigungen zum Schreiben in das Verzeichnis?