Oracle的分割槽管理
一、 分割槽概述:
為了簡化資料庫大表的管理,ORACLE8推出了分割槽選項。分割槽將表分離在若干不同的表空間上,用分而治之的方法來支撐無限膨脹的大表,給大表在物理一級的可管理性。將大表分割成較小的分割槽可以改善表的維護、備份、恢復、事務及查詢效能。針對當前社保及電信行業的大量日常業務資料,可以推薦使用ORACLE8的該選項。
二、分割槽的優點:
1 、增強可用性:如果表的一個分割槽由於系統故障而不能使用,表的其餘好的分割槽仍然可以使用;
2 、減少關閉時間:如果系統故障隻影響表的一部分分割槽,那麼只有這部分分割槽需要修復,故能比整個大表修復花的時間更少;
3 、維護輕鬆:如果需要重建表,獨立管理每個分割槽比管理單個大表要輕鬆得多;
4 、均衡I/O:可以把表的不同分割槽分配到不同的磁碟來平衡I/O改善效能;
5 、改善效能:對大表的查詢、增加、修改等操作可以分解到表的不同分割槽來並行執行,可使執行速度更快;
6 、分割槽對使用者透明,終端使用者感覺不到分割槽的存在。
三、分割槽的管理:
1 、分割槽表的建立:
某公司的每年產生巨大的銷售記錄,DBA向公司建議每季度的資料放在一個分割槽內,以下示範的是該公司1999年的資料(假設每月產生30M的資料),操作如下:
到了1999年年底,DBA應向表中加入2000年的表空間,同樣是每季度一個表空間,由於公司業務欣欣向榮,預計每個分割槽為40M,操作如下。
公司規定:銷售的明細資料兩年內必須儲存線上。到2001年,DBA必須將1999年的資料備份(備份方法見5、EXPORT分割槽),將1999年的分割槽刪除,將空間供後來的資料使用。如此迴圈,永遠保持兩年的銷售資料線上。
分割槽的其他操作包括截短分割槽(truncate),將存在的分割槽劃分為多個分割槽(split),交換分割槽(exchange),重新命名(rename),為分割槽建立索引等。DBA可以根據適當的情況使用。以下僅說明分裂分割槽(split),例如該公司1999年第四季度銷售明細資料急劇增加(因為慶國慶、迎千禧、賀迴歸),DBA向公司建議將第四季度的分割槽劃分為兩個分割槽,每個分割槽放兩個月份的資料,操作如下:
ORACLE8的EXPORT 工具可在表的分割槽以及匯出資料,例如到2001年,DBA必須將1999年的資料按分割槽匯出,操作如下:
ORACLE8的IMPORT 工具可在表的分割槽以及匯入資料,例如在2001年,使用者要檢視1999年的資料,DBA必須匯入1999年的資料,使之線上,操作如下:
為了簡化資料庫大表的管理,ORACLE8推出了分割槽選項。分割槽將表分離在若干不同的表空間上,用分而治之的方法來支撐無限膨脹的大表,給大表在物理一級的可管理性。將大表分割成較小的分割槽可以改善表的維護、備份、恢復、事務及查詢效能。針對當前社保及電信行業的大量日常業務資料,可以推薦使用ORACLE8的該選項。
二、分割槽的優點:
1 、增強可用性:如果表的一個分割槽由於系統故障而不能使用,表的其餘好的分割槽仍然可以使用;
2 、減少關閉時間:如果系統故障隻影響表的一部分分割槽,那麼只有這部分分割槽需要修復,故能比整個大表修復花的時間更少;
3 、維護輕鬆:如果需要重建表,獨立管理每個分割槽比管理單個大表要輕鬆得多;
4 、均衡I/O:可以把表的不同分割槽分配到不同的磁碟來平衡I/O改善效能;
5 、改善效能:對大表的查詢、增加、修改等操作可以分解到表的不同分割槽來並行執行,可使執行速度更快;
6 、分割槽對使用者透明,終端使用者感覺不到分割槽的存在。
三、分割槽的管理:
1 、分割槽表的建立:
某公司的每年產生巨大的銷售記錄,DBA向公司建議每季度的資料放在一個分割槽內,以下示範的是該公司1999年的資料(假設每月產生30M的資料),操作如下:
STEP1、建立表的各個分割槽的表空間: CREATE TABLESPACE ts_sale1999q1 DATAFILE ‘/u1/oradata/sales/sales1999_q1.dat’ SIZE 100M DEFAULT STORAGE (INITIAL 30m NEXT 30m MINEXTENTS 3 PCTINCREASE 0) CREATE TABLESPACE ts_sale1999q2 DATAFILE ‘/u1/oradata/sales/sales1999_q2.dat’ SIZE 100M DEFAULT STORAGE (INITIAL 30m NEXT 30m MINEXTENTS 3 PCTINCREASE 0) CREATE TABLESPACE ts_sale1999q3 DATAFILE ‘/u1/oradata/sales/sales1999_q3.dat’ SIZE 100M DEFAULT STORAGE (INITIAL 30m NEXT 30m MINEXTENTS 3 PCTINCREASE 0) CREATE TABLESPACE ts_sale1999q4 DATAFILE ‘/u1/oradata/sales/sales1999_q4.dat’ SIZE 100M DEFAULT STORAGE (INITIAL 30m NEXT 30m MINEXTENTS 3 PCTINCREASE 0) STEP2、建立基於分割槽的表: CREATE TABLE sales (invoice_no NUMBER, ... sale_date DATE NOT NULL ) PARTITION BY RANGE (sale_date) (PARTITION sales1999_q1 VALUES LESS THAN (TO_DATE(‘1999-04-01’,’YYYY-MM-DD’) TABLESPACE ts_sale1999q1, PARTITION sales1999_q2 VALUES LESS THAN (TO_DATE(‘1999-07-01’,’YYYY-MM-DD’) TABLESPACE ts_sale1999q2, PARTITION sales1999_q3 VALUES LESS THAN (TO_DATE(‘1999-10-01’,’YYYY-MM-DD’) TABLESPACE ts_sale1999q3, PARTITION sales1999_q4 VALUES LESS THAN (TO_DATE(‘2000-01-01’,’YYYY-MM-DD’) TABLESPACE ts_sale1999q4 );2 、分割槽表的擴容:
到了1999年年底,DBA應向表中加入2000年的表空間,同樣是每季度一個表空間,由於公司業務欣欣向榮,預計每個分割槽為40M,操作如下。
STEP1、建立表空間: CREATE TABLESPACE ts_sale2000q1 DATAFILE ‘/u1/oradata/sales/sales2000_q1.dat’ SIZE 130M DEFAULT STORAGE (INITIAL 40m NEXT 40m MINEXTENTS 3 PCTINCREASE 0) 其他表空間ts_sale2000q2,ts_sale2000q3,ts_sales2000q4如法炮製。 STEP2、為表新增表空間: ALTER TABLE sales ADD PARTITION sales2000_q1 VALUES LESS THAN (TO_DATE(‘2000-04-01’,’YYYY-MM-DD’) TABLESPACE ts_sale2000q1; 其他分割槽sales2000_q1,sales2000_q1,sales2000_q1如法炮製。3 、刪除不必要的分割槽:
公司規定:銷售的明細資料兩年內必須儲存線上。到2001年,DBA必須將1999年的資料備份(備份方法見5、EXPORT分割槽),將1999年的分割槽刪除,將空間供後來的資料使用。如此迴圈,永遠保持兩年的銷售資料線上。
STEP1、DROP 分割槽: ALTER TABLE sales DROP PARTION sales1999_q1; ALTER TABLE sales DROP PARTION sales1999_q2; ALTER TABLE sales DROP PARTION sales1999_q3; ALTER TABLE sales DROP PARTION sales1999_q4; STEP2、利用作業系統的工具刪除以上表空間佔用的檔案 (表空間基於裸裝置無須次步),UNIX系統為例: oracle$ rm /u1/oradata/sales/sales1999_q1.dat oracle$ rm /u1/oradata/sales/sales1999_q2.dat oracle$ rm /u1/oradata/sales/sales1999_q3.dat oracle$ rm /u1/oradata/sales/sales1999_q4.dat4 、分割槽的其他操作:
分割槽的其他操作包括截短分割槽(truncate),將存在的分割槽劃分為多個分割槽(split),交換分割槽(exchange),重新命名(rename),為分割槽建立索引等。DBA可以根據適當的情況使用。以下僅說明分裂分割槽(split),例如該公司1999年第四季度銷售明細資料急劇增加(因為慶國慶、迎千禧、賀迴歸),DBA向公司建議將第四季度的分割槽劃分為兩個分割槽,每個分割槽放兩個月份的資料,操作如下:
STEP1、按(1)的方法建立兩個分割槽的表空間ts_sales1999q4p1, ts_sales1999q4p2; STEP2、給表新增兩個分割槽sales1999_q4_p1,sales1999_q4_p2; STEP3、分裂分割槽: ALTER TABLE sales SPLIT PARTITON sales1999_q4 AT TO_DATE (‘1999-11-01’,’YYYY-MM-DD’) INTO (partition sales1999_q4_p1, partition sales1999_q4_p2)5 、檢視分割槽資訊:
DBA要檢視錶的分割槽資訊,可檢視資料字典USER_EXTENTS,操作如下: SVRMGRL>SELECT * FROM user_extents WHERE SEGMENT_NAME=’SALES’; SEGMENT_NA PARTITION_ SEGMENT_TYPE TABLESPACE ---------- ------------ --------------- -------------- SALES SALES1999_Q1 TABLE PARTITION TS_SALES1999Q1 SALES SALES1999_Q2 TABLE PARTITION TS_SALES1999Q2 SALES SALES1999_Q3 TABLE PARTITION TS_SALES1999Q3 SALES SALES1999_Q4 TABLE PARTITION TS_SALES1999Q4 SALES SALES2000_Q1 TABLE PARTITION TS_SALES1999Q1 SALES SALES2000_Q2 TABLE PARTITION TS_SALES1999Q2 SALES SALES2000_Q3 TABLE PARTITION TS_SALES1999Q3 SALES SALES2000_Q4 TABLE PARTITION TS_SALES1999Q45 、EXPORT分割槽:
ORACLE8的EXPORT 工具可在表的分割槽以及匯出資料,例如到2001年,DBA必須將1999年的資料按分割槽匯出,操作如下:
oracle$ exp sales/sales_password tables=sales:sales1999_q1 rows=Y file=sales1999_q1.dmp oracle$ exp sales/sales_password tables=sales:sales1999_q2 rows=Y file=sales1999_q2.dmp oracle$ exp sales/sales_password tables=sales:sales1999_q3 rows=Y file=sales1999_q3.dmp oracle$ exp sales/sales_password tables=sales:sales1999_q4 rows=Y file=sales1999_q4.dmp6 、IMPORT分割槽:
ORACLE8的IMPORT 工具可在表的分割槽以及匯入資料,例如在2001年,使用者要檢視1999年的資料,DBA必須匯入1999年的資料,使之線上,操作如下:
STEP1、建立表的1999年的四個表空間和相應的分割槽,參照(2); STEP2、匯入資料: oracle$ imp sales/sales_password FILE =sales1999_q1.dmp TABLES = (sales:sales1999_q1) IGNORE=y oracle$ imp sales/sales_password FILE =sales1999_q2.dmp TABLES = (sales:sales1999_q2) IGNORE=y oracle$ imp sales/sales_password FILE =sales1999_q3.dmp TABLES = (sales:sales1999_q3) IGNORE=y oracle$ imp sales/sales_password FILE =sales1999_q4.dmp TABLES = (sales:sales1999_q4) IGNORE=y[@more@]
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8570952/viewspace-907590/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle分割槽表的管理Oracle
- ORACLE分割槽表管理Oracle
- ORACLE分割槽表管理[轉]Oracle
- ORACLE分割槽表的使用和管理Oracle
- ORACLE8的分割槽管理(轉)Oracle
- 轉載:ORACLE8的分割槽管理Oracle
- [oracle] expdp 匯出分割槽表的分割槽Oracle
- Oracle分割槽表及分割槽索引Oracle索引
- oracle 分割槽Oracle
- Oracle帶區域性分割槽索引的分割槽表刪除舊分割槽新增新分割槽Oracle索引
- 簡單ORACLE分割槽表、分割槽索引Oracle索引
- oracle分割槽表和分割槽表exchangeOracle
- 《RHEL6硬碟的分割槽和swap分割槽管理》——硬碟分割槽的大總結硬碟
- 【學習筆記】分割槽表和分割槽索引——分割槽表的其他管理(三)筆記索引
- 【學習筆記】分割槽表和分割槽索引——管理索引分割槽(四)筆記索引
- Oracle 表分割槽Oracle
- oracle分割槽表Oracle
- oracle表分割槽Oracle
- Oracle 分割槽表Oracle
- Oracle索引分割槽Oracle索引
- ORACLE 範圍分割槽 partition-range分割槽Oracle
- oracle分割槽表和非分割槽表exchangeOracle
- Oracle 分割槽表的建立Oracle
- Oracle分割槽表的使用Oracle
- oracle 分割槽表move和包含分割槽表的lob moveOracle
- oracle本地分割槽索引跨分割槽對成本的影響Oracle索引
- MySQL表分割槽管理MySql
- 全面學習分割槽表及分割槽索引(17)--其它索引分割槽管理操作索引
- oracle實用sql(14)--查詢分割槽表的分割槽列和子分割槽列OracleSQL
- Oracle分割槽之五:建立分割槽索引總結Oracle索引
- 深入學習Oracle分割槽表及分割槽索引Oracle索引
- 全面認識oracle分割槽表及分割槽索引Oracle索引
- oracle分割槽partition及分割槽索引partition index(一)Oracle索引Index
- Oracle11g INTERVAL分割槽新增分割槽策略Oracle
- Oracle分割槽表基礎運維-07增加分割槽(2 HASH分割槽)Oracle運維
- Oracle查詢分割槽表的最後一個分割槽值Oracle
- Oracle 建立分割槽表Oracle
- Oracle 間隔分割槽Oracle