0

我正在尝试将客户端数据库中的 *​​.dmp 文件导入到新安装的 Oracle XE 11.2.0 中。

我是Oracle DB的新手,我一直使用MySQL,所以我搜索了论坛并使用了cmd中的命令

C:\oraclexe\app\oracle\product\11.2.0\server\bin>imp 'system/root AS SYSDBA' file=c:\export.dmp full=yes log=implog.txt

没有运气。implog.txt 如下:

Connected to: Oracle Database 11g Express Edition Release 11.2.0.2.0 - Production

Export file created by EXPORT:V09.02.00 via conventional path
import done in WE8MSWIN1252 character set and AL16UTF16 NCHAR character set
import server uses AL32UTF8 character set (possible charset conversion)
export client uses UTF8 character set (possible charset conversion)
. importing SYSTEM's objects into SYSTEM
IMP-00015: following statement failed because the object already exists:
"CREATE UNDO TABLESPACE "UNDOTBS1" BLOCKSIZE 8192 DATAFILE  '/home/app/oracl"
"e/oradata/ANA/undotbs01.dbf' SIZE 2000M       AUTOEXTEND ON NEXT 5242880  M"
"AXSIZE 32767M EXTENT MANAGEMENT LOCAL "
IMP-00015: following statement failed because the object already exists:
"CREATE TEMPORARY TABLESPACE "TEMP" BLOCKSIZE 8192 TEMPFILE  '/home2/oradata"
"/ANA/temp01.dbf' SIZE 2916M       AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M"
" EXTENT MANAGEMENT LOCAL  UNIFORM SIZE 1048576"
IMP-00017: following statement failed with ORACLE error 1119:
"CREATE TABLESPACE "INDX" BLOCKSIZE 8192 DATAFILE  '/home/app/oracle/oradata"
"/ANA/indx01.dbf' SIZE 1048576       AUTOEXTEND ON NEXT 1310720  MAXSIZE 327"
"67M EXTENT MANAGEMENT LOCAL  AUTOALLOCATE  ONLINE PERMANENT  NOLOGGING SEGM"
"ENT SPACE MANAGEMENT AUTO"
IMP-00003: ORACLE error 1119 encountered
ORA-01119: error in creating database file '/home/app/oracle/oradata/ANA/indx01.dbf'
ORA-27040: file create error, unable to create file
OSD-04002: unable to open file
O/S-Error: (OS 3) Impossibile trovare il percorso specificato.
IMP-00017: following statement failed with ORACLE error 1119:
"CREATE TABLESPACE "TOOLS" BLOCKSIZE 8192 DATAFILE  '/home/app/oracle/oradat"
"a/ANA/tools01.dbf' SIZE 209715200       AUTOEXTEND ON NEXT 327680  MAXSIZE "
"32767M EXTENT MANAGEMENT LOCAL  AUTOALLOCATE  ONLINE PERMANENT  NOLOGGING S"
"EGMENT SPACE MANAGEMENT AUTO"
IMP-00003: ORACLE error 1119 encountered
ORA-01119: error in creating database file '/home/app/oracle/oradata/ANA/tools01.dbf'
ORA-27040: file create error, unable to create file
OSD-04002: unable to open file
O/S-Error: (OS 3) Impossibile trovare il percorso specificato.
IMP-00015: following statement failed because the object already exists:
"CREATE TABLESPACE "USERS" BLOCKSIZE 8192 DATAFILE  '/home/app/oracle/oradat"
"a/ANA/users01.dbf' SIZE 1048576       AUTOEXTEND ON NEXT 1310720  MAXSIZE 3"
"2767M EXTENT MANAGEMENT LOCAL  AUTOALLOCATE  ONLINE PERMANENT  NOLOGGING SE"
"GMENT SPACE MANAGEMENT AUTO"
IMP-00017: following statement failed with ORACLE error 1119:
"CREATE TABLESPACE "XDB" BLOCKSIZE 8192 DATAFILE  '/home/app/oracle/oradata/"
"ANA/xdb01.dbf' SIZE 209715200       AUTOEXTEND ON NEXT 655360  MAXSIZE 3276"
"7M EXTENT MANAGEMENT LOCAL  AUTOALLOCATE  ONLINE PERMANENT  NOLOGGING SEGME"
"NT SPACE MANAGEMENT AUTO"
IMP-00003: ORACLE error 1119 encountered
ORA-01119: error in creating database file '/home/app/oracle/oradata/ANA/xdb01.dbf'
ORA-27040: file create error, unable to create file
OSD-04002: unable to open file
O/S-Error: (OS 3) Impossibile trovare il percorso specificato.
IMP-00017: following statement failed with ORACLE error 1119:
"CREATE TABLESPACE "A00" BLOCKSIZE 8192 DATAFILE  '/home2/oradata/A/a00.dbf'"
" SIZE 1048576000       EXTENT MANAGEMENT LOCAL  AUTOALLOCATE  ONLINE PERMAN"
"ENT  NOLOGGING"
IMP-00003: ORACLE error 1119 encountered
ORA-01119: error in creating database file '/home2/oradata/A/a00.dbf'
ORA-27040: file create error, unable to create file
OSD-04002: unable to open file
O/S-Error: (OS 3) Impossibile trovare il percorso specificato.
IMP-00017: following statement failed with ORACLE error 1119:
"CREATE TABLESPACE "D00" BLOCKSIZE 8192 DATAFILE  '/home2/oradata/A/d00.dbf'"
" SIZE 5000M       EXTENT MANAGEMENT LOCAL  AUTOALLOCATE  ONLINE PERMANENT  "
"NOLOGGING"
IMP-00003: ORACLE error 1119 encountered
ORA-01119: error in creating database file '/home2/oradata/A/d00.dbf'
ORA-27040: file create error, unable to create file
OSD-04002: unable to open file
O/S-Error: (OS 3) Impossibile trovare il percorso specificato.
IMP-00015: following statement failed because the object already exists:
"CREATE USER "OUTLN" IDENTIFIED BY VALUES '4A3BA55E08595C81' TEMPORARY TABLE"
"SPACE "TEMP" PASSWORD EXPIRE ACCOUNT LOCK"
IMP-00015: following statement failed because the object already exists:
"CREATE USER "ANONYMOUS" IDENTIFIED BY VALUES 'anonymous' DEFAULT TABLESPACE"
" "XDB" TEMPORARY TABLESPACE "TEMP" PASSWORD EXPIRE ACCOUNT LOCK"
IMP-00017: following statement failed with ORACLE error 959:
"CREATE USER "A00" IDENTIFIED BY VALUES 'DB7EF8D464FCEC4D' DEFAULT TABLESPAC"
"E "A00" TEMPORARY TABLESPACE "TEMP""
IMP-00003: ORACLE error 959 encountered
ORA-00959: tablespace 'A00' does not exist
IMP-00017: following statement failed with ORACLE error 959:
"CREATE USER "D00" IDENTIFIED BY VALUES '546A075B8012922B' DEFAULT TABLESPAC"
"E "D00" TEMPORARY TABLESPACE "TEMP""
IMP-00003: ORACLE error 959 encountered
ORA-00959: tablespace 'D00' does not exist
IMP-00015: following statement failed because the object already exists:
"CREATE ROLE "SELECT_CATALOG_ROLE""
IMP-00015: following statement failed because the object already exists:
"REVOKE "SELECT_CATALOG_ROLE" FROM SYSTEM"
IMP-00015: following statement failed because the object already exists:
"CREATE ROLE "EXECUTE_CATALOG_ROLE""
IMP-00015: following statement failed because the object already exists:
"REVOKE "EXECUTE_CATALOG_ROLE" FROM SYSTEM"
IMP-00015: following statement failed because the object already exists:
"CREATE ROLE "DELETE_CATALOG_ROLE""
IMP-00015: following statement failed because the object already exists:
"REVOKE "DELETE_CATALOG_ROLE" FROM SYSTEM"
IMP-00015: following statement failed because the object already exists:
"CREATE ROLE "RECOVERY_CATALOG_OWNER""
IMP-00015: following statement failed because the object already exists:
"REVOKE "RECOVERY_CATALOG_OWNER" FROM SYSTEM"
IMP-00015: following statement failed because the object already exists:
"CREATE ROLE "GATHER_SYSTEM_STATISTICS""
IMP-00015: following statement failed because the object already exists:
"REVOKE "GATHER_SYSTEM_STATISTICS" FROM SYSTEM"
IMP-00015: following statement failed because the object already exists:
"CREATE ROLE "LOGSTDBY_ADMINISTRATOR""
IMP-00015: following statement failed because the object already exists:
"REVOKE "LOGSTDBY_ADMINISTRATOR" FROM SYSTEM"
IMP-00015: following statement failed because the object already exists:
"CREATE ROLE "AQ_ADMINISTRATOR_ROLE""
IMP-00015: following statement failed because the object already exists:
"CREATE ROLE "AQ_USER_ROLE""
IMP-00015: following statement failed because the object already exists:
"REVOKE "AQ_USER_ROLE" FROM SYSTEM"
IMP-00017: following statement failed with ORACLE error 439:
"CREATE ROLE "GLOBAL_AQ_USER_ROLE" IDENTIFIED GLOBALLY "
IMP-00003: ORACLE error 439 encountered
ORA-00439: feature not enabled: Enterprise User Security
IMP-00015: following statement failed because the object already exists:
 "CREATE ROLE "OEM_MONITOR""
