基礎知識1——資料物理,邏輯儲存結構
物理資料庫結構
三類必須的檔案:控制檔案(control file),聯機重做日誌檔案(online redo log file),資料檔案(data file)
其它外部檔案:初始化引數檔案,口令檔案,歸檔重做日誌檔案,日誌,跟蹤檔案.
控制檔案:指向資料庫其餘部分的指標,聯機重做日誌檔案和資料檔案的位置,更新的歸檔日誌檔案位置,儲存維護資料庫完整性的資訊,重要的序列號和時間戳,沒配置恢復目錄時,備份的詳細資訊也儲存在控制檔案裡. 最少1個最多8個,建議多路複用控制檔案.
重做日誌(redo log):按時間順序儲存應用於資料庫的一連串變更向量,包含重建(或重做)所有已完成工作的最少限度的資訊.資料檔案或資料庫受損,可以將變更向量來恢復.
兩類重做日誌檔案:聯機重做日誌檔案(必須要有的)和歸檔日誌檔案(可選,但建議必須有).
每個資料庫至少有兩個聯機重做日誌檔案,或者說有兩組,每組至少一個成員——其中一個組接受當前更改,另一個組可用於歸檔.每次日誌切換將生成歸檔重做日誌問及那.建議多路複用技術進行保護重做日誌檔案.這樣,丟失某個組的一個成員,只要其它成員存在,資料庫仍能執行. 重做日誌檔案建議50MB以上,也別太大.
資料檔案:建立資料庫至少要有兩個資料檔案,SYSTEM表空間(儲存資料字典)和SYSAUX表空間(儲存資料字典的輔助資料).
資料檔案的大小和數量不受限制,值受主作業系統和硬體功能的限制.資料檔案是可見的物理結構,段(segment)是資料的儲存結構,典型的段是表和索引.可隨時重新命名,移動,新增,刪除資料檔案,也可重設其大小.但請記住!某些資料檔案的某些操作會產生停機時間.
在作業系統級別看,資料檔案由多個作業系統塊組成,內部將資料檔案的格式設定為oracle塊.在每個資料檔案中這些塊連續編號,建立資料檔案時塊大小固定不變,跟作業系統塊大小沒關係.
塊中存在頭部分和資料區域,還有一些空間空間.頭部分包含行目錄資訊,行鎖定資訊.資料區域包含行本身,行,索引鍵等.當使用者會話使用資料時,伺服器程式允許會話在磁碟上找到相關的塊,將其複製到db buffer. 伺服器程式對資料檔案執行讀操作,DBWn對資料檔案執行寫操作.
資料檔案應定期備份,可由RAID技術進行保護.
其他資料庫檔案
例項引數檔案(instance parameter file):例項啟動時,SGA根據引數檔案設定記憶體,啟動後臺程式,這是例項啟動所需的唯一檔案.其中的引數只有一個是必須的-DB_NAME引數,此檔案雖小,但必須有,有時叫pfile有時叫spfile.
口令檔案(password file):使用者通過提交使用者名稱和口令來建立對話. oracle根據儲存愛資料字典的使用者定義對使用者名稱和口令進行驗證.
歸檔重做日誌檔案(archive redo log files):聯機日誌變滿切換時,此程式會將日誌檔案複製到歸檔日誌檔案中.
警報日誌和跟蹤檔案(alert log and trace files):警報日誌是影響例項和資料庫的重要操作的相關資訊記錄:只記錄重要的事件.比如啟動和關閉,更改資料庫的物理結構和更改控制例項的引數,後臺程式會在檢測到錯誤條件時生成跟蹤檔案,有時也報告特定事件.
邏輯資料庫結構
oracle通過表空間的方式將邏輯儲存從物理儲存中抽象出來.表空間邏輯上是段的集合,物理上是一個或多個資料檔案的集合.
使用"關係分析"術語說:段和資料檔案存在多對多關係:可將一個表分佈在多個資料檔案中,一個資料檔案也可能包含多個表的一部分.
段由多個塊組成.
區間(extent):資料檔案中編號連續的一系列塊,通過為段新添區間,段會擴大,這些區間不必相鄰,可以來自作為段所在表空間一部分的任何
資料檔案.
邏輯上講:一個表空間包含多個段,每個段包含多個區間,區間是一組oracle塊.
物理上講:資料檔案由多個作業系統塊組成,一個oracle包含多個作業系統塊.
資料字典:
從邏輯上和物理上描述資料庫及其內容的後設資料,後設資料作為一組段儲存在system和sysaux表空間中.
!不要對資料字典做任何改動!手癢癢去拍牆,別瞎改資料字典
檢視查詢資料字典,大部分檢視有三種:DBA_ ALL_ USER_
USER_字首的檢視描述查詢檢視的使用者擁有的物件
ALL_字首的檢視顯示描述你有權訪問的物件的行
DBA_字首的檢視將顯示資料庫中每個物件的行
表空間和資料檔案之間的關聯在資料庫控制檔案中維護,其中列出所有資料檔案,指明其所屬表空間.如果沒有控制檔案,例項就無法找到資料檔案,無法識別組成SYSTEM表空間的檔案,只有開啟SYSTEM表空間時,例項才可能訪問資料字典,才能開啟資料庫.
來個練習:建立一個表段,計算出它的物理位置
create table testtb (c1 varchar2(10));
確定表所在空間,區間大小,區間所在檔案編號,及其作為區間開始位置的檔案塊:
select tablespace_name,extent_id,bytes,file_id,block_id from dba_extents
where owner='SCOTT' and segment_name='TESTTB'
根據名稱確定檔案,替代前面查詢中的file_id
select name from v$datafile
where file#=:file_id --file_id=4
---------------------------------------------------------------------------------------------
name
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BOB\USERS01.DBF
計算出區間在檔案中的位置(按它在檔案中的開始位元組數)
select block_size * :block_id from dba_tablespaces
where tablespace_name='USERS' --block_id=314
可見,表testtb存在於一個64KB區間中,此區間位於檔案D:\ORACLE\PRODUCT\10.2.0\ORADATA\BOB\USERS01.DBF中,從檔案的大約3.4MB處開始.
三類必須的檔案:控制檔案(control file),聯機重做日誌檔案(online redo log file),資料檔案(data file)
其它外部檔案:初始化引數檔案,口令檔案,歸檔重做日誌檔案,日誌,跟蹤檔案.
控制檔案:指向資料庫其餘部分的指標,聯機重做日誌檔案和資料檔案的位置,更新的歸檔日誌檔案位置,儲存維護資料庫完整性的資訊,重要的序列號和時間戳,沒配置恢復目錄時,備份的詳細資訊也儲存在控制檔案裡. 最少1個最多8個,建議多路複用控制檔案.
重做日誌(redo log):按時間順序儲存應用於資料庫的一連串變更向量,包含重建(或重做)所有已完成工作的最少限度的資訊.資料檔案或資料庫受損,可以將變更向量來恢復.
兩類重做日誌檔案:聯機重做日誌檔案(必須要有的)和歸檔日誌檔案(可選,但建議必須有).
每個資料庫至少有兩個聯機重做日誌檔案,或者說有兩組,每組至少一個成員——其中一個組接受當前更改,另一個組可用於歸檔.每次日誌切換將生成歸檔重做日誌問及那.建議多路複用技術進行保護重做日誌檔案.這樣,丟失某個組的一個成員,只要其它成員存在,資料庫仍能執行. 重做日誌檔案建議50MB以上,也別太大.
資料檔案:建立資料庫至少要有兩個資料檔案,SYSTEM表空間(儲存資料字典)和SYSAUX表空間(儲存資料字典的輔助資料).
資料檔案的大小和數量不受限制,值受主作業系統和硬體功能的限制.資料檔案是可見的物理結構,段(segment)是資料的儲存結構,典型的段是表和索引.可隨時重新命名,移動,新增,刪除資料檔案,也可重設其大小.但請記住!某些資料檔案的某些操作會產生停機時間.
在作業系統級別看,資料檔案由多個作業系統塊組成,內部將資料檔案的格式設定為oracle塊.在每個資料檔案中這些塊連續編號,建立資料檔案時塊大小固定不變,跟作業系統塊大小沒關係.
塊中存在頭部分和資料區域,還有一些空間空間.頭部分包含行目錄資訊,行鎖定資訊.資料區域包含行本身,行,索引鍵等.當使用者會話使用資料時,伺服器程式允許會話在磁碟上找到相關的塊,將其複製到db buffer. 伺服器程式對資料檔案執行讀操作,DBWn對資料檔案執行寫操作.
資料檔案應定期備份,可由RAID技術進行保護.
其他資料庫檔案
例項引數檔案(instance parameter file):例項啟動時,SGA根據引數檔案設定記憶體,啟動後臺程式,這是例項啟動所需的唯一檔案.其中的引數只有一個是必須的-DB_NAME引數,此檔案雖小,但必須有,有時叫pfile有時叫spfile.
口令檔案(password file):使用者通過提交使用者名稱和口令來建立對話. oracle根據儲存愛資料字典的使用者定義對使用者名稱和口令進行驗證.
歸檔重做日誌檔案(archive redo log files):聯機日誌變滿切換時,此程式會將日誌檔案複製到歸檔日誌檔案中.
警報日誌和跟蹤檔案(alert log and trace files):警報日誌是影響例項和資料庫的重要操作的相關資訊記錄:只記錄重要的事件.比如啟動和關閉,更改資料庫的物理結構和更改控制例項的引數,後臺程式會在檢測到錯誤條件時生成跟蹤檔案,有時也報告特定事件.
邏輯資料庫結構
oracle通過表空間的方式將邏輯儲存從物理儲存中抽象出來.表空間邏輯上是段的集合,物理上是一個或多個資料檔案的集合.
使用"關係分析"術語說:段和資料檔案存在多對多關係:可將一個表分佈在多個資料檔案中,一個資料檔案也可能包含多個表的一部分.
段由多個塊組成.
區間(extent):資料檔案中編號連續的一系列塊,通過為段新添區間,段會擴大,這些區間不必相鄰,可以來自作為段所在表空間一部分的任何
資料檔案.
邏輯上講:一個表空間包含多個段,每個段包含多個區間,區間是一組oracle塊.
物理上講:資料檔案由多個作業系統塊組成,一個oracle包含多個作業系統塊.
資料字典:
從邏輯上和物理上描述資料庫及其內容的後設資料,後設資料作為一組段儲存在system和sysaux表空間中.
!不要對資料字典做任何改動!手癢癢去拍牆,別瞎改資料字典
檢視查詢資料字典,大部分檢視有三種:DBA_ ALL_ USER_
USER_字首的檢視描述查詢檢視的使用者擁有的物件
ALL_字首的檢視顯示描述你有權訪問的物件的行
DBA_字首的檢視將顯示資料庫中每個物件的行
表空間和資料檔案之間的關聯在資料庫控制檔案中維護,其中列出所有資料檔案,指明其所屬表空間.如果沒有控制檔案,例項就無法找到資料檔案,無法識別組成SYSTEM表空間的檔案,只有開啟SYSTEM表空間時,例項才可能訪問資料字典,才能開啟資料庫.
來個練習:建立一個表段,計算出它的物理位置
create table testtb (c1 varchar2(10));
確定表所在空間,區間大小,區間所在檔案編號,及其作為區間開始位置的檔案塊:
select tablespace_name,extent_id,bytes,file_id,block_id from dba_extents
where owner='SCOTT' and segment_name='TESTTB'
根據名稱確定檔案,替代前面查詢中的file_id
select name from v$datafile
where file#=:file_id --file_id=4
---------------------------------------------------------------------------------------------
name
D:\ORACLE\PRODUCT\10.2.0\ORADATA\BOB\USERS01.DBF
計算出區間在檔案中的位置(按它在檔案中的開始位元組數)
select block_size * :block_id from dba_tablespaces
where tablespace_name='USERS' --block_id=314
可見,表testtb存在於一個64KB區間中,此區間位於檔案D:\ORACLE\PRODUCT\10.2.0\ORADATA\BOB\USERS01.DBF中,從檔案的大約3.4MB處開始.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25025926/viewspace-1067689/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 資料結構知識點--儲存結構與邏輯結構資料結構
- 達夢資料庫基礎知識(一)資料庫物理儲存結構資料庫
- 達夢資料庫基礎知識(二)資料庫邏輯結構資料庫
- 資料結構基礎知識資料結構
- 基礎儲存知識
- oracle邏輯儲存結構理解Oracle
- Mysql-Innodb : 從一個位元組到整個資料庫表瞭解物理儲存結構和邏輯儲存結構MySql資料庫
- 《MySQL 基礎篇》十:邏輯架構和儲存引擎MySql架構儲存引擎
- 公共基礎知識-資料結構-樹資料結構
- 儲存基礎知識白皮書
- Redis基礎知識(學習筆記1--五種基礎資料結構)Redis筆記資料結構
- 基礎知識1——例項程式結構
- 儲存基礎知識(1)--主要技術DAS、SAN、NAS
- Rust中陣列資料結構基礎知識Rust陣列資料結構
- 塗抹ORACLE--第16章--資料庫物理儲存結構(1)Oracle資料庫
- 成為MySQL DBA後,再看ORACLE資料庫(六、邏輯儲存結構)MySqlOracle資料庫
- 物理結構和邏輯結構更通俗解釋
- shared pool的物理結構和邏輯結構
- oracle物理儲存結構理解Oracle
- 資料結構與演算法之基礎知識資料結構演算法
- 【資料結構】棧的基礎知識(無程式碼)資料結構
- 【資料結構】串的基礎知識(無程式碼)資料結構
- 【資料結構】二叉樹的基礎知識資料結構二叉樹
- 時序邏輯電路的基礎知識(結合Verilog)
- SecureFiles LOBs基礎知識之儲存篇
- 《MySQL 基礎篇》十二:InnoDB 儲存引擎的資料結構MySql儲存引擎資料結構
- 基礎知識1——例項記憶體結構記憶體
- Java基礎知識總結-1Java
- JS基礎知識總結(1)JS
- 【資料結構】佇列的基礎知識(無程式碼)資料結構佇列
- 儲存知識小結
- 易失性儲存器SRAM基礎知識
- 資料庫基礎知識總結(轉)資料庫
- OceanBase分散式儲存引擎公共模組——基礎資料結構分散式儲存引擎資料結構
- HBase學習之Hbase的邏輯結構和物理結構
- 邏輯架構和物理架構架構
- 【Python基礎知識】Python中的邏輯運算子Python
- 1、基礎知識