1.一、數據表看作的貨品,表空間就是存放貨品的倉庫。SQLserver 用戶能夠把表空間看作 SQLserver 中的數據庫。html
1.二、引用【日記二】的總結來解釋表空間。數據庫
一個數據庫由一個或多個表空間組成,一個表空間只能屬於一個數據庫
一個表空間由一個或多個多個數據文件組成,一個數據文件只能屬於一個表空間
一個數據文件由一個或多個操做系統塊組成,每個操做系統塊只能數以一個數據文件
一個表空間能夠包含一個或多個段,一個段只能屬於一個表空間
一個段由一個或多個區組成,每個區只能屬於一個段
一個區由一個或多個Oracle 塊組成,每個Oracle塊只能屬於一個區
一個區只能屬於一個數據文件,數據文件的空間能夠分配到一個或多個區
一個Oracle 塊由一個或多個操做系統塊組成,一個操做系統塊是一個Oracle塊的一部分oracle
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.一、建立臨時表空間
-- 建立臨時表空間 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.一、刪除表空間 drop tablespace [tablespace_name] including contents and datafiles; --刪除表空間及數據文件
4.二、 表空間文件沒法直接手動刪除。若強行刪除dbf文件,可能引發數據庫異常。
<<============================================================================================================================================>>