DBA_Tablespace表空間的概念和管控(概念)


2014-07-24 Created By BaoXinjian

一、摘要


我們知道oarcle數據庫真正存放數據的是數據文件(data files);

Oarcle表空間(tablespaces)實際上是一個邏輯的概念,他在物理上是並不存在的,那么把一組data files 捻在一起就成為一個表空間;

在ORACLE數據庫中,所有數據從邏輯結構上看都是存放在表空間當中,當然表空間下還有段、區、塊等邏輯結構;

從物理結構上看是放在數據文件中。一個表空間可由多個數據文件組成;

 

1. 表空間屬性

  • 一個數據庫可以包含多個表空間,一個表空間只能屬於一個數據庫
  • 一個表空間包含多個數據文件,一個數據文件只能屬於一個表空間
  • 表這空間可以划分成更細的邏輯存儲單元

2. 基本的表空間(系統中默認創建的幾個表空間:)

  •     SYSTEM: 系統表表空間
  •     SYSAUX: 索引表空間
  •     USERS: 用戶表空間
  •     UNDOTBS1: 回滾表空間
  •     EXAMPLE: 工具表空間
  •     TEMP: 臨時表空間

3. 表空間的分類

  • 永久表空間                存放永久性數據,如表,索引等。
  • 臨時表空間                不能存放永久性對象,用於保存數據庫排序,分組時產生的臨時數據。
  • UNDO表空間             保存數據修改前的鏡象。

4. 表空間的管理

  • 字典管理:全庫所有的空間分配都放在數據字典中。容易引起字典爭用,而導致性能問題。
  • 本地管理:空間分配不放在數據字典,而在每個數據文件頭部的第3到第8個塊的位圖塊,來管理空間分配。

5. 基本操作

  • 1: 創建表空間
  • 2: 表空間管理
  • 3: 維護表空間
  • 4: 表空間配額

 

二、結構分析


1. 表空間和數據文件的關系

 2. 數據庫存儲結構

三、案例1 - 創建表空間


1. 創建表空間,並指定兩個數據庫文件

 1 CREATE TABLESPACE BXJ_DATA  2 DATAFILE '/oradata/BXJ_DATA_001.dbf'   
 3 SIZE 100M  4 EXTENT MANAGEMENT LOCAL  5 SEGMENT SPACE MANAGEMENT AUTO ONLINE;  6 
 7 ALTER TABLESPACE BXJ_DATA  8 ADD DATAFILE '/oradata/BXJ_DATA_001.dbf'  
 9 SIZE 100M 10 AUTOEXTEND OFF;

 

四、案例2 - 表空間管理


1. 常用的表查詢

  • --包含數據庫中所有表空間的描述信息
    • SELECT * FROM DBA_TABLESPACES
  • --包含當前用戶的表空間的描敘信息
    • SELECT * FROM USER_TABLESPACES
  • --包含從控制文件中獲取的表空間名稱和編號信息
    • SELECT * FROM V$TABLESPACE;
  • --包含數據文件以及所屬的表空間的描述信息
    • SELECT * FROM DBA_DATA_FILES
  • --包含臨時數據文件以及所屬的表空間的描述信息
    • SELECT * FROM DBA_TEMP_FILES
  • --包含從控制文件中獲取的數據文件的基本信息,包括它所屬的表空間名稱、編號等
    • SELECT * FROM V$DATAFILE
  • --包含所有臨時數據文件的基本信息
    • SELECT * FROM V$TEMPFILE

2. 查看表空間使用情況

3. 計算表空間使用情況(考慮了數據文件自動增長情況)

 

五、案例3 - 維護表空間


1. 表空間狀態有下面幾種狀態:online、offline、read only、read write

SELECT FILE#, STATUS, ENABLED FROM V$DATAFILE

2. 設置為脫機狀態

SQL>ALTER TABLESPACE TBS_DM_DAT OFFLINE IMMEDIATE;

3. 設置為聯機狀態

SQL> ALTER TABLESPACE TBS_DM_DAT ONLINE;

4. 設置為只讀狀態

SQL>ALTER TABLESPACE TBS_DM_DAT READY ONLY;

5. 設置為讀寫狀態

SQL>ALTER TABLESPACE TBS_DM_DAT READ WRITE;

6. 修改表空間名稱

在ORACLE 10g 之前,表空間的名稱是不能被修改的。在ORACLE 11G中,通過ALTER TABLESPACE 語句中使用RENAME子句,數據庫管理員可以修改表空間的名稱

7. 修改表空間自動增加打開

ALTER DATABASE DATAFILE '/database/oracle/oradata/gsp/tbs_dm_data_002.dbf' AUTOEXTEND ON;

8. 修改表空間自動增加關閉

ALTER DATABASE DATAFILE '/database/oracle/oradata/gsp/tbs_dm_data_002.dbf' AUTOEXTEND OFF;

9. 修改表空間的數據庫文件大小

ALTER DATABASE DATAFILE  '/database/oracle/oradata/gsp/tbs_dm_data_002.dbf' resize 1921m;

10 新增表空間的一個數據庫文件

 

ALTER TABLESPACE TBS_DM_DAT ADD DATAFILE '/database/oracle/oradata/gsp/tbs_dm_data_003.dbf' size 1921m;

 

六、案例4 - 表空間配額度


表空間不足與用戶配額不足是兩種不同的概念。表空間的大小是指實際的用戶表空間的大小,而配額大小指的是用戶指定使用表空間的的大小。兩者的解決方式亦不相同

1. 查看用戶和表弓箭配額

  • 查看所有用戶表空間的配額情況:    SELECT * FROM DBA_TS_QUOTAS       
  • 查看當前用戶表空間的配額情況:   SELECT * FROM USER_TS_QUOTAS

 

 Thanks and Regards

參考: http://www.cnblogs.com/kerrycode/p/3418694.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM