【问题标题】:How to import an Oracle database from dmp file and log file?如何从 dmp 文件和日志文件导入 Oracle 数据库?
【发布时间】:2011-09-21 18:13:59
【问题描述】:

如何从转储文件创建数据库?我的系统上没有具有相同结构的现有数据库,因此它必须包含作业、事件、表等。

我将转储和日志文件放在 E: 驱动器中

我已经尝试过导入实用程序

E:/>impdp system/tiger@oratest FILE=WB_PROD_FULL_20MAY11.dmp

但是我遇到了错误

invalid argument value
bad dump file specification
unable to open dump file "E:\app\admin\oratest\dpdump\WB_PROD_F
ULL_20MAY11.dmp" for read
unable to open file
unable to open file
(OS 2) The system cannot find the file specified.

当我在 Windows 资源管理器中看到 DMP 文件(取自 Linux 服务器)显示为崩溃转储文件时

我不明白如何解决这个问题。请帮我解决这个问题。

我是 Oracle 的新手...

【问题讨论】:

    标签: oracle oracle11g oracle-dump


    【解决方案1】:

    数据库是如何导出的?

    • 如果它是使用exp 导出的,并且导出了完整的架构,那么

      1. 创建用户:

        create user <username> identified by <password> default tablespace <tablespacename> quota unlimited on <tablespacename>;
        
      2. 授予权利:

        grant connect, create session, imp_full_database to <username>;
        
      3. 使用imp开始导入:

        imp <username>/<password>@<hostname> file=<filename>.dmp log=<filename>.log full=y;
        
    • 如果是使用expdp 导出的,则使用impdp 开始导入:

      impdp <username>/<password> directory=<directoryname> dumpfile=<filename>.dmp logfile=<filename>.log full=y;
      

    查看错误日志,好像没有指定目录,所以Oracle尝试在默认目录(即E:\app\Vensi\admin\oratest\dpdump\)中查找dmp文件。

    要么将导出文件移至上述路径,要么创建一个目录对象以指向存在dmp 文件的路径,并将对象名称传递给上述impdp 命令。

    【讨论】:

    • 导出他们使用exp,他们在cmd中使用Owner。所以我在这里使用 imp cmnd 我没有创建用户我直接尝试使用 imp cmnd 我能够将表导入本地数据库但我没有看到导入的一些表和包。请告诉我如何解决这个问题。非常感谢您的回复
    • 编辑您的问题并发布导入过程日志@Praveenb
    • 这是我使用的 imp cmnd,imp userid=system/tiger FILE="e:\WB_PROD_FULL_20MAY11.dmp" FUll=y,我不知道导入日志存储在哪里,请告诉我谢谢跨度>
    • 使用imp userid=system/tiger FILE="e:\WB_PROD_FULL_20MAY11.dmp" log =e:\wb_prod_imp.log FUll=y & 日志将在你的e:驱动器@Praveenb
    • 如果要指定 SID 并以 sysdba 身份登录:impdb \'username/password@ORCL as sysdba\'
    【解决方案2】:

    将所有这些代码放入 *.bat 文件并立即运行:

    我在 oracle 中创建用户的代码。 crate_drop_user.sql 文件

    drop user "USER" cascade;
    DROP TABLESPACE "USER";
    
    CREATE TABLESPACE USER DATAFILE 'D:\ORA_DATA\ORA10\USER.ORA' SIZE 10M REUSE 
        AUTOEXTEND 
        ON NEXT  5M  EXTENT MANAGEMENT LOCAL 
        SEGMENT SPACE MANAGEMENT  AUTO
    / 
    
    CREATE  TEMPORARY TABLESPACE "USER_TEMP" TEMPFILE 
        'D:\ORA_DATA\ORA10\USER_TEMP.ORA' SIZE 10M REUSE AUTOEXTEND
        ON NEXT  5M  EXTENT MANAGEMENT LOCAL 
        UNIFORM SIZE 1M    
    /
    
    CREATE USER "USER"  PROFILE "DEFAULT" 
        IDENTIFIED BY "user_password" DEFAULT TABLESPACE "USER" 
        TEMPORARY TABLESPACE "USER_TEMP" 
    /    
    
    alter user USER quota unlimited on "USER";
    
    GRANT CREATE PROCEDURE TO "USER";
    GRANT CREATE PUBLIC SYNONYM TO "USER";
    GRANT CREATE SEQUENCE TO "USER";
    GRANT CREATE SNAPSHOT TO "USER";
    GRANT CREATE SYNONYM TO "USER";
    GRANT CREATE TABLE TO "USER";
    GRANT CREATE TRIGGER TO "USER";
    GRANT CREATE VIEW TO "USER";
    GRANT "CONNECT" TO "USER";
    GRANT SELECT ANY DICTIONARY to "USER";
    GRANT CREATE TYPE TO "USER";
    

    创建文件 import.bat 并将以下行放入其中:

    SQLPLUS SYSTEM/systempassword@ORA_alias @"crate_drop_user.SQL"
    IMP SYSTEM/systempassword@ORA_alias FILE=user.DMP FROMUSER=user TOUSER=user GRANTS=Y log =user.log
    

    如果您将从一个用户导入到另一个用户,请务必小心。例如,如果您有一个名为 user1 的用户,并且您将导入到 user2,您可能会丢失所有授权,因此您必须重新创建它。

    祝你好运,伊万

    【讨论】:

      【解决方案3】:

      如果您使用的是来自@sathyajith-bhat 响应的 impdp 命令示例:

      impdp <username>/<password> directory=<directoryname> dumpfile=<filename>.dmp logfile=<filename>.log full=y;
      

      您将需要使用强制参数 directory 并创建并授予它:

      CREATE OR REPLACE DIRECTORY DMP_DIR AS 'c:\Users\USER\Downloads';
      GRANT READ, WRITE ON DIRECTORY DMP_DIR TO {USER};
      

      或使用定义之一:

      select * from DBA_DIRECTORIES;
      

      我的 ORACLE Express 11g R2 具有默认名称 DATA_PUMP_DIR(位于 {inst_dir}\app\oracle/admin/xe/dpdump/),您仍然需要为您的用户授予它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-25
        • 2014-04-29
        • 2011-11-20
        • 2010-12-19
        • 1970-01-01
        相关资源
        最近更新 更多