posts - 15, comments - 5, trackbacks - 0, articles - 0
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          安裝Oracle后,經常使用的修改表空間的SQL代碼(轉)

          Posted on 2006-01-23 12:19 閱讀(624) 評論(0)  編輯  收藏 所屬分類: Oracle

          安裝Oracle后,經常使用的修改表空間的SQL代碼

          【點擊: 阿木伯 著
          配置:
          Windows NT 4.0 中文版
          5塊10.2GB SCSI硬盤
          分:C:盤、D:盤、E:盤、F:盤、G:盤
          Oracle 8.0.4 for Windows NT
          NT安裝在C:\WINNT,Oracle安裝在C:\ORANT
          
          目標:
          因系統的回滾段太小,現打算生成新的回滾段,
          建立大的、新的表空間(數據表空間、索引表空間、回滾表空間、臨時表空間、)
          建兩個數據表空間、兩個索引表空間,這樣建的目的是根據實際應用,
          如:現有10個應用用戶,每個用戶是一個獨立子系統(如:商業進銷存MIS系統中的財務、收款、庫存、人事、總經理等)
          尤其大型商場中收款機眾多,同時訪問進程很多,經常達到50-100個進程同時訪問,
          這樣,通過建立多個用戶表空間、索引表空間,把各個用戶分別建在不同的表空間里(多個用戶表空間放在不同的物理磁盤上),
          減少了用戶之間的I/O競爭、讀寫數據與寫讀索引的競爭(用戶表空間、索引表空間也分別放在不同的物理磁盤上)
          
          規劃:
          C:盤、NT系統,Oracle系統
          D:盤、數據表空間1(3GB、自動擴展)、回滾表空間1(1GB、自動擴展)
          E:盤、數據表空間2(3GB、自動擴展)、回滾表空間2(1GB、自動擴展)
          F:盤、索引表空間1(2GB、自動擴展)、臨時表空間1(0.5GB、不自動擴展)
          G:盤、索引表空間2(2GB、自動擴展)、臨時表空間2(0.5GB、不自動擴展)
          
          注:這只是一個簡單的規劃,實際規劃要依系統需求來定,盡量減少I/O競爭
          
          實現:
          1、首先查看系統有哪些回滾段及其狀態。
          
          SQL> col owner format a20
          SQL> col status format a10
          SQL> col segment_name format a20
          SQL> col tablespace_name format a20
          
          SQL> SELECT OWNER,SEGMENT_NAME,TABLESPACE_NAME,SUM(BYTES)/1024/1024 M 
            2  FROM DBA_SEGMENTS 
            3  WHERE SEGMENT_TYPE='ROLLBACK' 
            4  GROUP BY OWNER,SEGMENT_NAME,TABLESPACE_NAME
            5  /
          
          OWNER                SEGMENT_NAME         TABLESPACE_NAME              M
          -------------------- -------------------- -------------------- ---------
          SYS                  RB1                  ROLLBACK_DATA        .09765625
          SYS                  RB10                 ROLLBACK_DATA        .09765625
          SYS                  RB11                 ROLLBACK_DATA        .09765625
          SYS                  RB12                 ROLLBACK_DATA        .09765625
          SYS                  RB13                 ROLLBACK_DATA        .09765625
          SYS                  RB14                 ROLLBACK_DATA        .09765625
          SYS                  RB15                 ROLLBACK_DATA        .09765625
          SYS                  RB16                 ROLLBACK_DATA        .09765625
          SYS                  RB2                  ROLLBACK_DATA        .09765625
          SYS                  RB3                  ROLLBACK_DATA        .09765625
          SYS                  RB4                  ROLLBACK_DATA        .09765625
          SYS                  RB5                  ROLLBACK_DATA        .09765625
          SYS                  RB6                  ROLLBACK_DATA        .09765625
          SYS                  RB7                  ROLLBACK_DATA        .09765625
          SYS                  RB8                  ROLLBACK_DATA        .09765625
          SYS                  RB9                  ROLLBACK_DATA        .09765625
          SYS                  RB_TEMP              SYSTEM               .24414063
          SYS                  SYSTEM               SYSTEM                .1953125
          
          查詢到18記錄.
          
          SQL> SELECT SEGMENT_NAME,OWNER,
            2         TABLESPACE_NAME,SEGMENT_ID,FILE_ID,STATUS 
            3         FROM DBA_ROLLBACK_SEGS
            4  /
          
          SEGMENT_NAME         OWNER                TABLESPACE_NAME      SEGMENT_ID   FILE_ID STATUS
          -------------------- -------------------- -------------------- ---------- --------- ----------
          SYSTEM               SYS                  SYSTEM                        0         1 ONLINE
          RB_TEMP              SYS                  SYSTEM                        1         1 OFFLINE
          RB1                  PUBLIC               ROLLBACK_DATA                 2         3 ONLINE
          RB2                  PUBLIC               ROLLBACK_DATA                 3         3 ONLINE
          RB3                  PUBLIC               ROLLBACK_DATA                 4         3 ONLINE
          RB4                  PUBLIC               ROLLBACK_DATA                 5         3 ONLINE
          RB5                  PUBLIC               ROLLBACK_DATA                 6         3 ONLINE
          RB6                  PUBLIC               ROLLBACK_DATA                 7         3 OFFLINE
          RB7                  PUBLIC               ROLLBACK_DATA                 8         3 OFFLINE
          RB8                  PUBLIC               ROLLBACK_DATA                 9         3 OFFLINE
          RB9                  PUBLIC               ROLLBACK_DATA                10         3 OFFLINE
          RB10                 PUBLIC               ROLLBACK_DATA                11         3 OFFLINE
          RB11                 PUBLIC               ROLLBACK_DATA                12         3 OFFLINE
          RB12                 PUBLIC               ROLLBACK_DATA                13         3 OFFLINE
          RB13                 PUBLIC               ROLLBACK_DATA                14         3 OFFLINE
          RB14                 PUBLIC               ROLLBACK_DATA                15         3 OFFLINE
          RB15                 PUBLIC               ROLLBACK_DATA                16         3 OFFLINE
          RB16                 PUBLIC               ROLLBACK_DATA                17         3 OFFLINE
          
          查詢到18記錄.
          
          2、修改代碼如下,可把以下代碼存入一.sql文件,如cg_sys.sql,然后以SQL> @cg_sys.sql調用執行。
          
          --注意:各個硬盤上要事先建好oradata目錄
          
          --修改現有回滾段,使之失效,下線
          alter rollback segment rb1 offline;
          alter rollback segment rb2 offline;
          alter rollback segment rb3 offline;
          alter rollback segment rb4 offline;
          alter rollback segment rb5 offline;
          alter rollback segment rb6 offline;
          alter rollback segment rb7 offline;
          alter rollback segment rb8 offline;
          alter rollback segment rb9 offline;
          alter rollback segment rb10 offline;
          alter rollback segment rb11 offline;
          alter rollback segment rb12 offline;
          alter rollback segment rb13 offline;
          alter rollback segment rb14 offline;
          alter rollback segment rb15 offline;
          alter rollback segment rb16 offline;
          
          --刪除原有回滾段
          drop rollback segment rb1;
          drop rollback segment rb2;
          drop rollback segment rb3;
          drop rollback segment rb4;
          drop rollback segment rb5;
          drop rollback segment rb6;
          drop rollback segment rb7;
          drop rollback segment rb8;
          drop rollback segment rb9;
          drop rollback segment rb10;
          drop rollback segment rb11;
          drop rollback segment rb12;
          drop rollback segment rb13;
          drop rollback segment rb14;
          drop rollback segment rb15;
          drop rollback segment rb16;
          
          --建數據表空間1
          --收款、庫存、訂貨、遠程通信
          create tablespace USER_DATA1 datafile 
          'd:\oradata\user1_1.ora' size 512M, 
          'd:\oradata\user1_2.ora' size 512M, 
          'd:\oradata\user1_3.ora' size 512M, 
          'd:\oradata\user1_4.ora' size 512M, 
          'd:\oradata\user1_5.ora' size 512M, 
          'd:\oradata\user1_6.ora' size 512M 
          AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED
          default storage (initial 128K next 2M pctincrease 0);
          --initial 128K,因為,用戶建在表空間上,而表建在用戶里,為用戶所擁有,
          --用戶繼承數據表空間的存儲參數,表繼承用戶的存儲參數
          --如果initial設的過大,如:5M,則每建一個空表就要占用5M的空間,即使一條記錄也沒有
          --AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED,設置數據文件自動擴展,每一次擴展增加5M,最大空間不受限
          
          --建數據表空間2
          --物價、人事、結算、財務、總經理、合同、統計
          create tablespace USER_DATA2 datafile 
          'e:\oradata\user2_1.ora' size 512M,
          'e:\oradata\user2_2.ora' size 512M,
          'e:\oradata\user2_3.ora' size 512M,
          'e:\oradata\user2_4.ora' size 512M,
          'e:\oradata\user2_5.ora' size 512M,
          'e:\oradata\user2_6.ora' size 512M 
          AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED
          default storage (initial 128K next 2M pctincrease 0);
          
          --建索引表空間1
          create tablespace INDEX_DATA1 datafile 
          'f:\oradata\index1_1.ora' size 512M,
          'f:\oradata\index1_2.ora' size 512M,
          'f:\oradata\index1_3.ora' size 512M,
          'f:\oradata\index1_4.ora' size 512M 
          AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED
          default storage (initial 128K next 2M pctincrease 0);
          
          --建索引表空間2
          create tablespace INDEX_DATA2 datafile 
          'g:\oradata\index2_1.ora' size 512M,
          'g:\oradata\index2_2.ora' size 512M,
          'g:\oradata\index2_3.ora' size 512M,
          'g:\oradata\index2_4.ora' size 512M 
          AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED
          default storage (initial 128K next 2M pctincrease 0);
          
          --建回滾表空間1
          --設置初始值40M(initial 40M),則每在這個表空間中建一個回滾段,
          --此回滾段自動繼承此回滾表空間的存儲參數,也即默認文件為40M
          create tablespace ROLLBACK_DATA1 datafile 
          'd:\oradata\roll1_1.ora' size 512M,
          'd:\oradata\roll1_2.ora' size 512M 
          AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED
          default storage (initial 40M next 5M pctincrease 0);
          
          --建回滾表空間2
          create tablespace ROLLBACK_DATA2 datafile 
          'e:\oradata\roll2_1.ora' size 512M,
          'e:\oradata\roll2_2.ora' size 512M 
          AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED
          default storage (initial 40M next 5M pctincrease 0);
          
          --建臨時表空間1
          create tablespace TEMPORARY_DATA1 datafile 
          'f:\oradata\temp1_1.ora' size 512M 
          default storage (initial 10M next 3M pctincrease 0);
          
          --建臨時表空間2
          create tablespace TEMPORARY_DATA2 datafile 
          'g:\oradata\temp2_1.ora' size 512M 
          default storage (initial 10M next 3M pctincrease 0);
          
          --使其真正成為臨時的
          alter tablespace TEMPORARY_DATA1 temporary;
          alter tablespace TEMPORARY_DATA2 temporary;
          
          --建立新的回滾段,每個都一樣大,不同大小的回滾段沒有什么意義,系統是隨機選擇的。
          --建多少個,根據并發訪問用戶的多少,
          --如果你們公司每天有50-100個人員使用Oracle系統開發的管理軟件,應該20個以上
          
          create public rollback segment rb01 tablespace rollback_data1;
          create public rollback segment rb02 tablespace rollback_data1;
          create public rollback segment rb03 tablespace rollback_data1;
          create public rollback segment rb04 tablespace rollback_data1;
          create public rollback segment rb05 tablespace rollback_data1;
          create public rollback segment rb06 tablespace rollback_data1;
          create public rollback segment rb07 tablespace rollback_data1;
          create public rollback segment rb08 tablespace rollback_data1;
          create public rollback segment rb09 tablespace rollback_data2;
          create public rollback segment rb10 tablespace rollback_data2;
          --前8個建在回滾表空間1中,后8個在回滾表空間2
          create public rollback segment rb11 tablespace rollback_data2;
          create public rollback segment rb12 tablespace rollback_data2;
          create public rollback segment rb13 tablespace rollback_data2;
          create public rollback segment rb14 tablespace rollback_data2;
          create public rollback segment rb15 tablespace rollback_data2;
          create public rollback segment rb16 tablespace rollback_data2;
          create public rollback segment rb17 tablespace rollback_data2;
          create public rollback segment rb18 tablespace rollback_data2;
          create public rollback segment rb19 tablespace rollback_data2;
          create public rollback segment rb20 tablespace rollback_data2;
          
          --使回滾段online,即有效
          alter rollback segment rb01 online;
          alter rollback segment rb02 online;
          alter rollback segment rb03 online;
          alter rollback segment rb04 online;
          alter rollback segment rb05 online;
          alter rollback segment rb06 online;
          alter rollback segment rb07 online;
          alter rollback segment rb08 online;
          alter rollback segment rb09 online;
          alter rollback segment rb10 online;
          alter rollback segment rb11 online;
          alter rollback segment rb12 online;
          alter rollback segment rb13 online;
          alter rollback segment rb14 online;
          alter rollback segment rb15 online;
          alter rollback segment rb16 online;
          alter rollback segment rb17 online;
          alter rollback segment rb18 online;
          alter rollback segment rb19 online;
          alter rollback segment rb20 online;
          
          --查看現有回滾段及其狀態
          col segment format a30
          SELECT SEGMENT_NAME,OWNER,TABLESPACE_NAME,SEGMENT_ID,FILE_ID,STATUS FROM DBA_ROLLBACK_SEGS;
          
          --查看數據文件及其所在表空間、大小、狀態
          col file_name format a40
          col tablespace_name format a20
          select file_name,file_id,tablespace_name,bytes,status from dba_data_files;
          
          
          至此,表空間重新規劃完畢,這里講的比較通俗,還有好多參數值得設置,能夠把Oracle設置到最優的境界,
          表空間設置完了,下面,就該好好的整理一下Oracle的內存區了,
          Oracle很有意思,內存越大,效果越明顯,所以有必要好好調整一下SGA區,也就是主要配置ininorcl.ora參數文件。
          
          主站蜘蛛池模板: 辽阳县| 班玛县| 罗平县| 双鸭山市| 陕西省| 永善县| 虎林市| 聂荣县| 汝城县| 玉环县| 塔河县| 丹棱县| 泰来县| 日照市| 佛冈县| 三都| 丹凤县| 盐城市| 普兰店市| 瑞昌市| 广灵县| 乌拉特前旗| 安吉县| 陈巴尔虎旗| 靖安县| 龙井市| 积石山| 临颍县| 扎赉特旗| 唐山市| 息烽县| 三明市| 道真| 唐河县| 柞水县| 凤山市| 政和县| 华亭县| 鄂托克前旗| 临邑县| 新龙县|