一、摘要
Oracle數據庫的完整啟動過程是分步驟完成的,包含以下3個步驟:
啟動實例-->加載數據庫-->打開數據庫
因為Oracle數據庫啟動過程中不同的階段可以對數據庫進行不同的維護操作,對應我們不同的需求,所以就需不同的模式啟動數據庫。
1. Oracle啟動需要經歷四個狀態(tài):SHUTDOWN 、NOMOUNT 、MOUNT 、OPEN
2. Oracle關閉的四種方式:Normal, Immediate, Transactional, Abort
3. 啟動和關閉過程詳解
二、數據庫啟動過程
1.NoMount 模式(啟動實例不加載數據庫)
(1). 命令:startup nomount
(2). 講解:這種啟動模式只會創(chuàng)建實例,并不加載數據庫,Oracle僅為實例創(chuàng)建各種內存結構和服務進程,不會打開任何數據文件。
在NoMount模式下,只能訪問那些與SGA區(qū)相關的數據字典視圖,包括VPARAMETER、VSGA、VPROCESS和VSESSION等,這些視圖中的信息都是從SGA區(qū)中獲取的,與數據庫無關。
(3). 模式用途:
創(chuàng)建新數據庫;
重建控制文件;
2.Mount模式(加載數據庫但不打開數據庫)
(1). 命令:startup mount
(2). 講解:這種啟動模式將為實例加載數據庫,但保持數據庫為關閉狀態(tài)。因為加載數據庫時需要打開數據庫控制文件,但數據文件和重做日志文件都都無法進行讀寫,所以用戶還無法對數據庫進行操作。
在Mount模式下,只能訪問那些與控制文件相關的數據字典視圖,包括VTHREAD、VCONTROLFILE、VDATABASE、VDATAFILE 和 V$LOGFILE等,這些視圖都是從控制文件中獲取的。
(3). 模式用途:
重命名數據文件;
添加、刪除或重命名重做日志文件;
執(zhí)行數據庫完全恢復操作;
改變數據庫的歸檔模式;
3.Open模式(正常打開數據庫)
(1). 命令:startup [open]
(2). 講解:正常按3個步驟啟動數據庫。
(3). 模式用途:
平時不對數據庫做什么維護,像只做應用開發(fā),用這個模式就好了;
4.強制啟動模式
(1). 命令:startup force
(2). 用途講解:
在某些情況下,使用前面的各種模式都無法成功啟動數據庫時,可以嘗試強制啟動模式。
5. 其他
使用Alter Database語句,還可以在各啟動模式間切換。并且,還可以對數據庫設置不同的狀態(tài)用于不同的操作,如受/非受限抽狀態(tài)、只讀。
三、數據庫關閉過程
1. Nomal(正常關閉方式)
(1). 命令:shutdown nomal
(2). 講解:正常方式關閉數據時,Oracle執(zhí)行如下操作:
阻止任何用戶建立新的連接。
等待當前所有正在連接的用戶主動斷開連接(此方式下Oracle不會立即斷掉當前用戶的連接,這些用戶仍然操作相關的操作)
一旦所有的用戶都斷開連接,則立即關閉、卸載數據庫,并終止實例。(所以,一般以正常方式關閉數據庫時,應該通知所有在線的用戶盡快斷開連接)
2. Immediate(立即關閉方式)
(1). 命令:shutdown immediate
(2). 講解:
阻止任何用戶建立新的連接,同時阻止當前連接的用戶開始任何新的事務。
Oracle不等待在線用戶主動斷開連接,強制終止用戶的當前事務,將任何未提交的事務回退。(如果存在太多未提交的事務,此方式將會耗費很長時間終止和回退事務)
直接關閉、卸載數據庫,并終止實例。
3. Transactional(事務關閉方式)
(1). 命令:shutdown transactional
(2). 講解:這種方式介于正常關閉方式跟立即關閉方式之間,響應時間會比較快,處理也將比較得當。執(zhí)行過程如下:
阻止任何用戶建立新的連接,同時阻止當前連接的用戶開始任何新的事務。
等待所有未提交的活動事務提交完畢,然后立即斷開用戶的連接。
直接關閉、卸載數據庫,并終止實例。
4. Abort(終止關閉方式)
(1). 命令:shutdown abort
(2). 講解:這是比較粗暴的一種關閉方式,當前面3種方式都無法關閉時,可以嘗試使用終止方式來關閉數據庫。但是以這種方式關閉數據庫將會丟失一部份數據信息,當重新啟動實例并打開數據庫時,后臺進程SMON會執(zhí)行實例恢復操作。一般情況下,應當盡量避免使用這種方式來關閉數據庫。執(zhí)行過程如下:
阻止任何用戶建立新的連接,同時阻止當前連接的用戶開始任何新的事務。
立即終止當前正在執(zhí)行的SQL語句。
任何未提交的事務均不被退名。
直接斷開所有用戶的連接,關閉、卸載數據庫,并終止實例。
四、案例數據庫啟動全過程
Step1. SQLPLUS /'as sysdba'
SQL*Plus: Release 10.2.0.1.0 - Production on Sat Mar 3 22:48:27 2012
Copyright (c) 1982, 2005, Oracle. All rights reserved.
Connected to an idle instance.
Step2. Startup nomount
ORACLE instance started.
-->
Total System Global Area 167772160 bytes
Fixed Size 1218316 bytes
Variable Size 104859892 bytes
Database Buffers 58720256 bytes
Redo Buffers 2973696 bytes
oracle@db1:~> ps -ef | grep ora_
oracle 3626 1 0 22:48 ? 00:00:00 ora_pmon_orcl1
oracle 3628 1 0 22:48 ? 00:00:00 ora_psp0_orcl1
oracle 3630 1 0 22:48 ? 00:00:00 ora_mman_orcl1
oracle 3632 1 0 22:48 ? 00:00:00 ora_dbw0_orcl1
oracle 3634 1 0 22:48 ? 00:00:00 ora_lgwr_orcl1
oracle 3636 1 0 22:48 ? 00:00:00 ora_ckpt_orcl1
oracle 3638 1 0 22:48 ? 00:00:00 ora_smon_orcl1
oracle 3640 1 0 22:48 ? 00:00:00 ora_reco_orcl1
oracle 3642 1 0 22:48 ? 00:00:00 ora_cjq0_orcl1
oracle 3644 1 0 22:48 ? 00:00:00 ora_mmon_orcl1
oracle 3646 1 0 22:48 ? 00:00:00 ora_mmnl_orcl1
oracle 3648 1 0 22:48 ? 00:00:00 ora_d000_orcl1
oracle 3650 1 0 22:48 ? 00:00:00 ora_s000_orcl1
Step3. Startup mount
Oracle instance started.
-->
Total System Global Area 167772160 bytes
Fixed Size 1218316 bytes
Variable Size 104859892 bytes
Database Buffers 58720256 bytes
Redo Buffers 2973696 bytes
Database mounted.
Step4. Startup
ORACLE instance started.
-->
Total System Global Area 167772160 bytes
Fixed Size 1218316 bytes
Variable Size 104859892 bytes
Database Buffers 58720256 bytes
Redo Buffers 2973696 bytes
Database mounted.
Database opened.
您可能感興趣的文章:- Oracle11g RAC開啟關閉、設置歸檔小結
- 深入剖析哪些服務是Oracle 11g必須開啟的
- 詳解Linux系統(tǒng)中Oracle數據庫程序的啟動和關閉方式
- Oracle cloud control 12c的啟動、關閉及獲取安裝信息的方法
- Oracle數據庫的啟動與關閉方法
- oracle 如何關閉打開歸檔日志
- ORACLE11g隨RHEL5系統(tǒng)自動啟動與關閉的設置方法
- oracle 服務啟動,關閉腳本(windows系統(tǒng)下)
- Oracle開啟和關閉的四種模式