日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

分区表需要数据备份吗oracle,Oracle 分区表数据的导入与导出(1)

發布時間:2024/1/23 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分区表需要数据备份吗oracle,Oracle 分区表数据的导入与导出(1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

--****************************

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

--****************************

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

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

分區表數據。

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

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

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

一、分區級別的導入導出

可以導出一個或多個分區,也可以導出所有分區(即整個表)。

可以導入所有分區(即整個表),一個或多個分區以及子分區。

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

二、創建演示環境

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

三、使用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

總結

以上是生活随笔為你收集整理的分区表需要数据备份吗oracle,Oracle 分区表数据的导入与导出(1)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。