IMP-00015: following statement failed because the object already exists:
 "REVOKE "OEM_MONITOR" FROM SYSTEM"
IMP-00015: following statement failed because the object already exists:
 "CREATE ROLE "HS_ADMIN_ROLE""
IMP-00015: following statement failed because the object already exists:
 "REVOKE "HS_ADMIN_ROLE" FROM SYSTEM"
IMP-00015: following statement failed because the object already exists:
 "CREATE ROLE "XDBADMIN""
IMP-00015: following statement failed because the object already exists:
 "REVOKE "XDBADMIN" FROM SYSTEM"
IMP-00015: following statement failed because the object already exists:
 "CREATE ROLE "AUTHENTICATEDUSER""
IMP-00015: following statement failed because the object already exists:
 "REVOKE "AUTHENTICATEDUSER" FROM SYSTEM"
IMP-00017: following statement failed with ORACLE error 1917:
 "GRANT UNLIMITED TABLESPACE TO "A00""
IMP-00003: ORACLE error 1917 encountered
ORA-01917: user or role 'A00' does not exist
IMP-00017: following statement failed with ORACLE error 1917:
 "GRANT CREATE PROCEDURE TO "D00""
IMP-00003: ORACLE error 1917 encountered
ORA-01917: user or role 'D00' does not exist
IMP-00017: following statement failed with ORACLE error 1917:
 "GRANT EXECUTE ANY PROCEDURE TO "D00""
