oracle的啟動過程


 

Oracle  的啟動需要經歷四個狀態,SHUTDOWN NOMOUNT MOUNT OPEN

 

 

 

SHUTDOWN狀態                                         

第一狀態沒什么好解釋的,oracle的所有文件都靜靜的躺在磁盤里,一切都還未開始,屬於關機狀態

 

 

NOMOUNT狀態                            

Starting the instance (nomount)

*  Reading the initialization file from $ORACLE_HOME/dbs in the following order:

-first  spfileSID.ora

-if not found then, spfile.ora

-if not found then, initSID.ora

Specifying the PFILE parameter with STARTUP overrides the default behavior.

*  Allocating the SGA

*  Starting the background processes 

*  Opening the alertSID.log file and the trace files

The  database must be named with the DB_NAME parameter either in the initialization 

Parameter file or in the STARTUP command.

-----------------------------------------------------------------------

讀取環境變量下dbs目錄下的參數文件(spfile/pfile

 [ora10@localhost dbs]$ pwd

/ora10/product/10.2.0/db_1/dbs

[ora10@localhost dbs]$ ll

-rw-r----- 1 ora10 dba  3584 07-19 22:07 spfilechongshi.ora

-rw-r----- 1 ora10 dba  3584 07-23 22:00 spfile.ora

-rw-r--r-- 1 ora10 dba  1106 07-19 21:47 initchongshi.ora

查找參數文件的順序如上面列表的,讀取優先級

spfilechongshi.ora > spfile.ora>initchongshi.ora  

如果三個文件都找不到的話,那么將啟動失敗。

* 啟動算法,分配內存

* 啟動后台進程

* 開放alertSID.log文件和跟蹤文件

[ora10@localhost dbs]$ sqlplus 

SQL*Plus: Release 10.2.0.1.0 - Production on Tue Jul 24 22:33:54 2012

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Enter user-name: /as sysdba

Connected to an idle instance.

SQL> startup nomount;

ORACLE instance started.

Total System Global Area  205520896 bytes

Fixed Size                  1218532 bytes

Variable Size              79693852 bytes 

Database Buffers          121634816 bytes 

Redo Buffers                2973696 bytes 

現在就處在一個nomount狀態。

 

 

 mount狀態                                                  

Mounting a database includes the following tasks: 

* Associating a database with  a previously started instance 

* Locating and opening the control files specified in the parameter file 

* Reading the control files to obtain the names and status of the data files and online redo log files.However,no checks are performed to verify the existence of the data files and online redo log files at this time. 

---------------------------------------------------------------------------------

* 把一個數據庫和啟動的實例關聯起來 

在參數文件(spfile/pfile)中找到控制文件進行讀取 

查看參數文件: 

[ora10@localhost dbs]$ strings spfileora10.ora | more 

......

*.control_files='/ora10/product/oradata/ora10/control01.ctl','/ora10/product/ora 

data/ora10/control02.ctl','/ora10/product/oradata/ora10/control03.ctl' 

....... 

控制文件: 

[ora10@localhost ~]$ cd /ora10/product/oradata/ora10/ 

[ora10@localhost ora10]$ ll 

總計 954196 

-rw-r----- 1 ora10 dba   7061504 07-23 23:01 control01.ctl 

-rw-r----- 1 ora10 dba   7061504 07-23 23:01 control02.ctl 

-rw-r----- 1 ora10 dba   7061504 07-23 23:01 control03.ctl 

* 讀取控制文件,獲得的數據文件和聯機重做日志文件,然而,在這個時候沒有進行檢查以驗證存在的數據文件和聯機重做日志文件 

[ora10@localhost dbs]$ sqlplus 

SQL*Plus: Release 10.2.0.1.0 - Production on Tue Jul 24 23:02:28 2012 

Copyright (c) 1982, 2005, Oracle.  All rights reserved. 

Enter user-name: /as sysdba 

Connected to an idle instance. 

SQL> startup mount; 

ORACLE instance started. 

Total System Global Area  205520896 bytes 

Fixed Size                  1218532 bytes 

Variable Size              79693852 bytes 

Database Buffers          121634816 bytes 

Redo Buffers                2973696 bytes 

Database mounted. 

現在進入了數據庫的mount狀態,我們通過mount啟動的時候,下面會多一句提示“Database mounted.” 數據庫准備就緒。

 

 

open狀態                                                 

  opening the database includes the following tasks 

opening the online data log files 

opening the onling redo log files 

  If any of the datafiles or noline redo log files are not present when you attempt to open the database ,the oracle server returns an error.

  During this final stage,the oracle server verfies that all the data files and online redo log files can be opened and checks the consistency of the database . If necessary , the SMON  background process initiates instance recovery.

----------------------------------------------------------------------------------------- 

打開數據庫包括下列任務: 

打開在線數據日志文件 

打開聯機重做日志文件 

    如果任何數據文件或非線性重做日志文件不存在,當您試圖打開的數據庫,服務器返回錯誤。 

在這最后階段,該服務器驗證所有數據文件和聯機重做日志文件可以打開並檢查數據庫的一致性。如果需要,該系統監控進程開始實例恢復。

 

  [ora10@localhost dbs]$ sqlplus /nolog
  
  SQL*Plus: Release 10.2.0.1.0 - Production on Wed Jul 25 21:50:55 2012
  
  Copyright (c) 1982, 2005, Oracle.  All rights reserved.
  
  SQL> conn /as sysdba
  Connected to an idle instance.
  SQL> startup
  ORACLE instance started.
  
  Total System Global Area  205520896 bytes
  Fixed Size                  1218532 bytes
  Variable Size              79693852 bytes
  Database Buffers          121634816 bytes
  Redo Buffers                2973696 bytes
  Database mounted.
  
  Database opened.

   在上面的命令中,startup后面不加其它信息的話,系統會為我們直接啟動到第4個狀態。

 

 

數據庫關閉的三種方式                                          

 

1、shutdown normal  
正常方式關閉數據庫。 


2、shutdown immediate  
立即方式關閉數據庫。  
在SVRMGRL中執行shutdown immediate,數據庫並不立即關閉,  
而是在Oracle執行某些清除工作后才關閉(終止會話、釋放會話資源),  
當使用shutdown不能關閉數據庫時,shutdown immediate可以完成數據庫關閉的操作。 


3、shutdown abort  
直接關閉數據庫,正在訪問數據庫的會話會被突然終止,  
如果數據庫中有大量操作正在執行,這時執行shutdown abort后,重新啟動數據庫需要很長時間。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM