现在别人给我一个数据库的备份,我想恢复到我重新建的一个表空间里,如何操作,例:这个备份原来的表空间名字叫Nhmedical,而我现在的表空间名字是qhcomedsite ,详细给小弟讲一下 谢谢了 !!! 

解决方案 »

  1.   

    首先:exp user/pw file=file.dmp owner=yourUser1
    然后:imp user/pw file=file.dmp indexfile=xxxx.sql fromuser=yourUser1 touser=yourUser2 
    随后:修改xxxx.sql中的关于有表空间设置的地方为新的表空间,并去掉相关的注释(rem),然后执行xxxx.sql创建相关对象。
    最后:imp  user/pw file=file.dmp  fromuser=yourUser1 touser=yourUser2  ignore=y
      

  2.   

    谢谢指点,但是给我讲清楚一些好吗?哪些是关于表空间的设置的地方?产生的.sql文件里面去掉哪些注释呢?
    例:
    REM  CREATE TABLE "COMEDSITE"."ACCCHK" ("DEPID" NVARCHAR2(20) NOT NULL 
    REM  ENABLE, "ACCNO" NVARCHAR2(20) NOT NULL ENABLE, "CHKYEAR" NUMBER(10, 
    REM  0) NOT NULL ENABLE, "CHKMONTH" NUMBER(10, 0) NOT NULL ENABLE, 
    REM  "CHKFLAG" NUMBER(2, 0) NOT NULL ENABLE, "DEPEMPID" NVARCHAR2(20) NOT 
    REM  NULL ENABLE) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 
    REM  STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL 
    REM  DEFAULT) TABLESPACE "NHMEDICAL" LOGGING NOCOMPRESS ;
    REM  ... 0 rows
    REM  CREATE TABLE "COMEDSITE"."ACCTYPE" ("CODEID" NVARCHAR2(40) NOT NULL 
    REM  ENABLE, "TYPECODE" NVARCHAR2(4) NOT NULL ENABLE, "CODENAME" 
    REM  NVARCHAR2(100) NOT NULL ENABLE, "CODEFULL" NVARCHAR2(240) NOT NULL 
    REM  ENABLE, "CODEFULLNAME" NVARCHAR2(480) NOT NULL ENABLE, "CODEGRADE" 
    REM  NUMBER(5, 0) NOT NULL ENABLE, "CODEFATHER" NVARCHAR2(40) NOT NULL 
    REM  ENABLE, "LEAFEFLAG" NUMBER(1, 0) NOT NULL ENABLE, "SUMMARY" 
    REM  NVARCHAR2(480) NOT NULL ENABLE, "VISIBLE" NUMBER(5, 0) NOT NULL 
    REM  ENABLE, "DELKEY" NUMBER(5, 0) NOT NULL ENABLE) PCTFREE 10 PCTUSED 40 
    REM  INITRANS 1 MAXTRANS 255 STORAGE(INITIAL 65536 FREELISTS 1 FREELIST 
    REM  GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "NHMEDICAL" LOGGING 
    REM  NOCOMPRESS ;
    REM  ALTER TABLE "COMEDSITE"."ACCTYPE" MODIFY ("CODEID" DEFAULT '' ) ;
    REM  ALTER TABLE "COMEDSITE"."ACCTYPE" MODIFY ("TYPECODE" DEFAULT '' ) ;
    REM  ALTER TABLE "COMEDSITE"."ACCTYPE" MODIFY ("CODENAME" DEFAULT '' ) ;
    REM  ALTER TABLE "COMEDSITE"."ACCTYPE" MODIFY ("CODEFULL" DEFAULT '' ) ;
    REM  ALTER TABLE "COMEDSITE"."ACCTYPE" MODIFY ("CODEFULLNAME" DEFAULT '' ) ;
    REM  ALTER TABLE "COMEDSITE"."ACCTYPE" MODIFY ("CODEGRADE" DEFAULT 0 ) ;
    REM  ALTER TABLE "COMEDSITE"."ACCTYPE" MODIFY ("CODEFATHER" DEFAULT ''   
    REM  ) ;
    REM  ALTER TABLE "COMEDSITE"."ACCTYPE" MODIFY ("LEAFEFLAG" DEFAULT 1 ) ;
    REM  ALTER TABLE "COMEDSITE"."ACCTYPE" MODIFY ("SUMMARY" DEFAULT '' ) ;
    REM  ALTER TABLE "COMEDSITE"."ACCTYPE" MODIFY ("VISIBLE" DEFAULT 1 ) ;
    REM  ALTER TABLE "COMEDSITE"."ACCTYPE" MODIFY ("DELKEY" DEFAULT 0 ) ;
    REM  ... 1 rows
    CONNECT COMEDSITE;
    CREATE UNIQUE INDEX "COMEDSITE"."PK_ACCTYPE" ON "ACCTYPE" ("CODEID" ) 
    REVERSE PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE(INITIAL 65536 FREELISTS 
    1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "NHMEDICAL" LOGGING ;
    REM  CREATE TABLE "COMEDSITE"."ALARM" ("ID" NUMBER(10, 0) NOT NULL ENABLE, 
    REM  "ALARMOBJECT" NVARCHAR2(50), "ALARMSQL" NVARCHAR2(500), "ALARMLEVEL" 
    REM  "SYS"."XMLTYPE", "VALIDTIME" DATE, "INTERVAL" NUMBER(8, 2), "LASTACT" 
    REM  DATE NOT NULL ENABLE, "ALARMWHERE" "SYS"."XMLTYPE") PCTFREE 10 
    REM  PCTUSED 40 INITRANS 1 MAXTRANS 255 STORAGE(INITIAL 65536 FREELISTS 1 
    REM  FREELIST GROUPS 1 BUFFER_POOL DEFAULT) TABLESPACE "NHMEDICAL" LOGGING 
    REM  NOCOMPRESS XMLTYPE "ALARMLEVEL" STORE AS CLOB (TABLESPACE "NHMEDICAL" 
    REM  ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10 NOCACHE LOGGING 
    REM  STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL 
    REM  DEFAULT)) XMLTYPE "ALARMWHERE" STORE AS CLOB (TABLESPACE "NHMEDICAL" 
    REM  ENABLE STORAGE IN ROW CHUNK 8192 PCTVERSION 10 NOCACHE LOGGING 
    REM  STORAGE(INITIAL 65536 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL 
    REM  DEFAULT)) ;
    REM  ALTER TABLE "COMEDSITE"."ALARM" MODIFY ("LASTACT" DEFAULT (SYSDATE) ) ;
    REM  ... 2 rows
      

  3.   

    首先:exp user/pw file=file.dmp owner=yourUser1 sql>create tablespace xxx_imp datafile 'c:\xxx_imp.dbf' size 50M autoextend on;sql>create user u1 identified u1 default tablespace xxx_imp;sql>grant connect, resource to u1;sql>revoke unlimited tablespace from u1;sql>alter user u1 quota unlimted on xxx_imp;然后:imp u1/u1@gooddba file=file.dmp indexfile=xxxx.sql fromuser=yourUser1 touser=yourUser2 
      

  4.   

    然后:imp u1/u1@gooddba file=file.dmp indexfile=xxxx.sql fromuser=yourUser1 touser=u1
      

  5.   

    http://www.blogjava.net/gddg/archive/2007/10/05/150568.html