導入導出 Oracle 分區表數據

 

--****************************node

-- 導入導出 Oracle 分區表數據sql

--****************************數據庫

   

    導入導入Oracle 分區表數據是Oracle DBA 常常完成的任務之一。分區表的導入導出一樣普通表的導入導出方式,只不過導入導出須要考session

慮到分區的特殊性,如分區索引,將分區遷移到普通表,或使用原始分區表導入到新的分區表。下面將描述使用imp/exp,impdp/expdp導入導出oracle

分區表數據。app

 

    有關分區表的特性請參考: less

        Oracle 分區表dom

        SQL server 2005 切換分區表工具

        SQL server 2005 基於已存在的表建立分區ui

 

    有關導入導出工具請參考:

        數據泵EXPDP 導出工具的使用

        數據泵IMPDP 導入工具的使用

 

    有關導入導出的官方文檔請參考:

        Original Export and Import     

 

1、分區級別的導入導出

    能夠導出一個或多個分區,也能夠導出全部分區(即整個表)。

    能夠導入全部分區(即整個表),一個或多個分區以及子分區。

    對於已經存在數據的表,使用imp導入時須要使用參數IGNORE=y,而使用impdp,加table_exists_action=append | replace 參數。

 

2、建立演示環境

    1.查看當前數據庫的版本

        SQL> select * from v$version where rownum < 2;

 

        BANNER

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

        Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

 

    2.建立一個分區表

        SQL> alter session set nls_date_format='yyyy-mm-dd';

 

        SQL> CREATE TABLE tb_pt (

        sal_date   DATE NOT NULL,

        sal_id NUMBER NOT NULL,

        sal_row    NUMBER(12) NOT NULL)

        partition by range(sal_date)

        (

        partition sal_11 values less than(to_date('2012-01-01','YYYY-MM-DD')) ,

        partition sal_12 values less than(to_date('2013-01-01','YYYY-MM-DD')) ,

        partition sal_13 values less than(to_date('2014-01-01','YYYY-MM-DD')) ,

        partition sal_14 values less than(to_date('2015-01-01','YYYY-MM-DD')) ,

        partition sal_15 values less than(to_date('2016-01-01','YYYY-MM-DD')) ,

        partition sal_16 values less than(to_date('2017-01-01','YYYY-MM-DD')) ,

        partition sal_other values less than (maxvalue)

        ) nologging;

 

    3.建立一個惟一索引

        CREATE UNIQUE INDEX tb_pt_ind1

        ON tb_pt(sal_date) nologging;

   

    4.爲分區表生成數據

        SQL> INSERT INTO tb_pt

        SELECT TRUNC(SYSDATE)+ROWNUM, dbms_random.random, ROWNUM

        FROM dual

        CONNECT BY LEVEL<=5000;

 

        SQL> commit;

 

        SQL> select count(1) from tb_pt partition(sal_11);

 

          COUNT(1)

        ----------

               300

 

        SQL> select count(1) from tb_pt partition(sal_other);

 

          COUNT(1)

        ----------

              2873

 

        SQL> select * from tb_pt partition(sal_12) where rownum < 3;

 

        SAL_DATE      SAL_ID    SAL_ROW

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

        01-JAN-12 -1.356E+09        301

        02-JAN-12 -761530183        302

 

