自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Oracle數(shù)據(jù)庫初始化參數(shù)更改的注意事項(xiàng)

數(shù)據(jù)庫 Oracle
如果是出于教學(xué)、測試或者小型應(yīng)用的目的,往往不需要調(diào)整Oracle數(shù)據(jù)庫系統(tǒng)的初始化參數(shù)。Oracle數(shù)據(jù)庫在安裝時會根據(jù)服務(wù)器的配置等等因素來調(diào)整自己的初始化參數(shù),或者就采用其默認(rèn)參數(shù)。

一般只有在大型應(yīng)用中或者數(shù)據(jù)據(jù)庫性能明顯下降時才需要修改這個初始化參數(shù)。所以從這個角度來講,初始化參數(shù)的調(diào)整算是Oracle數(shù)據(jù)庫中的一個高級應(yīng)用。但是這也是一個Oracle數(shù)據(jù)庫管理員必須要掌握的內(nèi)容。為了更高的調(diào)整數(shù)據(jù)庫的初始化參數(shù),筆者認(rèn)為管理員在了解各個初始化參數(shù)的用途以及調(diào)整規(guī)則之前,需要先了解一些初始化參數(shù)調(diào)整的一些共性的內(nèi)容。具體來說,主要有以下幾個方面。

一、需要了解哪些參數(shù)不用重新啟動即可生效。

在Oracle數(shù)據(jù)庫中,根據(jù)生效的時間不同,可以把參數(shù)大致分為兩類。一類是必須重新啟動后才能夠修改或者生效的參數(shù);另外一類就是修改后不用重新啟動即生效的參數(shù)。一般來說,數(shù)據(jù)庫管理員比較喜歡第二類參數(shù),即修改后不需要重新啟動立即生效的參數(shù)。為什么呢?因?yàn)閿?shù)據(jù)庫服務(wù)器投入生產(chǎn)使用之后,不能夠隨意重新啟動。如果修改后需要重新啟動才能夠生效,或者需要重新啟動后才能夠修改參數(shù),那么在調(diào)整參數(shù)的過程中顯然需要中斷用戶的訪問,會增加停機(jī)時間。這對于數(shù)據(jù)庫部署來說,打擊會非常的大。因?yàn)閺姆€(wěn)定性與可用性出發(fā),數(shù)據(jù)庫管理員是以最小的停機(jī)時間為目標(biāo)的。而此時人為的增加停機(jī)時間,顯然跟這個目標(biāo)有沖突。所以,數(shù)據(jù)庫管理員就需要知道哪些參數(shù)是不用重新啟動就可以修改與生效的;而哪些參數(shù)則必須重新啟動才可以。這是數(shù)據(jù)庫管理員再調(diào)整參數(shù)之前首先需要知道的內(nèi)容。一方面管理員可以根據(jù)這個特性,來評估停機(jī)的損失與調(diào)整參數(shù)可能帶來的收益。如果收益大于損失的話,那么仍然有調(diào)整初始化參數(shù)的必要。二是來確定參數(shù)調(diào)整的時間。哪些不需要重新啟動,即調(diào)整參數(shù)不會導(dǎo)致停機(jī)的情況下,則參數(shù)的調(diào)整時間相對來說靈活一點(diǎn),限制不多。但是如果需要調(diào)整重新啟動才能夠生效或者修改的參數(shù),那么就需要選擇一個合適的時機(jī)了。如需要選擇晚上12點(diǎn)以后的時間,這個時段往往使用數(shù)據(jù)庫的用戶并不是很多。當(dāng)然這個時間每個起夜都可能不同??傊褪沁x擇一個使用數(shù)據(jù)庫用戶盡量少的時候。如此的話,才能夠在***程度上降低數(shù)據(jù)庫停機(jī)造成的損失。

那么哪些參數(shù)不需用重新啟動就可以被修改呢?其實(shí),數(shù)據(jù)庫管理員只需要查詢動態(tài)視圖,即可以知道哪些參數(shù)不用關(guān)閉或者重新啟動就可以更改。如在動態(tài)視同v$parameter中,存儲著初始化參數(shù)的值。一般來說,可以在查詢語句中加入條件issys_modifiable<>’FALSE’ or isses_modifiable<>’FALSE’(注意他們之間是or的關(guān)系,而不是and關(guān)系),***查詢出來的參數(shù)就是不用關(guān)閉或者重新啟動數(shù)據(jù)庫就可以設(shè)置的初始化參數(shù)。同時這些參數(shù)也是可以利用ALTER SYSTEM與ALTER SESSION命令可以更改的部分初始化參數(shù)。也就是說,不用關(guān)閉或者重新啟動數(shù)據(jù)庫就可以修改的參數(shù)都可以使用上面兩個命令來進(jìn)行重新設(shè)置。但是并不是說,利用這兩個命令都可以在不用重新啟動或者關(guān)閉數(shù)據(jù)庫的情況更改初始化參數(shù)。簡單的說,就是可以利用這兩個命令來更改的參數(shù),有些需要重新啟動或者關(guān)閉數(shù)據(jù)庫,而有些則不用。

