Oracle数据库数据恢复、性能优化

找回密码
注册
搜索
热搜: 活动 交友 discuz
发新帖

2135

积分

502

好友

184

主题
1#
发表于 2012-2-18 14:46:39 | 查看: 8441| 回复: 3
IMP导入工具的ignore选项的疑问
Question:使用imp导入数据,指定ignore=Y,是不是有错误不会有提示了?那这样有什么意义呢?
下载专业ORACLE数据库恢复工具PRM-DUL  For Oracle http://www.parnassusdata.com/zh-hans/emergency-services

如果自己搞不定可以找诗檀软件专业ORACLE数据库修复团队成员帮您恢复!

诗檀软件专业数据库修复团队

服务热线 : 13764045638  QQ: 47079569   
2#
发表于 2012-2-18 14:50:50
Answer:

ODM Finding:



Oracle9i Database Utilities
Release 2 (9.2)

Part Number A96652-01



IGNORE

Default: n

Specifies how object creation errors should be handled. If you accept the default, IGNORE=n, Import logs or displays object creation errors before continuing.

If you specify IGNORE=y, Import overlooks object creation errors when it attempts to create database objects, and continues without reporting the errors.

Note that only object creation errors are ignored; other errors, such as operating system, database, and SQL errors, are not ignored and may cause processing to stop.




如红字部分所述  ignore 只忽略哪些  对象创建上的错误, 如 目标库中schema下已存在某张表的结构, 再用imp导入此表数据时 还会试图创建该表, 此时使用ignore=y 就会忽略 因为表已存在 而发生的 无法创建对象的错误。 除了对象创建的错误会被忽略外, ignore=y 对其他的一些错误 不能起到 忽略的作用,仍会引起imp中断。

回复 只看该作者 道具 举报

3#
发表于 2012-2-18 14:59:30
问题示例:
  1. SQL> select * from v$version;

  2. BANNER
  3. --------------------------------------------------------------------------------
  4. Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
  5. PL/SQL Release 11.2.0.1.0 - Production
  6. CORE    11.2.0.1.0      Production
  7. TNS for 32-bit Windows: Version 11.2.0.1.0 - Production
  8. NLSRTL Version 11.2.0.1.0 - Production


  9. SQL> create table mac as select 1 t1 from dual connect by level <=1001;

  10. 表已创建。

  11. SQL> 从 Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
  12. With the Partitioning, OLAP, Data Mining and Real Application Testing options 断开

  13. C:\Users\Maclean.Liu>exp maclean/maclean file=mac.dmp tables=mac

  14. Export: Release 11.2.0.1.0 - Production on 星期六 2月 18 14:53:19 2012

  15. Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.


  16. 连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
  17. With the Partitioning, OLAP, Data Mining and Real Application Testing options
  18. 已导出 ZHS16GBK 字符集和 UTF8 NCHAR 字符集
  19. 服务器使用 AL32UTF8 字符集 (可能的字符集转换)

  20. 即将导出指定的表通过常规路径...
  21. . . 正在导出表                             MAC导出了        1001 行
  22. 成功终止导出, 没有出现警告。



  23. C:\Users\Maclean.Liu>imp maclean/maclean file=mac.dmp full=y

  24. Import: Release 11.2.0.1.0 - Production on 星期六 2月 18 14:54:02 2012

  25. Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.


  26. 连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
  27. With the Partitioning, OLAP, Data Mining and Real Application Testing options

  28. 经由常规路径由 EXPORT:V11.02.00 创建的导出文件
  29. 已经完成 ZHS16GBK 字符集和 UTF8 NCHAR 字符集中的导入
  30. 导入服务器使用 AL32UTF8 字符集 (可能的字符集转换)
  31. . 正在将 MACLEAN 的对象导入到 MACLEAN
  32. . 正在将 MACLEAN 的对象导入到 MACLEAN
  33. IMP-00015: 由于对象已存在, 下列语句失败:
  34. "CREATE TABLE "MAC" ("T1" NUMBER)  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS"
  35. " 255 STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 FREELISTS 1 FREELIST G"
  36. "ROUPS 1 BUFFER_POOL DEFAULT)                    LOGGING NOCOMPRESS"
  37. 成功终止导入, 但出现警告。
复制代码
以上 imp 因为没有加ignore=y 且IMP-00015: 由于对象已存在, 下列语句失败 , 而失败了。


加上ignore=y 后 导入数据成功
  1. C:\Users\Maclean.Liu>imp maclean/maclean file=mac.dmp full=y ignore=y

  2. Import: Release 11.2.0.1.0 - Production on 星期六 2月 18 14:54:14 2012

  3. Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.


  4. 连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
  5. With the Partitioning, OLAP, Data Mining and Real Application Testing options

  6. 经由常规路径由 EXPORT:V11.02.00 创建的导出文件
  7. 已经完成 ZHS16GBK 字符集和 UTF8 NCHAR 字符集中的导入
  8. 导入服务器使用 AL32UTF8 字符集 (可能的字符集转换)
  9. . 正在将 MACLEAN 的对象导入到 MACLEAN
  10. . 正在将 MACLEAN 的对象导入到 MACLEAN
  11. . . 正在导入表                           "MAC"导入了        1001 行
  12. 成功终止导入, 没有出现警告。
复制代码
若遇到的不是 创建对象的错误即 (IMP-00015: 由于对象已存在, 下列语句失败)则 ignore=y 也无效:
  1. SQL> alter tablespace users read only;

  2. 表空间已更改。




  3. C:\Users\Maclean.Liu>imp maclean/maclean file=mac.dmp full=y ignore=y

  4. Import: Release 11.2.0.1.0 - Production on 星期六 2月 18 14:55:01 2012

  5. Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.


  6. 连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
  7. With the Partitioning, OLAP, Data Mining and Real Application Testing options

  8. 经由常规路径由 EXPORT:V11.02.00 创建的导出文件
  9. 已经完成 ZHS16GBK 字符集和 UTF8 NCHAR 字符集中的导入
  10. 导入服务器使用 AL32UTF8 字符集 (可能的字符集转换)
  11. . 正在将 MACLEAN 的对象导入到 MACLEAN
  12. . 正在将 MACLEAN 的对象导入到 MACLEAN
  13. . . 正在导入表                           "MAC"
  14. IMP-00058: 遇到 ORACLE 错误 372
  15. ORA-00372: 此时无法修改文件 4
  16. ORA-01110: 数据文件 4: 'D:\APP\MACLEAN.LIU\ORADATA\PROD\USERS01.DBF'
  17. 成功终止导入, 但出现警告。
复制代码

回复 只看该作者 道具 举报

4#
发表于 2012-2-18 21:32:58

回复 3# 的帖子

非常感谢版主,我现在已经明白了!
没想到我群里的一个问题,还烦你专门发贴还阐述!
佩服!

回复 只看该作者 道具 举报

您需要登录后才可以回帖 登录 | 注册

QQ|手机版|Archiver|Oracle数据库数据恢复、性能优化

GMT+8, 2024-11-15 01:56 , Processed in 0.075893 second(s), 22 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部
TEL/電話+86 13764045638
Email service@parnassusdata.com
QQ 47079569