IMP-00003: ORACLE error 1917 encountered
ORA-01917: user or role 'D00' does not exist
IMP-00017: following statement failed with ORACLE error 1917:
 "GRANT CREATE TRIGGER TO "D00""
IMP-00003: ORACLE error 1917 encountered
ORA-01917: user or role 'D00' does not exist
IMP-00017: following statement failed with ORACLE error 1917:
 "GRANT CREATE SNAPSHOT TO "D00""
IMP-00003: ORACLE error 1917 encountered
ORA-01917: user or role 'D00' does not exist
IMP-00017: following statement failed with ORACLE error 1917:
 "GRANT CREATE TYPE TO "D00""
IMP-00003: ORACLE error 1917 encountered
ORA-01917: user or role 'D00' does not exist
IMP-00017: following statement failed with ORACLE error 1917:
 "GRANT "CONNECT" TO "A00""
IMP-00003: ORACLE error 1917 encountered
ORA-01917: user or role 'A00' does not exist
IMP-00017: following statement failed with ORACLE error 1917:
 "GRANT "DBA" TO "A00""
IMP-00003: ORACLE error 1917 encountered
ORA-01917: user or role 'A00' does not exist
IMP-00017: following statement failed with ORACLE error 1917:
 "GRANT "CONNECT" TO "D00""
