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