二、根據(jù)20/80原則來確定需要更改的參數(shù)。

Oracle數(shù)據(jù)庫中的初始化參數(shù)有上百個。無論出于什么目的,去一一調(diào)整這些參數(shù)往往是不現(xiàn)實(shí)的。一個優(yōu)秀的數(shù)據(jù)庫管理員,只需要掌握其中少數(shù)幾個參數(shù)的修改即可。往往掌握這幾個參數(shù)的修改方法、原則以注意事項(xiàng),就可以完成大部分的數(shù)據(jù)庫維護(hù)任務(wù)。這就是20/80的規(guī)律在其作用。也就是說,只需要掌握20%的參數(shù)(其實(shí)還遠(yuǎn)遠(yuǎn)不到這個比例),就可以完成80%的任務(wù)(其實(shí)遠(yuǎn)遠(yuǎn)高于這個比例)。也就是說,10/90規(guī)則對這個Oracle初始化參數(shù)來說,可能更加的適用??傊P者要說的就是,只需要掌握眾多初始化參數(shù)中的少數(shù)幾個即可。即使需要通過調(diào)整初始化參數(shù)來提高數(shù)據(jù)庫性能或者其他目的的,也就是在這幾個少數(shù)的初始化參數(shù)中。對于其他的參數(shù),數(shù)據(jù)庫管理員只需要了解其用途,而不需要了解該如何調(diào)整這些參數(shù)。因?yàn)橛龅降膸茁士梢哉f基本沒有。

那么這些重要的參數(shù)到底有哪些呢?主要有以下幾個參數(shù)。最重要的一個參數(shù)就是 DB_CACHE_SIZE。這是一個用來調(diào)整數(shù)據(jù)庫緩存大小的參數(shù)。在必要的時候,調(diào)整這個參數(shù)的大小,可以提高數(shù)據(jù)緩存的命中率,從而大幅度的提高數(shù)據(jù)庫的性能。第二個參數(shù)是DB_BLOCK_SIZE。這個參數(shù)主要是用來指定數(shù)據(jù)庫在建立時所默認(rèn)的塊大小。如果塊設(shè)置的比較小,則有可能會發(fā)生行鏈化現(xiàn)象,從而降低數(shù)據(jù)庫的性能;也有可能增加數(shù)據(jù)庫的碎片,浪費(fèi)表空間的存儲空間以及降低數(shù)據(jù)庫的查詢性能等等。所以根據(jù)需要有時候也要調(diào)整這個塊大小來改善數(shù)據(jù)庫的性能。第三個參數(shù)是SHARED_POOL_SIZE參數(shù)。這個參數(shù)主要是為那些數(shù)據(jù)字典緩存和共享SQL語句指定了在SGA里所分配的內(nèi)存。簡單的來說,合理配置這個參數(shù),能夠同等的共享SQL語句。調(diào)整這個參數(shù),也是一種優(yōu)化數(shù)據(jù)庫性能的常用手段。第四個參數(shù)為SGA_MAX_SIZE參數(shù),這個參數(shù)指定了SGA可以動態(tài)增長的***內(nèi)存。在SQLServer數(shù)據(jù)庫中也有類似的參數(shù)。一般來說,在同臺數(shù)據(jù)庫服務(wù)器中若部署有多個應(yīng)用服務(wù)的話,則往往需要合理配置這個參數(shù)來避免多個應(yīng)用服務(wù)之間爭用內(nèi)存。如果這個參數(shù)設(shè)置的不合適的話,則有時候會導(dǎo)致另外一種應(yīng)用服務(wù)由于沒有足夠的內(nèi)存而停止服務(wù)。第五個參數(shù)為LOG_CHECKPOINT_INTERVAL。這個參數(shù)主要用來設(shè)置檢查點(diǎn)的頻率。在每個檢查點(diǎn)中,數(shù)據(jù)庫系統(tǒng)執(zhí)行數(shù)據(jù)寫出,將所有臟塊(已經(jīng)修改還沒有保存到硬盤中的數(shù)據(jù))寫入到數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù)文件中。默認(rèn)情況下,如果在數(shù)據(jù)庫緩存中有1/4的數(shù)據(jù)緩沖區(qū)是臟緩沖區(qū),則數(shù)據(jù)庫系統(tǒng)會自動執(zhí)行檢查點(diǎn)。另外一個強(qiáng)制的原則就是在進(jìn)行日志切換時,也會執(zhí)行檢查點(diǎn)。在一些特定的情況下,如建立數(shù)據(jù)倉庫,需要調(diào)整這個參數(shù)以滿足特定場合的需要。

