數據庫初始化參數更改的註意事項
壹般只有在大型應用中或者數據據庫性能明顯下降時才需要修改這個初始化參數。所以從這個角度來講,初始化參數的調整算是Oracle數據庫中的壹個高級應用。但是這也是壹個Oracle數據庫管理員必須要掌握的內容。為了更高的調整數據庫的初始化參數,筆者認為管理員在了解各個初始化參數的用途以及調整規則之前,需要先了解壹些初始化參數調整的壹些共性的內容。具體來說,主要有以下幾個方面。
需要了解哪些參數不用重新啟動即可生效。
在Oracle數據庫中,根據生效的時間不同,可以把參數大致分為兩類。壹類是必須重新啟動後才能夠修改或者生效的參數;另外壹類就是修改後不用重新啟動即生效的參數。壹般來說,數據庫管理員比較喜歡第二類參數,即修改後不需要重新啟動立即生效的參數。為什麽呢?因為數據庫服務器投入生產使用之後,不能夠隨意重新啟動。如果修改後需要重新啟動才能夠生效,或者需要重新啟動後才能夠修改參數,那麽在調整參數的過程中顯然需要中斷用戶的訪問,會增加停機時間。這對於數據庫部署來說,打擊會非常的大。因為從穩定性與可用性出發,數據庫管理員是以最小的停機時間為目標的。而此時人為的增加停機時間,顯然跟這個目標有沖突。所以,數據庫管理員就需要知道哪些參數是不用重新啟動就可以修改與生效的;而哪些參數則必須重新啟動才可以。這是數據庫管理員再調整參數之前首先需要知道的內容。壹方面管理員可以根據這個特性,來評估停機的損失與調整參數可能帶來的收益。如果收益大於損失的話,那麽仍然有調整初始化參數的必要。二是來確定參數調整的時間。哪些不需要重新啟動,即調整參數不會導致停機的情況下,則參數的調整時間相對來說靈活壹點,限制不多。但是如果需要調整重新啟動才能夠生效或者修改的參數,那麽就需要選擇壹個合適的時機了。如需要選擇晚上12點以後的時間,這個時段往往使用數據庫的用戶並不是很多。當然這個時間每個起夜都可能不同。總之就是選擇壹個使用數據庫用戶盡量少的時候。如此的話,才能夠在最大程度上降低數據庫停機造成的損失。
那麽哪些參數不需用重新啟動就可以被修改呢?其實,數據庫管理員只需要查詢動態視圖,即可以知道哪些參數不用關閉或者重新啟動就可以更改。如在動態視同v$parameter中,存儲著初始化參數的值。壹般來說,可以在查詢語句中加入條件issys_modifiable<>’FALSE’ or isses_modifiable<>’FALSE’(註意他們之間是or的關系,而不是and關系),最後查詢出來的參數就是不用關閉或者重新啟動數據庫就可以設置的初始化參數。同時這些參數也是可以利用ALTER SYSTEM與ALTER SESSION命令可以更改的部分初始化參數。也就是說,不用關閉或者重新啟動數據庫就可以修改的參數都可以使用上面兩個命令來進行重新設置。但是並不是說,利用這兩個命令都可以在不用重新啟動或者關閉數據庫的情況更改初始化參數。簡單的說,就是可以利用這兩個命令來更改的參數,有些需要重新啟動或者關閉數據庫,而有些則不用。