程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> 深入Oracle啟動方式的實際應用

深入Oracle啟動方式的實際應用

編輯:Oracle數據庫基礎

以下的文章主要是對Oracle啟動方式與相關的Oracle命令參數進行相關匯總,希望你在浏覽完以下的文章會對Oracle啟動方式與相關的Oracle命令參數的實際應用加深印象。以下就是相關內容的介紹。

Oracle啟動方式:

  1. startup nomount  
  2. startup mount  
  3. 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啟動。

  1. [Oracle@localhost dbs]$ pwd  
  2. /Oracle/orc10g/product/10.1.0/db_1/dbs  
  3. [Oracle@localhost dbs]$ mv initorcl.ora initorcl1.ora  
  4. [Oracle@localhost dbs]$ mv spfileorcl.ora spfileorcl1.ora  
  5. SYS@orcl>shutdown abort  
  6. Oracle instance shut down.  
  7. SYS@orcl>startup nomount  
  8. ORA-01078: failure in processing system parameters  
  9. LRM-00109: could not open parameter file 
    '/Oracle/orc10g/product/10.1.0/db_1/dbs/initorcl.ora'  
  10. SYS@orcl> 

保持參數文件正確,修改控制文件名稱

  1. [Oracle@localhost orcl]$ pwd  
  2. /Oracle/orc10g/oradata/orcl  
  3. [Oracle@localhost orcl]$ mv control01.ctl control01a.ctl  
  4. [Oracle@localhost orcl]$ mv control02.ctl control02a.ctl  
  5. [Oracle@localhost orcl]$ mv control03.ctl control03a.ctl  
  6. .....  
  7. SYS@orcl>startup nomount  
  8. Oracle instance started.  
  9. Total System Global Area 167772160 bytes  
  10. Fixed Size 778212 bytes  
  11. Variable Size 61874204 bytes  
  12. Database Buffers 104857600 bytes  
  13. Redo Buffers 262144 bytes  
  14. SYS@orcl> 

在nomount的方式下修改控制文件名稱,並沒有報錯。說明在nomount的方式下,並沒有讀取控制文件。

繼續以上的步驟,我們以mount的方式啟動:

  1. SYS@orcl>alter database mount;  
  2. alter database mount  
  3. *  
  4. ERROR at line 1:  
  5. ORA-00205: error in identifying controlfile, 
    check alert log for more info  

裝載數據庫時,需要讀取控制文件確定數據文件的位置。

繼續上面的例子,我們將控制文件修改正確,使數據庫可以正確的找到控制文件,

我們修改數據文件的名稱.

  1. [Oracle@localhost orcl]$ mv tp_test.dbf tp_test1.dbf  
  2. .....  
  3. SYS@orcl>startup mount  
  4. Oracle instance started.  
  5. Total System Global Area 167772160 bytes  
  6. Fixed Size 778212 bytes  
  7. Variable Size 61874204 bytes  
  8. Database Buffers 104857600 bytes  
  9. Redo Buffers 262144 bytes  
  10. Database mounted.  

雖然我修改了數據文件,但是在mount的方式下,並沒有報錯。說明在mount的方式下,啟動過程只讀取了參數文件和控制文件。

下面我們打開數據庫。

  1. SYS@orcl>alter database open  
  2. 2 ;  
  3. alter database open  
  4. *  
  5. ERROR at line 1:  
  6. ORA-01157: cannot identify/lock data file 5 - see DBWR trace file  
  7. ORA-01110: data file 5: '/Oracle/orc10g/oradata/orcl/tp_test.dbf'  

提示我們找不到tp_test.dbf這個文件了。

至此我們大概的了解了數據庫的啟動過程以及Oracle啟動過程中每一步驟的所做的工作和讀取的文件。

總結如下:Oracle按照如下過程啟動數據庫

nomount
 
啟動實例 | mount

(參數文件)  | 裝載數據庫 | open

(控制文件)  | 打開數據庫

(數據文件)

1.nomount方式下還沒有讀取控制文件,該選項用於在數據庫的控制文件全部損壞,需要重新創建數據庫控制文件或創建一個新的數據庫時使用。

2.mount 選項下並沒有打開數據文件,該選項可以用來修改數據庫的運行模式或進行數據庫恢復。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved