OBJECT_ID与DATA_OBJECT_ID不一致,造成impdp导入[0 rows]



今天开发组的DBLINK环境发生一个奇怪的现象,一个分区表通过DBLINK进行数据插入时,

原表的近万条数据没有被插入就正常结束了。导入的结果是[0 rows] 正常结束。

在MOS上查了一下,这个现象,找到了下面的文档

DataPump Expdp Or Impdp With NETWORK_LINK Returns No Rows Exported Or

Imported For Partitioned Table (Doc ID 1381419.1)


按文档的说明,在Oracle11.2.0.1环境中,通过DBLINK实现impdp(expdp)时,由于

OBJECT_ID与DATA_OBJECT_ID不一致,造成这个分区的数据无法正常导出(导入)。


解决方法就是升级到11.2.0.2。


为此,我做如下的实验


--在主表侧做一个实现用的表

SQL> create table test_tab

(

  deptno          number,

  deptname        varchar2(20),

  quarterly_sales number(10, 2),

  state           varchar2(2)

)

partition by list (state)

(

  partition northwest    values ('OR', 'WA'),

  partition southwest    values ('AZ', 'UT', 'NM'),

  partition northeast    values ('NY', 'VM', 'NJ'),

  partition southeast    values ('FL', 'GA'),

  partition northcentral values ('SD', 'WI'),

  partition southcentral values ('OK', 'TX')

);  2    3    4    5    6    7    8    9   10   11   12   13   14   15   16


表が作成されました。


SQL> insert into test_tab values (11, 'support',   111, 'WA');


1行が作成されました。


SQL> commit;


コミットが完了しました。


SQL> insert into tab_test values (11, 'support',   111, 'WA');


1行が作成されました。


SQL> commit;


コミットが完了しました。


SQL> select owner,SUBOBJECT_NAME, OBJECT_ID, DATA_OBJECT_ID, OBJECT_TYPE

 2  from   dba_objects

 3  where  object_name = 'TEST_TAB' and owner='CN31TEST';


OWNER      SUBOBJECT_NAME       OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE

---------- -------------------- --------- -------------- ---------------

CN31TEST                            82437                TABLE

CN31TEST   NORTHCENTRAL             82442          82442 TABLE PARTITION

CN31TEST   NORTHEAST                82440          82440 TABLE PARTITION

CN31TEST   NORTHWEST                82438          82468 TABLE PARTITION 

                 ★OBJECT_IDとDATA_OBJECT_IDが��なる�h境

CN31TEST   SOUTHCENTRAL             82443          82443 TABLE PARTITION

CN31TEST   SOUTHEAST                82441          82441 TABLE PARTITION

CN31TEST   SOUTHWEST                82439          82439 TABLE PARTITION


7行が�x�kされました。


--在远程库做一个实验用户

SQL> create user cn31test identified by cn31;


User created.


SQL> grant connect, resource, CREATE DATABASE LINK, CREATE VIEW, CREATE MATERIALIZED

VIEW  to cn31test;


Grant succeeded.


--在远程库做一个DBLINK

SQL> conn cn31test/cn31

Connected.

SQL> create database link cn11 connect to cn31test identified by cn31 using 'TEST01';


Database link created.

--在远程库做一个相同结构的表

SQL> create table test_tab

(

  deptno          number,

  deptname        varchar2(20),

  quarterly_sales number(10, 2),

  state           varchar2(2)

)

partition by list (state)

(

  partition northwest    values ('OR', 'WA'),

  partition southwest    values ('AZ', 'UT', 'NM'),

  partition northeast    values ('NY', 'VM', 'NJ'),

  partition southeast    values ('FL', 'GA'),

  partition northcentral values ('SD', 'WI'),

  partition southcentral values ('OK', 'TX')

);  2    3    4    5    6    7    8    9   10   11   12   13   14   15   16


Table created.


SQL> exit

Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit

Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options


--导入实验

[oracle@localhost admin]$ impdp cn31test/cn31 content=data_only network_link=cn11

tables=test_tab:northwest


Import: Release 11.2.0.4.0 - Production on Tue Mar 4 10:16:01 2014


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


Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit

Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

Starting "CN31TEST"."SYS_IMPORT_TABLE_01":  cn31test/******** content=data_only

network_link=cn11


tables=test_tab:northwest

Estimate in progress using BLOCKS method...

Processing object type TABLE_EXPORT/TABLE/TABLE_DATA

Total estimation using BLOCKS method: 64 KB

. . imported "CN31TEST"."TEST_TAB":"NORTHWEST"                0 rows ★错误发生

Job "CN31TEST"."SYS_IMPORT_TABLE_01" successfully completed at Tue Mar 4 10:16:21

2014 elapsed 0 00:00:19


--再次追加一条新的记录

SQL> insert into test_tab values (20, 'technical', 200, 'NM');


1行が作成されました。


SQL> commit;


--导入实验

[oracle@localhost admin]$ impdp cn31test/cn31 content=data_only network_link=cn11

tables=test_tab:southwest


Import: Release 11.2.0.4.0 - Production on Tue Mar 4 10:18:07 2014


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


Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit

Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

Starting "CN31TEST"."SYS_IMPORT_TABLE_01":  cn31test/******** content=data_only

network_link=cn11


tables=test_tab:southwest

Estimate in progress using BLOCKS method...

Processing object type TABLE_EXPORT/TABLE/TABLE_DATA

Total estimation using BLOCKS method: 64 KB

. . imported "CN31TEST"."TEST_TAB":"SOUTHWEST"                1 rows

Job "CN31TEST"."SYS_IMPORT_TABLE_01" successfully completed at Tue Mar 4 10:18:14

2014 elapsed 0 00:00:06


--主表侧

SQL> col DEPTNAME for a15

SQL> select * from cn31test.test_tab;


   DEPTNO DEPTNAME        QUARTERLY_SALES STATE

---------- --------------- --------------- ------

       11 support                     111 WA

       20 technical                   200 NM


--远程库

[oracle@localhost admin]$ sqlplus / as sysdba


SQL*Plus: Release 11.2.0.4.0 Production on Tue Mar 4 10:32:53 2014


Copyright (c) 1982, 2013, Oracle.  All rights reserved.



Connected to:

Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options


SQL> select * from cn31test.test_tab;


   DEPTNO DEPTNAME             QUARTERLY_SALES ST

---------- -------------------- --------------- --

       20 technical                        200 NM


本文出自 “驻跸塔” 博客,转载请与作者联系!

你可能感兴趣的:(rows,0,data_object_id,object_id)