Oracle 的啟動需要經曆四個狀態,SHUTDOWN 、NOMOUNT 、MOUNT 、OPEN、
SHUTDOWN狀態
第一狀態沒什麼好解釋的,oracle的所有檔案都靜靜的躺在磁碟裡,一切都還未開始,屬於關機狀態
NOMOUNT狀態
Starting the instance (nomount)
* Reading the initialization file from $ORACLE_HOME/dbs in the following order:
-first spfileSID.ora
-if not found then, spfile.ora
-if not found then, initSID.ora
Specifying the PFILE parameter with STARTUP overrides the default behavior.
* Allocating the SGA
* Starting the background processes
* Opening the alertSID.log file and the trace files
The database must be named with the DB_NAME parameter either in the initialization
Parameter file or in the STARTUP command.
-----------------------------------------------------------------------
* 讀取環境變數下dbs目錄下的參數檔案(spfile/pfile)
[ora10@localhost dbs]$ pwd
/ora10/product/10.2.0/db_1/dbs
[ora10@localhost dbs]$ ll
-rw-r----- 1 ora10 dba 3584 07-19 22:07 spfilechongshi.ora
-rw-r----- 1 ora10 dba 3584 07-23 22:00 spfile.ora
-rw-r--r-- 1 ora10 dba 1106 07-19 21:47 initchongshi.ora
尋找參數檔案的順序如上面列表的,讀取優先順序
spfilechongshi.ora > spfile.ora>initchongshi.ora
如果三個檔案都找不到的話,那麼將啟動失敗。
* 啟動演算法,分配記憶體
* 啟動後台進程
* 開放alertSID.log檔案和追蹤檔案
[ora10@localhost dbs]$ sqlplus SQL*Plus: Release 10.2.0.1.0 - Production on Tue Jul 24 22:33:54 2012Copyright (c) 1982, 2005, Oracle. All rights reserved.Enter user-name: /as sysdbaConnected to an idle instance.SQL> startup nomount;ORACLE instance started.Total System Global Area 205520896 bytesFixed Size 1218532 bytesVariable Size 79693852 bytes Database Buffers 121634816 bytes Redo Buffers 2973696 bytes
現在就處在一個nomount狀態。
mount狀態
Mounting a database includes the following tasks:
* Associating a database with a previously started instance
* Locating and opening the control files specified in the parameter file
* Reading the control files to obtain the names and status of the data files and online redo log files.However,no checks are performed to verify the existence of the data files and online redo log files at this time.
---------------------------------------------------------------------------------
* 把一個資料庫和啟動的執行個體關聯起來
* 在參數檔案(spfile/pfile)中找到控制檔案進行讀取
查看參數檔案:
[ora10@localhost dbs]$ strings spfileora10.ora | more
......
*.control_files='/ora10/product/oradata/ora10/control01.ctl','/ora10/product/ora
data/ora10/control02.ctl','/ora10/product/oradata/ora10/control03.ctl'
.......
控制檔案:
[ora10@localhost ~]$ cd /ora10/product/oradata/ora10/
[ora10@localhost ora10]$ ll
總計 954196
-rw-r----- 1 ora10 dba 7061504 07-23 23:01 control01.ctl
-rw-r----- 1 ora10 dba 7061504 07-23 23:01 control02.ctl
-rw-r----- 1 ora10 dba 7061504 07-23 23:01 control03.ctl
* 讀取控制檔案,獲得的資料檔案和聯機重做記錄檔,然而,在這個時候沒有進行檢查以驗證存在的資料檔案和聯機重做記錄檔
[ora10@localhost dbs]$ sqlplus SQL*Plus: Release 10.2.0.1.0 - Production on Tue Jul 24 23:02:28 2012 Copyright (c) 1982, 2005, Oracle. All rights reserved. Enter user-name: /as sysdba Connected to an idle instance. SQL> startup mount; ORACLE instance started. Total System Global Area 205520896 bytes Fixed Size 1218532 bytes Variable Size 79693852 bytes Database Buffers 121634816 bytes Redo Buffers 2973696 bytes Database mounted.
現在進入了資料庫的mount狀態,我們通過mount啟動的時候,下面會多一句提示“Database mounted.” 資料庫準備就緒。
open狀態
opening the database includes the following tasks
opening the online data log files
opening the onling redo log files
If any of the datafiles or noline redo log files are not present when you attempt to open the database ,the oracle server returns an error.
During this final stage,the oracle server verfies that all the data files and online redo log files can be opened and checks the consistency of the database . If necessary , the SMON background process initiates instance recovery.
-----------------------------------------------------------------------------------------
開啟資料庫包括下列任務:
開啟線上資料記錄檔
開啟聯機重做記錄檔
如果任何資料檔案或非線性重做記錄檔不存在,當您試圖開啟的資料庫,伺服器返回錯誤。
在這最後階段,該伺服器驗證所有資料檔案和聯機重做記錄檔可以開啟並檢查資料庫的一致性。如果需要,該系統監控進程開始執行個體恢複。
[ora10@localhost dbs]$ sqlplus /nolog SQL*Plus: Release 10.2.0.1.0 - Production on Wed Jul 25 21:50:55 2012 Copyright (c) 1982, 2005, Oracle. All rights reserved. SQL> conn /as sysdba Connected to an idle instance. SQL> startup ORACLE instance started. Total System Global Area 205520896 bytes Fixed Size 1218532 bytes Variable Size 79693852 bytes Database Buffers 121634816 bytes Redo Buffers 2973696 bytes Database mounted. Database opened.
在上面的命令中,startup後面不加其它資訊的話,系統會為我們直接啟動到第4個狀態。
資料庫關閉的三種方式
1、shutdown normal
正常方式關閉資料庫。
2、shutdown immediate
立即方式關閉資料庫。
在SVRMGRL中執行shutdown immediate,資料庫並不立即關閉,
而是在Oracle執行某些清除工作後才關閉(終止會話、釋放會話資源),
當使用shutdown不能關閉資料庫時,shutdown immediate可以完成資料庫關閉的操作。
3、shutdown abort
直接關閉資料庫,正在訪問資料庫的會話會被突然終止,
如果資料庫中有大量操作正在執行,這時執行shutdown abort後,重新啟動資料庫需要很長時間。