在Oracle資料庫中,這個初始化參數檔案分為兩類,分別為文本參數檔案與伺服器參數檔案。他們的內容是相同的,只是所表示的方式不同。在伺服器參數檔案中,是以二進位的形式儲存的。可以利用資料庫的命令對他們進行轉換。接下去筆者就談談維護伺服器參數檔案的一些技巧。
一、在資料庫啟動的時候指定參數檔案。
在啟動資料庫的過程中,必須要提供一個準確的初始化參數檔案,無論是文本參數檔案還是伺服器參數檔案。在利用Startup命令啟動資料庫的時候,可以指定其採用的伺服器參數檔案。不過在這裡需要注意一個細節,即採用的初始化參數檔案不同,其採用的關鍵字也是不同的。如果採用的是伺服器參數檔案,則需要使用SPfile指定;如果採用的是文本參數檔案,則需要使用Pfile關鍵字指定。資料庫系統並不會自動根據參數檔案的類別來進行判斷,而是根據這個關鍵字來判斷。如果發生張冠李戴現象的話,即使這個初始化參數檔案本身沒有問題,但是因為關鍵字使用錯誤,會誤導資料庫啟動進程,從而導致資料庫啟動錯誤。
如果在利用命令startup啟動資料庫(如資料庫自動隨作業系統啟動而自動啟動)的過程中沒有指定採用的初始化參數檔案,則資料庫系統會自動在預設的位置進行尋找。一般情況下,其先尋找是否有伺服器參數檔案(二進位檔案),如果有的話則會啟用。如果沒有的話,則會繼續尋找是否有文本參數檔案。如果有責啟用,如果沒有的話則會向使用者提示啟動失敗。所以在預設情況下是伺服器參數檔案優先的。如果資料庫管理員要讓資料庫自動啟動的時候採用文本參數檔案,則就需要在關閉資料庫後刪除那個伺服器參數檔案,或者將其移動到其他的位置。然後下次重新啟動時在沒有指定初始化參數檔案時而自動採用文本參數檔案。對於資料庫系統來說,採用伺服器參數檔案還是採用文本參數檔案,沒有多大的區別。只要保證他們的內容準確即可。所以到底是採用哪種參數檔案為好,就全憑資料庫管理員的工作喜好了。
二、伺服器參數檔案的維護。
雖然說也可以利用文字編輯器來開啟二進位形式的伺服器參數檔案,並查看相關的內容。但是需要注意的是,切不可在這裡對此變更。也就是說不能夠手工更改這個伺服器參數檔案。由於二進位檔案與文字檔儲存方式的不同。在這裡直接變更的話,則會導致這個初始化參數檔案損壞,而導致資料庫無法正常啟動。為此如果要更改伺服器參數檔案,最好是將其轉換為文本參數檔案後變更。更改完成後直接使用文本參數檔案啟動或者轉換為伺服器參數檔案再啟動資料庫系統。
另外就是直接通過命令來變更。這裡需要注意的是,儲存在伺服器參數檔案中的初始化參數是持續保留的。也就是說,在資料庫啟動並執行過程中,通過命令對參數所做的任何更改,在資料庫關閉後是會被儲存在伺服器的初始設定檔案中。為此資料庫管理員不用擔心資料庫重新啟動後參數丟失的問題。
三、匯出伺服器參數檔案。
在資料庫部署完成之後或者對初始化參數檔案進行修改之前,管理員都需要對參數檔案進行備份。無論是伺服器參數檔案還是文本參數檔案,這個備份都是免不了的。因為任何資料庫管理員都不能夠保證在以後這個參數檔案是否會出現損壞的情況。未雨綢繆,對伺服器參數檔案或者文本參數檔案進行備份是提高資料庫安全的一個重要舉措。其次,有時候在排除資料庫故障時候,也需要匯出這個資料庫伺服器參數檔案。因為將這個檔案匯出後,可以利用文字編輯器來方便的查詢所有的初始化參數,以分析故障的原因。雖然在資料庫的SQL*PLUS等工具中也可以查看這些初始化參數,但是操作起來不是很方便。所以不少管理員喜歡將他們導成文字檔來進行分析。最後,對伺服器參數檔案變更。由於不能夠通過文字編輯器直接對二進位的伺服器參數檔案變更,為此資料庫管理員往往會將將伺服器參數檔案匯出來,然後再利用資料庫提供的命令將其轉換為文字檔。最後再將其轉換為伺服器參數檔案,並利用其啟動。有時候,在重新部署資料庫之前管理員也會先匯出這個伺服器參數檔案,以方便後續重新使用這個伺服器參數檔案來啟動資料庫。
在匯出資料庫伺服器參數檔案的時候,主要需要注意以下幾點。
首先,需要具有相關的許可權。根據Oracle資料庫的要求,如果要匯出資料庫伺服器參數檔案的話,必須需要資料庫的SYSDBA或者SYSOPER許可權。如果使用者沒有類似許可權的話,那麼在利用命令匯出伺服器參數檔案過程中,會出現“許可權不足”的錯誤提示。
其次,可以直接直接利用命令create pfile from spfile命令,將伺服器參數檔案匯出為文字檔。在匯出的時候,不需要關閉原有的常式。如果沒有指定目錄與名稱的話,則資料庫會存放在不同的目錄中。這裡主要需要注意這個名稱。因為在不同的作業系統平台上,其採用的名稱是不同的。即在沒有指定匯出檔案名稱的話,資料庫會採用平台特定的名稱,並於據平台特定的預設伺服器參數檔案進行建立。有時候為了方便起見,可以在命令中指定儲存的路徑。如要指定路徑的話,需要採用=號和單引號。如採用pfile=’路徑名’的形式。
第三,在匯出的過程中,伺服器還會將原先二進位檔案中的一些行注釋也匯出到文字檔中,以方便管理員進行略讀。同理,在將文字檔轉換為二進位的伺服器參數檔案時,也會將行注釋儲存在二進位檔案中。不過其只儲存行注釋,而不會儲存其他的注釋。此時再將二進位伺服器參數檔案轉換為文本參數檔案時,原先的其他注釋也會丟失,只會儲存行注釋。所以在初始化參數檔案中編寫注釋的時候,最好採用行注釋。只有這個行注釋才會在轉換的過程中被永久的保留。
四、建立伺服器參數檔案。
當伺服器參數檔案出現損壞而無法啟動資料時,就有可能需要重新建立伺服器參數檔案。上面筆者已經強調過好幾次,伺服器參數檔案是無法手工編輯與建立的。為此必須通過文本參數檔案來建立伺服器參數檔案。為了在伺服器參數檔案出現損壞時有一個補救,最好在平時將伺服器參數檔案進行備份,或者將其匯出為文本參數檔案。然後再必要的時候,根據這個文本參數檔案來建立伺服器參數檔案。雖然可以手工建立文本參數檔案,但是這個工作太複雜,不是輕易可以完成的。如果對其進行小修小改還行,但是若要將其從零開始建立,可是一個很浩大的工程,基本上是一項不可能完成的任務。
若要根據文本參數檔案來轉換成伺服器參數檔案,可以使用資料庫提供的命令:Create Spfile=’’ from pfile=’’來完成。如果沒有指定伺服器參數檔案的名字與路徑的話,資料庫xiotng 採用的是平台特定的名稱,並儲存在資料庫的預設位置中。然後資料庫管理員就可以利用Startup命令來啟動了。當儲存在預設位置時,可以不加參數即啟用這個伺服器參數檔案。因為預設情況下,這個伺服器參數檔案要比文本參數檔案優先順序高。
最後需要說明的一點是即使是文本參數檔案,資料庫管理員要讀懂這個檔案中的內容,仍然需要一定的功底。為此筆者建議管理員,以後若更改系統的預設參數的話,最好加上注釋,以利於提高這個文本參數檔案的可讀性。如此的話,在利用這個檔案排除故障與改善資料庫效能使會變得相對簡單一點,有利於提高這個文本參數檔案的可讀性。
- 磁碟排序對Oracle資料庫效能的影響(1)
- 前瞻性在Oracle資料庫維護中的作用
- 如何檢測Oracle的可用性和資料表空間容量
- 善用Oracle資料表空間設計提升資料庫效能
- 使用資源管理員最佳化Oracle效能