oracle逻辑结构包含,在Oracle中,逻辑结构由哪几个部分组成?
?答案部分
Oracle中邏輯結(jié)構(gòu)包括表空間(TABLESPACE)、段(SEGMENT)、區(qū)(EXTENT)和塊(BLOCK)。數(shù)據(jù)庫由表空間構(gòu)成,而表空間又是由段構(gòu)成,而段又是由區(qū)構(gòu)成,而區(qū)又是由Oracle塊構(gòu)成,即塊→區(qū)→段→表空間→數(shù)據(jù)庫。
邏輯結(jié)構(gòu)圖簡單如下圖所示:
圖3-4Oracle邏輯結(jié)構(gòu)圖
Oracle數(shù)據(jù)庫在邏輯上將數(shù)據(jù)存儲在表空間中,在物理上將數(shù)據(jù)存儲在數(shù)據(jù)文件中。
①數(shù)據(jù)庫(Database):一個數(shù)據(jù)庫是由多個表空間組成,也可以說多個不同類型的表空間組成了一個數(shù)據(jù)庫。
②表空間(Tablespace):數(shù)據(jù)庫中的基本邏輯結(jié)構(gòu),一系列數(shù)據(jù)文件的集合。一個表空間可以包括多個數(shù)據(jù)文件,這多個數(shù)據(jù)文件可以分布在不同的磁盤上,這樣可以提高表空間的I/O請求。數(shù)據(jù)庫的數(shù)據(jù)作為一個整體存儲在構(gòu)成數(shù)據(jù)庫每一個表空間的數(shù)據(jù)文件中。一個Oracle數(shù)據(jù)庫必須至少有兩個表空間(必需的SYSTEM和SYSAUX表空間),每個表空間包含一個或多個數(shù)據(jù)文件。臨時文件是一個屬于臨時表空間的文件,它是使用TEMPFILE選項創(chuàng)建的。臨時表空間不能包含永久數(shù)據(jù)庫對象(例如表),并且通常用于排序。表空間可以分為大文件表空間和小文件表空間,參考【真題154、什么是大文件表空間(BIGFILE TABLESPACE)?】。
③段(Segment):對象在數(shù)據(jù)庫中占用的空間。當(dāng)在數(shù)據(jù)庫中創(chuàng)建表或索引時,系統(tǒng)就會創(chuàng)建對應(yīng)的段。段是由多個可以不連續(xù)的區(qū)組成,所以段是可以跨數(shù)據(jù)文件的。當(dāng)段空間不足時,系統(tǒng)將以區(qū)為單位為段分配空間。段按照類型可以分為數(shù)據(jù)段、索引段、Undo段、臨時段等,其中:
l數(shù)據(jù)段:每個非集群的、不按索引組織的表都有一個數(shù)據(jù)段,但外部表、全局臨時表和分區(qū)表除外,這些表中的每個表都有一個或多個段。表中的所有數(shù)據(jù)都存儲在相應(yīng)數(shù)據(jù)段的區(qū)中。對于分區(qū)表,每個分區(qū)都有一個數(shù)據(jù)段。每個集群也都有一個數(shù)據(jù)段。集群中每個表的數(shù)據(jù)都存儲在集群的數(shù)據(jù)段中。
l索引段:每個索引都有一個索引段,存儲其所有數(shù)據(jù)。對于分區(qū)索引,每個分區(qū)都有一個索引段。
lUndo段:Oracle為每個數(shù)據(jù)庫實例創(chuàng)建一個Undo表空間,該表空間包含大量用于臨時存儲還原信息的Undo段。Undo段中的信息用于生成讀一致性數(shù)據(jù)庫信息,并且在數(shù)據(jù)庫恢復(fù)過程中,用于為用戶回滾未提交的事務(wù)處理。
l臨時段:臨時段是在需要臨時工作區(qū)來執(zhí)行SQL語句時,由Oracle數(shù)據(jù)庫創(chuàng)建的。在語句執(zhí)行完成后,臨時段的區(qū)將返回到實例以備將來使用。Oracle會為每個用戶指定一個默認(rèn)臨時表空間,或指定一個在數(shù)據(jù)庫范圍內(nèi)使用的默認(rèn)臨時表空間。
④區(qū)(Extent):為數(shù)據(jù)一次性預(yù)留的一個較大的存儲空間。區(qū)是一個空間分配單位,當(dāng)數(shù)據(jù)庫對象空間不足時,通常會以區(qū)為單位進(jìn)行分配空間。區(qū)是由多個連續(xù)的數(shù)據(jù)塊組成,由此可知區(qū)是不能跨數(shù)據(jù)文件的。
⑤塊(Block):Oracle最基本的存儲單位,在建立數(shù)據(jù)庫的時候指定DB_BLOCK_SIZE值,該參數(shù)表示數(shù)據(jù)庫標(biāo)準(zhǔn)數(shù)據(jù)塊的大小,默認(rèn)大小為8K,它是數(shù)據(jù)庫一次標(biāo)準(zhǔn)I/O的大小,一個標(biāo)準(zhǔn)的Oracle數(shù)據(jù)塊是由連續(xù)的操作系統(tǒng)數(shù)據(jù)塊組成的。1個8K的數(shù)據(jù)塊理論上最多可存儲700多行,所以,塊越大,在相同情況下存儲的行就越多,而Oracle是以塊為單位進(jìn)行訪問的,那么產(chǎn)生的邏輯讀就越小。需要注意的是,塊越大,不同的會話訪問不同的數(shù)據(jù)落在同一個塊的幾率就增加了,這就容易產(chǎn)生熱點塊競爭,所以,在OLAP中,可以適當(dāng)將塊調(diào)大。
真題1、Note the following structures in your database server:
1、Extents
2、OS Blocks
3、Tablespace
4、Segments
5、Oracle Data Block
Which option has the correct arrangement of these structures FROM the smallest to the largest?()
A、2,5,1,4,3
B、1,2,3,4,5
C、5,2,1,3,4
D、2,1,5,4,3
答案:A。
Oracle中邏輯結(jié)構(gòu)包括表空間、段、區(qū)和塊。說明一下:數(shù)據(jù)庫由表空間構(gòu)成,而表空間又是由段構(gòu)成,而段又是由區(qū)構(gòu)成,而區(qū)又是由Oracle塊構(gòu)成的這樣的一種結(jié)構(gòu),可以提高數(shù)據(jù)庫的效率,塊→區(qū)→段→表空間→數(shù)據(jù)庫。題目問的是從小到大的排序哪個是正確的。
本題中,對于選項A,OS BLOCKS->ORACLE DATA BLOCK->EXTENTS->SEGMENTS->TABLESPACE,排序正確。所以,選項A正確。
對于選項B,Extents不是最小的,排除掉。所以,選項B錯誤。
對于選項C,Oracle數(shù)據(jù)塊也不是最小的,排除掉。所以,選項C錯誤。
對于選項D,塊組成區(qū),而不是區(qū)組成塊。所以,選項D錯誤。
所以,本題的答案為A。
真題2、下面有關(guān)TABLESPACE和DATAFILE之間的關(guān)系的描述中,說法錯誤的是()
A、一個TABLESPACE可以有一個或多個DATAFILE
B、每個DATAFILE只能在一個TABLESPACE內(nèi)
C、TABLE中的數(shù)據(jù),通過HASH算法分布在TABLESPACE中的各個DATAFILE中
D、DATAFILE是邏輯上的概念,TABLESPACE則在物理上儲存了數(shù)據(jù)庫的種種對象
答案:D。
關(guān)于數(shù)據(jù)庫的邏輯結(jié)構(gòu)和物理結(jié)構(gòu),表空間(TABLESPACE)是邏輯上的概念,數(shù)據(jù)文件(DATAFILE)是物理上的概念。一個表空間可以由一個或多個數(shù)據(jù)文件組成,一個數(shù)據(jù)文件不能跨越多個表空間。TABLE中的數(shù)據(jù),通過HASH算法分布在表空間中的各個數(shù)據(jù)文件中。表空間是Oracle數(shù)據(jù)庫中最大的邏輯單位與存儲空間單位,數(shù)據(jù)庫系統(tǒng)通過表空間為數(shù)據(jù)庫對象分配空間。
本題中,對于選項A,一個TABLESPACE可以有一個或多個DATAFILE,說法是正確的。所以,選項A錯誤。
對于選項B,每個DATAFILE只能在一個TABLESPACE內(nèi),說法正確。所以,選項B錯誤。
對于選項C,TABLE中的數(shù)據(jù),通過HASH算法分布在TABLESPACE中的各個DATAFILE中,說法正確。所以,選項C錯誤。
對于選項D,TABLESPACE是邏輯上的概念,DATAFILE是物理上的概念,選項中正好說反了。所以,選項D正確。
所以,本題的答案為D。
真題3、DATA BLOCK,EXTENT和SEGMENT的區(qū)別是什么?
答案:DATA BLOCK是數(shù)據(jù)庫中最小的邏輯存儲單元。當(dāng)數(shù)據(jù)庫的對象需要更多的物理存儲空間時,連續(xù)的DATA BLOCK就組成了EXTENT。一個數(shù)據(jù)庫對象擁有的所有EXTENT被稱為該對象的SEGMENT。
真題4、在Oracle中,數(shù)據(jù)塊、Redo日志塊及控制文件數(shù)據(jù)塊的大小分別是多少?如何查詢?
答案:這3種數(shù)據(jù)塊分別介紹如下:
① 數(shù)據(jù)塊(Data Block),是讀寫數(shù)據(jù)文件的最小單位,默認(rèn)是8KB,可以通過SQL語句“SELECT FILE#,NAME,BLOCK_SIZE FROM V$DATAFILE;”查詢,單位為BYTE。
② Redo日志數(shù)據(jù)塊(Redo Log Block),大小一般等于操作系統(tǒng)的系統(tǒng)塊的大小,一般為512或4096,可以通過SQL語句“SELECT BLOCKSIZE FROM V$LOG;”或“SELECT LEBSZ FROM X$KCCLE;”查詢,單位為BYTE。
③ 控制文件數(shù)據(jù)塊(Control File Block),默認(rèn)為16KB,可以通過SQL語句“SELECT BLOCK_SIZE FROM V$CONTROLFILE;”查詢,單位為BYTE。
總結(jié)
以上是生活随笔為你收集整理的oracle逻辑结构包含,在Oracle中,逻辑结构由哪几个部分组成?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: oracle12c多个pdb,Oracl
- 下一篇: oracle rman 架构图,图解Or