oracle逻辑结构(2)
生活随笔
收集整理的這篇文章主要介紹了
oracle逻辑结构(2)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、基本表空間介紹 a. 系統表空間 主要存放數據字典和內部系統表基表 查看數據數據字典的SQL select * from dict 查看內部系統表的SQL select * from v$fixed_view_definition DBA對系統的系統表中的數據字典必須有一個很深刻的了解,他們必須準備一些基礎的SQL語句,通過這些SQL可以立即了解系統的狀況和數據庫的狀態,這些基本的SQL包括: 系統的剩余空間 系統的SGA 狀態系統的等待 用戶的權限 當前的用戶鎖 緩沖區的使用狀況等 在成為DBA 的道路上我們不建議你過分的依賴于OEM/Quest 等優秀的數據庫管理工具,因為他們不利于你對數據數據字典的理解,SQL語句可以完成幾乎全部的數據庫管理工作。 大量的讀少量的寫是該表空間的一個顯著的特點。 b. 臨時表空間. 臨時表空間顧名思義是用來存放臨時數據的,例如排序操作的臨時空間,他的空間會在下次系統啟動的時候全部被釋放。 c. 回滾段表空間
i. 回滾段在系統中的作用 當數據庫進行更新插入刪除等操作的時候,新的數據被更新到原來的數據文件,而舊的數據(Before Image)就被放到回滾段中,如果數據需要回滾,那么可以從回滾段將數據再復制到數據文件中。來完成數據的回滾。在系統恢復的時候, 回滾段可以用來回滾沒有被commit 的數據,解決系統的一至性。 回滾段在什么情況下都是大量的寫,一般是少量讀,因此建議把回滾段單獨出來放在一個單獨的設備(如單獨的磁盤或RAID),以減少磁盤的IO爭用。 ii. 回滾段的工作方式 一個回滾表空間可以被劃分成多個回滾段. 一個回滾段可以保存多個會話的數據. 回滾段是一個圓形的數據模型 假設回滾段由4 個區間組成,他們的使用順序就是區間1à區間2à區間3à區間4à區間1。也就是說,區間是可以循環使用的,當區間4到區間1的時候,區間1里面的會話還沒有結束, 區間4用完后就不能再用區間1,這時系統必須分配區間5,來繼續為其他會話服務服務。 我們分析一個Update 語句的完成 ①. 用戶提交一個Update 語句 ②. Server Process 檢查內存緩沖. 如果沒有該數據塊的緩沖,則從磁盤讀入 i. 如果沒有內存的有效空間,DBWR被啟動將未寫入磁盤的臟緩沖寫入磁盤。 ii. 如果有有效空間,則讀入。 ③. 在緩沖內更新數據 i. 申請一個回滾段入口,將舊數據寫如回滾段。 ii. 加鎖并更新數據。 iii. 并在同時將修改記錄在Redo log buffer中。 2、Oracle邏輯結構的相關數據字典: SELECT * FROM DBA_TABLESPACES?--記錄各個表空間的詳細信息。 SELECT * FROM DBA_TABLESPACE_USAGE_METRICS?--記錄各表空間的使用狀況。 SELECT * FROM DBA_DATA_FILES --記錄各個數據文件的詳細信息。 SELECT * FROM DBA_SEGMENTS –記錄各個段的詳細信息,與 DBA_TABLES,DBA_INDEXES,DBA_LOBS,DBA_PART_TABLES,DBA_PART_INDEXES, DBA_PART_LOBS,DBA_OBJECTS搭配使用。 SELECT * FROM DBA_LOBS????--BLOB字段所對應的字段名稱。 SELECT * FROM DBA_INDEXES?--分區索引需通過DBA_INDEXS來找到對應的表名。 SELECT * FROM DBA_EXTENTS?--記錄各個區間對象的詳細信息。 SELECT * FROM V$TABLESPACE?--記錄表空間的基本信息,對象ID,表空間名稱。 SELECT * FROM V$DATAFILE???--記錄數據文件的基本信息,對象ID,表空間ID,文件名稱以及狀態、大小和相應的變化。 SELECT * FROM V$SEGSTAT????--實時監控數據庫段級對象的統計信息。 SELECT * FROM V$SEGSTAT_NAME --段級對象的統計項目。 SELECT * FROM V$SEGMENT_STATISTICS --實時監控段級對象的性能,說穿了和V$SEGSTAT有點像,統計信息更豐富一些。
CUUG
更多oracle視頻教程請點擊:http://crm2.qq.com/page/portalpage/wpa.php?uin=800060152&f=1&ty=1&aty=0&a=&from=6
i. 回滾段在系統中的作用 當數據庫進行更新插入刪除等操作的時候,新的數據被更新到原來的數據文件,而舊的數據(Before Image)就被放到回滾段中,如果數據需要回滾,那么可以從回滾段將數據再復制到數據文件中。來完成數據的回滾。在系統恢復的時候, 回滾段可以用來回滾沒有被commit 的數據,解決系統的一至性。 回滾段在什么情況下都是大量的寫,一般是少量讀,因此建議把回滾段單獨出來放在一個單獨的設備(如單獨的磁盤或RAID),以減少磁盤的IO爭用。 ii. 回滾段的工作方式 一個回滾表空間可以被劃分成多個回滾段. 一個回滾段可以保存多個會話的數據. 回滾段是一個圓形的數據模型 假設回滾段由4 個區間組成,他們的使用順序就是區間1à區間2à區間3à區間4à區間1。也就是說,區間是可以循環使用的,當區間4到區間1的時候,區間1里面的會話還沒有結束, 區間4用完后就不能再用區間1,這時系統必須分配區間5,來繼續為其他會話服務服務。 我們分析一個Update 語句的完成 ①. 用戶提交一個Update 語句 ②. Server Process 檢查內存緩沖. 如果沒有該數據塊的緩沖,則從磁盤讀入 i. 如果沒有內存的有效空間,DBWR被啟動將未寫入磁盤的臟緩沖寫入磁盤。 ii. 如果有有效空間,則讀入。 ③. 在緩沖內更新數據 i. 申請一個回滾段入口,將舊數據寫如回滾段。 ii. 加鎖并更新數據。 iii. 并在同時將修改記錄在Redo log buffer中。 2、Oracle邏輯結構的相關數據字典: SELECT * FROM DBA_TABLESPACES?--記錄各個表空間的詳細信息。 SELECT * FROM DBA_TABLESPACE_USAGE_METRICS?--記錄各表空間的使用狀況。 SELECT * FROM DBA_DATA_FILES --記錄各個數據文件的詳細信息。 SELECT * FROM DBA_SEGMENTS –記錄各個段的詳細信息,與 DBA_TABLES,DBA_INDEXES,DBA_LOBS,DBA_PART_TABLES,DBA_PART_INDEXES, DBA_PART_LOBS,DBA_OBJECTS搭配使用。 SELECT * FROM DBA_LOBS????--BLOB字段所對應的字段名稱。 SELECT * FROM DBA_INDEXES?--分區索引需通過DBA_INDEXS來找到對應的表名。 SELECT * FROM DBA_EXTENTS?--記錄各個區間對象的詳細信息。 SELECT * FROM V$TABLESPACE?--記錄表空間的基本信息,對象ID,表空間名稱。 SELECT * FROM V$DATAFILE???--記錄數據文件的基本信息,對象ID,表空間ID,文件名稱以及狀態、大小和相應的變化。 SELECT * FROM V$SEGSTAT????--實時監控數據庫段級對象的統計信息。 SELECT * FROM V$SEGSTAT_NAME --段級對象的統計項目。 SELECT * FROM V$SEGMENT_STATISTICS --實時監控段級對象的性能,說穿了和V$SEGSTAT有點像,統計信息更豐富一些。
CUUG
更多oracle視頻教程請點擊:http://crm2.qq.com/page/portalpage/wpa.php?uin=800060152&f=1&ty=1&aty=0&a=&from=6
轉載于:https://blog.51cto.com/19880614/1152158
總結
以上是生活随笔為你收集整理的oracle逻辑结构(2)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一些总是记不住又容易搞混淆的东西(不断更
- 下一篇: 人的一生活在罪之中