oracle儲存結構_資料表空間-筆記

來源:互聯網
上載者:User

標籤:


  

 
    oracle資料庫,所有資料從邏輯結構上看都是存放在資料表空間當中,當然資料表空間下還有段、區、塊等邏輯結構。
一個ORACLE資料庫能夠有一個或多個資料表空間,而一個資料表空間則對應著一個或多個物理的資料庫檔案。

資料表空間的定義:存放資料的一個容器。資料表空間由一個資料檔案或多個資料檔案組成,一個資料檔案只屬於一個表
空間。
-----(這個容器會隨著資料檔案的增加而增大)


資料表空間的作用能協助DBA使用者完成以下工作:
    1.決定資料庫實體的空間分配;
    2.設定資料庫使用者的空間份額;
    3.控制資料庫部分資料的可用性;
    4.分布資料於不同的裝置之間以改善效能;
    5.備份和恢複資料。



以oracle為準,oracle系統裡有多少基本的資料表空間。
    select * from dba_tablespaces;

系統中預設建立的幾個資料表空間:

    SYSTEM       系統資料表空間

    SYSAUX       系統輔助資料表空間

    USERS         使用者資料表空間

    UNDOTBS1     復原資料表空間

    EXAMPLE       

    TEMP             暫存資料表空間

系統中必須的資料表空間有那幾個?

答案: SYSTEM、SYSAUX、TEMP、UNDO, 像USERS、EXAMPLE等資料表空間是可有可無的。



資料表空間的分類:(按儲存時間分)

1.永久資料表空間             存放永久性的資料,如表,索引等。
2.暫存資料表空間             存放臨時資料,儲存PGA記憶體溢出時的資料排序,分組產生的臨時資料
3.UNDO資料表空間          儲存資料修改前的鏡像。(修改資料之前,oracle會拷貝一份到UNDO資料表空間)


資料表空間的管理方式:
A.本地管理資料表空間(LMT)
B.資料字典管理資料表空間(DMT)

    A.本地管理資料表空間:一種比較先進的管理擴充(extent)的方式;當使用本地管理資料表空間時是使用6個塊
(從第三個到第八個)來標識整個資料表空間裡的每一個擴充(extent);

    B.字典管理資料表空間:這種方式是為了與之前版本相容而提供的。11g裡是不能建立字典管理資料表空間的
,被強制推薦,只能倒入老版本中的字典管理資料表空間。

--------------------------------------------------------------------

資料表空間增刪查改相關操作:

——建立資料表空間:
    1.建立包含一個初始大小為10M的資料檔案,每次自增長1M,最大自增長為20M的資料表空間。
        SQL> create tablespace tbs
          2  datafile ‘/oracle/tbs01.dbf‘ size 10M autoextend on next 1M maxsize 20M;

    2.建立包含兩個資料檔案的資料表空間,第一個資料檔案初始大小為20m,每次自增長為1M,自增長最大為30M;
               第二個資料檔案初始大小為10M,每次自增長為5M,無限制大小;
        SQL> create tablespace ts
          2  datafile ‘/oracle/ts01.dbf‘ size 20M autoextend on next 1M maxsize 30M,
          3  ‘/oracle/ts02.dbf‘ size 10M autoextend on next 5M;


——擴充資料表空間;
        當表超過資料表空間大小時,要對錶空間進行擴充。(增加資料表空間大小的方法有三種)
    (1)添加資料檔案。
    (2)改變資料檔案大小。
    (3)允許資料檔案自動擴充。

     a.添加資料檔案:
          語句:alter tablespace tablespace_name add datafiel ‘path_dbf‘ size 大小;
     --為ts資料表空間添加一個初始大小為3M不自增長的資料檔案;    
        SQL> alter tablespace ts
          2  add datafile ‘/oracle/ts03.dbf‘ size 3M;
     思考——
            SQL> alter tablespace ts
            2  add datafile ‘/oracle/ts04.dbf‘ size 2M autoextend on next 2M maxsize 10M
            3  /


     b. 改變資料檔案的大小
        alter database datafile ‘path_.dbf‘ resze 大小;
       -為ts資料表空間的資料檔案增加8m;
              SQL> alter database datafile ‘/oracle/ts04.dbf‘ resize 8M;


      c.允許資料檔案自動擴充
          alter database datafile ‘path_.dbf‘ autoextend on next size_大小 maxsize size_大小;
       -改變tbs資料表空間01號資料檔案為自增長,每次自增長1M,最大限制為10M;
               SQL> alter database datafile ‘/oracle/tbs01.dbf‘ autoextend on next 1M maxsize 10M;


-------如何為建立表指定資料表空間;
     兩個例子:
      SQL> create table c1(a int,b char)
      2  tablespace tbs
      3  /
    
                  
    SQL> create table c2
      2  tablespace ts
      3  as select * from dept;


----------把表遷移到另外一個資料表空間裡;
               語句:alter table table_name move tablespace new_tablespace_name;
                    
                       SQL> alter table c2 move tablespace tbs;

             ----另------
                語句:alter table table_name move;
                    整理資料表空間片段;

-------------刪除資料表空間:
    刪除ts資料表空間;
       SQL>drop tablespace tq;
    
    刪除資料表空間,一併刪除資料檔案;
    語句:drop tabelpaces tablespace_name including contents and datafiles; 
    SQL> drop tablespace tq including contents and datafiles;


--------修改資料表空間名稱
SQL> alter tablespace ts rename to ts1;



--------------查詢資料表空間相關:
  
  稍微回顧一下:學習至今,學了幾個oracle視圖?
    1.user_constraint          約束相關視圖
    2.recyclebin         資源回收筒視圖
    3.dba_tables                   表屬性視圖
    4.dba_tablespaces           資料表空間視圖
      5.dba_data_files               資料檔案視圖


以幾個常用查詢為例:
----查詢該表屬於哪個資料表空間;
SQL>select table_name,tablespace_name from dba_tables where table_name=‘‘;

--包含資料庫中所有資料表空間的描述資訊
SQL> select * from dba_tablespaces;

--包含目前使用者的資料表空間的描敘資訊
SQL> select * from user_tablespaces;

--包含從控制檔案中擷取的資料表空間名稱和編號資訊
SQL> select * from v$tablespace;

 

查看資料檔案

--包含資料檔案以及所屬的資料表空間的描述資訊
SQL> select * from dba_data_files;

--包含臨時資料檔案以及所屬的資料表空間的描述資訊
SQL> select * from dba_temp_files;

--包含從控制檔案中擷取的資料檔案的基本資料,包括它所屬的資料表空間名稱、編號等
SQL> select * from dba_temp_files;

--包含所有臨時資料檔案的基本資料
SQL> select * from v$datafile;

oracle儲存結構_資料表空間-筆記

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.