IMP-00003: ORACLE error 1917 encountered
ORA-01917: user or role 'D00' does not exist
IMP-00017: following statement failed with ORACLE error 1918:
 "ALTER USER "D00" DEFAULT ROLE ALL"
IMP-00003: ORACLE error 1918 encountered
ORA-01918: user 'D00' does not exist
IMP-00017: following statement failed with ORACLE error 1918:
 "ALTER USER "A00" DEFAULT ROLE ALL"
IMP-00003: ORACLE error 1918 encountered
ORA-01918: user 'A00' does not exist
IMP-00017: following statement failed with ORACLE error 1918:
 "ALTER USER "A00" QUOTA UNLIMITED ON "TEMP" QUOTA UNLIMITED ON "A00""
IMP-00003: ORACLE error 1918 encountered
ORA-01918: user 'A00' does not exist
IMP-00017: following statement failed with ORACLE error 1918:
 "ALTER USER "D00" QUOTA UNLIMITED ON "TEMP" QUOTA UNLIMITED ON "D00""
IMP-00003: ORACLE error 1918 encountered
ORA-01918: user 'D00' does not exist
IMP-00015: following statement failed because the object already exists:
 "CREATE SEQUENCE "MVIEW$_ADVSEQ_GENERIC" MINVALUE 1 MAXVALUE 4294967295 INCR"
 "EMENT BY 1 START WITH 1 CACHE 50 NOORDER NOCYCLE"
IMP-00015: following statement failed because the object already exists:
 "CREATE SEQUENCE "MVIEW$_ADVSEQ_ID" MINVALUE 1 MAXVALUE 4294967295 INCREMENT"
 " BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE"
IMP-00015: following statement failed because the object already exists:
 "CREATE SEQUENCE "LOGMNR_SEQ$" MINVALUE 1 MAXVALUE 9999999999999999999999999"
 "99 INCREMENT BY 1 START WITH 1 CACHE 20 ORDER NOCYCLE"
IMP-00015: following statement failed because the object already exists:
 "CREATE SEQUENCE "LOGMNR_UIDS$" MINVALUE 1 MAXVALUE 999999999999999999999999"
 "999 INCREMENT BY 1 START WITH 100 CACHE 20 ORDER NOCYCLE"
IMP-00015: following statement failed because the object already exists:
 "CREATE SEQUENCE "REPCAT$_FLAVORS_S" MINVALUE -2147483647 MAXVALUE 214748364"
 "7 INCREMENT BY 1 START WITH 1 NOCACHE NOORDER NOCYCLE"
IMP-00015: following statement failed because the object already exists:
 "CREATE SEQUENCE "REPCAT$_FLAVOR_NAME_S" MINVALUE 1 MAXVALUE 999999999999999"
 "999999999999 INCREMENT BY 1 START WITH 1 NOCACHE NOORDER NOCYCLE"
IMP-00015: following statement failed because the object already exists:
 "CREATE SEQUENCE "REPCAT$_REPPROP_KEY" MINVALUE 1 MAXVALUE 99999999999999999"
 "9999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE"
IMP-00015: following statement failed because the object already exists:
 "CREATE SEQUENCE "REPCAT_LOG_SEQUENCE" MINVALUE 1 MAXVALUE 99999999999999999"
 "9999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE"
IMP-00015: following statement failed because the object already exists:
 "CREATE SEQUENCE "REPCAT$_REFRESH_TEMPLATES_S" MINVALUE 1 MAXVALUE 999999999"
 "999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE"
IMP-00015: following statement failed because the object already exists:
 "CREATE SEQUENCE "REPCAT$_USER_AUTHORIZATIONS_S" MINVALUE 1 MAXVALUE 9999999"
 "99999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE"
