web-dev-qa-db-ja.com

OracleインポートDMPファイル:Ora例外

次のコマンドを使用して、.dmpファイルをOracle RACデータベースにインポートしようとしています。

C:\app\ptmp>impdp [user]/[password]@'DEVRAC-SCAN:1521/DB' DUMPFILE=UPG_E_7d291ff.dmp
 LOGFILE=UPG_E_7d291ff.log TABLE_EXISTS_ACTION=REPLACE

そして、私は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

私は少し周りを見てきました( https://community.Oracle.com/thread/3788748?start=0&tstart= && https://stackoverflow.com/questions/11878631/expdp-from-Oracle-rac-environment )はアクセス許可の問題である可能性があるため、次のようにしてアクセス許可を確認しました。

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 tnslistenerPL\PLORACLEユーザーで実行されます。 <-これは実際には正しくありません。編集を参照してください。

これらのコマンドを使用して、データポンプディレクトリを作成/変更しました。

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

これらは、バッチファイルで次のコマンドを使用して実行されました。

sqlplus -S [user]/[password]@'DEVRAC-SCAN:1521/PLDB' <1_UPDATE_DUMP_LOC.SQL >1_UPDATE_DUMP_LOC.LST

コマンドを実行しているユーザーには、データベースに対するsysdba特権があります。したがって、これらすべての理由で、.dmpファイルのインポートが機能しない理由を本当に理解できません。

編集:

Oracle tnslistenerは、実際にはlocal serviceではなくPL\PLORACLEとして実行されています。ただし、OracleJobSchedulePLDB_1OracleServicePLDB_1、およびOracleVssWriterPLDB_1は、PL\PLORACLEの下で実行されます。残りのOracleサービスはLocal System/Serviceとして実行されます

3
B-M

私が試していた道c:\app\Oracle\admin\pldb\dpdumpはOracleによってロックされているようだったので、代わりにc:\app\ptmpそして、すべてが私にとってはうまく機能しているように見えました...理由はわかりません。

0
B-M

失敗しているのはOSレベルでのディレクトリへの書き込みのようです。

Impdpを実行しているOSユーザーは、ディレクトリに書き込むOS権限を持っていますか?

0
rus