資料庫啟動和關閉

2021-04-22 03:55:27 字數 4336 閱讀 9503

資料庫啟動和關閉

資料庫關閉方式的驗證

1、nomount狀態

此步驟只啟動instance,即建立記憶體和相應的程序

a、資料庫啟動時尋找引數檔案的順序:

spfile.ora--->spfile.ora--->init.ora,如果這三個檔案都沒有找到,則無法啟動資料庫例項instance

b、引數檔案最少且必須要有乙個引數,即db_name(rman情況不需要任何引數,db_name預設為dummy),啟動後,我們可以執行如下語句:

show parameter 引數名

此種方法也可以作為檢測各種引數的預設設定

2、mount狀態

在前面的基礎上,執行如下:

alter database mount;

此步驟需要找到控制檔案並鎖定控制檔案,同時向控制檔案中記錄mount id,啟動heartbeat(每隔一段時間改變mount id),另外需要找到口令檔案,如果找不到這兩類檔案(控制檔案有3個一樣的,如果同時都找不到,則...),則無法mount

如何驗證呢?可在mount前後執行如下語句:

select * from v$controlfile;

口令檔案的作用:在沒有啟動資料庫之前登入資料庫,進而啟動資料庫,否則內建使用者在資料庫啟動之前是無法登入的

3、open狀態

啟動到nomount狀態需要引數檔案

啟動到mount狀態需要控制檔案和口令檔案

啟動到open狀態需要控制檔案和日誌檔案

2、sqlplus "/ as sysdba"

a、在沒有啟動任何例項之前,執行此命令

b、在nomount狀態後,執行此命令

c、在mount狀態後,執行此命令

d、在open狀態後,執行此命令

在上述四種情況下都可以連線

3、啟動命令的順序及引數

在nomount狀態下,必須執行:

alter database mount;

alter database open;

兩個步驟才行,不能直接open

同樣,在mount狀態下,只須執行:

alter database open;

或者,直接startup (open)

------------------------------

startup nomount 不帶引數

startup mount (dbname)

startup nomount (dbname)

4、深入一點的啟動過程,如何找引數檔案

首先修改了登錄檔ora_sid項的值,此時啟動到nomount狀態,提示啟動失敗。經查明原因如下:啟動到nomount狀態時,系統根據登錄檔的ora_sid的值,在ora_home/database路徑下尋找init.ora檔案,依據此檔案中的內容找到引數檔案(此路徑也就是登錄檔中ora_sid_pfile鍵的值),如果在上述過程中找不到任何乙個檔案,啟動都會失敗

5、如何得知資料庫的啟動狀態

兩種方法:

select status from v$instance;(分別對應:started,mounted,open)

select open_mode from v$database;(分別對應:出錯,mounted,read write)

1、常見的啟動方式

(1)startup nomount

非安裝啟動,這種啟動方式下可執行:重建控制檔案、重建資料庫和啟動instance,即啟動sga和後台程序,這種啟動只需要init.ora檔案。

(2)startup mount dbname

安裝啟動,這種啟動方式下可執行:資料庫日誌歸檔、資料庫恢復和重新命名一些資料庫檔案。

(3)startup open dbname

先執行「nomount」,然後執行「mount」,再開啟包括redolog檔案在內的所有資料庫檔案,這種方式下可訪問資料庫中的資料。

(4)startup等於以下三個命令

startup nomount

alter database mount

alter database open

(6)startup force

強制啟動方式,當不能關閉資料庫時,可以用startup force來完成資料庫的關閉,先關閉資料庫,再執行正常啟動資料庫命令。

(7)startup pfile=引數檔名

帶初始化引數檔案的啟動方式,先讀取引數檔案,再按引數檔案中的設定啟動資料庫。

例:startup pfile=e:oracleadminoradbpfileinit.ora

(8)startup exclusive

sql>conect internal

作為internal連線時,connect命令不需要口令,因為其授權是由作業系統隱式提供的。internal連線等價於sys連線,它們都是擁有oracle資料字典的使用者。

注意:oracle9i以後不支援internal使用者

2、常見的關閉方式

(1)shutdown normal(正常關閉資料庫)

在正常關閉情況下,oracle在關閉資料庫前,等待所有與之相連線的使用者正常結束其對話。於是在下次啟動資料庫時,就不需要恢復例項。

(2)shutdown immediate(立即方式關閉資料庫)

當選擇immediate關閉方式時,即實現直接關閉。在svrmgrl中執行shutdown immediate,資料庫並不立即關閉, 而是在oracle執行某些清除工作後才關閉(終止會話、釋放會話資源),當使用shutdown不能關閉資料庫時,shutdown immediate可以完成資料庫關閉的操作。

該關閉方式主要用於下列情況:

①馬上停電;

②oracle正在非正規的執行資料庫或乙個資料庫應用。

該方式關閉資料庫過程如下:

①oracle結束當前正在處理的sql語句;

②回滾未提交的事務;

③oracle不等待與之相連線的使用者退出連線,就直接中斷他們,使用這種關閉方式,下次啟動資料庫時,oracle應自動執行例項恢復。

(3)shutdown abort(撤消例項方式關閉資料庫)

這是一種最快的關閉方式,它主要用於下列情況:

①一分鐘後就要停電;

②oracle正在非正規的執行資料庫或乙個資料庫應用,並且其它的關閉方式失效;

③啟動乙個資料庫例項時碰到問題。

該方式關閉資料庫的過程如下:

①oracle不等待呼叫完成,直接中斷正在處理的sql語句;

②回滾未提交事物。

使用這種關閉方式,下次啟動資料庫時,oracle應自動執行例項恢復。啟動和關閉例項和資料庫的操作需要connect internal系統特權,安裝和開啟資料庫的操作還要有alter database系統特權。直接關閉資料庫,正在訪問資料庫的會話會被突然終止,如果資料庫中有大量操作正在執行,這時執行shutdown abort後,重新啟動資料庫需要很長時間。

(4)shutdown transactional

該選項僅在oracle 8i後才可以使用。該命令常用來計畫關閉資料庫,它使當前連線到系統且正在活動的事務執行完畢,執行該命令後,任何新的連線和事務都是不允許的。在所有活動的事務完成後,資料庫將和shutdown immediate同樣的方式關閉資料庫。

資料庫關閉方式的驗證

我們知道資料庫有4種關閉方式:

shutdown (normal)

shutdown transactional

shutdown immediate

shutdown abort

其中後面2種基本上屬於強行關閉,而前面2種是有條件限制的,我們來驗證一下 :

1、shutdown (normal)

第一步,開啟sqlplus,以乙個正常的使用者進入,此時不需要作任何操作

第二步,在命令列中或者sqlplus中以sys使用者(sysdba身份)進入,然後執行:shutdown (normal),此時系統沒有了任何反應

第三步,如果我們在第一步的視窗中退出,此時資料庫會立即關閉

說明:如果有任何會話連線資料庫,則不能以shutdown (normal)關閉資料庫,直到全部會話退出

2、shutdown transactional

第一步,開啟sqlplus,以乙個正常的使用者進入,此時假設我們更新乙個表的一行資料,但是沒有提交

第二步,在命令列中或者sqlplus中以sys使用者(sysdba身份)進入,然後執行:shutdown transactional,此時系統沒有了任何反應

第三步,如果我們在第一步的視窗中提交或回滾,此時資料庫會立即關閉

說明:如果有任何事務沒有結束,則不能以shutdown (normal)關閉資料庫,直到所有事務結束

啟動關閉資料庫

1.啟動和關閉資料庫 oracle體系結構參考 1.1oracle資料庫的啟動 啟動oracle的一般步驟 儘管通常情況下啟動資料庫oracle要經歷三個步驟。在啟動過程中,有時候需要使oracle停在某一步。以下是相關操作的語法 假設oracle已啟動,可使用shutdown命令先關閉oracle...

Oracle資料庫啟動和關閉

使用oracle 9i 資料庫 安裝完畢後oracle資料庫會自動啟動,下面我們用實際超作來說明一下oracle 9i資料庫的啟動和關閉。以oracle使用者登陸資料庫,開個控制台視窗 關閉oracle 9i 資料庫 強制關閉資料庫 shutdown abort 關閉oracle web serve...

資料庫的啟動和關閉

oracle server 由instance和database組成。instance 由一組後台程序和一塊共享記憶體區域,database 儲存在磁碟上的一組物理檔案。資料庫啟動 以sysdba sysoper身份登進去,敲乙個startup及可其啟動。啟動主要做三個操作 1 啟動資料庫到nomo...