Oracle資料庫啟動過程

pxbibm發表於2014-04-04
啟動資料庫的三個臺階
NOMOUNT
MOUNT
OPEN
 深入瞭解Oracle 資料庫啟動的每個臺階的工作原理,資料庫排錯,恢復,備份,全靠你的基礎知識是否紮實!
 

SQL> conn sys/sys as sysdba              --最高階使用者連線到資料庫

SQL> Shutdown immediate;                     --先停止資料庫

SQL> Startup nomount;                    --啟動資料庫到第一個臺階

SQL> select instance_name,status from v$instance;      --檢視例項的狀態

顯示為started

啟動資料庫到第一個臺階nomount狀態做了如下的工作。

1.讀引數檔案

2.分配記憶體

3.啟動後臺程式

4.初始化部分v$檢視(記憶體相關的)

SQL> select value from v$spparameter where name='control_files';

將資料庫帶到mount狀態
SQL> Alter database mount;

Mount資料庫的過程是讀引數檔案中描述的控制檔案,將控制檔案讀入到記憶體中,mount之後,就是將一個沒有意義的資料庫例項和一個資料庫發生了關聯。例項在nomount狀態下是空殼。沒有任何資料庫發生關係,mount的意思是將一個例項與指定的資料庫掛接上。mount是讀控制檔案,控制檔案中有資料檔案和日誌檔案的資訊。

SQL> select instance_name,status from v$instance;

顯示為mounted

開啟資料庫

SQL> Alter database open;

SQL> select instance_name,status from v$instance;

顯示為open

讀控制檔案中描述的資料檔案

驗證資料檔案的一致性,如果不一致,使用日誌檔案將資料庫檔案恢復到一致的狀態。

資料庫open,普通使用者才可以訪問資料庫

使用者的表才為可見

只讀方式open資料庫

SQL> Alter database open read only;

SQL> select OPEN_MODE from v$database;

預設的open方式為read write

想改read onlyread write 必須重新啟動資料庫

我們現在回想一下資料庫啟動的三個臺階,我們先讀的是引數檔案,引數檔案可以有我們來編寫。讀完引數檔案後又讀了控制檔案,控制檔案描述了資料檔案和日誌檔案的資訊,如果控制檔案丟失可以重新建立,最後是讀資料檔案。資料檔案裡才存放了我們的資料。資料庫將啟動分為三個臺階,目的是我們可以準確的知道哪裡有問題,迅速的排除。由最開始的一個1k的引數檔案,最後到幾個t的大型資料庫。當我們只打startup而不加任何引數的時候。預設是到open,等於startup open;

SQL> startup

ORACLE instance started.

Total System Global Area  167772160 bytes

Fixed Size                  1247900 bytes

Variable Size              75498852 bytes

Database Buffers           88080384 bytes

Redo Buffers                2945024 bytes

Database mounted.

Database opened.

我們從螢幕顯示的結果可以清楚的看出,有三個臺階。

還有一個命令是startup force強制啟動資料庫,等於強制停止資料庫再啟動資料庫。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12798004/viewspace-1136239/,如需轉載,請註明出處,否則將追究法律責任。

相關文章