oracle入坑日記<四>表空間

 

1
 
表空間是什麼

1.一、數據表看作的貨品,表空間就是存放貨品的倉庫。SQLserver 用戶能夠把表空間看作 SQLserver 中的數據庫。html

1.二、引用【日記二】的總結來解釋表空間。數據庫

一個數據庫由一個或多個表空間組成,一個表空間只能屬於一個數據庫
一個表空間由一個或多個多個數據文件組成,一個數據文件只能屬於一個表空間
一個數據文件由一個或多個操做系統塊組成,每個操做系統塊只能數以一個數據文件
一個表空間能夠包含一個或多個段,一個段只能屬於一個表空間
一個段由一個或多個區組成,每個區只能屬於一個段
一個區由一個或多個Oracle 塊組成,每個Oracle塊只能屬於一個區
一個區只能屬於一個數據文件,數據文件的空間能夠分配到一個或多個區
一個Oracle 塊由一個或多個操做系統塊組成,一個操做系統塊是一個Oracle塊的一部分oracle

 

 

2
 
表空間分類、做用

2.一、表空間有三種:ide

  2.1.一、數據表空間:用於存放數據(表)的主要表空間;flex

  2.1.二、臨時表空間:在數據庫進行排序運算、管理索引、訪問視圖等操做時提供臨時的運算空間,當運算完成以後系統會自動清理;spa

  2.1.三、UNDO表空間:主要做用是 事務恢復、事務回滾、讀一致性 :操作系統

    2.1.3.一、事務恢復:在進行DML操做時,insert、update、delete操做時,undo段記錄事務的反向操做而且redo日誌也記錄undo段的操做,既redo保護undo段的信息。當實例關閉或意外崩潰後,再次open(打開)時實例須要對沒有commit(提交)的事務進行回滾,完成事務的恢復。3d

    2.1.3.二、事務回滾:用戶進行DML操做後沒有進行commit(提交),須要修改前的數據。只要該操做在undo段保護的時間內,此時執行rollback(回滾)操做能夠回滾到最近記錄點或上一次commit(提交)操做後的狀態,恢復到數據修改前的狀態。日誌

    2.1.3.三、讀一致性:當進行DML操做時,undo段會記錄數據變動前的狀態(經過構造原數據的一致性數據塊)。若是用戶尚未進行commit(提交)操做,其餘人查詢此條數據會看到數據變動前的狀態。由於其餘用戶讀到的數據是undo段中原數據塊中的數據,保證沒有commit(提交)的數據讀取的一致性。code

 

 

3
 
建立表空間

  3.一、建立臨時表空間

-- 建立臨時表空間
create temporary tablespace [tempspace_name] 
tempfile [dbf_path]         --指定表空間dbf文件存放位置
size 50m                    --初始大小50m
autoextend on
next 50m maxsize 20480m     --自動增加50m 最大2g
extent management local;

3.二、建立數據表空間

-- 建立數據表空間
create tablespace [tablespace_name]
logging  
datafile [dbf_path]         --指定表空間dbf文件存放位置
size 50m                    --初始大小50m
autoextend on  
next 50m maxsize 20480m     --自動增加50m 最大2g
extent management local; 

3.三、建立用戶並指定表空間(也能夠直接給已有用戶指定表空間)

--建立用戶並指定表空間
create user [user_name] identified by [password]  --建立用戶
default tablespace [tablespace_name]              --指定數據表空間
temporary tablespace [tempspace_name];            --指定臨時表空間
--已有用戶指定表空間
alter user [user_name] default tablespace [tablespace_name];

若是新建用戶指定完表空間後須要受權  grant connect,resource,dba to [user_name]; 

4
 
刪除表空間

4.一、刪除表空間  drop tablespace [tablespace_name] including contents and datafiles; --刪除表空間及數據文件 

4.二、 表空間文件沒法直接手動刪除。若強行刪除dbf文件,可能引發數據庫異常。

<<============================================================================================================================================>>

此日記系列僅作普通開發使用Oracle,並不是專業DBA
相關文章
相關標籤/搜索