ORACLE8的分区管理
生活随笔
收集整理的這篇文章主要介紹了
ORACLE8的分区管理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?前導發軔:網海拾貝??
擇要:本篇文章先容了ORACLE數據庫的新特征—分區管理,并用例子闡明運用設施。
樞紐詞:ORACLE,分區
一、 分區概述:
為了簡化數據庫年夜表的管理,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.dat
4 、分區的其他行使:
分區的其他行使包孕截短分區(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_SALES1999Q4
5 、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.dmp
6 、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
版權聲明: 原創作品,答應轉載,轉載時請務必以超鏈接方式標明文章 原始來由 、作者信息和本聲明。否則將窮究法則責任。
轉載于:https://www.cnblogs.com/zgqjymx/archive/2011/03/07/1975875.html
總結
以上是生活随笔為你收集整理的ORACLE8的分区管理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bbmail-小巧的邮件提示程序
- 下一篇: TweetLouder.com:在微博上