一、摘要
Oracle數(shù)據(jù)庫的完整啟動過程是分步驟完成的,包含以下3個步驟:
啟動實例-->加載數(shù)據(jù)庫-->打開數(shù)據(jù)庫
因為Oracle數(shù)據(jù)庫啟動過程中不同的階段可以對數(shù)據(jù)庫進行不同的維護操作,對應(yīng)我們不同的需求,所以就需不同的模式啟動數(shù)據(jù)庫。
1. Oracle啟動需要經(jīng)歷四個狀態(tài):SHUTDOWN 、NOMOUNT 、MOUNT 、OPEN
2. Oracle關(guān)閉的四種方式:Normal, Immediate, Transactional, Abort
3. 啟動和關(guān)閉過程詳解
二、數(shù)據(jù)庫啟動過程
1.NoMount 模式(啟動實例不加載數(shù)據(jù)庫)
(1). 命令:startup nomount
(2). 講解:這種啟動模式只會創(chuàng)建實例,并不加載數(shù)據(jù)庫,Oracle僅為實例創(chuàng)建各種內(nèi)存結(jié)構(gòu)和服務(wù)進程,不會打開任何數(shù)據(jù)文件。
在NoMount模式下,只能訪問那些與SGA區(qū)相關(guān)的數(shù)據(jù)字典視圖,包括VPARAMETER、VSGA、VPROCESS和VSESSION等,這些視圖中的信息都是從SGA區(qū)中獲取的,與數(shù)據(jù)庫無關(guān)。
(3). 模式用途:
創(chuàng)建新數(shù)據(jù)庫;
重建控制文件;
2.Mount模式(加載數(shù)據(jù)庫但不打開數(shù)據(jù)庫)
(1). 命令:startup mount
(2). 講解:這種啟動模式將為實例加載數(shù)據(jù)庫,但保持數(shù)據(jù)庫為關(guān)閉狀態(tài)。因為加載數(shù)據(jù)庫時需要打開數(shù)據(jù)庫控制文件,但數(shù)據(jù)文件和重做日志文件都都無法進行讀寫,所以用戶還無法對數(shù)據(jù)庫進行操作。
在Mount模式下,只能訪問那些與控制文件相關(guān)的數(shù)據(jù)字典視圖,包括VTHREAD、VCONTROLFILE、VDATABASE、VDATAFILE 和 V$LOGFILE等,這些視圖都是從控制文件中獲取的。
(3). 模式用途:
重命名數(shù)據(jù)文件;
添加、刪除或重命名重做日志文件;
執(zhí)行數(shù)據(jù)庫完全恢復(fù)操作;
改變數(shù)據(jù)庫的歸檔模式;
3.Open模式(正常打開數(shù)據(jù)庫)
(1). 命令:startup [open]
(2). 講解:正常按3個步驟啟動數(shù)據(jù)庫。
(3). 模式用途:
平時不對數(shù)據(jù)庫做什么維護,像只做應(yīng)用開發(fā),用這個模式就好了;
4.強制啟動模式
(1). 命令:startup force
(2). 用途講解:
在某些情況下,使用前面的各種模式都無法成功啟動數(shù)據(jù)庫時,可以嘗試強制啟動模式。
5. 其他
使用Alter Database語句,還可以在各啟動模式間切換。并且,還可以對數(shù)據(jù)庫設(shè)置不同的狀態(tài)用于不同的操作,如受/非受限抽狀態(tài)、只讀。
三、數(shù)據(jù)庫關(guān)閉過程
1. Nomal(正常關(guān)閉方式)
(1). 命令:shutdown nomal
(2). 講解:正常方式關(guān)閉數(shù)據(jù)時,Oracle執(zhí)行如下操作:
阻止任何用戶建立新的連接。
等待當前所有正在連接的用戶主動斷開連接(此方式下Oracle不會立即斷掉當前用戶的連接,這些用戶仍然操作相關(guān)的操作)
一旦所有的用戶都斷開連接,則立即關(guān)閉、卸載數(shù)據(jù)庫,并終止實例。(所以,一般以正常方式關(guān)閉數(shù)據(jù)庫時,應(yīng)該通知所有在線的用戶盡快斷開連接)
2. Immediate(立即關(guān)閉方式)
(1). 命令:shutdown immediate
(2). 講解:
阻止任何用戶建立新的連接,同時阻止當前連接的用戶開始任何新的事務(wù)。
Oracle不等待在線用戶主動斷開連接,強制終止用戶的當前事務(wù),將任何未提交的事務(wù)回退。(如果存在太多未提交的事務(wù),此方式將會耗費很長時間終止和回退事務(wù))
直接關(guān)閉、卸載數(shù)據(jù)庫,并終止實例。
3. Transactional(事務(wù)關(guān)閉方式)
(1). 命令:shutdown transactional
(2). 講解:這種方式介于正常關(guān)閉方式跟立即關(guān)閉方式之間,響應(yīng)時間會比較快,處理也將比較得當。執(zhí)行過程如下:
阻止任何用戶建立新的連接,同時阻止當前連接的用戶開始任何新的事務(wù)。
等待所有未提交的活動事務(wù)提交完畢,然后立即斷開用戶的連接。
直接關(guān)閉、卸載數(shù)據(jù)庫,并終止實例。
4. Abort(終止關(guān)閉方式)
(1). 命令:shutdown abort
(2). 講解:這是比較粗暴的一種關(guān)閉方式,當前面3種方式都無法關(guān)閉時,可以嘗試使用終止方式來關(guān)閉數(shù)據(jù)庫。但是以這種方式關(guān)閉數(shù)據(jù)庫將會丟失一部份數(shù)據(jù)信息,當重新啟動實例并打開數(shù)據(jù)庫時,后臺進程SMON會執(zhí)行實例恢復(fù)操作。一般情況下,應(yīng)當盡量避免使用這種方式來關(guān)閉數(shù)據(jù)庫。執(zhí)行過程如下:
阻止任何用戶建立新的連接,同時阻止當前連接的用戶開始任何新的事務(wù)。
立即終止當前正在執(zhí)行的SQL語句。
任何未提交的事務(wù)均不被退名。
直接斷開所有用戶的連接,關(guān)閉、卸載數(shù)據(jù)庫,并終止實例。
四、案例數(shù)據(jù)庫啟動全過程
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開啟關(guān)閉、設(shè)置歸檔小結(jié)
- 深入剖析哪些服務(wù)是Oracle 11g必須開啟的
- 詳解Linux系統(tǒng)中Oracle數(shù)據(jù)庫程序的啟動和關(guān)閉方式
- Oracle cloud control 12c的啟動、關(guān)閉及獲取安裝信息的方法
- Oracle數(shù)據(jù)庫的啟動與關(guān)閉方法
- oracle 如何關(guān)閉打開歸檔日志
- ORACLE11g隨RHEL5系統(tǒng)自動啟動與關(guān)閉的設(shè)置方法
- oracle 服務(wù)啟動,關(guān)閉腳本(windows系統(tǒng)下)
- Oracle開啟和關(guān)閉的四種模式