我們知道oarcle數(shù)據(jù)庫(kù)真正存放數(shù)據(jù)的是數(shù)據(jù)文件(data files),Oarcle表空間(tablespaces)實(shí)際上是一個(gè)邏輯的概念,他在物理上是并不存在的,那么把一組data files 捻在一起就成為一個(gè)表空間。 表空間屬性: 一個(gè)數(shù)據(jù)庫(kù)可以包含多個(gè)表空間,一個(gè)表空間只能屬于一個(gè)數(shù)據(jù)庫(kù) 一個(gè)表空間包含多個(gè)數(shù)據(jù)文件,一個(gè)數(shù)據(jù)文件只能屬于一個(gè)表空間 表這空間可以劃分成更細(xì)的邏輯存儲(chǔ)單元
Oracle數(shù)據(jù)庫(kù)的存儲(chǔ)結(jié)構(gòu):
從邏輯的角度來看,一個(gè)數(shù)據(jù)庫(kù)(database)下面可以分多個(gè)表空間(tablespace);一個(gè)表空間下面又可以分多個(gè)段(segment);一個(gè)數(shù)據(jù)表要占一個(gè)段(segment),一個(gè)索引也要占一個(gè)段(segment )。 一個(gè)段(segment)由多個(gè) 區(qū)間(extent)組成,那么一個(gè)區(qū)間又由一組連續(xù)的數(shù)據(jù)塊(data block)組成。這連續(xù)的數(shù)據(jù)塊是在邏輯上是連續(xù)的,有可能在物理磁盤上是分散。 那么從物理的角度上看,一個(gè)表空間由多個(gè)數(shù)據(jù)文件組成,數(shù)據(jù)文件是實(shí)實(shí)在在存在的磁盤上的文件。這些文件是由oracle數(shù)據(jù)庫(kù)操作系統(tǒng)的block 組成的。
Segment(段) :段是指占用數(shù)據(jù)文件空間的通稱,或數(shù)據(jù)庫(kù)對(duì)象使用的空間的集合;段可以有表段、索引段、回滾段、臨時(shí)段和高速緩存段等。
Extent (區(qū)間):分配給對(duì)象(如表)的任何連續(xù)塊叫區(qū)間;區(qū)間也叫擴(kuò)展,因?yàn)楫?dāng)它用完已經(jīng)分配的區(qū)間后,再有新的記錄插入就必須在分配新的區(qū)間(即擴(kuò)展一些塊);一旦區(qū)間分配給某個(gè)對(duì)象(表、索引及簇),則該區(qū)間就不能再分配給其它的對(duì)象. 查看表空間: SQL> select * from v$tablespace;
TS# NAME INCLUD BIGFIL FLASHB ENCRYP
---------- ------------------------------------------------------------ ------------ ------ ------
0 SYSTEM YES NO YES
1 UNDOTBS1 YES NO YES
2 SYSAUX YES NO YES
4 USERS YES NO YES
3 TEMP NO NO YES
查看每個(gè)表空間有哪些數(shù)據(jù)文件: SQL> desc dba_data_files;
Name Null? Type
----------------------------------------- -------- ----------------------------
FILE_NAME VARCHAR2(513)
FILE_ID NUMBER
TABLESPACE_NAME VARCHAR2(30)
BYTES NUMBER
BLOCKS NUMBER
STATUS VARCHAR2(9)
RELATIVE_FNO NUMBER
AUTOEXTENSIBLE VARCHAR2(3)
MAXBYTES NUMBER
MAXBLOCKS NUMBER
INCREMENT_BY NUMBER
USER_BYTES NUMBER
USER_BLOCKS NUMBER
ONLINE_STATUS VARCHAR2(7)
查看詳細(xì)數(shù)據(jù)文件: SQL> select file_name,tablespace_name from dba_data_files;
FILE_NAME TABLESPACE_NAME
----------------------------------------------------------------------------------------------------------------
/ora10/product/oradata/ora10/users01.dbf USERS
/ora10/product/oradata/ora10/sysaux01.dbf SYSAUX
/ora10/product/oradata/ora10/undotbs01.dbf UNDOTBS1
/ora10/product/oradata/ora10/system01.dbf SYSTEM
創(chuàng)建一個(gè)表空間: SQL> create tablespace paul datafile '/ora10/product/oradata/ora10/paul01.dbf' size 20m;
Tablespace created.
查看我們創(chuàng)建的表空間: [ora10@localhost ora10]$ pwd
/ora10/product/oradata/ora10
[ora10@localhost ora10]$ ls
control01.ctl control03.ctl redo01.log redo03.log system01.dbf undotbs01.dbf
control02.ctl paul01.dbf redo02.log sysaux01.dbf temp01.dbf users01.dbf
表空間根據(jù)對(duì)區(qū)間(extents)的管理分為兩種類型
詞典管理表空間(Dictionary-managed tablespaces) 在表空間里,有的區(qū)間被占用了,有的沒被占用,這些數(shù)據(jù)是放在數(shù)據(jù)字典里的。當(dāng)你對(duì)這個(gè)表空間進(jìn)行分配或釋放的時(shí)候,數(shù)據(jù)文件里相關(guān)的表就會(huì)做修改。
本地管理表空間(locally managed tablespace) 本地管理表空間不是在數(shù)據(jù)詞典里存儲(chǔ)表空間的,由自由區(qū)管理的表空間。用位圖來自由的管理區(qū)間。一個(gè)區(qū)間對(duì)一個(gè)位,如果這個(gè)位是1表示已經(jīng)被占用,0表示未被占用。 詞典管理空間表示“中央集權(quán)治”,本地管理表空間表示“省市自治區(qū)”,一個(gè)databases表示中國(guó),tablespaces表示一個(gè)省或直轄市。詞典管理統(tǒng)一由中央調(diào)配。而本地管理表示有高度的自治權(quán)利,自已各種資源的分配不用上報(bào)中央。
Undo tablespace Undo 類型的表空間,當(dāng)你對(duì)一張表或一條記錄進(jìn)行修改的時(shí)候,它會(huì)對(duì)修改之前的信息進(jìn)行保存,這樣可以保證數(shù)據(jù)的回滾。Undo 只包含undo類型的對(duì)象,不能包含任何其他對(duì)象,只適合于數(shù)據(jù)文件和區(qū)間管理。 創(chuàng)建undo 類型的表空間: SQL>create undo tablespace undo1 datafile '/ora10/product/oradata/ora10/paul01.dbf' size 20m;
Temporary Tablespaces 臨時(shí)表空間,相當(dāng)于一個(gè)臨時(shí)的垃圾場(chǎng)。用于排序操作,比如你要做一次大數(shù)據(jù)量的查詢,但在內(nèi)存無法存儲(chǔ)這么大量的數(shù)據(jù),然后會(huì)在磁盤上建立一個(gè)臨時(shí)的表空間用記存放這些數(shù)據(jù)。Oracle就會(huì)用這個(gè)臨時(shí)表空間做排序,存儲(chǔ)中間結(jié)果。 一個(gè)全局的臨時(shí)表空間,可以由多個(gè)用戶共享,誰需要誰使用。但它只能存放臨時(shí)的數(shù)據(jù),不能包含任何永久性對(duì)象。 建議用本地管理方式創(chuàng)建這個(gè)表空間。 創(chuàng)建臨時(shí)表空間: SQL>create temporary tablespace temp datafile '/ora10/product/oradata/ora10/paul01.dbf' size 20m extent management local uniform size 4m;
刪除表空間: 刪除表空間,使用命令drop tablespace ‘表空間名’ 但是有3個(gè)選項(xiàng)需要注意: 例: DROP TABLESPACE FESCO ‘表空間名’ CONTENTS AND DATAFILES CASCADE CONSTRAINTS;
|
|