時間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)
? 如果在Windows操作系統(tǒng)上部署Oracle數(shù)據(jù)庫系統(tǒng),會將起動過程寫入到操作系統(tǒng)的服務列表中。并且一些主要的服務都會被設置為自動啟動。如此的話,當操作系統(tǒng)啟動的時候,數(shù)據(jù)庫會自動啟動。當關閉操作系統(tǒng)時這些服務也會自動關閉。如下圖所示,就是在Windows操作系統(tǒng)下的Oralce數(shù)據(jù)庫系統(tǒng)的典型服務。
? 一、了解主要的Oracle數(shù)據(jù)庫服務。
? 雖然上圖中列舉出了很多的Oracle數(shù)據(jù)庫服務,但是在實際過程中我們用到的只是其中的四種。分別為OracleTNSListener(上圖中的第二個服務,這服務對應于數(shù)據(jù)庫的監(jiān)聽程序)、OracleServiceDTM123(上圖中的第一個服務,對應于數(shù)據(jù)庫例程)、OracleDBConsoledmt123(上圖中最后一個服務,對應于數(shù)據(jù)庫的企業(yè)管理器)、OracleiSQL*Plus(上圖中的第五個服務,對應于數(shù)據(jù)庫的Isql*plus工具)。數(shù)據(jù)庫管理員必須要對這四個服務的作用以及相互之間的關系了如指掌。因為有時候處于維護的需要,數(shù)據(jù)庫管理員需要通過這個服務列表來管理數(shù)據(jù)庫的啟動與關閉。
? 如當啟動這些數(shù)據(jù)庫服務的時候,會占用比較多的內(nèi)存、CPU等系統(tǒng)資源。有時候在Windows操作系統(tǒng)上安裝Oracle數(shù)據(jù)庫系統(tǒng)可能只是出于測試、培訓等目的。為此沒有必要讓這些數(shù)據(jù)庫服務一直運行著,而影響操作系統(tǒng)上的其它服務。所以有時候數(shù)據(jù)庫管理員不希望這些數(shù)據(jù)庫服務隨著操作系統(tǒng)的啟動而自動啟動。他們希望能夠在需要的時候手工啟動這些服務。如此的話,在不需要用到數(shù)據(jù)庫的時候,這些服務就不會占用寶貴的例程。此時數(shù)據(jù)庫管理員就需要更改這些服務的啟動方式。如上圖所示,可以將以上四種服務設置為"手動"啟動方式。如此的話,數(shù)據(jù)庫系統(tǒng)不會隨著操作系統(tǒng)的啟動而自動啟動。如果需要更改這些服務的啟動方式,只需要選中以上對應的服務,雙擊這個服務,會打開一個服務管理的對話框。在這個對話框內(nèi)我們可以發(fā)現(xiàn)有一個啟動類型的下拉列表,只要選擇"手動",即可以更改這些服務的啟動方式。默認情況下,這個啟動類型為"自動"。如果一直不需要使用這些服務,甚至可以將啟動類型設定為"已禁用"。
? 二、了解各種服務之間的關系。
? Oracle各種服務之間有著比較復雜的關系,這個復雜性主要體現(xiàn)在他們有很嚴格的相互依存關系。當啟動某個服務或者關閉某個服務的時候往往需要按照一定的順序來啟動或者關閉。否則的話,可能會出現(xiàn)錯誤信息。如就以上面四種主要服務來說,他們之間的關系就比較復雜。一般情況下,只有先啟動OracleTNSListener(監(jiān)聽程序)服務,才可以打開啟動服務。如果在沒有打開這個服務的情況下,而打開其他數(shù)據(jù)庫服務,如OracleDBConsoledmt123(數(shù)據(jù)庫企業(yè)管理器)服務,就會出現(xiàn)錯誤。系統(tǒng)會提示:"一些服務依賴于其它服務、系統(tǒng)驅(qū)動程序或者組的加載順序,如果系統(tǒng)組建被停止或者運行不正常,則依賴于它的服務會受到影響"。簡單的說,就是監(jiān)聽程序服務沒有打開的話,企業(yè)管理器服務就無法啟動。這兩個服務之間存在著依存的關系。類似的,企業(yè)管理器服務跟OracleServiceDTM123(數(shù)據(jù)庫例程)服務之間也存在著千絲萬縷的關系。如果要使用企業(yè)管理器服務,那么必須先啟動數(shù)據(jù)庫例程服務。否則的話,又會拋出以上的異常信息。
? 數(shù)據(jù)庫服務在啟動的時候會受到以上限制因素的影響。在關閉這些服務的時候也是如此。不過比服務啟動的時候好的多,操作會在關閉服務的時候去自動檢測是否存在相關的依存服務。如果存在的話,會先自動關閉其它的服務,然后再關閉這個服務。如現(xiàn)在操作系統(tǒng)中同時啟動了數(shù)據(jù)庫企業(yè)管理器服務與數(shù)據(jù)庫例程這兩個服務?,F(xiàn)在數(shù)據(jù)庫管理員暫時不用Oracle數(shù)據(jù)庫了,他就要關閉數(shù)據(jù)庫例程服務以釋放其占用內(nèi)存與CPU資源。此時在關閉這個服務的時候,操作系統(tǒng)發(fā)現(xiàn)現(xiàn)有啟動的服務(企業(yè)管理器)需要用到這個正在關閉的服務。此時操作系統(tǒng)會先關閉企業(yè)管理器服務,然后再關閉數(shù)據(jù)庫例程服務。也就是說,服務在啟動的時候,如果服務之間存在依存關系,操作系統(tǒng)是不會自動啟動的。而是拋出異常信息,讓數(shù)據(jù)庫管理員手工啟動相關聯(lián)的服務。但是在關閉服務的時候,則如果遇到相互依存的服務,操作系統(tǒng)會自動關閉相互依存的服務。為此在關閉某個服務的時候,數(shù)據(jù)庫管理員一定要了解他們之間相互依存關系。要防止為了關閉某個服務,而同時關閉其它正在使用的服務。此時可能會給用戶造成不必要的損失。
? 三、利用服務啟動數(shù)據(jù)庫與利用命令啟動數(shù)據(jù)庫的差異。
在使用命令啟動數(shù)據(jù)庫的時候,可以利用不同的選項讓數(shù)據(jù)庫啟動在不同的狀態(tài)中。如通常情況下利用命令來啟動數(shù)據(jù)庫,帶上不同的選項,可以讓數(shù)據(jù)庫只啟動例程(帶上Nomount選項)、掛載數(shù)據(jù)庫而不打開數(shù)據(jù)庫(采用mount選賢)、打開數(shù)據(jù)庫(采用open選項)或者以受限模式(帶上restrict選項)打開數(shù)據(jù)庫系統(tǒng)。有時候以某種特定的方式來打開數(shù)據(jù)庫系統(tǒng)對于數(shù)據(jù)庫管理員維護數(shù)據(jù)庫是非常重要的。如數(shù)據(jù)庫管理員需要將某個數(shù)據(jù)庫文件移動到新的硬盤上以減少硬盤的I/Q沖突或者需要將數(shù)據(jù)庫從非歸檔模式轉(zhuǎn)換到歸檔模式的時候,就需要將數(shù)據(jù)庫啟動到掛載模式。即打開控制文件而沒有打開數(shù)據(jù)文件。此時可以更改控制文件中的內(nèi)容(控制文件已經(jīng)打開);也可以移動數(shù)據(jù)文件(數(shù)據(jù)文件在掛載模式下還沒有打開。只有在這個模式下才能夠完成對數(shù)據(jù)文件的更名、移動等操作。而且利用命令還可以在不同的模式下進行轉(zhuǎn)換。如現(xiàn)在處于數(shù)據(jù)庫掛載模式,則可以利用alter database open命令將數(shù)據(jù)庫轉(zhuǎn)換為打開模式。這些功能通過Oracle服務都是無法完成的。
? 而通過服務來控制數(shù)據(jù)庫的啟動與關閉,就不能夠做到這么精細的控制。一般情況下,只有監(jiān)聽程序服務、數(shù)據(jù)庫例程服務和數(shù)據(jù)庫企業(yè)管理器服務三個服務同時打開的情況下,對應的數(shù)據(jù)庫才處于啟動狀態(tài)?;蛘哒f,只有數(shù)據(jù)庫企業(yè)管理器服務啟動時數(shù)據(jù)庫才處于打開狀態(tài)。因為只有有監(jiān)聽程序服務、數(shù)據(jù)庫例程服務這兩個服務啟動后,才可以啟動企業(yè)管理器服務。所以一般情況下,企業(yè)管理器服務啟動了,就表示這三個服務已經(jīng)同時啟動。如果有一個服務還處于關閉的狀態(tài),那么數(shù)據(jù)庫就是處于關閉狀態(tài)。
? 可見通過命令與通過服務來管理數(shù)據(jù)庫的啟動與關閉存在很多的差異。一般情況下筆者建議大家還是通過命令來維護數(shù)據(jù)庫的啟動與關閉操作為好。不過通過服務,也可以起到一些命令無法實現(xiàn)的功能。如現(xiàn)在數(shù)據(jù)庫管理員不希望數(shù)據(jù)庫隨著操作系統(tǒng)的啟動而自動啟動,此時就可以通過更改對應服務啟動類型來實現(xiàn)。如可以將上面的服務的啟動類型設置為"手工"啟動。此時當操作系統(tǒng)啟動時,就不會自動啟動數(shù)據(jù)庫系統(tǒng)。不過這主要用于一些測試服務器或者培訓服務器上。對于在企業(yè)生產(chǎn)環(huán)境中使用的數(shù)據(jù)庫服務器,往往要將這個服務設置為自動啟動。即讓操作系統(tǒng)啟動時自動啟動數(shù)據(jù)庫服務,以減少數(shù)據(jù)庫管理員的工作量。所以說,雖然通過服務來管理數(shù)據(jù)庫的啟動與關閉進程,屬于粗放型的管理。但是有時候數(shù)據(jù)庫管理員確實也離不開它。
? 最后需要提醒的一點是,在Windows操作系統(tǒng)中,默認情況下數(shù)據(jù)庫系統(tǒng)是會隨著操作系統(tǒng)的啟動而自動啟動的。而在Linux等到作系統(tǒng)平臺上,由于沒有這種服務的管理機制,所以在Linux操作系統(tǒng)部署Oracle數(shù)據(jù)庫系統(tǒng)的時候,默認情況下是不會隨著操作系統(tǒng)的啟動而啟動的。如果數(shù)據(jù)庫管理員需要讓其隨著操作系統(tǒng)啟動而自動啟動,就需要在啟動列表中加入相關的指令才行。這是在兩個不同操作系統(tǒng)上部署Oracle數(shù)據(jù)庫的一個很明顯的區(qū)別。
關鍵詞標簽:Windows,Oracle數(shù)據(jù)庫
相關閱讀
熱門文章 Oracle中使用alter table來增加,刪除,修改列的語法 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 誤刪Oracle數(shù)據(jù)庫實例的控制文件 為UNIX服務器設置Oracle全文檢索
人氣排行 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 Oracle中使用alter table來增加,刪除,修改列的語法 ORACLE SQL 判斷字符串是否為數(shù)字的語句 ORACLE和SQL語法區(qū)別歸納(1) oracle grant 授權語句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數(shù)據(jù)處理 Oracle刪除表的幾種方法