oracle 9i 只读模式,我的oracle 9i学习日志(6)--Starting Up and shutting down a Database
Starting Up a Database
1、NOMOUNT
這個(gè)狀態(tài)下oracle server完成下列任務(wù):
a.讀取初始化參數(shù)文件;
b.為SGA分配內(nèi)存;
c.啟動(dòng)后臺進(jìn)程;
d.打開alertSID.log文件和跟蹤文件
數(shù)據(jù)庫必須被命名,即初始化文件或在startup命令里指定DB_NAME的值。
2、MOUNT
關(guān)聯(lián)一個(gè)數(shù)據(jù)庫與在nomount啟動(dòng)的instance;定位并打開按參數(shù)文件指定的control files;讀取數(shù)據(jù)文件和重做日志文件的名字和狀態(tài)。但在這個(gè)階段不會確認(rèn)數(shù)據(jù)文件和重做日志文件的存在。
在這個(gè)階段只能做一些指定數(shù)據(jù)庫維護(hù)工作,如:重命名數(shù)據(jù)文件、開啟或關(guān)閉歸檔模式、數(shù)據(jù)恢復(fù)(這些操作只能在此狀態(tài)下做)。
3、OPEN
打開數(shù)據(jù)庫文件和重做日志文件。這時(shí)數(shù)據(jù)庫就可以被正常訪問。這個(gè)階段會確認(rèn)相關(guān)文件能否被打開和數(shù)據(jù)庫記錄的一致性,否則會報(bào)錯(cuò)。如果有必要SMON將開始恢復(fù)工作。
4、STARTUP Command
STARTUP [FORCE] [RESTRICT] [PFILE=filename][OPEN[RECOVER][database]|MOUNT|NOMOUNT]
force:強(qiáng)制啟動(dòng)或關(guān)閉(相當(dāng)于執(zhí)行shutdown abort)正在運(yùn)行的instance,并重新啟動(dòng)。常在數(shù)據(jù)庫無法正常啟動(dòng)(可能是由于上次關(guān)閉instance后內(nèi)存空間分配不正常所致)的情況下使用。?
restrict:只允許有RESTRICTED SESSION特權(quán)的用戶訪問
pfile:指定啟動(dòng)的pfile文件。
open recover db0:啟動(dòng)時(shí)恢復(fù)數(shù)據(jù)。
nomount/mount:啟動(dòng)數(shù)據(jù)庫至nomount或mount狀態(tài)。
5、將數(shù)據(jù)庫從nomount狀態(tài)轉(zhuǎn)變成mount狀態(tài)或從mount狀態(tài)轉(zhuǎn)變?yōu)閛pen狀態(tài):ALTER DATABASE { MOUNT | OPEN }。注意:不能從nomount狀態(tài)直接轉(zhuǎn)變?yōu)閛pen狀態(tài),啟動(dòng)順序只能是這樣:shutdown->nomount->mount->open->shutdown。
6、Restricted Mode
在限制模式下,只有擁有限制會話特權(quán)的用戶可以登錄。
進(jìn)入限制模式有兩種方式:STARTUP RESTRICT? 或?? ALTER SYSTEM ENABLE RESTRICTED SESSION;
啟用或禁用restrict模式:ALTER SYSTEM [ {ENABLE|DISABLE} RESTRICTED SESSION ]。
7、終止一個(gè)會話
用于在將數(shù)據(jù)庫置于restrict模式下時(shí)可能要終止其他用戶的會話,或管理員主動(dòng)終止某個(gè)用戶的會話。
ALTER SYSTEM KILL SESSION 'integer1,integer2'
? integer1: Value of the SID column in the V$SESSION view
? integer2: Value of the SERIAL# column in the V$SESSION view
終止會話過程:
a.回滾用戶當(dāng)前事務(wù)
b.釋放當(dāng)前鎖定的表或行
c.釋放保留給客戶的資源
8、只讀模式
在mount狀態(tài)下用下面命令可以切換到只讀模式:
ALTER DATABASE OPEN? READ ONLY;
在mount狀態(tài)下用下面命令可以切換到一般模式:
ALTER DATABASE OPEN READ WRITE;
只讀模式只是不產(chǎn)生redo log file,所以只要不涉及產(chǎn)生重做數(shù)據(jù)的操作都可以做,如:數(shù)據(jù)庫恢復(fù)、數(shù)據(jù)庫文件的offline和online 等。
注意:只讀模式和一般模式不能互相切換。
問題:
SQL> alter database open read only;
alter database open read only
*
ERROR at line 1:
ORA-16005: database requires recovery
ALTER DATABASE OPEN [READ WRITE| READ ONLY]
解決方案:SQL> startup open recover lty(數(shù)據(jù)庫名字)
Shutting Down the Database
注:A = ABORT???? I = IMMEDIATE???? T = TRANSACTIONAL???? N = NORMAL
命令:SHUTDOWN [NORMAL | TRANSACTIONAL | IMMEDIATE | ABORT ]
shutdown normal:不建立新連接;將redo buffers里的內(nèi)容寫入磁盤;關(guān)閉instance前必須所有等待用戶主動(dòng)斷開連接;
查看未提交的事務(wù):
SQL> select addr,status from v$transaction;
ADDR? STATUS
-------- ----------------
59AF4CF4 ACTIVE
shutdown immediate:不建立新連接;中斷正在執(zhí)行的sql語句;回滾未提交的事務(wù);斷開在線用戶;將redo buffers里的內(nèi)容寫入磁盤;關(guān)閉instance。
shutdown transactional:不建立新連接;客戶端無法發(fā)起新的事務(wù);客戶端事務(wù)處理完成后斷開客戶端連接;將redo buffers里的內(nèi)容寫入磁盤;關(guān)閉instance。
shutdown abort:立即關(guān)閉instance;redo buffers里的內(nèi)容不會寫入磁盤;下次啟動(dòng)會自動(dòng)執(zhí)行數(shù)據(jù)庫恢復(fù)程序。
總結(jié)
以上是生活随笔為你收集整理的oracle 9i 只读模式,我的oracle 9i学习日志(6)--Starting Up and shutting down a Database的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 特斯拉中国裁员 疑似赔偿方案出炉:N+3
- 下一篇: TP-LINK轻舟路由AX4200发布: