本文主要是對oracle的啟動方式和相關的命令參數進行一個匯總,用以加深印象。
Oracle的啟動方式:
startup nomount
startup mount
startup open (startup的默認選項)
其他常用的參數:read only ,read write ,force,restrict
這些參數可以一起使用,比如 startup 與 startup open read write 是一樣的效果。
Oracle的啟動過程:啟動實例 -> 裝載數據庫 -> 打開數據庫
與之對應的讀取相應文件的順序: 參數文件 -> 控制文件 -> 數據文件
我們驗證一下這些步驟的區(qū)別:
startup nomount
使用nomount方式啟動數據庫時,表示只啟動數據庫實例,不裝載數據庫,不打開數據庫
這時只讀取參數文件,主要有兩部分工作:一是分配內存SGA區(qū),二是啟動Oracle后臺進程
如下我們修改oracle參數文件的名稱,并以nomount 的方式啟動數據庫
這里需要將pfile,spfile 都進行修改,數據庫默認使用spfile啟動,在找不到spfile時用pfile啟動。
[oracle@localhost?dbs]$?pwd /oracle/orc10g/product/10.1.0/db_1/dbs [oracle@localhost?dbs]$?mv?initorcl.ora?initorcl1.ora [oracle@localhost?dbs]$?mv?spfileorcl.ora?spfileorcl1.ora SYS@orcl>shutdown?abort ORACLE?instance?shut?down. SYS@orcl>startup?nomount ORA-01078:?failure?in?processing?system?parameters LRM-00109:?could?not?open?parameter?file?'/oracle/orc10g/product/10.1.0/db_1/dbs/initorcl.ora' SYS@orcl> |
#保持參數文件正確,修改控制文件名稱
[oracle@localhost?orcl]$?pwd /oracle/orc10g/oradata/orcl [oracle@localhost?orcl]$?mv?control01.ctl?control01a.ctl [oracle@localhost?orcl]$?mv?control02.ctl?control02a.ctl [oracle@localhost?orcl]$?mv?control03.ctl?control03a.ctl ..... SYS@orcl>startup?nomount ORACLE?instance?started. Total?System?Global?Area?167772160?bytes Fixed?Size?778212?bytes Variable?Size?61874204?bytes Database?Buffers?104857600?bytes Redo?Buffers?262144?bytes SYS@orcl> |
在nomount的方式下修改控制文件名稱,并沒有報錯。說明在nomount的方式下,并沒有讀取控制文件。
繼續(xù)以上的步驟,我們以mount的方式啟動:
SYS@orcl>alter?database?mount; alter?database?mount * ERROR?at?line?1: ORA-00205:?error?in?identifying?controlfile,?check?alert?log?for?more?info |
裝載數據庫時,需要讀取控制文件確定數據文件的位置。
繼續(xù)上面的例子,我們將控制文件修改正確,使數據庫可以正確的找到控制文件,
我們修改數據文件的名稱.
[oracle@localhost?orcl]$?mv?tp_test.dbf?tp_test1.dbf ..... SYS@orcl>startup?mount ORACLE?instance?started. Total?System?Global?Area?167772160?bytes Fixed?Size?778212?bytes Variable?Size?61874204?bytes Database?Buffers?104857600?bytes Redo?Buffers?262144?bytes Database?mounted. |
雖然我修改了數據文件,但是在mount的方式下,并沒有報錯。說明在mount的方式下,啟動過程只讀取了參數文件和控制文件。
下面我們打開數據庫。
SYS@orcl>alter?database?open 2?; alter?database?open * ERROR?at?line?1: ORA-01157:?cannot?identify/lock?data?file?5?-?see?DBWR?trace?file ORA-01110:?data?file?5:?'/oracle/orc10g/oradata/orcl/tp_test.dbf' |
提示我們找不到tp_test.dbf這個文件了。
至此我們大概的了解了數據庫的啟動過程以及啟動過程中每一步驟的所做的工作和讀取的文件。
總結如下:oracle按照如下過程啟動數據庫
nomount
------------
啟動實例 | mount
(參數文件) |---------------
| 裝載數據庫 | open
(控制文件) |-----------
| 打開數據庫
(數據文件)
1.nomount方式下還沒有讀取控制文件,該選項用于在數據庫的控制文件全部損壞,需要重新創(chuàng)建數據庫控制文件或創(chuàng)建一個新的數據庫時使用。
2.mount 選項下并沒有打開數據文件,該選項可以用來修改數據庫的運行模式或進行數據庫恢復。
關鍵詞標簽:oracle的啟動方式
相關閱讀
熱門文章 Oracle中使用alter table來增加,刪除,修改列的語法 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 誤刪Oracle數據庫實例的控制文件 為UNIX服務器設置Oracle全文檢索
人氣排行 oracle中使用SQL語句修改字段類型-oracle修改SQL語句案例 Oracle中使用alter table來增加,刪除,修改列的語法 ORACLE SQL 判斷字符串是否為數字的語句 ORACLE和SQL語法區(qū)別歸納(1) oracle grant 授權語句 ORACLE修改IP地址后如何能夠使用 如何加速Oracle大批量數據處理 Oracle刪除表的幾種方法