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