oracle最大实例数,【ORA-16196】一个实例在其生命周期里最多只能装载和打开一个数据库...
如果使用“alter database open;”命令打開一個(gè)曾經(jīng)被“alter database close;”命令關(guān)閉的數(shù)據(jù)庫時(shí),您將會(huì)收到如下的報(bào)錯(cuò)信息:"ORA-16196: database has been previously opened and closed"這個(gè)報(bào)錯(cuò)的原因是什么呢?原因是:一個(gè)實(shí)例在其生存期中最多只能裝載和打開一個(gè)數(shù)據(jù)庫。要想再打開此數(shù)據(jù)庫,必須先停掉這個(gè)實(shí)例再重新啟動(dòng)數(shù)據(jù)庫?;谏厦娴膱?bào)錯(cuò)信息和原因,我來通過一個(gè)實(shí)驗(yàn)來展示一下這個(gè)過程,以便有一個(gè)感性上的認(rèn)識(shí)。1.為了保證實(shí)驗(yàn)環(huán)境的“純潔”,先重新啟動(dòng)一下數(shù)據(jù)庫(這里我使用的Oracle版本是10.2.0.3)ora10g@secDB /home/oracle$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.3.0 - Production on Sun Oct 25 23:07:57 2009
Copyright (c) 1982, 2006, Oracle.? All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP and Data Mining Scoring Engine options
sys@ora10g> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
sys@ora10g> startup;
ORACLE instance started.
Total System Global Area 2147483648 bytes
Fixed Size????????????????? 2074152 bytes
Variable Size???????????? 637536728 bytes
Database Buffers???????? 1493172224 bytes
Redo Buffers?????????????? 14700544 bytes
Database mounted.
Database opened.
sys@ora10g>2.在數(shù)據(jù)庫啟動(dòng)成功之后,我們通過v$database視圖和v$instance視圖查看一下當(dāng)前數(shù)據(jù)庫的狀態(tài),以便和close后的狀態(tài)進(jìn)行比較sys@ora10g> select open_mode from v$database;OPEN_MODE----------READ WRITEsys@ora10g> select status from v$instance;STATUS------------OPEN可以看到現(xiàn)在的數(shù)據(jù)庫狀態(tài)是open并且是可讀寫操作的狀態(tài)。3.此時(shí)我們使用“alter database close;”命令關(guān)閉數(shù)據(jù)庫(注意這里我的用詞,關(guān)閉的是“數(shù)據(jù)庫”不是“實(shí)例”)執(zhí)行這個(gè)命令需要等待一段時(shí)間才能完成,存在一個(gè)數(shù)據(jù)庫連接清理的過程。如果在Oracle 9i的環(huán)境下使用這個(gè)close命令,若數(shù)據(jù)庫中存在其他的連接,命令將無法完成,會(huì)收到“ORA-01093: ALTER DATABASE CLOSE only permitted with no sessions connected”報(bào)錯(cuò)信息,這里的演示環(huán)境時(shí)10g,在10g中即使是存在著其他的連接也同樣可以完成close過程。sys@ora10g> alter database close;Database altered.4.再次查詢v$database視圖和v$instance視圖中有關(guān)數(shù)據(jù)庫狀態(tài)的信息,與上面的信息進(jìn)行比較sys@ora10g> select open_mode from v$database;OPEN_MODE----------MOUNTEDsys@ora10g> select status from v$instance;STATUS------------MOUNTED可以看到,此時(shí)數(shù)據(jù)庫的狀態(tài)已經(jīng)變?yōu)椤癕OUNTED”的狀態(tài)。進(jìn)一步檢查一下此時(shí)數(shù)據(jù)庫服務(wù)器有關(guān)該實(shí)例的后臺(tái)數(shù)據(jù)庫進(jìn)程信息。通過下面的結(jié)果信息可以進(jìn)一步確信,“alter database close;”操作并沒有將數(shù)據(jù)庫的實(shí)例關(guān)閉,僅僅是將數(shù)據(jù)庫的狀態(tài)從“OPEN”狀態(tài)帶到了“MOUNT”狀態(tài)sys@ora10g> !ps -ef | grep 'ora_.*ora10g' | grep -v greporacle???? 867???? 1? 0 22:31 ???????? 00:00:00 ora_pmon_ora10goracle???? 869???? 1? 0 22:31 ???????? 00:00:00 ora_psp0_ora10goracle???? 871???? 1? 0 22:31 ???????? 00:00:00 ora_mman_ora10goracle???? 873???? 1? 0 22:31 ???????? 00:00:00 ora_dbw0_ora10goracle???? 875???? 1? 0 22:31 ???????? 00:00:00 ora_dbw1_ora10goracle???? 877???? 1? 0 22:31 ???????? 00:00:00 ora_lgwr_ora10goracle???? 879???? 1? 0 22:31 ???????? 00:00:00 ora_ckpt_ora10goracle???? 881???? 1? 0 22:31 ???????? 00:00:00 ora_smon_ora10goracle???? 883???? 1? 0 22:31 ???????? 00:00:00 ora_reco_ora10goracle???? 887???? 1? 0 22:31 ???????? 00:00:00 ora_mmon_ora10goracle???? 889???? 1? 0 22:31 ???????? 00:00:00 ora_mmnl_ora10g5.既然數(shù)據(jù)庫的狀態(tài)現(xiàn)在是mount狀態(tài),我們嘗試使用open命令重新開啟該數(shù)據(jù)庫。結(jié)果很顯然,在這樣的狀態(tài)下,我們是無法再次open該數(shù)據(jù)庫的。sys@ora10g> alter database open;alter database open*ERROR at line 1:ORA-16196: database has been previously opened and closed6.使用oerr工具查看一下“ORA-16196”報(bào)錯(cuò)信息含義。從原因信息描述中可以非常清晰的得到具體的原因和后續(xù)的處理方法。sys@ora10g> ! oerr ora 1619616196, 00000, "database has been previously opened and closed"// *Cause:? The instance has already opened and closed the database,//????????? which is allowed only once in its lifetime.// *Action: Shut down the instance.7.此時(shí)如果想要重新使用該數(shù)據(jù)庫,只有按照上面提示信息中“Action:”部分描述的操作:關(guān)閉數(shù)據(jù)庫并重新開啟。sys@ora10g> shutdown immediate;ORA-01109: database not openDatabase dismounted.ORACLE instance shut down.sys@ora10g> startup ;ORACLE instance started.Total System Global Area 2147483648 bytesFixed Size????????????????? 2074152 bytesVariable Size???????????? 637536728 bytesDatabase Buffers???????? 1493172224 bytesRedo Buffers?????????????? 14700544 bytesDatabase mounted.Database opened.sys@ora10g>sys@ora10g> select open_mode from v$database;OPEN_MODE----------READ WRITEsys@ora10g> select status from v$instance;STATUS------------OPENOK,到此,數(shù)據(jù)庫又一個(gè)嶄新的生命周期開始了。
8.小結(jié)
通過上面的演示,大家應(yīng)該對“
總結(jié)
以上是生活随笔為你收集整理的oracle最大实例数,【ORA-16196】一个实例在其生命周期里最多只能装载和打开一个数据库...的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ORA-01861: 文字与格式字符串不
- 下一篇: CSV文件的转义处理