Oracle

實例啟動模式和關機模式

  • April 6, 2013

所以,我知道該實例有 3 種啟動模式可用,即 NOMOUNT、MOUNT 和 OPEN。我想知道的是在 NOMOUNT 模式下,說明實例已啟動但仍未與數據庫關聯,那麼誰啟動了實例?是數據庫本身還是其他東西?

如果我使用該命令shutdown,那麼只有實例被關閉還是數據庫也被關閉?

提前致謝!

這樣想:

  • 數據庫是磁碟上的一組*物理文件。*這是一個完全被動的“東西”。它自己不會“做”任何事情——它只是數據。
  • 實例是管理數據庫的軟體/程序(及其記憶體)。這是活躍的部分。它是客戶端連接的對象,是處理 SQL、讀取數據、更新數據、維護事務日誌等的對象。

當您從 開始時nomount,您啟動實例(啟動幾個程序,創建記憶體區域),但實際上並沒有去查看數據庫。您將在記憶體中準備好掛載數據庫的內容,或者在該狀態下執行一些您可以執行的維護操作(例如創建數據庫),但僅此而已。此時數據庫完全無法訪問。

當你mount時,控製文件(包含數據庫文件的描述)被讀取,但數據庫仍然沒有打開。即你不能訪問數據本身。

只有您最終open數據庫才能開始與數據庫互動。

使用 RAC 會稍微複雜一些,但原理是一樣的:數據庫只是一組文件。這些實例允許您與數據庫進行互動。

關機以相反的方向進行。對於正常的非 RAC 關閉,實例會刷新所有尚未保存在數據庫中的記憶體數據,並關閉數據庫文件。客戶端無法再訪問數據。

然後實例解除安裝數據庫,關閉控製文件。在這一點上,你留下的東西與實例幾乎相同nomount——一組程序和記憶體實際上並不能做太多事情。

最後一步是實際關閉:記憶體區域被釋放回作業系統,程序死亡,這是該實例的結束。

數據庫不做任何事情。實例是系統中唯一的活動部分。

有關更深入的視圖,請參閱Oracle 數據庫實例。它概述了啟動和關閉順序以及其他基本資訊。

Oracle 概念指南中的答案:

數據庫和實例啟動概述

在典型的案例中,您手動啟動一個實例,然後掛載並打開數據庫,使其可供使用者使用。您可以使用 SQL*Plus STARTUP 命令、Oracle Enterprise Manager(企業管理器)或 SRVCTL 實用程序來執行這些步驟。

數據庫和實例關閉概述

每當打開的數據庫持續關閉時,Oracle 數據庫都會自動執行以下步驟:

  1. 數據庫已關閉 數據庫已掛載,但線上數據文件和重做日誌文件已關閉。
  2. Database unmounted 實例已啟動,但不再與數據庫的控製文件關聯。
  3. 數據庫實例關閉 數據庫實例不再啟動。

引用自:https://dba.stackexchange.com/questions/28332