天天看點

我的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裡的内容不會寫入磁盤;下次啟動會自動執行資料庫恢複程式。

本文轉自 d185740815 51CTO部落格,原文連結:http://blog.51cto.com/luotaoyang/280377,如需轉載請自行聯系原作者