程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> DBA_Oracle Startup / Shutdown啟動和關閉過程詳解(概念)(對數據庫進行各種維護操作),dba_oracleshutdown

DBA_Oracle Startup / Shutdown啟動和關閉過程詳解(概念)(對數據庫進行各種維護操作),dba_oracleshutdown

編輯:Oracle教程

DBA_Oracle Startup / Shutdown啟動和關閉過程詳解(概念)(對數據庫進行各種維護操作),dba_oracleshutdown


一、摘要

Oracle數據庫的完整啟動過程是分步驟完成的,包含以下3個步驟:

啟動實例-->加載數據庫-->打開數據庫

因為Oracle數據庫啟動過程中不同的階段可以對數據庫進行不同的維護操作,對應我們不同的需求,所以就需不同的模式啟動數據庫。

1. Oracle啟動需要經歷四個狀態:SHUTDOWN 、NOMOUNT 、MOUNT 、OPEN

2. Oracle關閉的四種方式:Normal, Immediate, Transactional, Abort

3. 啟動和關閉過程詳解


 
二、數據庫啟動過程

1.NoMount 模式(啟動實例不加載數據庫)

(1). 命令:startup nomount

(2). 講解:這種啟動模式只會創建實例,並不加載數據庫,Oracle僅為實例創建各種內存結構和服務進程,不會打開任何數據文件。

               在NoMount模式下,只能訪問那些與SGA區相關的數據字典視圖,包括VPARAMETER、VSGA、VPROCESS和VSESSION等,這些視圖中的信息都是從SGA區中獲取的,與數據庫無關。

(3). 模式用途:

創建新數據庫;
重建控制文件;
2.Mount模式(加載數據庫但不打開數據庫)

(1). 命令:startup mount

(2). 講解:這種啟動模式將為實例加載數據庫,但保持數據庫為關閉狀態。因為加載數據庫時需要打開數據庫控制文件,但數據文件和重做日志文件都都無法進行讀寫,所以用戶還無法對數據庫進行操作。

                在Mount模式下,只能訪問那些與控制文件相關的數據字典視圖,包括VTHREAD、VCONTROLFILE、VDATABASE、VDATAFILE 和 V$LOGFILE等,這些視圖都是從控制文件中獲取的。

(3). 模式用途:

重命名數據文件;
添加、刪除或重命名重做日志文件;
執行數據庫完全恢復操作;
改變數據庫的歸檔模式;
3.Open模式(正常打開數據庫)

(1). 命令:startup [open]

(2). 講解:正常按3個步驟啟動數據庫。

(3). 模式用途:

平時不對數據庫做什麼維護,像只做應用開發,用這個模式就好了;
4.強制啟動模式

(1). 命令:startup force

(2). 用途&講解:

在某些情況下,使用前面的各種模式都無法成功啟動數據庫時,可以嘗試強制啟動模式。
5. 其他

使用Alter Database語句,還可以在各啟動模式間切換。並且,還可以對數據庫設置不同的狀態用於不同的操作,如受/非受限抽狀態、只讀。

三、數據庫關閉過程

1. Nomal(正常關閉方式)

(1). 命令:shutdown nomal

(2). 講解:正常方式關閉數據時,Oracle執行如下操作:

阻止任何用戶建立新的連接。
等待當前所有正在連接的用戶主動斷開連接(此方式下Oracle不會立即斷掉當前用戶的連接,這些用戶仍然操作相關的操作)
一旦所有的用戶都斷開連接,則立即關閉、卸載數據庫,並終止實例。(所以,一般以正常方式關閉數據庫時,應該通知所有在線的用戶盡快斷開連接)
2. Immediate(立即關閉方式)

(1). 命令:shutdown immediate

(2). 講解:

阻止任何用戶建立新的連接,同時阻止當前連接的用戶開始任何新的事務。
Oracle不等待在線用戶主動斷開連接,強制終止用戶的當前事務,將任何未提交的事務回退。(如果存在太多未提交的事務,此方式將會耗費很長時間終止和回退事務)
直接關閉、卸載數據庫,並終止實例。
3. Transactional(事務關閉方式)

(1). 命令:shutdown transactional

(2). 講解:這種方式介於正常關閉方式跟立即關閉方式之間,響應時間會比較快,處理也將比較得當。執行過程如下:

