資料庫啟動和關閉
資料庫啟動和關閉
資料庫關閉方式的驗證
[@more@]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狀態
1、從上一次的啟動和關閉文章中,很容易得出如下結論:
啟動到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
安裝啟動,這種啟動方式下可執行:資料庫日誌歸檔、資料庫恢復和重新命名一些資料庫檔案。
非安裝啟動,這種啟動方式下可執行:重建控制檔案、重建資料庫和啟動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
(5)startup restrict
約束方式啟動,這種方式能夠啟動資料庫,但只允許具有一定特權的使用者訪問,非特權使用者訪問時,會出現以下提示:
ERROR:
ORA-01035: Oracle 只允許具有RESTRICTED SESSION許可權的使用者使用。
(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在關閉資料庫前,等待所有與之相連線的使用者正常結束其對話。於是在下次啟動資料庫時,就不需要恢復例項。
在正常關閉情況下,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同樣的方式關閉資料庫。
該選項僅在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)關閉資料庫,直到所有事務結束
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/653579/viewspace-893434/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle資料庫的啟動和關閉Oracle資料庫
- ORACLE資料庫的啟動和關閉(轉)Oracle資料庫
- dataguard standby資料庫的關閉和啟動資料庫
- 資料庫自動啟動關閉資料庫
- db2資料庫的啟動和關閉DB2資料庫
- rac 管理 啟動關閉資料庫資料庫
- ORACLE資料庫的啟動和關閉之二(轉)Oracle資料庫
- Oracle資料庫的幾種啟動和關閉方式Oracle資料庫
- 深刻理解Oracle資料庫的啟動和關閉Oracle資料庫
- 深刻理解 oracle 資料庫的啟動和關閉Oracle資料庫
- RAC 資料庫的啟動與關閉資料庫
- informix 資料庫啟動關閉指令碼ORM資料庫指令碼
- Oracle資料庫的啟動與關閉Oracle資料庫
- Mysql 5.5 資料庫啟動關閉命令MySql資料庫
- oracle資料庫不同啟動命令和關閉命令全面解析Oracle資料庫
- 【指令碼】快速啟動和關閉Windows上的資料庫指令碼Windows資料庫
- 深刻理解Oracle資料庫的啟動和關閉(轉)Oracle資料庫
- Oracle 資料庫例項啟動關閉過程Oracle資料庫
- 例項管理及資料庫的啟動關閉資料庫
- 啟動、關閉與資料庫的特殊狀態資料庫
- 啟動/關閉與冷備份Oracle資料庫Oracle資料庫
- 隨系統啟動關閉的oracle資料庫Oracle資料庫
- Oracle日常運維操作總結-資料庫的啟動和關閉Oracle運維資料庫
- Oracle學習系列—Windows下資料庫程式的啟動和關閉OracleWindows資料庫
- openguass 3.1.0 資料庫啟動,關閉,狀態檢查資料庫
- LevelDB C++教程: 如何開啟和關閉資料庫C++資料庫
- Oracle資料庫歸檔模式的開啟和關閉Oracle資料庫模式
- oracle資料庫的啟動關閉與各種服務Oracle資料庫
- 【02】Oracle資料庫的例項啟動關閉詳解Oracle資料庫
- oracle資料庫的啟動與關閉過程詳解Oracle資料庫
- Oracle12cr1新特性之容器資料庫(CDB)和可插拔資料庫(PDB) 的啟動和關閉Oracle資料庫
- 資料庫關閉資料庫
- mysql的啟動和關閉MySql
- 開啟關閉oracle資料庫附加日誌Oracle資料庫
- 啟動和停止資料庫.資料庫
- 根據Alert日誌查詢資料庫啟動、關閉時間資料庫
- linux svn啟動和關閉Linux
- MySQL Windows下關閉和啟動MySqlWindows