Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2885801
  • 博文数量: 599
  • 博客积分: 16398
  • 博客等级: 上将
  • 技术积分: 6875
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-30 12:04
个人简介

WINDOWS下的程序员出身,偶尔也写一些linux平台下小程序, 后转行数据库行业,专注于ORACLE和DB2的运维和优化。 同时也是ios移动开发者。欢迎志同道合的朋友一起研究技术。 数据库技术交流群:58308065,23618606

文章分类

全部博文(599)

文章存档

2014年(12)

2013年(56)

2012年(199)

2011年(105)

2010年(128)

2009年(99)

分类: Oracle

2011-05-12 21:07:46

上一篇文章讨论了触发器的存在对IMP导入结果的影响。
可以看到,对于存在触发器的表,在IMP导入后,将会对结果产生影响。
下面看看触发器对IMPDP导入结果的影响。

还是利用前面创建的表。


SQL> SELECT TRIGGER_NAME,TABLE_NAME,STATUS FROM USER_TRIGGERS;

TRIGGER_NAME         TABLE_NAME           STATUS
-------------------- -------------------- --------
EXP_TRIGGER          TEST                 ENABLED

SQL> SELECT * FROM TEST;

        ID NAME
---------- ------------------------------
         1 YANSHOUPENG
         2 YANSP[huateng]

SQL> DELETE FROM TEST WHERE ID=2;

已删除 1 行。

SQL> COMMIT;

提交完成。

SQL> CREATE OR REPLACE DIRECTORY OUTPUT_DIR AS 'C:\';

目录已创建。

下面采用EXPDP进行导出操作:

SQL> host expdp admin/admin directory=output_dir dumpfile=test.dp tables=test

Export: Release 10.2.0.1.0 - Production on 星期三, 11 5月, 2011 10:52:24

Copyright (c) 2003, 2005, Oracle.  All rights reserved.

连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
启动 "ADMIN"."SYS_EXPORT_TABLE_01":  admin/******** directory=output_dir dumpfile=test.dp tables=test
正在使用 BLOCKS 方法进行估计...
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
使用 BLOCKS 方法的总估计: 64 KB
处理对象类型 TABLE_EXPORT/TABLE/TABLE
处理对象类型 TABLE_EXPORT/TABLE/TRIGGER
. . 导出了 "ADMIN"."TEST"                              5.242 KB       1 行
已成功加载/卸载了主表 "ADMIN"."SYS_EXPORT_TABLE_01"
******************************************************************************
ADMIN.SYS_EXPORT_TABLE_01 的转储文件集为:
  C:\TEST.DP
作业 "ADMIN"."SYS_EXPORT_TABLE_01" 已于 10:52:48 成功完成

SQL> SELECT * FROM TEST;

        ID NAME
---------- ------------------------------
         1 YANSHOUPENG

SQL> DELETE FROM TEST;

已删除 1 行。

SQL> COMMIT;

提交完成。

下面进行导入操作:

SQL> host impdp admin/admin directory=output_dir dumpfile=test.dp tables=test content=data_only

Import: Release 10.2.0.1.0 - Production on 星期三, 11 5月, 2011 10:56:14

Copyright (c) 2003, 2005, Oracle.  All rights reserved.

连接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
已成功加载/卸载了主表 "ADMIN"."SYS_IMPORT_TABLE_01"
启动 "ADMIN"."SYS_IMPORT_TABLE_01":  admin/******** directory=output_dir dumpfile=test.dp tables=test content=data_only
处理对象类型 TABLE_EXPORT/TABLE/TABLE_DATA
. . 导入了 "ADMIN"."TEST"                              5.242 KB       1 行
作业 "ADMIN"."SYS_IMPORT_TABLE_01" 已于 10:56:19 成功完成


SQL> SELECT * FROM TEST;

        ID NAME
---------- ------------------------------
         1 YANSHOUPENG[huateng]
可以看到,导入结果和IMP一样。
其实就算IMPDP有直接路径导入的方式,但是一旦表中有活动的触发器,IMPDP就采用外部表方式进行导入。
也就是说一旦表上有活动的触发器,IMPDP就不会采用直接路径方式进行导入。

对于以下情况IMPDP导入将会采用外部表方式。
Situations in Which Direct Path Load Is Not Used
If any of the following conditions exist for a table, Data Pump uses external tables rather than direct path to load the data for that table:
■ A global index on multipartition tables exists during a single-partition load. This includes object tables that are partitioned.
■ A domain index exists for a LOB column.
■ A table is in a cluster.
■ There is an active trigger on a pre-existing table.
■ Fine-grained access control is enabled in insert mode on a pre-existing table.
■ A table contains BFILE columns or columns of opaque types.
■ A referential integrity constraint is present on a pre-existing table.
■ A table contains VARRAY columns with an embedded opaque type.
■ The table has encrypted columns
■ The table into which data is being imported is a pre-existing table and at least one of the following conditions exists:
– There is an active trigger
– The table is partitioned
– Fine-grained access control is in insert mode
– A referential integrity constraint exists
– A unique index exists
■ Supplemental logging is enabled and the table has at least one LOB column.
■ The Data Pump command for the specified table used the QUERY, SAMPLE, or REMAP_DATA parameter.

 

以上所述,在进行IMP/IMPDP进行导入的时候,如果表上有活动的触发器的话,需要注意。


 

阅读(3678) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~