以下的文章主要是對Oracle啟動方式與相關的Oracle命令參數進行相關匯總,希望你在浏覽完以下的文章會對Oracle啟動方式與相關的Oracle命令參數的實際應用加深印象。以下就是相關內容的介紹。
Oracle啟動方式:
- startup nomount
- startup mount
- startup open (startup的默認選項)
其他常用的參數:read only ,read write ,force,restrict
這些參數可以一起使用,比如 startup 與 startup open read write 是一樣的效果。
Oracle啟動過程:啟動實例 -> 裝載數據庫 -> 打開數據庫
與之對應的讀取相應文件的順序: 參數文件 -> 控制文件 -> 數據文件
我們驗證一下這些步驟的區別:
startup nomount
使用nomount方式啟動數據庫時,表示只啟動數據庫實例,不裝載數據庫,不打開數據庫
這時只讀取參數文件,主要有兩部分工作:一是分配內存SGA區,二是啟動Oracle後台進程
如下我們修改Oracle參數文件的名稱,並以nomount 的方式Oracle啟動數據庫
這裡需要將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的方式下,並沒有讀取控制文件。
繼續以上的步驟,我們以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
裝載數據庫時,需要讀取控制文件確定數據文件的位置。
繼續上面的例子,我們將控制文件修改正確,使數據庫可以正確的找到控制文件,
我們修改數據文件的名稱.
- [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啟動過程中每一步驟的所做的工作和讀取的文件。
總結如下:Oracle按照如下過程啟動數據庫
nomount
啟動實例 | mount
(參數文件) | 裝載數據庫 | open
(控制文件) | 打開數據庫
(數據文件)
1.nomount方式下還沒有讀取控制文件,該選項用於在數據庫的控制文件全部損壞,需要重新創建數據庫控制文件或創建一個新的數據庫時使用。
2.mount 選項下並沒有打開數據文件,該選項可以用來修改數據庫的運行模式或進行數據庫恢復。