丰满人妻一区二区三区无码AV|国产乱色国产精品免费视频|国产精品一区二区不卡的视频|2020精品国产福利在线观看香蕉

    1. <rp id="2o2at"><nav id="2o2at"></nav></rp>
      
      

      <rt id="2o2at"></rt>
      <ruby id="2o2at"><nav id="2o2at"></nav></ruby>

    2. <rp id="2o2at"><meter id="2o2at"></meter></rp>

        <tt id="2o2at"><form id="2o2at"></form></tt>

      1. <source id="2o2at"></source>

          首頁 > 數據庫 > Oracle > 正文

          ORACLE8的分區管理

          2020-07-26 14:41:45
          字體:
          來源:轉載
          供稿:網友
          正在看的ORACLE教程是: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

          [1] [2] 下一頁

          正在看的ORACLE教程是:ORACLE8的分區管理。_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

          上一頁  [1] [2] 

          發表評論 共有條評論
          用戶名: 密碼:
          驗證碼: 匿名發表
          1. <rp id="2o2at"><nav id="2o2at"></nav></rp>
            
            

            <rt id="2o2at"></rt>
            <ruby id="2o2at"><nav id="2o2at"></nav></ruby>

          2. <rp id="2o2at"><meter id="2o2at"></meter></rp>

              <tt id="2o2at"><form id="2o2at"></form></tt>

            1. <source id="2o2at"></source>