Windows平台上Oracle資料庫服務解析

2021-06-16 05:16:57 字數 2850 閱讀 2057

如果在windows作業系統上部署oracle資料庫系統,會將起動過程寫入到作業系統的服務列表中。並且一些主要的服務都會被設定為自動啟動。如此的話,當作業系統啟動的時候,資料庫會自動啟動。當關閉作業系統時這些服務也會自動關閉。如下圖所示,就是在windows作業系統下的oralce資料庫系統的典型服務。

一、了解主要的oracle資料庫服務

雖然上圖中列舉出了很多的oracle資料庫服務,但是在實際過程中我們用到的只是其中的四種。分別為oracletnslistener(上圖中的第二個服務,這服務對應於資料庫的監聽程式)、oracleservicedtm123(上圖中的第乙個服務,對應於資料庫例程)、oracledbconsoledmt123(上圖中最後乙個服務,對應於資料庫的企業管理器)、oracleisql*plus(上圖中的第五個服務,對應於資料庫的isql*plus工具)。資料庫管理員必須要對這四個服務的作用以及相互之間的關係瞭如指掌。因為有時候處於維護的需要,資料庫管理員需要通過這個服務列表來管理資料庫的啟動與關閉。

如當啟動這些資料庫服務的時候,會占用比較多的記憶體、cpu等系統資源。有時候在windows作業系統上安裝oracle資料庫系統可能只是出於測試、培訓等目的。為此沒有必要讓這些資料庫服務一直執行著,而影響作業系統上的其它服務。所以有時候資料庫管理員不希望這些資料庫服務隨著作業系統的啟動而自動啟動。他們希望能夠在需要的時候手工啟動這些服務。如此的話,在不需要用到資料庫的時候,這些服務就不會占用寶貴的例程。此時資料庫管理員就需要更改這些服務的啟動方式。如上圖所示,可以將以上四種服務設定為「手動」啟動方式。如此的話,資料庫系統不會隨著作業系統的啟動而自動啟動。如果需要更改這些服務的啟動方式,只需要選中以上對應的服務,雙擊這個服務,會開啟乙個服務管理的對話方塊。在這個對話方塊內我們可以發現有乙個啟動型別的下拉列表,只要選擇「手動」,即可以更改這些服務的啟動方式。預設情況下,這個啟動型別為「自動」。如果一直不需要使用這些服務,甚至可以將啟動型別設定為「已禁用」。

二、了解各種服務之間的關係。

資料庫服務在啟動的時候會受到以上限制因素的影響。在關閉這些服務的時候也是如此。不過比服務啟動的時候好的多,操作會在關閉服務的時候去自動檢測是否存在相關的依存服務。如果存在的話,會先自動關閉其它的服務,然後再關閉這個服務。如現在作業系統中同時啟動了資料庫企業管理器服務與資料庫例程這兩個服務。現在資料庫管理員暫時不用oracle資料庫了,他就要關閉資料庫例程服務以釋放其占用記憶體與cpu資源。此時在關閉這個服務的時候,作業系統發現現有啟動的服務(企業管理器)需要用到這個正在關閉的服務。此時作業系統會先關閉企業管理器服務,然後再關閉資料庫例程服務。也就是說,服務在啟動的時候,如果服務之間存在依存關係,作業系統是不會自動啟動的。而是丟擲異常資訊,讓資料庫管理員手工啟動相關聯的服務。但是在關閉服務的時候,則如果遇到相互依存的服務,作業系統會自動關閉相互依存的服務。為此在關閉某個服務的時候,資料庫管理員一定要了解他們之間相互依存關係。要防止為了關閉某個服務,而同時關閉其它正在使用的服務。此時可能會給使用者造成不必要的損失。

三、利用服務啟動資料庫與利用命令啟動資料庫的差異

