[セットトップ]ORACLE 10 g以降のバージョンexpdpエラー


最近oracle 11 gのexpdpロジックバックアップデータベースを勉強していますが、以下の問題に遭遇しました.
bash-4.1$ expdp yjj/123456 dumpfile=dir:yjj.dmp logfile=dir:yjj.log

Export: Release 12.1.0.2.0 - Production on Tue Apr 21 09:49:21 2015

Copyright (c) 1982, 2014, 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, 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

エラーの原因と解決方法を説明する前に、expdpバックアップに必要な作業について説明します.
  • まずディレクトリオブジェクトを作成
  • SQL> create or replace directory dir as '/home/yjj/oraclebackup';
    
    Directory created.
    
  • ディレクトリオブジェクトへの権限付与
  • SQL> grant read,write on directory dir to yjj;
    
    Grant succeeded.
    
  • エクスポート(端末で直接実行)
  • bash-4.1$ expdp yjj/123456 dumpfile=dir:yjj.dmp logfile=dir:yjj.log
    
    Export: Release 12.1.0.2.0 - Production on Tue Apr 21 09:51:01 2015
    
    Copyright (c) 1982, 2014, 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, OLAP, Advanced Analytics and Real Application Testing options
    Starting "YJJ"."SYS_EXPORT_SCHEMA_01":  yjj/******** dumpfile=dir:yjj.dmp logfile=dir:yjj.log 
    Estimate in progress using BLOCKS method...
    Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
    Total estimation using BLOCKS method: 13.31 MB
    Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
    Processing object type SCHEMA_EXPORT/TABLE/TABLE
    Processing object type SCHEMA_EXPORT/TABLE/COMMENT
    Processing object type SCHEMA_EXPORT/PROCEDURE/PROCEDURE
    Processing object type SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
    Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
    Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
    Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
    Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
    Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
    Processing object type SCHEMA_EXPORT/STATISTICS/MARKER
    . . exported "YJJ"."LIST"                                2.935 MB   11758 rows
    . . exported "YJJ"."SE_FOODPRO"                          914.1 KB    3898 rows
    . . exported "YJJ"."SE_MEDICINE"                         906.1 KB    6895 rows
    . . exported "YJJ"."SE_TOOLBUSINESS"                     1.495 MB    7273 rows
    . . exported "YJJ"."SE_GSP"                              726.4 KB    3988 rows
    . . exported "YJJ"."SE_BUSINESS_COM"                     170.6 KB     518 rows
    . . exported "YJJ"."SE_HEALTH_CARE"                      103.6 KB     348 rows
    . . exported "YJJ"."SE_GMP"                              87.76 KB     611 rows
    . . exported "YJJ"."SE_MEDICINETOOL"                     89.53 KB     455 rows
    . . exported "YJJ"."SE_PRODUCT_COMP"                     79.08 KB     243 rows
    . . exported "YJJ"."SE_TABLECHANGE"                      46.05 KB      68 rows
    . . exported "YJJ"."SE_TOOLPRODUCT"                      80.82 KB     239 rows
    . . exported "YJJ"."APARTMENT"                           6.031 KB      19 rows
    . . exported "YJJ"."MAILBOX"                             13.97 KB      34 rows
    . . exported "YJJ"."PAGEVIEW"                            5.875 KB      26 rows
    . . exported "YJJ"."PERMISSION"                          5.812 KB       7 rows
    . . exported "YJJ"."PICTURE"                             7.648 KB       5 rows
    . . exported "YJJ"."SE_CONTRACTPRO"                      24.66 KB      62 rows
    . . exported "YJJ"."SE_COSMETIC"                         17.39 KB      26 rows
    . . exported "YJJ"."SE_INJECTGMP"                         14.5 KB      22 rows
    . . exported "YJJ"."SE_MED_PREPARA_CONTRACT"             9.382 KB       1 rows
    . . exported "YJJ"."SE_MED_PREPARA_INSTI"                37.48 KB     120 rows
    . . exported "YJJ"."SE_NOINJECTGMP"                      34.88 KB      98 rows
    . . exported "YJJ"."SE_ONECATAGORY"                      8.960 KB      18 rows
    . . exported "YJJ"."SE_SECOND"                           17.75 KB      59 rows
    . . exported "YJJ"."SE_TABLENUM"                         6.281 KB      22 rows
    . . exported "YJJ"."SE_VACCIN_COM"                       10.72 KB       2 rows
    . . exported "YJJ"."SE_YINGSU"                           27.31 KB     146 rows
    . . exported "YJJ"."SQGK"                                12.99 KB       5 rows
    . . exported "YJJ"."SUGGESTION"                          8.976 KB       3 rows
    . . exported "YJJ"."USER_COLUMN"                         5.562 KB       9 rows
    . . exported "YJJ"."USER_PERMISSION"                     5.828 KB       8 rows
    . . exported "YJJ"."USER_T"                              8.351 KB      11 rows
    . . exported "YJJ"."YCOLUMN"                             11.14 KB     106 rows
    Master table "YJJ"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
    ******************************************************************************
    Dump file set for YJJ.SYS_EXPORT_SCHEMA_01 is:
      /home/yjj/oraclebackup/yjj.dmp
    Job "YJJ"."SYS_EXPORT_SCHEMA_01" successfully completed at Tue Apr 21 09:51:36 2015 elapsed 0 00:00:35

    説明:
  • 実は上のディレクトリオブジェクトを作成するsql文は実際にディレクトリを作成しません.sql環境でdirというディレクトリを宣言するだけで、権限付与ディレクトリも実際にユーザーyjj権限を与えないことが理解できます.手動でディレクトリを作成し、手動で権限を付与する必要があります(誰に付与し、データをエクスポートするあなたのloginを付与するユーザー、例ではyjjユーザー)
  • 筆者はyjj権限を手動で付与しなかったため、本稿で最初に発生したエラーが発生した.
  • chmod 777 oraclebackup

    後記:
  • 筆者がネットでエラーを探している間に見つけた解決策はすべて
  • SQL> create or replace directory dir as '/home/yjj/oraclebackup/';
    
    Directory created.
    

    SQL> create or replace directory dir as '/home/yjj/oraclebackup';
    
    Directory created.
    

    の違いは、筆者が自分でこの違いがないことをテストして、間違いのところもここにありません.
  • 関連するブログは以下の通りです.http://www.2cto.com/database/201303/195589.html http://blog.163.com/jet_it_life/blog/static/205097083201262431444951/
  • 最後にこのブログで間違いを見つけて、自分の油断http://www.linuxidc.com/Linux/2013-12/94524.htm
  • 最後に言いたいのは、権限を付与するステップであり、データベースにログインするユーザー(バックアップするユーザー)を付与するので、そうでなければrootでexpdpバックアップ文を実行してもエラーになるので、覚えておいてください.