Oracle數(shù)據(jù)庫系統(tǒng)管理與運維 | 項目案例

數(shù)據(jù)庫進程的主要作用是維護數(shù)據(jù)庫的穩(wěn)定,相當(dāng)于一個企業(yè)中的管理者,具有負(fù)責(zé)全局統(tǒng)籌的作用。Oracle數(shù)據(jù)庫進程共分為User process(用戶進程)、Server process (服務(wù)器進程)、Background processes(后臺進程)3類。
01、用戶進程實例
下面通過實驗過程觀察用戶進程的相關(guān)操作。
步驟1:查看任務(wù)管理器中的初始系統(tǒng)進程,如圖1所示。觀察當(dāng)前操作系統(tǒng)進程,發(fā)現(xiàn)當(dāng)前使用命令行運行SQL Plus。

步驟2:打開SQL Plus應(yīng)用程序,使用用戶hr登錄。
在第一次使用用戶hr登錄時,必須在管理員用戶下對用戶hr進行解鎖和修改密碼。
SQL﹥alter?user?hr?identified?by?hr?account?unlock;
用戶已更改。
SQL>?conn hr
輸入口令:已連接。
?步驟3:再次查看任務(wù)管理器中的系統(tǒng)進程,如圖2-18所示,觀察操作系統(tǒng)進程的變化。

步驟4:使用v$session會話進程也可以查看用戶進程相關(guān)鏈接信息。
v$session主要提供的是一個數(shù)據(jù)庫連接的信息,主要是客戶端的信息。代碼如下。
加上用戶名這個條件即可清晰地查看到進程詳細(xì)信息,具體代碼如下。
步驟5:在v$session動態(tài)視圖中,taddr表示是否執(zhí)行事務(wù)處理中。在執(zhí)行下面的代碼時著重觀察taddr的值,發(fā)現(xiàn)其值為空。
加上用戶名這個條件即可清晰地查看到進程詳細(xì)信息,具體代碼如下。
步驟6:在用戶hr下執(zhí)行DML語句。
步驟7:修改數(shù)據(jù)后,再次觀察taddr的值。
hr執(zhí)行更新操作后,再次查詢$session時發(fā)現(xiàn)tdaar值非空,這代表這個進程正在執(zhí)行事務(wù)處理。
步驟8:在用戶hr下回滾剛剛執(zhí)行的DML操作。
步驟9:再次觀察taddr的值,發(fā)現(xiàn)taddr的值又再次為空,則代表該進程無事務(wù)處理。
02、服務(wù)器進程實例
下面通過實驗感受一下后臺進程有哪些?它們又是如何與Oracle數(shù)據(jù)庫的不同部分進行交互的?
步驟1:利用v$process的background屬性查找Oracle啟動的所有后臺進程。
?步驟2:利用v$bgprocess的paddr屬性查看所有后臺進程。
步驟2:利用v$bgprocess的paddr屬性查看所有后臺進程。
步驟3:利用v$bgprocess與v$process查看所有的后臺進程情況。?
03、SGA實例
通過反復(fù)執(zhí)行同一個查詢,驗證數(shù)據(jù)庫高速緩沖區(qū)和共享池的作用。具體操作步驟如下。
步驟1:設(shè)定SQL Plus顯示時間,方便用戶查看該查詢執(zhí)行的所用時間。
步驟2:以表dba_objects的聚組函數(shù)為例進行第一次查詢,觀察執(zhí)行所用時間。
步驟3:以表dba_objects的聚組函數(shù)為例進行第二次查詢,觀察執(zhí)行所用時間。
步驟4:清空共享緩存
步驟5:清空數(shù)據(jù)庫塊緩存
步驟6:在清空共享內(nèi)存和數(shù)據(jù)塊緩存下,以表dba_objects的聚組函數(shù)為例進行第三次查詢,觀察執(zhí)行所用時間。