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