IMP-00015: following statement failed because the object already exists:
 "CREATE SEQUENCE "REPCAT$_TEMPLATE_REFGROUPS_S" MINVALUE 1 MAXVALUE 99999999"
 "9999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE"
IMP-00015: following statement failed because the object already exists:
 "CREATE SEQUENCE "REPCAT$_TEMPLATE_OBJECTS_S" MINVALUE 1 MAXVALUE 9999999999"
 "99999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE"
IMP-00015: following statement failed because the object already exists:
 "CREATE SEQUENCE "REPCAT$_TEMPLATE_PARMS_S" MINVALUE 1 MAXVALUE 999999999999"
 "999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE"
IMP-00015: following statement failed because the object already exists:
 "CREATE SEQUENCE "REPCAT$_USER_PARM_VALUES_S" MINVALUE 1 MAXVALUE 9999999999"
 "99999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE"
IMP-00015: following statement failed because the object already exists:
 "CREATE SEQUENCE "REPCAT$_TEMPLATE_SITES_S" MINVALUE 1 MAXVALUE 999999999999"
 "999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE"
IMP-00015: following statement failed because the object already exists:
 "CREATE SEQUENCE "REPCAT$_TEMP_OUTPUT_S" MINVALUE 1 MAXVALUE 999999999999999"
 "999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE"
IMP-00015: following statement failed because the object already exists:
 "CREATE SEQUENCE "REPCAT$_RUNTIME_PARMS_S" MINVALUE 1 MAXVALUE 9999999999999"
 "99999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE"
IMP-00015: following statement failed because the object already exists:
 "CREATE SEQUENCE "TEMPLATE$_TARGETS_S" MINVALUE 1 MAXVALUE 99999999999999999"
 "9999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE"
IMP-00015: following statement failed because the object already exists:
 "CREATE SEQUENCE "REPCAT$_EXCEPTIONS_S" MINVALUE 1 MAXVALUE 9999999999999999"
 "99999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE"
. importing WMSYS's objects into WMSYS
. importing A00's objects into A00
 "ALTER SESSION SET CURRENT_SCHEMA= "A00""
IMP-00003: ORACLE error 1435 encountered
ORA-01435: user does not exist
IMP-00000: Import terminated unsuccessfully

现在我正在阅读的是:

- 该脚本删除了用户 SYSTEM 的所有权限,但即使导入失败,在我执行导入后,我不再能够以 SYSTEM 身份登录

- 我正在尝试在 Windows XP 32 位虚拟机上导入 *.dmp,我认为导出是在 Windows Vista 机器上创建的(不知道 x86 或 x64),但我不明白的是日志中的位置显示“创建数据库文件'/home/app/oracle/oradata/ANA/indx01.dbf'时出错”。这里似乎是一个unix路径......

- 几乎所有地方Oracle都说它不能创建用户/表/索引,因为它们已经存在。这是一个全新的安装,或者至少是我第一次尝试导入的时候。在第一次失败后,我尝试以 SYSTEM 身份登录,但不能,所以我删除了 Oracle XE 并从头开始重新安装,所以我认为这是全新安装。难道我做错了什么?有没有办法在不删除和重新安装所有内容的情况下重新创建 SYSTEM 权限?

预先感谢您的帮助

编辑:刚收到导出日志,我省略了表名:

Connected to: Oracle9i Enterprise Edition Release 9.2.0.8.0 - Production
JServer Release 9.2.0.8.0 - Production
Export done in UTF8 character set and AL16UTF16 NCHAR character set

