[oracle@sgsp595b04]:/home/oracle>impdp  sys/oracle@EPAPPYZ directory=a1  dumpfile=20090203_%U.dmp   full=y    Parallel=5 Import: Release 10.2.0.3.0 - 64bit Production on Tuesday, 03 February, 2009 23:02:16Copyright (c) 2003, 2005, Oracle.  All rights reserved.UDI-00008: operation generated ORACLE error 28009
ORA-28009: connection as SYS should be as SYSDBA or SYSOPERUsername: sys/oracle as sysdbaConnected to: Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining 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 475
ORA-29283: invalid file operation

解决方案 »

  1.   

    http://topic.csdn.net/u/20090203/20/2a99ff38-2247-4638-a59b-c2d67e147e45.html
      

  2.   

    这是与权利的甲骨文OS用户(切勿将它与Oracle模式用户喜欢系统和系统) 。甲骨文访问目录(它应建立在身体和存在作为逻辑)操作系统下的用户域级别的操作系统。所以,你应该检查什么是操作系统的用户开始/停止甲骨文servicesand检查他是否有访问权限的目录。 一个可用的文件: 目录权限 
    ===================== 目录上的FAT分区 
    ----------------------------- 不支持的FAT文件或目录的权限。 NTFS分区上的目录 
    ------------------------------ 当一个Oracle实例创建的服务,支持它的安装 
    登录由于该系统(或操作系统)的帐户。为UTL_FILE的 
    程序,以获取目录得不到授予 
    每个人都必须有“更改”权限授予系统帐户。 
    如果OracleServiceXXXX服务已被更改,以登录到另一个 
    帐户,这是该帐户,必须进入的目录。 访问网络目录 
    ============================= NetWare的网络目录 
    ----------------------------- 为确保这一工作的帐户启动的Oracle实例 
    有一个映射的网络驱动器连接使用完全符合要求的用户名/密码 
    相同的驱动器号和路径所指定UTL_FILE_DIR 。 NT网络目录 
    ------------------------ 当一个Oracle实例创建的服务,支持它的安装 
    以“登录身份”系统(或操作系统)的帐户,该帐户已 
    极少数特权和没有机会获得NT域名。访问另一个NT
    在OracleServiceXXXX必须设定登录到相应的NT域 
    用户谁有权访问所需要的位置UTL_FILE 。 要更改默认的登录的Oracle服务,请转到:    - > “控制面板 
          - “服务 
             - “ OracleServiceXXXX (其中xxxx是实例名称) 
                - “启动 
                   - “登录身份 选择“此帐户”单选按钮,然后完成相应的 
    网域的登录信息。重复此程序TNS监听:    - > “控制面板 
          - “服务 
             - “ OracleXXXXTNSListener (其中xxxx是Oracle主姓名) 
                - “启动 
                   - “登录身份 如果 listener没有被配置为启动的同一个用户的甲骨文 
    服务的用户将无法连接 "ORA-12500 TNS:listener failed to start
    a dedicated server process".  “一旦服务已安装的用户 
    适当的权限有两种选择设置UTL_FILE_DIR : 字母a.映射驱动器:要使用映射驱动器,用户,该服务启动 
    必须安装一个驱动器相匹配UTL_FILE_DIR ,并登录到服务器 
    当UTL_FILE正在使用中。 b. Universal Naming Convention : UNC is preferable to Mapped Drives because
    it does not require anyone to be logged on and UTL_FILE_DIR should be set to
    a name in the form :    \ \ \ <machine名称\ <share名称> \ <路径> or   “ \ \ <machine名称\ <share名称> \ <路径> ”
      

  3.   

    ORA-39002,ORA-39070,ORA-29283 When Modifying The Group That Has Access To DataPump directory 
      文档 ID:  552783.1 类型:  PROBLEM 
      上次修订日期:  21-JAN-2009 状态:  PUBLISHED In this Document
      Symptoms
      Cause
      Solution--------------------------------------------------------------------------------Applies to: 
    Oracle Server - Enterprise Edition - Version: 10.2.0.3
    This problem can occur on any platform.Symptoms
    Creating an OS directory with a group that Oracle owner is not a member in then adding Oracle owner to this group while the database is running then using this directory for datapump will cause the following errors:
     
    ORA-39002: invalid operation 
    ORA-39070: Unable to open the log file.
    ORA-29283: invalid file operation
    ORA-06512: at "SYS.UTL_FILE", line 475
    ORA-29283: invalid file operationCause
    When the database was started up, the oracle owner user was not yet a member in the group of the directory and as all oracle processes are started with the privileges of oracle owner, so trying to write to this directory will fail even after adding the oracle owner to the directory group while the database is running.Solution
    In order to allow the changes of adding the oracle owner user to the directory group to take effect, the database has to be bounced to start it up with the new privileges of the oracle owner user. Keywords
    UTL_FILE ; DATAPUMP ;  
    --------------------------------------------------------------------------------Help us improve our service. Please email us your comments for this document. .  
        
      

  4.   

    TIP:  Click help for a detailed explanation of this page. 
     书签 转到末尾 主题:  Export/Import DataPump Parameter DIRECTORY - How to Specify a Directory 
      文档 ID:  266875.1 类型:  HOWTO 
      上次修订日期:  18-OCT-2007 状态:  PUBLISHED In this Document
      Goal
      Solution
         1. Server-Based versus Client-Based.
         2. How to create a directory object ?
         3. How to query the available directories ?
         4. Required Operating System permissions. 
         5. How Data Pump determines the location for the files. --------------------------------------------------------------------------------Applies to: 
    Enterprise Manager for RDBMS - Version: 10.1 to 10.2
    Oracle Server - Enterprise Edition - Version: 10.1 to 10.2
    Oracle Server - Personal Edition - Version: 10.1 to 10.2
    Oracle Server - Standard Edition - Version: 10.1 to 10.2
    Information in this document applies to any platform.Goal
    This document describes how a directory can be specified that is used by the Oracle10g Export/Import DataPump utilities to write the dumpfile(s), logfile (if specified) and SQL file (if specified). The document is meant for everyone who uses the Export DataPump (expdp) utility to export data from an Oracle10g or higher database and the Import DataPump (impdp) utility to import data into an Oracle10g or higher release database. 
    Solution
    1. Server-Based versus Client-Based.
    The parameter DIRECTORY specifies the location to which Export DataPump or Import DataPump can write the dump file set, the log file, and the SQL file (Import DataPump only). 
    As export DataPump and import DataPump are server-based, rather than client-based, the output files are accessed relative to server-based directory paths. Data Pump requires you to specify directory paths as directory objects. A directory object maps a name to a directory path on the file system. 2. How to create a directory object ?
    To create a directory, you must have the DBA role or you must have been granted the CREATE ANY DIRECTORY privilege. 
    Example (a DBA creates directories on the Windows platform and grants access to user scott): CONNECT system/manager  
    CREATE OR REPLACE DIRECTORY my_dir as 'D:\DataPump';  
    CREATE OR REPLACE DIRECTORY my_logdir as 'E:\logs';  
    GRANT read, write ON DIRECTORY my_dir TO scott;  
    GRANT read, write ON DIRECTORY my_logdir TO scott;
    Example (a normal user with the CREATE ANY DIRECTORY privilege creates directories on the Unix platform - this user automatically has READ and WRITE privilege on that directory): CONNECT system/manager  
    GRANT CREATE ANY DIRECTORY TO scott;  
    CONNECT scott/tiger  
    CREATE OR REPLACE DIRECTORY my_dir as '/usr/DataPump';  
    CREATE OR REPLACE DIRECTORY my_logdir as '/usr/logs'; 
    Note that the CREATE DIRECTORY statement does not actually create the directory for you on disk. If the directory is invalid, a DataPump job will fail with: 
      

  5.   

    ORA-39002: invalid operation 
    ORA-39070: Unable to open the log file. 
    ORA-29283: invalid file operation 
    ORA-06512: at "SYS.UTL_FILE", line 475 
    ORA-29283: invalid file operation 
    3. How to query the available directories ?
    To query on which directories you have privilege to read and write: SET lines 80 
    COL grantee FORMAT a20 
    COL privilege FORMAT a10 
    SELECT directory_name, grantee, privilege 
      FROM user_tab_privs t, all_directories d   
     WHERE t.table_name(+)=d.directory_name   
     ORDER BY 1,2,3;DIRECTORY_NAME                 GRANTEE              PRIVILEGE 
    ------------------------------ -------------------- ---------- 
    DATA_PUMP_DIR                  EXP_FULL_DATABASE    READ 
    DATA_PUMP_DIR                  EXP_FULL_DATABASE    WRITE 
    DATA_PUMP_DIR                  IMP_FULL_DATABASE    READ 
    DATA_PUMP_DIR                  IMP_FULL_DATABASE    WRITE 
    MY_DIR                         SCOTT                READ 
    MY_DIR                         SCOTT                WRITE 
    MY_DIR                         SYSTEM               READ 
    MY_DIR                         SYSTEM               WRITE 
    MY_LOGDIR                      SCOTT                READ  
    MY_LOGDIR                      SCOTT                WRITE  
    MY_LOGDIR                      SYSTEM               READ  
    MY_LOGDIR                      SYSTEM               WRITE  
    ...4. Required Operating System permissions. 
    Note that READ or WRITE permission to a directory object only means that the Oracle database will read or write that file on your behalf.  You are not given direct access to those files outside of the Oracle database unless you have the appropriate operating system privileges.  Similarly, the Oracle database requires permission from the operating system to read and write files in the directories. 5. How Data Pump determines the location for the files. 
    5.1. If a directory object is specified as part of the file specification, then the location specified by that directory object is used.  Example to create the dumpfile in directory MY_DIR (no logfile is written): > expdp scott/tiger DUMPFILE=my_dir:expdp_s.dmp NOLOGFILE=Y
    5.2. If a directory object is not specified for a file, then the directory object named by the DIRECTORY parameter is used. Example to create the dump file in directory MY_DIR and the logfile in MY_DIR_LOG: > expdp scott/tiger DIRECTORY=my_dir DUMPFILE=expdp_s.dmp \ 
    LOGFILE=my_logdir:expdp_s.log
    5.3. If a directory object is not specified, and if no directory object was named by the DIRECTORY parameter, then the value of the environment variable, DATA_PUMP_DIR, is used. This environment variable is defined using operating system commands on the client system where the Data Pump Export and Import utilities are run. The value assigned to this client-based environment variable must be the name of a server-based directory object, which must first be created on the server system. 
    Example to create the dump file in directory MY_DIR and the logfile in MY_DIR_LOG: On the client machine where expdp is started, set the environment variable: -- On windows, place all expdp parameters on one single line:C:\> set DATA_PUMP_DIR=MY_DIR  
    C:\> expdp scott/tiger@my_db_alias DUMPFILE=expdp_s.dmp 
    LOGFILE=my_logdir:expdp_s.log
    Note that the interpretation of the name of the directory in the environment variable DATA_PUMP_DIR is case sensitive. Specifying an incorrect value for the DATA_PUMP_DIR environment variable (e.g.:  set DATA_PUMP_DIR=My_Dir) can give errors, such as: ORA-39002: invalid operation 
    ORA-39070: Unable to open the log file. 
    ORA-39087: directory name My_Dir is invalid
    5.4. If none of the previous three conditions yields a directory object and you are a privileged user (i.e. uses who have the EXP_FULL_DATABASE role and IMP_FULL_DATABASE role), then Data Pump attempts to use the value of the default server-based directory object, DATA_PUMP_DIR. 
    It is important to understand that Data Pump does not create the DATA_PUMP_DIR directory object; it merely attempts to use its value when a privileged user has not provided a directory object using any of the mechanisms previously described. This default directory object must first be created by a DBA. Do not confuse this with the client-based environment variable of the same name.
    Example to create all files in the directory DATA_PUMP_DIR: First unset the environment variable DATA_PUMP_DIR that was set in the previous example: C:\> set DATA_PUMP_DIR=
    Then create a directory with the name DATA_PUMP_DIR CONNECT SYSTEM/MANAGER   
    CREATE OR REPLACE DIRECTORY data_pump_dir AS 'D:\DataPump';   
    GRANT read, write ON DIRECTORY data_pump_dir TO scott;-- On windows, place all expdp parameters on one single line: C:\> expdp system/manager@my_db_alias DUMPFILE=expdp_s.dmp  
    LOGFILE=expdp_s.log SCHEMAS=scott Note that user SCOTT who isn't a privileged user, cannot use the default DATA_PUMP_DIR.  Possible errors: ORA-39002: invalid operation 
    ORA-39070: Unable to open the log file. 
    ORA-39145: directory object parameter must be specified and non-null
    Solution for user SCOTT: as described in 5.3. user SCOTT can set the environment variable DATA_PUMP_DIR to MY_DIR: -- On windows, place all expdp parameters on one single line:C:\> set DATA_PUMP_DIR=MY_DIR
    C:\> expdp scott/tiger@my_db_alias DUMPFILE=expdp_s.dmp 
    LOGFILE=expdp_s.log SCHEMAS=scottOr in this specific case where user SCOTT also has the read and write privilege on directory DATA_PUMP_DIR: -- On windows, place all expdp parameters on one single line: C:\> set DATA_PUMP_DIR=DATA_PUMP_DIR
    C:\> expdp scott/tiger@my_db_alias DUMPFILE=expdp_s.dmp 
    LOGFILE=expdp_s.log SCHEMAS=scottKeywords
    DATAPUMP; DATA_PUMP_DIR; EXPDP; 
    --------------------------------------------------------------------------------