阻止任何用戶建立新的連接,同時阻止當前連接的用戶開始任何新的事務。
等待所有未提交的活動事務提交完畢,然後立即斷開用戶的連接。
直接關閉、卸載數據庫,並終止實例。
4. Abort(終止關閉方式)

(1). 命令:shutdown abort

(2). 講解:這是比較粗暴的一種關閉方式,當前面3種方式都無法關閉時,可以嘗試使用終止方式來關閉數據庫。但是以這種方式關閉數據庫將會丟失一部份數據信息,當重新啟動實例並打開數據庫時,後台進程SMON會執行實例恢復操作。一般情況下,應當盡量避免使用這種方式來關閉數據庫。執行過程如下:

阻止任何用戶建立新的連接,同時阻止當前連接的用戶開始任何新的事務。
立即終止當前正在執行的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.


oracle 用shutdown關閉後啟動不了怎辦

啟動oracle數據庫的同時也就創建了一個數據庫實例,並且可以選擇數據庫啟動的狀態。通常,可以通過裝載和打開數據庫來啟動實例,這樣任何一個有效的用戶都可以鏈接到實例並執行典型的數據庫訪問操作,下面介紹這方面的內容。

一、啟動數據庫的方法

啟動數據庫實例的方法有很多種,分別介紹如下:

1、使用SQL*PLUS 使用SQL*PLUS連接到具有管理員權限的Oracle上,然後發布startup命令,從而啟動數據庫。
2、使用Recovery Manager 即使用RMAN來執行startup和shutdown命令來啟動和關閉數據庫實例。若是在RMAN環境中最好使用這種方法,而不是調用SQL*PLUS方法。
3、使用Oracle Enterprise Manager 可以使用Oracle Enterprise Manager來管理oracle數據庫,當然也包含啟動和關閉數據庫。Oracle Enterprise Manager是一個獨立的oracle數據庫產品,它與圖形控制台、代理程序、公用服務以及各種工具一起為管理oracle產品提供了一個集成的和復雜的系統管理平台。

啟動數據庫實例的步驟:以沒有連接數據庫的方法啟動SQL*PLUS:sqlplus /nolog,然後作為SYSDBA連接到oracle:connect username/password as sysdba,至此,就連接到了oralce數據庫,並准備好啟動數據庫實例。接著使用startup命令來啟動數據庫實例,oracle必須從服務器參數文件或者傳統的文本初始化參數文件中讀取實例配置文件。當使用不帶pfile子句的startup命令時,oracle將從平台指定的默認位置上的服務器參數文件(spfile)中讀取初始化參數。也可以指定初始化參數所在的位置,如startup pfile=/u01/oracle/dbs/init.ora。

啟動數據庫實例可以采用不同的模式:

1、啟動但沒有裝載數據庫實例,這種模式不允許訪問數據庫,並且通常只適用於數據庫創建或者控制文件的重新創建的情況。要啟用這種數據庫模式,可以使用命令startup nomount來啟動數據庫實例。
2、啟動實例並裝載數據庫,但保持數據庫關閉狀態。這種模式適用於某些dba的動作,比如重命名數據文件、添加取消或者重命名重做日志文件、執行完整的數據庫恢復操作,但不允許對數據庫的一般性訪問動作。要啟用這種數據庫模式,可以使用命令startup mount來啟動數據庫實例。
3、啟動實例,裝載並打開數據庫。這種模式可以在不受限制的方式下使用,允許所有合法的用戶訪問。要啟用這種數據庫模式,可以使用命令startup來啟動數據庫實例。
4、迫使數據庫啟動,startup force。在一些特殊的情況下,可能會在啟動數據庫實例的時候遇到一些問題。一般不要迫使數據庫啟動,除非在以下的情況下:使用shutdown normal、shutdown immediate、shutdown transactional命令不能關閉當前的實......余下全文>>
 

Oracle中怎在cmd中startup後再shutdown的整體流程的命令這執行,?

最簡單的:
點擊開始菜單——運行——輸入cmd
這樣進入了cmd
輸入sqlplus
輸入你的system用戶名密碼
輸入shutdown immediate;則是關閉數據庫
輸入startup;則是啟動數據庫
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved