oracle 資料庫啟動過程各步驟詳解
在oracle各啟動模式間切換及受限狀態、唯讀狀態詳解
首先要知道,oracle資料庫的完整啟動過程是分步驟完成的,包含以下3個步驟:
啟動例項–>載入資料庫–>開啟資料庫
1.建立並啟動與資料庫對應的例項。
在啟動例項時,將為例項建立一系列後台程序和服務程序,並且在記憶體中建立sga區等記憶體結構。在例項啟動的過程中只會使用到初始化引數檔案,資料庫是否存在對例項的啟動沒有影響。如果初化引數設定有誤,例項將無法啟動。
2.為例項載入資料庫。
載入資料庫時例項將開啟資料庫的控制檔案,從控制檔案中獲取資料庫名稱、資料檔案的位置和名稱等有關資料庫物理結構的資訊,為開啟資料庫做好準備。如果控制檔案損壞,則例項將無法載入資料庫。在載入資料庫階段,例項並不會開啟資料庫的物理檔案----資料檔案和重做日誌檔案。
3.將資料庫設定為開啟狀態。
開啟資料庫時,例項將開啟所有處於聯機狀態的資料檔案和重做日誌檔案。控制檔案中的任何乙個資料檔案或重做日誌檔案無法正常開啟,資料庫都將返回錯誤資訊,這時需要進行資料庫恢復。
只有將資料庫設定為開啟狀態後,資料庫才處於正常狀態,這時普通使用者才能夠訪問資料庫。在很多情況下,啟動資料庫時並不是直接完成上述3個步驟,而是逐步完成的,然後執行必要的管理操作,最後才使資料庫進入正常執行狀態。所以,才有了各種不同的啟動模式用於不同的資料庫維護操作。
因為oracle資料庫啟動過程中不同的階段可以對資料庫進行不同的維護操作,對應我們不同的需求,所以就需不同的模式啟動資料庫。
小白:在啟動例項之前,需要先啟動sql*plus,並以乙個使用者身份連線到oracle。
啟動模式詳解
1.nomount 模式(啟動例項不載入資料庫)
命令:startup nomount
講解:這種啟動模式只會建立例項,並不載入資料庫,oracle僅為例項建立各種記憶體結構和服務程序,不會開啟任何資料檔案。在nomount模式下,只能訪問那些與sga區相關的資料字典檢視,包括v$parameter
、v$sga
、v$process
和v$session
等,這些檢視中的資訊都是從sga區中獲取的,與資料庫無關。
模式用途:
(1)建立新資料庫;
(2)重建控制檔案。
2.mount模式(載入資料庫但不開啟資料庫)
命令:startup mount
講解:這種啟動模式將為例項載入資料庫,但保持資料庫為關閉狀態。因為載入資料庫時需要開啟資料庫控制檔案,但資料檔案和重做日誌檔案都都無法進行讀寫,所以使用者還無法對資料庫進行操作。 在mount模式下,只能訪問那些與控制檔案相關的資料字典檢視,包括v$thread
、v$controlfile
、v$database
、v$datafile
和v$logfile
等,這些檢視都是從控制檔案中獲取的。
模式用途:
(1)重新命名資料檔案;
(2)新增、刪除或重新命名重做日誌檔案;
(3)執行資料庫完全恢復操作;
(4)改變資料庫的歸檔模式。
3.open模式(正常開啟資料庫)
命令:startup [open]
講解:正常按3個步驟啟動資料庫。
模式用途:平時不對資料庫做什麼維護,像只做應用開發,用這個模式就好了。
4.強制啟動模式
命令:startup force
用途&講解:在某些情況下,使用前面的各種模式都無法成功啟動資料庫時,可以嘗試強制啟動模式。
各個模式的切換
使用alter database語句,還可以在各啟動模式間切換。並且,還可以對資料庫設定不同的狀態用於不同的操作,如受/非受限抽狀態、唯讀。
詳情參考如下:
使用alter database語句,在各啟動模式間切換。
1.從nomount模式切換到mount模式(沒有從mount切換到nomount的):
命令:alter database mount;
2.當資料庫狀態為關閉時,切換到open模式
命令:alter database open;
3.在open模式下,還可以選擇將資料庫設定為非受限狀態和受限狀態。
命令:在啟動open模式時,新增restrict關鍵字:startup restrict
設定或取消受限狀態:alter system enable\disable restricted session;
講解:非受限狀態,就是我們平時應用程式開發用到的狀態。
受限狀態,當開啟的資料庫被設定為受限狀態時,只有create session 和 restricted session系統許可權 或者 具有sysdba 和 syspore 系統許可權的使用者才能連線到資料庫。但進入受限狀態後,系統中仍然可能會存在活動的普通使用者會話。
受限狀態用途:
(1)執行資料匯入或匯出操作;
(2)暫時拒絕普通使用者訪問資料庫;
(3)進行資料庫移植或公升級操作。
4.唯讀狀態
設定唯讀命令:alter database open read only;
取消唯讀命令:alter database open read write;
用途&講解:當乙個正常開啟的資料庫被設定為唯讀狀態時,使用者只能查詢資料,但不能以任何方式對資料庫物件進行修改。處於唯讀狀態,可能保證資料檔案和重做日誌檔案中的內容不被修改,但是並不限制那些不會寫入資料檔案與重做日誌檔案的操作。
與資料庫啟動一下,關閉資料庫與例項也分為3步:
關閉資料庫–> 例項解除安裝資料庫—> 終止例項。
3.transactional(事務關閉方式)
命令:shutdown transactional
講解:這種方式介於正常關閉方式跟立即關閉方式之間,響應時間會比較快,處理也將比較得當。執行過程如下:
(1)阻止任何使用者建立新的連線,同時阻止當前連線的使用者開始任何新的事務。
(2)等待所有未提交的活動事務提交完畢,然後立即斷開使用者的連線。
(3)直接關閉、解除安裝資料庫,並終止例項。
4.abort(終止關閉方式)
命令:shutdown abort
講解:這是比較粗暴的一種關閉方式,當前面3種方式都無法關閉時,可以嘗試使用終止方式來關閉資料庫。但是以這種方式關閉資料庫將會丟失一部份資料資訊,當重新啟動例項並開啟資料庫時,後台程序smon會執行例項恢復操作。一般情況下,應當盡量避免使用這種方式來關閉資料庫。執行過程如下:
(1)阻止任何使用者建立新的連線,同時阻止當前連線的使用者開始任何新的事務。
(2)立即終止當前正在執行的sql語句。
(3)任何未提交的事務均不被退名。
(4)直接斷開所有使用者的連線,關閉、解除安裝資料庫,並終止例項。
ORACLE資料庫啟動與關閉
leolin備註 windows系統下,sid為orcl的服務oracleserviceorcl啟動命令為 d oracle product 10.1.0 db 1 bin oracle.exe orcl,所以orcl資料庫已經為open狀態。1 shutdown normal 正常方式關閉資料庫。...
Oracle 資料庫啟動與關閉
本文說明 oracle 資料庫的啟動和關閉,內容雖然基礎,但是在資料庫很多操作中都需要,因此,基礎而重要,必須深入理解。比如,何種情況應該使用何種資料庫載入模式,以及資料庫檔案開啟模式。若用 startup 命令啟動資料庫,執行的操作要經歷三個不同的階段 例項啟動 instance startup ...
Oracle資料庫的啟動與關閉
一 啟動資料 sqlplus sys pass as sysdba sql startup 三 資料庫的啟動過程 分為三個階段 1.啟動例項,包括以下操作 1 讀取引數檔案 2 分配sga 3 啟動後台程序 裝載資料庫 裝載資料庫是將資料庫與已啟動的例項相聯絡。資料庫裝載後,資料庫保持關閉狀態。開啟...