About to export the entire database ...
. exporting tablespace definitions
. exporting profiles
. exporting user definitions
. exporting roles
. exporting resource costs
. exporting rollback segment definitions
. exporting database links
. exporting sequence numbers
. exporting directory aliases
. exporting context namespaces
. exporting foreign function library names
. exporting PUBLIC type synonyms
. exporting private type synonyms
. exporting object type definitions
. exporting system procedural objects and actions
. exporting pre-schema procedural objects and actions
. exporting cluster definitions
. about to export SYSTEM's tables via Conventional Path ...
. about to export OUTLN's tables via Conventional Path ...
. about to export DBSNMP's tables via Conventional Path ...
. about to export WMSYS's tables via Conventional Path ...
. about to export ANONYMOUS's tables via Conventional Path ...
. about to export A00's tables via Conventional Path ...
. about to export D00's tables via Conventional Path ...

. exporting synonyms
. exporting views
. exporting referential integrity constraints
. exporting stored procedures
. exporting operators
. exporting indextypes
. exporting bitmap, functional and extensible indexes
. exporting posttables actions
. exporting triggers
. exporting materialized views
. exporting snapshot logs
. exporting job queues
. exporting refresh groups and children
. exporting dimensions
. exporting post-schema procedural objects and actions
. exporting user history table
. exporting default and system auditing options
. exporting statistics
Export terminated successfully without warnings.
4

4 回答 4

3

要确定您需要创建哪些表空间,您需要找出需要哪些表和索引,然后查看这些表空间是针对哪些表空间构建的。您需要找出的第一件事是您需要重新创建哪些模式(用户)。从看起来像的导出日志A00D00或两者兼而有之。

您可以获得表和索引的 DDL,其中将包括它们内置的表空间 - 通过imp使用INDEXFILE参数运行,例如:

imp 'system/root AS SYSDBA' file=c:\export.dmp full=n rows=n fromuser=A00 touser=A00 indexfile=c:\indexfile.sql

这将为您提供一个带有表和索引的 DDL 的文本文件,但表创建命令用rem. 您可以在记事本或其他文本编辑器中查看该文件,并搜索所有TABLESPACE参考。您只需要所有不同的值。在您的情况下,可能所有A00拥有的对象都在A00表空间中,但您需要检查。

获得该信息后,您可以手动创建在新数据库中标识的具有相同名称的表空间。您还需要创建要导入的用户,并确保它可以创建对象;例如,在您为tablespacequota unlimited设置的原始导入日志中,还要查看它正在尝试的命令。A00A00grant

构建完成后,您可以再次运行导入:

imp 'system/root AS SYSDBA' file=c:\export.dmp full=n rows=y fromuser=A00 touser=A00 log=import.log

表、索引等应该构建好,数据将被导入其中。

您应该阅读导入命令和参数以了解这些示例将做什么,并根据您的最终目标决定是否需要任何其他人来修改导入的行为方式。

于 2012-06-25T10:51:09.213 回答
0

也许这个出口来自 Linux 机器?因为表空间的路径:'/home/app/oracle/oradata/*' 在 Windows 机器中似乎不正确。您可以先创建表空间,然后再导入 dmp。只是一个想法。

于 2012-06-25T08:21:13.087 回答
0

尝试以下步骤:

  • TOOLS手动创建表空间
  • 使用FROM_USER/TO_USER参数imp仅导入此用户的架构数据。

从 Oracle 9 到 Oracle 11 的导入SYSTEM和其他表空间将破坏该表空间中的许多与系统相关的表/对象。

于 2012-06-25T08:23:37.883 回答
-1

打开命令提示符(这里 GLOBAL 是用户名和密码)仅将 11g 文件导入到 11g 数据库,将 10g 文件仅导入到 10g。

> IMP GLOBAL/GLOBAL
password:global
it will give some error ORA-0107
again it will ask for logon username:GLOBAL
Password:global
Import Data Only (yes/no):no
Import file:EXPDAT.DMP > C:\Downloads\global_tables.dmp (location of dump file)
Enter insert buffer size (minimum is 8192) 30720>  

30720
List contents of import file only (yes/no): no >  

no
Ignore create error due to object existence (yes/no): no >  

no
Import grants (yes/no): yes >  

yes
Import table data (yes/no): yes >  

yes
Import entire export file (yes/no): no >  

yes
于 2015-03-24T14:36:52.897 回答