【面試虐菜】—— Oracle知識整理《DBA的思想天空》

Inventory Oracle安裝工具OUI用來管理Oracle安裝目錄的
 
Oracle的參數文件,啓動後按照下面的順序讀取參數文件,若是讀取失敗,啓動數據庫 失敗:
1  $ORACLE_HOME/dbs/SPFILE.ORA
2  $ORACLE_HOME/dbs/spfile.ora
3  $ORACLE_HOME/dbs/init.ora
 
數據庫的nomount階段
1 讀取參數文件
2 分配共享內存
3 啓動進程
 
Mount階段
1 讀取控制文件
2 進行校驗
 
oracle的控制文件包括:
1 數據庫的物理結構
2 數據文件
3 REDO LOG
 
在線日誌文件:解決了數據庫實例忽然宕機或服務器宕機的系統恢復問題
 

後臺進程:

1 DBWR 數據庫寫入操做
2 LGWR 日誌寫入程序
3 CKPT 檢查點
4 SMON 系統監控
5 PMON 進程監控
6 ARCH 歸檔
7 RECO 恢復
8 LCKn 封鎖
9 Dnnn 調度進程
10 Snnn 服務器
 

DB Cache

1 DB Cache 是以bock爲單位組織的緩衝區,不一樣大小的BLOCK對應不一樣的緩衝區參數
2 DB Cache的命中率越高,訪問性能就越好
3 Cache中的數據塊經過散列算法實現
4 每一個鏈上的buffers數量,最佳的狀況是每一個鏈上只有一個buffer
5 DBWR進程控制髒數據寫入
6 在DB Cache,同一個數據塊中可能存在多個版本的數據
7 大表的掃描,熱塊衝突均可能致使閂鎖的爭用
 
引入tch計數器,避免LRU鏈上頻繁移動
 
LRU鏈上搜索達到最大深、LRU-W上沒有足夠的clean buffers都會觸發標記位,使得DBWR進程講髒數據寫入磁盤
 
幾個重要的數據鏈:
1 LRU list普通的LRU鏈
2 LRU-AUX list 被確認的clean的鏈,包括DBWR已經寫回文件的 數據塊和乾淨快
3 LRU-XO list 重用對象鏈
4 LRU-XR list CKPT搜索這些BUFFER,將髒數據寫入該鏈,再由DBWR寫入磁盤
 
閂鎖爭用:
1 熱塊衝突
2 數據庫在某個時間段出現大量的數據塊掃描、熱鏈
 
使用keep pool存放大表,能夠下降物理讀,改善cache命中率
 
使用owi觀點和時間模型分析,幫助分析數據庫性能
 
DB cache命中率低,意味着更多的物理IO、更多的閂鎖使用、較低的效率。RAC中,更多的實例間通訊消息
 
DB cache調優,注意 free buffere waits \ writes complete waits兩個性能指標
 

SGA包括:

1 數據結構部分 fixed size 
2 數據塊緩衝區 database buffers
3 redo log緩衝區 redo buffers
4 共享池 variable size
 
永久使用的共享內存:進程信息數據、會話信息數據、特殊用途的內存段
 
隨着共享池碎片化加重:產生ORA-4031錯誤
1 加大初始的分配值
2 每次擴展一個組
 
共享池內部結構:
1 PERMANENT
2 FREEABLE
3 RECERATEABLE
4 FREEABLE WITH MARK
 
經過內部視圖 X$KSMSP監控共享池碎片的狀況
 
較大的共享池會帶來必定的系統開銷
共享池閂鎖競爭也會增長
按期刷新共享池會有助於保持共享池性能的穩定
 
共享池相關閂鎖的平均等待時間、超時的次數---判斷共享池碎片化程度
 
遊標:一個父遊標,多個子遊標
 
用戶的不一樣,經過一個SQL獲得的結果就不一樣,所以不能共享;執行計劃不一樣,也不能夠共享
 
硬解析:執行SQL時,SQL已經再也不共享池中,會產生硬解析。首先分配共享池空間,建立父遊標,建立子游標
軟軟解析:父遊標存在,子游標也存在
軟解析:父遊標存在,子游標不可共享
 
遊標共享技術ACS
 
遊標不會立刻關閉,會先放在遊標緩存中,等待回話完成後,在關閉
 
OPEN_CURSORS會話打開的遊標數量
SESSION_CACHED_CURSORS回話緩衝,主要功能:將會話中的經常使用的SQL放入UGA中的會話緩衝區中,以便下次調用
 
CURSOR_SPACE_FOR_TIME 當父遊標被打開的時候,全部子游標及其相關聯的對象所有被鎖住,從而確保遊標相關的信息都是一致的
相關文章
相關標籤/搜索