Oracle的啟動與關閉
一、啟動與關閉過程
啟動(startup):shutdown→nomount(常式啟動)→mount→open
關閉(shutdown):open→mount→nomount→shutdown
二、啟動常式(nomount)
啟動常式讓資料庫處於nomount狀態一般用於建立資料庫或重新建立控制檔案過程中
啟動常式包括下列任務
按下列順序從$ORACLE_HOME/dbs讀取初始設定檔案:
首先讀取spfileSID.ora
如果找不到,則讀取spfile.ora
如果仍然找不到,則讀取initSID.ora
可以使用startup制定pfile參數以覆蓋預設行為
分配SGA
啟動後台進程
開啟alertSID.log
三、載入資料庫(mount)
啟動常式並載入資料庫,但不要開啟資料庫讓資料庫處於mount狀態一般用於執行特定的維護操作:例如重新命名資料庫檔案,啟用和禁用重做日誌歸檔選項,執行完全資料庫恢複。
載入資料庫包括以下任務
使資料庫與以前啟動的常式關聯
定位並開啟參數檔案中指定的控制檔案
讀取控制檔案以擷取資料檔案和重做記錄檔的名稱和狀態。但是在此時不進行資料檔案和重做記錄檔是否存在的檢查。
四、開啟資料庫(open)
開啟資料庫讓資料庫處於open狀態任何有效使用者都可以串連到資料庫並執行一般的資料訪問
開啟資料庫包括一下任務
開啟聯機資料檔案
開啟聯機重做記錄檔
oracle伺服器驗證所有資料檔案和重做記錄檔是否可以開啟並檢查資料的一致性,如果需要,系統監視(SMON)後台進程將啟動常式恢複操作。
五、startup命令
若要啟動常式,可使用以下命令
startup 【force】 【restrict】 【pfile=filename】 【open 【recover】 【database】 | mount | nomount 】
其中:
open:使使用者能夠訪問資料庫
mount:為某些DBA活動載入資料庫,但不允許使用者訪問資料庫
nomount:建立SGA並啟動後台進程,但不允許訪問資料庫
pfile=filename:允許使用非預設參數檔案配置常式
force:執行正常啟動前終止啟動並執行常式(一般情況不建議使用,有可能造成資料庫損壞,並無法啟動)
restrict:只允許覺有restrict session許可權的使用者訪問資料庫
recover:在資料庫啟動時開始進行介質恢複(一般情況下不建議使用,容易丟資料)
六、alter databasa命令
要將資料庫從nomount更改為mount階段或者從mount更改為open階段,請使用alter database命令
alter database {mount | open}
若要紡織資料被使用者事務修改,可以以唯讀模式開啟資料庫
alter database open 【read write | read only】
read write:以讀寫入模式開啟資料庫,以便使用者產生重做日誌
read only:將使用者限制為只能執行唯讀事務,紡織使用者產生重做日誌
此模式可用於
執行查詢
使用本地管理的資料表空間執行磁碟排序
使資料檔案(而不是資料表空間)離線和聯機
執行離線資料檔案和資料表空間的恢複
七、以受限模式開啟資料庫
當執行結構維護或資料庫匯入匯出時,以受限模式啟動資料庫,這樣,只有具有restrict session許可權的使用者才可以使用資料庫。使用alter system SQL命令也可以將資料庫設為受限模式:
alter system 【{enable | disable} restricted session】
enable:僅允許具有restricted session許可權的使用者在以後登陸
disable:禁用restrict session以允許沒有該許可權的使用者可以登陸
將常式置於受限模式後,可以使用一下命令來終止所有當前會話
alter system kill session ‘integer1,integer2’
integer1:V$session視圖中的SID列的值
integer2:V$session視圖中的serial#列的值
執行該命令後,PMON會執行一下操作
回退使用者當前事務
釋放所有當前持有的表或行鎖定
釋放使用者當前保留的所有資源
八、關閉資料庫
關閉資料庫這一操作將導致對所有物理結構進行作業系統離線備份,並使修改過的靜態初始化參數在重新啟動後生效,有四種模式:abort、immediate、transactional、normal
關閉資料庫必須以sysoper或sysdba身份使用一下命令操作
shutdown 【normal | transactional | immediate | abort】
九、乾淨的關閉資料庫
使用正常關閉(normal)、交易處理關閉(transactional)、立即關閉(immediate)等操作能乾淨的關閉資料庫,乾淨的關閉資料庫的流程
在關閉過程中將資料庫緩衝區告訴緩衝的內容寫入資料檔案
回退未認可的變更
釋放資源
在啟動過程中沒有發生常式恢複
正常關閉
正常關閉(normal)是預設的關閉模式。正常的護具看關閉在下列情況下進行
未建立新串連
oracle伺服器等待所有使用者斷開後才完成關閉
資料庫和重做緩衝區(redo log buffer)中的內容已寫入磁碟
後台進程終止,SGA已從記憶體中刪除
oracle在關閉常式前將關閉並卸載資料庫
下次啟動將不要求常式恢複
交易處理關閉(transactional)防止客戶機丟失工作,在下列情況下進行
沒有客戶機可以在此特定常式上啟動新事物
當客戶機結束進行中的事務時,斷開客戶機
當所有事務都已完成後立即關閉
下次啟動將不要求常式恢複
立即關閉(immediate)在下列情況下進行
由oracle處理的當前SQL語句未完成
oracle伺服器不等待當前串連到資料庫的使用者斷開
oracle回退活動的事務並斷開所有串連的使用者
oracle在關閉常式前將關閉並卸載資料庫
下次啟動將不要求常式恢複
十、不正常關閉資料庫
使用關閉終止(abort)操作關閉資料庫一般用在正常和立即關閉資料庫不起作用時,操作所經曆的步驟為:
在關閉過程中發生修改的緩衝區內容不寫入資料檔案
不回退未認可的變更
使用關閉終止強制關閉資料會造成資料庫不一致
在啟動過程中會使用重做日誌重新應用更改
使用撤銷段回退未認可的變更
釋放資源
這種操作容易造成資料庫故障,導致再無法開啟,不建議使用
使用該操作一般用於以下幾種情況
oracle伺服器所處理的當前SQL語句被立即終止。
oracle不等待當前串連資料庫的使用者斷開
資料庫和重做緩衝區中的內容不寫入磁碟
未提交的事務不回退
在不關閉檔案的情況下常式被終止
資料庫不關閉或被卸載
下次啟動要求恢複常式,該操作將自動進行
建議不要備份處於不一致狀態的資料庫