在使用命令啟動資料庫的時候,可以利用不同的選項讓資料庫啟動在不同的狀態中。如通常情況下利用命令來啟動資料庫,帶上不同的選項,可以讓資料庫只啟動例程(帶上nomount選項)、掛載資料庫而不開啟資料庫(採用mount選賢)、開啟資料庫(採用open選項)或者以受限模式(帶上restrict選項)開啟資料庫系統。有時候以某種特定的方式來開啟資料庫系統對於資料庫管理員維護資料庫是非常重要的。如資料庫管理員需要將某個資料庫檔案移動到新的硬碟上以減少硬碟的i/q衝突或者需要將資料庫從非歸檔模式轉換到歸檔模式的時候,就需要將資料庫啟動到掛載模式。即開啟控制檔案而沒有開啟資料檔案。此時可以更改控制檔案中的內容(控制檔案已經開啟);也可以移動資料檔案(資料檔案在掛載模式下還沒有開啟。只有在這個模式下才能夠完成對資料檔案的更名、移動等操作。而且利用命令還可以在不同的模式下進行轉換。如現在處於資料庫掛載模式,則可以利用alter database open命令將資料庫轉換為開啟模式。這些功能通過oracle服務都是無法完成的。

而通過服務來控制資料庫的啟動與關閉,就不能夠做到這麼精細的控制。一般情況下,只有監聽程式服務、資料庫例程服務和資料庫企業管理器服務三個服務同時開啟的情況下,對應的資料庫才處於啟動狀態。或者說,只有資料庫企業管理器服務啟動時資料庫才處於開啟狀態。因為只有有監聽程式服務、資料庫例程服務這兩個服務啟動後,才可以啟動企業管理器服務。所以一般情況下,企業管理器服務啟動了,就表示這三個服務已經同時啟動。如果有乙個服務還處於關閉的狀態,那麼資料庫就是處於關閉狀態。

可見通過命令與通過服務來管理資料庫的啟動與關閉存在很多的差異。一般情況下筆者建議大家還是通過命令來維護資料庫的啟動與關閉操作為好。不過通過服務,也可以起到一些命令無法實現的功能。如現在資料庫管理員不希望資料庫隨著作業系統的啟動而自動啟動,此時就可以通過更改對應服務啟動型別來實現。如可以將上面的服務的啟動型別設定為「手工」啟動。此時當作業系統啟動時,就不會自動啟動資料庫系統。不過這主要用於一些測試伺服器或者培訓伺服器上。對於在企業生產環境中使用的資料庫伺服器,往往要將這個服務設定為自動啟動。即讓作業系統啟動時自動啟動資料庫服務,以減少資料庫管理員的工作量。所以說,雖然通過服務來管理資料庫的啟動與關閉程序,屬於粗放型的管理。但是有時候資料庫管理員確實也離不開它。

最後需要提醒的一點是,在windows作業系統中,預設情況下資料庫系統是會隨著作業系統的啟動而自動啟動的。而在linux等到作系統平台上,由於沒有這種服務的管理機制,所以在linux作業系統部署oracle資料庫系統的時候,預設情況下是不會隨著作業系統的啟動而啟動的。如果資料庫管理員需要讓其隨著作業系統啟動而自動啟動,就需要在啟動列表中加入相關的指令才行。這是在兩個不同作業系統上部署oracle資料庫的乙個很明顯的區別。

**:

Windows 平台上的 InnoDB

出錯詳解 e lamp mysql bin mysqld max nt standalone console innodb error you must set the log group home dir in my.cnf the innodb same as log arch dir.0204...

Windows 平台上刪除oracle資料庫的方法

解除安裝oracle資料庫的步驟如下 1 開始 設定 控制面板 管理工具 服務 停止所有oracle服務。2 開始 程式 oracle oracle installation products universal installer 卸裝所有oracle產品,但universal installer...

Windows 平台上優雅的Markdown編輯器

windows 平台上的本地 markdown 編輯器及相應應用的介紹 markdown 是一種輕量級標記語言 允許人們 使用易讀易寫的純文字格式編寫文件,然後轉換成有效的xhtml 或者 html 文件 由於markdown的輕量化 易讀易寫特性,並且對於,圖表 數學式都有支援,目前許多 都廣泛使...