這五個參數(shù)是筆者這幾年工作以上遇到的最頻繁的初始化參數(shù)?;旧蠑?shù)據(jù)庫維護(hù)與性能調(diào)優(yōu)就是圍繞著這幾個參數(shù)來的。為此筆者建議,各位數(shù)據(jù)庫管理員在學(xué)習(xí)數(shù)據(jù)庫初始化參數(shù)的調(diào)整技巧時,可以從這幾個參數(shù)出發(fā)?;蛘哒f,這幾個參數(shù)是數(shù)據(jù)庫管理員必須要掌握的。不只是簡單的了解,而是需要吃透它。只有如此,在遇到情況時,才可以判斷是否需要進(jìn)行更改,以及應(yīng)對在更改過程中可能出現(xiàn)的問題。對于其他的一些參數(shù),筆者認(rèn)為數(shù)據(jù)庫管理員只需要了解其基本用途即可?;蛟S筆者在總結(jié)這些參數(shù)的時候,有漏掉的地方,歡迎大家來補(bǔ)充。以后若有機(jī)會,筆者也會像大家詳細(xì)介紹在什么情況下該調(diào)整什么參數(shù);以及在調(diào)整過程中可能會遇到的麻煩。大家若對這方面的話題感興趣,可以關(guān)注筆者后面的文章。

三、使用SPFILE來動態(tài)修改參數(shù)。

在Oracle10G以后的版本中,還允許數(shù)據(jù)庫管理員使用一個SPFILE來存儲實(shí)例參數(shù)的動態(tài)修改。在10G以前的版本中,除非將參數(shù)手動的添加到初始參數(shù)文件中,否則動態(tài)的修改參數(shù)在數(shù)據(jù)庫重新啟動后都會丟失。這跟環(huán)境變量的設(shè)置有些類似。但是在10G以后的版本中,在這方面有了很大的改善。如開啟SPFILE機(jī)制的話,則系統(tǒng)就會啟用一個服務(wù)器參數(shù)文件,在內(nèi)存中動態(tài)改變某些參數(shù)的時候,同時將這些改變記錄到這個服務(wù)器參數(shù)文件中。等到下次重新啟動時,服務(wù)器會讀取喜歡個服務(wù)器參數(shù)文件中的值,用來初始化數(shù)據(jù)庫系統(tǒng)。也就是說,從現(xiàn)在開始一些動態(tài)修改的參數(shù)也可以***生效了。這對于數(shù)據(jù)庫管理員來說,無疑是一個福音。

從以上的分析中可以看出,這個數(shù)據(jù)庫參數(shù)的調(diào)整還是一個比較復(fù)雜的工作。筆者認(rèn)為,管理員在學(xué)習(xí)如何調(diào)整這個參數(shù)之前,需要先了解上面這些共性的內(nèi)容。即參數(shù)修改的時間限制、最可能需要調(diào)整的參數(shù)以及如何讓動態(tài)參數(shù)永遠(yuǎn)生效等等。這些是做好參數(shù)優(yōu)化工作的基礎(chǔ)。

 

【編輯推薦】

  1. 創(chuàng)建Oracle數(shù)據(jù)庫索引的三個標(biāo)準(zhǔn)
  2. Oracle檢索數(shù)據(jù)一致性與事務(wù)恢復(fù)
  3. Oracle性能優(yōu)化借助分區(qū)技術(shù)實(shí)現(xiàn)
  4. Oracle并發(fā)處理機(jī)制的簡單看法
  5. 讓Oracle表列管理更加簡單的三個方法
責(zé)任編輯:佚名 來源: :IT專家網(wǎng)
相關(guān)推薦

2009-05-20 10:58:15

數(shù)據(jù)庫查詢初始化

2011-03-04 16:09:48

數(shù)據(jù)庫優(yōu)化設(shè)計注意事項(xiàng)

2011-04-19 09:28:26

數(shù)據(jù)庫產(chǎn)品

2011-04-20 14:52:02

數(shù)據(jù)庫優(yōu)化

2011-03-07 13:04:52

標(biāo)準(zhǔn)化注意事項(xiàng)

2023-08-24 09:41:54

Oracle數(shù)據(jù)庫

2010-07-15 13:38:35

2010-06-02 10:02:38

Linux mysql

2009-02-18 11:34:00

Oracle服務(wù)器服務(wù)器

2009-12-21 09:53:45

連接Oracle

2010-05-07 10:19:48

Oracle 注意事項(xiàng)

2010-08-04 09:19:43

2011-03-14 17:51:04

IBMDB2數(shù)據(jù)庫

2010-07-16 14:01:22

安裝SQL Serve

2022-03-01 13:35:01

數(shù)據(jù)庫備份技術(shù)

2011-08-02 17:26:38

Oracle數(shù)據(jù)庫遠(yuǎn)程連接

2010-08-31 10:53:18

DB2導(dǎo)入數(shù)據(jù)庫

2011-08-22 15:05:03

MySQLEXPLAIN

2016-11-11 00:00:16

MySQLOracle數(shù)據(jù)

2011-08-09 14:23:05

網(wǎng)站設(shè)計數(shù)據(jù)庫集群庫表散列
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號