oracle資料庫的啟動與關閉過程詳解

db_wjw發表於2011-10-17
Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 1、  命令列啟動資料庫

在釋出startup命令啟動資料庫時,oracle將在預設位置$ORACLE_HOME/dbsUNIX/Linux)中查詢初始化引數檔案。Oracle將以下面的順序在其中尋找合適的初始化檔案

Ø         Spfile$ORACLE_SID.ora

Ø         Spfile.ora

Ø         Init$ORACLE_SID.ora

可以用幾種方式啟動oracle資料庫。

a)         STARTUP NOMOUNT命令

可以在SQL*Plus會話中使用STARTUP NOMOUNT命令啟動例項,這樣啟動僅有例項執行。如果以這種方式啟動,將不讀控制檔案,而且資料檔案也不開啟。作業系統啟動Oracle後臺程式,並且給oracle分配SGA。事實上,只有例項本身在執行。

SQL> startup nomount;

ORACLE 例程已經啟動。

 

Total System Global Area  167772160 bytes

Fixed Size                  1247900 bytes

Variable Size              75498852 bytes

Database Buffers           88080384 bytes

Redo Buffers                2945024 bytes

SQL>

有時在某些維護操作和恢復過程中,不能開啟資料庫讓大家訪問。在此情形下可以以這種方式啟動。在資料庫建立過程中且必須重建控制檔案時,也需要使用nomount啟動模式。

b)        STARTUP MOUNT命令

在啟動過程中,例項啟動後的下一步是安裝資料庫。在安裝步驟中,oracle把例項與資料庫關聯。Oracle開啟並讀取控制檔案,獲取資料檔案和重做日誌檔案的名稱和位置。

如果已經以以非安裝模式啟動了資料庫,應該使用一下命令:

SQL> alter database mount;

資料庫已更改。

SQL>

為了以安裝模式直接啟動,可使用如下命令:

SQL> startup mount;

ORACLE 例程已經啟動。

 

Total System Global Area  167772160 bytes

Fixed Size                  1247900 bytes

Variable Size              75498852 bytes

Database Buffers           88080384 bytes

Redo Buffers                2945024 bytes

資料庫裝載完畢。

SQL>

在進行諸如全資料庫恢復、更改資料庫的歸檔日誌模式或重新命名資料檔案這一類的活動時,通常需要以安裝模式啟動資料庫。請注意,這三種操作都要求oracle訪問資料檔案,但不提供對檔案的使用者操作。

c)        STARTUP OPEN命令

啟動過程的最後一步是開啟資料庫。當資料庫以開啟模式啟動時,所有有效使用者可以連線到資料庫,執行資料庫操作。在此步驟之前,一般使用者根本就不能連線到資料庫。透過釋出下面的命令讓資料庫出於開啟模式:

    SQL> alter database open;

資料庫已更改。

SQL>

更常見的是使用STARTUP命令同時安裝和開啟資料庫:

SQL> startup;

ORACLE 例程已經啟動。

 

Total System Global Area  167772160 bytes

Fixed Size                  1247900 bytes

Variable Size              75498852 bytes

Database Buffers           88080384 bytes

Redo Buffers                2945024 bytes

資料庫裝載完畢。

資料庫已經開啟。

SQL>

為了開啟資料庫,oracle伺服器首先開啟所有資料檔案和聯機重做日誌檔案,並確認資料庫是一致的。如果資料庫不一致,例如,如果控制檔案中的SCN與資料檔案頭中的某些SCN不匹配,則後臺程式將自動在開啟資料庫前進行一個例項恢復。如果需要介質恢復而不是例項恢復,oracle將指出需要資料庫恢復,並且在你完成恢復前不能開啟資料庫。

2、  命令列關閉資料庫

為進行某種型別的備份或者軟體的升級等活動,可能需要關閉一個正在執行的資料庫,關閉資料庫有幾種方式。所選擇的方式將影響關閉資料庫所花費的時間,並且在重啟資料庫時可能需要進行資料庫例項恢復。下面是關閉資料庫的4種可用方式。

a)         SHUTDOWN NORMAL命令

如下發布此命令:

SQL>shutdown normal;

以下是SHUTDOWN NORMAL命令的詳細說明:

Ø         一旦釋出此命令,不允許任何使用者進行新的連線;

Ø         在關閉資料庫之前,oracle等待所有的使用者退出會話;

Ø         重啟資料庫時不需要例項恢復,因為oracle會在關閉以前把所有重做日誌緩衝區和資料塊緩衝區內容寫入磁碟,從而使資料庫關閉時是一致的;

Ø         Oracle關閉資料檔案並終止後臺程式,釋放記憶體。

b)        SHUTDOWN TRANSACTIONAL命令

如果不想等待某使用者退出而花費很長時間,可以使用SHUTDOWN TRANSACTIONAL命令,如下發布此命令:

SQL>shutdown transactional;

以下是SHUTDOWN TRANSACTIONAL命令的詳細說明:

Ø         一旦釋出此命令,不允許任何使用者進行新的連線;

Ø         現有使用者不能啟動新事務,並且將斷開連線;

Ø         如果某使用者有一個正在執行的事務,在斷開該使用者的連線前,oracle將等待直到該事務完成;

Ø         重啟資料庫時不需要例項恢復,因為oracle會在關閉以前把所有重做日誌緩衝區和資料塊緩衝區內容寫入磁碟,從而使資料庫關閉時是一致的;

Ø         在所有現有事務完成後,oracle關閉例項並釋放記憶體;

c)        SHUTDOWN IMMEDIATE命令

有時,在決定關閉資料庫時,某使用者可能正在執行非常長得事務。在這樣的情形下,前面介紹的兩種方式都不適用。可以使用SHUTDOWN IMMEDIATE命令關閉資料庫。如下發布此命令:

SQL>shutdown immediate;

以下是SHUTDOWN IMMEDIATE命令的詳細說明:

Ø         一旦釋出此命令,不允許任何使用者進行新的連線;

Ø         立即斷開所有使用者的連線;

Ø         終止所有當前正在執行的事務;

Ø         對於所有半途終止的事務,oracle將進行回退,使資料庫保持一致。隨後終止後臺程式並釋放記憶體。

Ø         重啟資料庫時不需要例項恢復,因為它在關閉時是一致的。

d)        SHUTDOWN ABORT命令

oracle而言,使用這個選項相當於斷電。如下發布此命令:

SQL>shutdown abort;

下面是SHUTDOWN ABORT命令的詳細說明:

Ø         一旦釋出此命令,不允許任何使用者進行新的連線;

Ø         現有會話被終止,不管它們是否有活動的事務;

Ø         不回退被終止的事務;

Ø         不將重做日誌緩衝區和資料緩衝區寫到磁碟;

Ø         終止後臺程式、立即釋放記憶體並關閉資料庫;

Ø         在重啟時,oracle將執行自動例項恢復,因為不能保證資料庫在關閉時是一致的。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26194851/viewspace-709256/,如需轉載,請註明出處,否則將追究法律責任。

相關文章