3、使用exp/imp導出導入分區表數據

    1.導出整個分區表

   

        [oracle@node1 ~]$ exp scott/tiger file='/u02/dmp/tb_pt.dmp' log='/u02/dmp/tb_pt.log' tables=tb_pt

        Export: Release 11.2.0.1.0 - Production on Wed Mar 9 13:52:18 2011

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

        Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

        With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

        Data Mining and Real Application Testing o

        Export done in US7ASCII character set and AL16UTF16 NCHAR character set

        server uses ZHS16GBK character set (possible charset conversion)

        About to export specified tables via Conventional Path ...

        . . exporting table                          TB_PT

        . . exporting partition                         SAL_11        300 rows exported

        . . exporting partition                         SAL_12        366 rows exported

        . . exporting partition                         SAL_13        365 rows exported

        . . exporting partition                         SAL_14        365 rows exported

        . . exporting partition                         SAL_15        365 rows exported

        . . exporting partition                         SAL_16        366 rows exported

        . . exporting partition                      SAL_OTHER       2873 rows exported

        EXP-00091: Exporting questionable statistics.

        EXP-00091: Exporting questionable statistics.

        Export terminated successfully with warnings.

       

        [oracle@node1 ~]$ oerr exp 00091

        00091, 00000, "Exporting questionable statistics."

        // *Cause:  Export was able export statistics, but the statistics may not be

        //          usuable. The statistics are questionable because one or more of

        //          the following happened during export: a row error occurred, client

        //          character set or NCHARSET does not match with the server, a query

        //          clause was specified on export, only certain partitions or

        //          subpartitions were exported, or a fatal error occurred while

        //          processing a table.

        // *Action: To export non-questionable statistics, change the client character

        //          set or NCHARSET to match the server, export with no query clause,

        //          export complete tables. If desired, import parameters can be

        //          supplied so that only non-questionable statistics will be imported,

        //          and all questionable statistics will be recalculated.

 

        在上面的導出中出現了錯誤提示,即EXP-00091,該錯誤代表exp工具所在的環境變量中的NLS_LANG與DB中的NLS_CHARACTERSET不一致

        儘管該錯誤對最終的數據並沒有影響,但調整該參數來避免異常仍是有必要的。所以須要將其設置爲一致便可解決上述的錯誤提示。

       

        SQL> select userenv('language') from dual;

 

        USERENV('LANGUAGE')

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

        AMERICAN_AMERICA.ZHS16GBK

 

        [oracle@node1 ~]$ export NLS_LANG='AMERICAN_AMERICA.ZHS16GBK'   

 

        通過上述設置以後再次導出正常,過程略。

 

    2.導出單個分區

 

        [oracle@node1 ~]$ exp scott/tiger file='/u02/dmp/tb_pt_sal_16.dmp' log='/u02/dmp/tb_pt_sal_16.log' tables=tb_pt:sal_16

        Export: Release 11.2.0.1.0 - Production on Wed Mar 9 13:52:38 2011

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

        Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

        With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

        Data Mining and Real Application Testing o

        Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set

        About to export specified tables via Conventional Path ...

        . . exporting table                          TB_PT

        . . exporting partition                         SAL_16        366 rows exported

        EXP-00091: Exporting questionable statistics.

        EXP-00091: Exporting questionable statistics.

        Export terminated successfully with warnings

 

        在上面的導出過程當中再次出現了統計信息錯誤的狀況,所以採起了對該對象收集統計信息,但並不能解決該錯誤,但在exp命令行中增

        加statistics=none便可,以下:

        [oracle@node1 ~]$ exp scott/tiger file='/u02/dmp/tb_pt_sal_16.dmp' log='/u02/dmp/tb_pt_sal_16.log' /

        > tables=tb_pt:sal_16 statistics=none

 

        若是要導出多個分區,則在tables參數中增長分區數。如:tables=(tb_pt:sal_15,tb_pt:sal_16)

 

    3.使用imp工具生成建立分區表的DDL語句

        [oracle@node1 ~]$ imp scott/tiger tables=tb_pt indexfile='/u02/dmp/cr_tb_pt.sql' /

        > file='/u02/dmp/tb_pt.dmp' ignore=y

        Export: Release 11.2.0.1.0 - Production on Wed Mar 9 13:54:38 2011

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

        Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

        With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

        Data Mining and Real Application Testing o

        Export file created by EXPORT:V11.02.00 via conventional path

        import done in US7ASCII character set and AL16UTF16 NCHAR character set

        import server uses ZHS16GBK character set (possible charset conversion)

        . . skipping partition "TB_PT":"SAL_11"                  

        . . skipping partition "TB_PT":"SAL_12"                  

        . . skipping partition "TB_PT":"SAL_13"                  

        . . skipping partition "TB_PT":"SAL_14"                  

        . . skipping partition "TB_PT":"SAL_15"                  

        . . skipping partition "TB_PT":"SAL_16"                  

        . . skipping partition "TB_PT":"SAL_OTHER"               

        Import terminated successfully without warnings.

 

    4.導入單個分區(使用先前備份的單個分區導入文件)

        SQL> alter table tb_pt truncate partition sal_16;   --導入前先將分區實現truncate

 

        Table truncated.

 

        SQL> select count(1) from tb_pt partition(sal_16);

 

          COUNT(1)

        ----------

                 0

 

        SQL> ho imp scott/tiger tables=tb_pt:sal_16 file='/u02/dmp/tb_pt_sal_16.dmp' ignore=y

        Export: Release 11.2.0.1.0 - Production on Wed Mar 9 13:55:39 2011

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

        Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

        With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

        Data Mining and Real Application Testing o

        Export file created by EXPORT:V11.02.00 via conventional path

        import done in US7ASCII character set and AL16UTF16 NCHAR character set

        import server uses ZHS16GBK character set (possible charset conversion)

        . importing SCOTT's objects into SCOTT

        . importing SCOTT's objects into SCOTT

        . . importing partition               "TB_PT":"SAL_16"

        IMP-00058: ORACLE error 1502 encountered

        ORA-01502: index 'SCOTT.TB_PT_IND1' or partition of such index is in unusable state

        Import terminated successfully with warnings.

 

        收到了ORA-01502錯誤,下面查看索引的狀態,並對其重建索引後再執行導入

        SQL> select index_name ,status from dba_indexes where table_name='TB_PT';  --查看索引的狀態

 

        INDEX_NAME                     STATUS

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

        TB_PT_IND1                     UNUSABLE

 

        SQL> alter index TB_PT_IND1 rebuild online;                --重建索引

 

        Index altered.

 

        SQL> ho imp scott/tiger tables=tb_pt:sal_16 file='/u02/dmp/tb_pt_sal_16.dmp' ignore=y  --再次導入成功

        Export: Release 11.2.0.1.0 - Production on Wed Mar 9 13:56:15 2011

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

        Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

        With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

        Data Mining and Real Application Testing o

        Export file created by EXPORT:V11.02.00 via conventional path

        import done in US7ASCII character set and AL16UTF16 NCHAR character set

        import server uses ZHS16GBK character set (possible charset conversion)

        . importing SCOTT's objects into SCOTT

        . importing SCOTT's objects into SCOTT

        . . importing partition               "TB_PT":"SAL_16"        366 rows imported

        Import terminated successfully without warnings.

       

        SQL> select count(*) from tb_pt partition(sal_16);

 

          COUNT(*)

        ----------

               366

 

    5.導入整個表

        SQL> truncate table tb_pt;    --首先truncate 整個表

 

        Table truncated.

 

        SQL> ho imp scott/tiger tables=tb_pt file='/u02/dmp/tb_pt.dmp' ignore=y indexes=y

        Export: Release 11.2.0.1.0 - Production on Wed Mar 9 13:57:10 2011

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

        Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

        With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

        Data Mining and Real Application Testing o

        Export file created by EXPORT:V11.02.00 via conventional path

        import done in US7ASCII character set and AL16UTF16 NCHAR character set

        import server uses ZHS16GBK character set (possible charset conversion)

        . importing SCOTT's objects into SCOTT

        . importing SCOTT's objects into SCOTT

        . . importing partition               "TB_PT":"SAL_11"        298 rows imported

        . . importing partition               "TB_PT":"SAL_12"        366 rows imported

        . . importing partition               "TB_PT":"SAL_13"        365 rows imported

        . . importing partition               "TB_PT":"SAL_14"        365 rows imported

        . . importing partition               "TB_PT":"SAL_15"        365 rows imported

        . . importing partition               "TB_PT":"SAL_16"        366 rows imported

        . . importing partition            "TB_PT":"SAL_OTHER"       2875 rows imported

        Import terminated successfully without warnings.

       

        SQL> select count(1) from tb_pt partition(sal_other);

 

          COUNT(1)

        ----------

              2875

 

4、使用expdp/impdb來實現分區表的導入導出

    1.查看導入導出的目錄設置

        SQL> select directory_name,directory_path from dba_directories where directory_name='DMP';

 

        DIRECTORY_NAME                 DIRECTORY_PATH

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

        DMP                            /u02/dmp

 

    2.爲分區表建立一個本地索引

        create index tb_pt_local_idx

        on tb_pt(sal_id)

        local

        (partition local1,

        partition local2,

        partition local3,

        partition local4,

        partition local5,

        partition local6,

        partition local7)

        ;

 

    3.導出整個表

        [oracle@node1 ~]$ expdp scott/tiger directory=dmp dumpfile=tb_pt.dmp logfile=tb_pb.log tables=tb_pt parallel=3

        Export: Release 11.2.0.1.0 - Production on Wed Mar 9 14:04:28 2011

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

        Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

        With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

        Data Mining and Real Application Testing options

        Starting "SCOTT"."SYS_EXPORT_TABLE_01":  scott/******** directory=dmp dumpfile=tb_pt.dmp logfile=tb_pb.log tables=

            tb_pt parallel=3                                                                  

        Estimate in progress using BLOCKS method...

        Processing object type TABLE_EXPORT/TABLE/TABLE_DATA

        Total estimation using BLOCKS method: 512 KB

        . . exported "SCOTT"."TB_PT":"SAL_OTHER"                 71.63 KB    2875 rows

        . . exported "SCOTT"."TB_PT":"SAL_11"                    12.54 KB     298 rows

        . . exported "SCOTT"."TB_PT":"SAL_12"                    14.22 KB     366 rows

        . . exported "SCOTT"."TB_PT":"SAL_13"                    14.18 KB     365 rows

        . . exported "SCOTT"."TB_PT":"SAL_14"                    14.18 KB     365 rows

        . . exported "SCOTT"."TB_PT":"SAL_15"                    14.19 KB     365 rows

        . . exported "SCOTT"."TB_PT":"SAL_16"                    14.23 KB     366 rows

        Processing object type TABLE_EXPORT/TABLE/TABLE

        Processing object type TABLE_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT

        Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX

        Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS

        Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

        Master table "SCOTT"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded

        ******************************************************************************

        Dump file set for SCOTT.SYS_EXPORT_TABLE_01 is:

          /u02/dmp/tb_pt.dmp

        Job "SCOTT"."SYS_EXPORT_TABLE_01" successfully completed at 14:04:51

 

    4.導出多個分區

        [oracle@node1 ~]$ expdp scott/tiger directory=dmp dumpfile=tb_pts.dmp logfile=tb_pt.log /

        > tables=(tb_pt:sal_16,tb_pt:sal_other) parallel=2

        Export: Release 11.2.0.1.0 - Production on Wed Mar 9 14:08:06 2011

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

        Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

        With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

        Data Mining and Real Application Testing options

        Starting "SCOTT"."SYS_EXPORT_TABLE_01":  scott/******** directory=dmp dumpfile=tb_pts.dmp logfile=tb_pt.log

            tables=(tb_pt:sal_16,tb_pt:sal_other) parallel=2                        --*/

        Estimate in progress using BLOCKS method...

        Processing object type TABLE_EXPORT/TABLE/TABLE_DATA

        Total estimation using BLOCKS method: 192 KB

        . . exported "SCOTT"."TB_PT":"SAL_OTHER"                 71.63 KB    2875 rows

        . . exported "SCOTT"."TB_PT":"SAL_16"                    14.23 KB     366 rows

        Processing object type TABLE_EXPORT/TABLE/TABLE

        Processing object type TABLE_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT

        Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX

        Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS

        Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

        Master table "SCOTT"."SYS_EXPORT_TABLE_01" successfully loaded/unloaded

        ******************************************************************************

        Dump file set for SCOTT.SYS_EXPORT_TABLE_01 is:

          /u02/dmp/tb_pts.dmp

        Job "SCOTT"."SYS_EXPORT_TABLE_01" successfully completed at 14:08:17

 

    5.截斷分區sal_other

        SQL> alter table tb_pt truncate partition(sal_other);

 

        Table truncated.

 

        SQL> select count(*) from tb_pt partition(sal_other);

 

          COUNT(*)

        ----------

                 0

 

        SQL> select index_name,status,partitioned from dba_indexes where table_name='TB_PT'; --查看索引的狀態, TB_PT_IND1不可用

 

        INDEX_NAME                     STATUS   PAR

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

        TB_PT_IND1                     UNUSABLE NO

        TB_PT_LOCAL_IDX                N/A      YES

       

        SQL> select index_name ,partition_name, status from dba_ind_partitions where index_owner='SCOTT';

       

        INDEX_NAME                     PARTITION_NAME                 STATUS

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

        TB_PT_LOCAL_IDX                LOCAL1                         USABLE

        TB_PT_LOCAL_IDX                LOCAL2                         USABLE

        TB_PT_LOCAL_IDX                LOCAL3                         USABLE

        TB_PT_LOCAL_IDX                LOCAL4                         USABLE

        TB_PT_LOCAL_IDX                LOCAL5                         USABLE

        TB_PT_LOCAL_IDX                LOCAL6                         USABLE

        TB_PT_LOCAL_IDX                LOCAL7                         USABLE

       

    6.導入單個分區

        [oracle@node1 ~]$ impdp scott/tiger directory=dmp dumpfile=tb_pts.dmp logfile=tb_pt_imp.log /

        > tables=tb_pt:sal_other skip_unusable_indexes=y table_exists_action=replace

        Import: Release 11.2.0.1.0 - Production on Wed Mar 9 14:13:28 2011

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

        Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

        With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

        Data Mining and Real Application Testing options

        Master table "SCOTT"."SYS_IMPORT_TABLE_01" successfully loaded/unloaded

        Starting "SCOTT"."SYS_IMPORT_TABLE_01":  scott/******** directory=dmp dumpfile=tb_pts.dmp logfile=tb_pt_imp.log

            tables=tb_pt:sal_other skip_unusable_indexes=y table_exists_action=replace             --*/

        Processing object type TABLE_EXPORT/TABLE/TABLE

        Processing object type TABLE_EXPORT/TABLE/TABLE_DATA

        . . imported "SCOTT"."TB_PT":"SAL_OTHER"                 71.63 KB    2875 rows

        Processing object type TABLE_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT

        Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX

        Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS

        Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

        Job "SCOTT"."SYS_IMPORT_TABLE_01" successfully completed at 14:13:33

 

        SQL> select index_name,status,partitioned from dba_indexes where table_name='TB_PT';

 

        INDEX_NAME                     STATUS   PAR

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

        TB_PT_IND1                     VALID    NO

        TB_PT_LOCAL_IDX                N/A      YES

       

        從上面的導入狀況能夠看出,儘管執行了truncate partition,然而使用impdp導入工具,而且使用參數table_exists_action=replace

        能夠避免使用imp導入時惟一和主鍵索引須要重建的問題。注意,若是沒有使用table_exists_action=replace參數,將會收到ORA-39151

        錯誤,以下

            ORA-39151: Table "SCOTT"."TB_PT" exists. All dependent metadata and data will be skipped due to

                table_exists_action of skip

 

    7.導入整個表

        [oracle@node1 ~]$ impdp scott/tiger directory=dmp dumpfile=tb_pt.dmp logfile=tb_pt_fullimp.log /

        > tables=tb_pt skip_unusable_indexes=y table_exists_action=replace

        Import: Release 11.2.0.1.0 - Production on Wed Mar 9 14:17:35 2011

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

        Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production

        With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,

        Data Mining and Real Application Testing options

        Master table "SCOTT"."SYS_IMPORT_TABLE_01" successfully loaded/unloaded

        Starting "SCOTT"."SYS_IMPORT_TABLE_01":  scott/******** directory=dmp dumpfile=tb_pt.dmp logfile=tb_pt_fullimp.log

            tables=tb_pt skip_unusable_indexes=y table_exists_action=replace                     --*/

        Processing object type TABLE_EXPORT/TABLE/TABLE

        Processing object type TABLE_EXPORT/TABLE/TABLE_DATA

        . . imported "SCOTT"."TB_PT":"SAL_OTHER"                 71.63 KB    2875 rows

        . . imported "SCOTT"."TB_PT":"SAL_11"                    12.54 KB     298 rows

        . . imported "SCOTT"."TB_PT":"SAL_12"                    14.22 KB     366 rows

        . . imported "SCOTT"."TB_PT":"SAL_13"                    14.18 KB     365 rows

        . . imported "SCOTT"."TB_PT":"SAL_14"                    14.18 KB     365 rows

        . . imported "SCOTT"."TB_PT":"SAL_15"                    14.19 KB     365 rows

        . . imported "SCOTT"."TB_PT":"SAL_16"                    14.23 KB     366 rows

        Processing object type TABLE_EXPORT/TABLE/GRANT/OWNER_GRANT/OBJECT_GRANT

        Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX

        Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS

        Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS

        Job "SCOTT"."SYS_IMPORT_TABLE_01" successfully completed at 14:17:40

 

5、參數skip_unusable_indexes的做用

    SQL> show parameter skip

 

    NAME                                 TYPE        VALUE

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

    skip_unusable_indexes                boolean     TRUE

 

    該參數容許在導入分區數據時延遲對索引的處理,即先將數據導入,導入後再來重建索引分區。

    在命令行導入中未指定導入參數skip_unusable_indexes時,則對於索引相關的問題,根據數據庫初始化參數的值來肯定。

    在命令行導入中若是指定了參數skip_unusable_indexes時,則該參數的值優先於數據庫初始化參數的設定值。

    skip_unusable_indexes=y對unique index不起做用,由於此時的unique index扮演者constraint的做用,因此在insert數據時index必須被

        更新。

    對於單個分區導入時PK,unique index的處理,必須先重建索引而後進行導入。

    使用impdp數據泵實現導入並使用參數table_exists_action=replace能夠解決上述問題,即ORA-01502錯誤。

相關文章
相關標籤/搜索