###我所使用的系統為linux as 4u6資料庫版本為10.2.0.1.0###
在這裡,細說下表空間。
乙個資料庫可以有乙個過多個表空間。
表空間是由乙個或多個資料檔案組成,裡面存放了乙個或多個段(segment)。
表空間以下面幾種方式分類
1。按資料檔案的型別分為
大檔案表空間。2。按管理方式分為小檔案表空間。
本地管理表空間3。按型別分為資料字典管理表空間
永久表空間4。按儲存的內容分為臨時表空間
回滾段表空間
系統表空間先從檔案型別看起。*系統輔助表空間(sysaux tablespace)
非系統表空間
按檔案型別分為大檔案表空間(bigfile tablespace)和小檔案表空間(smallfile tablespace)使用大檔案表空間需要注意的地方:建立表空間的時候預設為小檔案表空間(smallfile tablespace)。
使用大檔案表空間有如下好處:
1。在乙個表空間裡只有乙個大的資料檔案,以後不需要再去管理資料檔案。
2。乙個大的資料檔案相當於1024個小的資料檔案,這樣一來,在乙個塊大小為32k時,整個資料庫可以達到8eb。
--1eb=1024pb 1pb=1024tb 1tb=1024gb 1gb=1024mb 1mb=1024kb 1kb=1024b
3。使用乙個大的資料檔案可以代替多個小資料檔案,這樣對資料檔案的管理就少多了。
4。當開啟資料庫,發生檢查點,執行dbwr程序時使用大檔案表空間會增強效能。
1。要使用在oracle的asm(自動儲存管理)的儲存空間或者分散(striping)儲存的lvm中,或者raid陣列上。#大檔案表空間只支援本地管理表空間(lmt)和本地段空間管理(assm)。--為了提高i/o速度。
2。不要把大檔案表空間建立在不能分散(striping)儲存的系統上。
3。不要把大檔案表空間建立在沒有空間(剩餘空間少)的磁碟組上。
4。建立大檔案表空間時不推薦建立在不能擴充套件的儲存空間裡。
#在臨時表空間與回滾段表空間,只能用手動段空間管理。
#自動擴充套件資料檔案必須是起用的,而且最大檔案大小必須是不限制。
#系統表空間和系統輔助(sysaux)表空間不能使用大檔案表空間。
按管理方式看一下。
本地管理表空間:一種比較先進的管理擴充套件(extent)的方式。是用bitmap來管理表空間裡的所有的extent。當使用本地管理表空間時還分為自動管理段(segment)空間和手動管理段空間。當使用本地管理表空間時是使用6個塊(從第三個到第八個)來標識整個表空間裡的每乙個擴充套件(extent)。
其中的每一位(bit)來表示每個擴充套件的狀態。1為已被分配,0為可被分配。
在本地管理表空間的方式裡可以選擇每個extent的大小是固定(uniform)的或是自動的。
在自動管理,系統一般是剛開始乙個extent8個block,然後逐漸增加。
固定大小為每個extent都是固定大小的,推薦使用。
##在臨時表空間和回滾段表空間沒有這個選項,只能使用手動管理段空間。
##關於這兩種方式,在別的文件會詳細講到。
在這種方式下,關於擴充套件(extent)的分配,會分為如下幾個引數來管理。系統表空間為本地管理方式的話,其他的表空間是不能使用字典管理的。initial size:初始分配擴充套件(extent)的大小。
next size:第二個開始分配時的大小
minimum size:最小分配大小
increment size (%):下一次分配時比先前增加多少
minimum number:最少個數
maximum number:最多個數
從字典管理表空間可以轉到本地管理,但從本地管理不能轉到字典管理。
10g裡是不能建立字典管理表空間的,只能倒入。
因此在這裡不深入研究。
按型別看一下。
永久表空間:一般儲存資料的表空間系統表空間,普通使用者使用的表空間都為永久表空間。
只要是要保留的資料,都得放在這裡。
永久表空間的狀態有三種:讀寫,唯讀,離線。
只有在永久表空間,才能配置assm管理模式。
可以設定記錄日誌模式。建立選yes,以便資料庫出問題後進行恢復。
可以設定為系統預設表空間。這樣,建立使用者時,沒有指定預設表空間,就自動設定為系統預設表空間。
##設定預設表空間的命令:alter database default tablespace
;在永久表空間裡,分系統表空間和非系統表空間。
系統表空間-存放資料字典等重要的表,一般使用者是沒有許可權修改(或者訪問)。
非系統表空間-普通使用者用來存放資料的表空間。
臨時表空間:一般用來排序時使用。
當進行排序時,pga區域的資源會不夠,這時候會使用臨時表空間的空間來進行排序。回滾段表空間:用來存放修改中資料的原資料。臨時表空間裡不存放實際的資料,所以,即使出了問題,也不需要恢復,而且,也不需要備份,因此也不需要記錄日誌。
臨時表空間只能使是讀寫模式,而且只能為手動管理段空間模式。
可以設定為系統預設臨時表空間。這樣,建立使用者時,沒有指定預設臨時表空間,就自動設定為系統預設臨時表空間。
##設定預設表空間的命令:alter database default temporary tablespace
;
回滾段表空間是用來保證資料讀一致性的。或者當乙個事務要回滾時,得把回滾段表空間的內容重新拿到原先的表裡。
##關於回滾段表空間會有單獨的講解。
這裡簡單的說明了一下表空間的分類,各個的特點等。
關於建立表空間的詳細方式,請看"表空間建立sql語句"
technorati : oracle 表空間 tablespace
del.icio.us : oracle 表空間 tablespace
zooomr : oracle 表空間 tablespace
flickr : oracle 表空間 tablespace
innodb表空間儲存結構
儲存結構 innodb的邏輯儲存結構如圖所示 其空間管理由段,區和頁構成。段包括葉子節點段,即所有索引的葉子節點都儲存在這個段裡,葉子節點儲存資料 次級索引是主鍵 和鍵值,這可以方便管理並且減少隨機io 還包括非葉子節點,儲存的是指向另外節點的指標和鍵值 回滾段儲存的是每個表的undo日誌 具體分析...
oracle表空間建立2
這裡介紹建立oracle表空間的步驟,首先查詢空閒空間 增加oracle表空間 修改檔案大小語句如下 建立oracle表空間,最後更改自動擴充套件屬性。ad 1 先查詢空閒空間 select tablespace name,file id,block id,bytes,blocks from dba...
oracle的表如何跨表空間儲存
oracle的乙個表所在表空間,空間已經佔滿,其他表空間有剩餘空間.實現表存在另外的表空間 方案一 利用原表重建分割槽表 1 原表temp,存在欄位id,time 2 temp存在紀錄 3 根據原表temp建立新的分割槽表temp new create table temp new id,time ...