1. 程式人生 > >Oracle資料庫例項啟動步驟分析

Oracle資料庫例項啟動步驟分析

Oracle資料庫例項啟動時,分成nomount、mount和open的三個階段,下面的例項分析來展示不同階段時,系統到底做了哪些工作

1、nomout階段,該階段啟動的前提是有引數檔案,若沒有引數檔案,系統無法啟動,在該過程中,系統分配記憶體、開啟後臺程序,同時更新alter日誌檔案

例項nomount之前的狀態:

--無例項程序
[[email protected] admin]$ echo $ORACLE_SID
PROD
[[email protected] admin]$ ps -ef|grep PROD
oracle   14890  6310  0 21:12 pts/1    00:00:00 grep PROD

--alter日誌資訊
[[email protected] bdump]$ ls -lrt
total 48
-rw-r----- 1 oracle oinstall  1113 Mar  4 23:15 prod_lgwr_7319.trc
-rw-r----- 1 oracle oinstall   779 Mar  5 19:42 prod_mmnl_7329.trc
-rw-r--r-- 1 oracle oinstall 40910 Mar  5 21:08 alert_PROD.log

此時啟動例項到nomount狀態
[[email protected] admin]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Wed Mar 5 21:15:50 2014
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Connected to an idle instance.
SQL> startup nomount
ORACLE instance started.
Total System Global Area  314572800 bytes
Fixed Size                  1219184 bytes
Variable Size             100664720 bytes
Database Buffers          209715200 bytes
Redo Buffers                2973696 bytes
SQL> 

此時檢視程序和日誌資訊
[
[email protected]
bdump]$ ls -lrt
total 52
-rw-r----- 1 oracle oinstall  1113 Mar  4 23:15 prod_lgwr_7319.trc
-rw-r----- 1 oracle oinstall   779 Mar  5 19:42 prod_mmnl_7329.trc
-rw-r--r-- 1 oracle oinstall 42513 Mar  5 21:15 alert_PROD.log  ----------------日誌檔案已經更新

[[email protected] bdump]$ ps -ef|grep PROD  ----------------------------系統中出現後臺程序
oracle   14946     1  0 21:15 ?        00:00:00 ora_pmon_PROD
oracle   14948     1  0 21:15 ?        00:00:00 ora_psp0_PROD
oracle   14950     1  0 21:15 ?        00:00:00 ora_mman_PROD
oracle   14952     1  0 21:15 ?        00:00:00 ora_dbw0_PROD
oracle   14954     1  0 21:15 ?        00:00:00 ora_lgwr_PROD
oracle   14956     1  0 21:15 ?        00:00:00 ora_ckpt_PROD
oracle   14958     1  0 21:15 ?        00:00:00 ora_smon_PROD
oracle   14960     1  0 21:15 ?        00:00:00 ora_reco_PROD
oracle   14962     1  0 21:15 ?        00:00:00 ora_mmon_PROD
oracle   14964     1  0 21:15 ?        00:00:00 ora_mmnl_PROD
oracle   14965 14942  0 21:15 ?        00:00:00 oraclePROD (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle   14988  5989  0 21:17 pts/3    00:00:00 grep PROD
如果在$ORACLE_HOME/dbs目錄下無引數檔案,啟動例項是現象如下:
[
[email protected]
dbs]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.1.0 - Production on Wed Mar 5 21:21:19 2014
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
Connected to an idle instance.
SQL> startup nomount
ORA-01078: failure in processing system parameters
LRM-00109: could not open parameter file '/u01/app/oracle/product/10.2.0/db_1/dbs/initPROD.ora'
SQL> quit
引數尋找的優先順序 spfileSID.ora----initSID.ora
在該階段,可以進行資料庫的建立、控制檔案的建立

2、mount,在該階段,啟動條件是需要有控制檔案,如果控制檔案丟失或者損壞,啟動將會報錯。此時系統會開啟控制檔案、檢查資料檔案、日誌檔案的名稱和位置,
但此時不檢查檔案到底是否存在不存在

mount之前:
SQL> select * from v$controlfile;
no rows selected

SQL> select * from v$datafile;
select * from v$datafile
              *
ERROR at line 1:
ORA-01507: database not mounted
mount之後

SQL> alter database mount;
Database altered.
SQL> select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/PROD/disk1/control01.ctl
/u01/app/oracle/oradata/PROD/disk2/control02.ctl

SQL> select file#,name from v$datafile;


     FILE#  name
--------------------------------------------------------------------------------
         1  /u01/app/oracle/oradata/PROD/disk1/system01.dbf
         2  /u01/app/oracle/oradata/PROD/disk1/undotbs01.dbf
         3 /u01/app/oracle/oradata/PROD/disk1/sysaux01.dbf
在該階段,可以進行資料庫的完全恢復、修改資料庫的歸檔模式、移動和重命令資料檔案
SQL> archive log list  ---檢視資料庫歸檔模式
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            /u01/app/oracle/product/10.2.0/db_1/dbs/arch
Oldest online log sequence     3
Current log sequence           5

SQL> alter database archivelog; ---修改成歸檔模式
SQL> alter database noarchivelog;---修改成非歸檔模式

如果控制檔案丟失,系統報錯,現象如下:

SQL> startup mount
ORACLE instance started.
Total System Global Area  314572800 bytes
Fixed Size                  1219184 bytes
Variable Size             100664720 bytes
Database Buffers          209715200 bytes
Redo Buffers                2973696 bytes
ORA-00205: error in identifying control file, check alert log for more info
3、open階段,該階段主要是開啟資料檔案、日誌檔案,在開啟的過程中對資料檔案和日誌檔案進行一致性檢查,如果不一致,則SMON程序繼續例項恢復,如果檔案丟失,開啟失敗。
SQL> alter database open;
Database altered.

--如何資料檔案丟下,開啟失敗
SQL> startup mount;
ORACLE instance started.
Total System Global Area  314572800 bytes
Fixed Size                  1219184 bytes
Variable Size              79693200 bytes
Database Buffers          230686720 bytes
Redo Buffers                2973696 bytes
Database mounted.
SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01157: cannot identify/lock data file 1 - see DBWR trace file
ORA-01110: data file 1: '/u01/app/oracle/oradata/PROD/disk1/system01.dbf'



4、小結

 啟動時分成三個步驟,1、nomount階段,該階段是例項啟動,根據引數檔案進行系統分配記憶體,啟動後臺程序。mount階段,根據控制檔案來進行資料檔案和日誌檔案的名稱和位置檢查,把例項和資料庫連線起來。open階段,就是資料庫開啟階段,開啟是就需要檢查檔案是否正常,有沒有發生檔案丟失或者不一致的情況,丟失則報錯,不一致則進行例項恢復。

jiangkch

20140305

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

轉:http://blog.itpub.net/393784/viewspace-1101878/

相關推薦

Oracle資料庫例項啟動步驟分析

Oracle資料庫例項啟動時,分成nomount、mount和open的三個階段,下面的例項分析來展示不同階段時,系統到底做了哪些工作1、nomout階段,該階段啟動的前提是有引數檔案,若沒有引數檔案,系統無法啟動,在該過程中,系統分配記憶體、開啟後臺程序,同時更新alte

檢視Oracle資料庫例項啟動狀態

SQL> conn / as sysdba 已連線到空閒例程。 SQL> startup nomount ORACLE 例程已經啟動。 Total System Global Area 534462464 bytes Fixed Size 21

Oracle 資料庫例項啟動關閉過程

                --================================-->Oracle 資料庫例項啟動關閉過程--================================/*Oracle資料庫例項的啟動,嚴格來說應該是例項的啟動,資料庫僅僅是在例項啟動後進行裝載。

Oracle 資料庫例項啟動階段及關閉模式

  一、資料庫例項啟動的三個階段 啟動資料庫分為三個階段: Startup nomount;  --startup預設為startup open Alter database mount; Al

分享知識-快樂自己: Oracle資料庫例項、使用者、表、表空間之間關係

資料庫:   Oracle資料庫是資料的物理儲存。這就包括(資料檔案ORA或者DBF、控制檔案、聯機日誌、引數檔案)。   其實Oracle資料庫的概念和其它資料庫不一樣,這裡的資料庫是一個作業系統只有一個庫。可以看作是Oracle就只有一個大資料庫。 例項:   一個Oracle例項(Oracle

JDBC連線Oracle資料庫例項

本文給出一個通過JDBC連線Oracle資料庫的例項,希望對JDBC初學者有所幫助。我沒有像很多例子那樣一個函式就把整個JDBC的操作全部完成,這樣的程式碼在企業專案開發中一般是不能通過稽核的,我現在工作的公司就對程式碼規範有嚴格要求。比如,“一個函式,只做一件事”。這意味著你不能把一大堆功能程式碼

Oracle資料庫啟動過程

[email protected] zxy>startup ORACLE instance started. Total System Global Area 830930944 bytes Fixed Size 2232

Oracle (01)Oracle資料庫的安裝步驟.搭建上課所用的資料庫環境.table (二維表).查看錶結構.資料庫中常用的資料型別

Oracle 01 目錄 Oracle資料庫的安裝步驟 搭建上課所用的資料庫環境 table (二維表) ***** 查看錶結構 ***** 資料庫中常用的資料型別 ***** SQL語句 ***** where子句 ***** 對於null值 如何進行判斷 ***** 模糊查詢 *

maven執行ssh三大框架+oracle資料庫的一般步驟及注意事項

maven執行ssh框架一般步驟: (一)建立父工程(maven project)ssh_parent(pom) 1、配置pom.xml。 2、maven的倉庫有三種:本地倉庫、私服、中央倉庫,程式執

Oracle資料庫例項、使用者、表、表空間之間關係

資料庫:Oracle資料庫是資料的物理儲存。這就包括(資料檔案ORA或者DBF、控制檔案、聯機日誌、引數檔案)。其實Oracle資料庫的概念和其它資料庫不一樣,這裡的資料庫是一個作業系統只有一個庫。可以看作是Oracle就只有一個大資料庫。例項:  一個Oracle例項(O

Oracle 資料庫例項介紹

文章目錄 資料庫例項介紹 例項結構 例項配置 讀寫例項與只讀例項 例項生命週期 例項標識 Oracle 根目錄 Oracle 主目錄 Oracle SI

阿里雲伺服器oracle資料庫安裝使用步驟

阿里雲伺服器安裝使用步驟伺服器有很多種平臺去購買,這裡以阿里雲(Windows版)為例說明2、購買後,你會得到阿里雲給你分配的公網ip地址,需要記住,用電腦使用遠端桌面連線伺服器,需要用你的公網IP地址連線3、安裝oracle資料庫:需要在電腦上下載一個瀏覽器安裝包,然後複製

linux/unix 下修改oracle資料庫例項

1、檢查原來的資料庫例項名 $ echo $ORACLE_SID orcl $ sqlplus / as sysdba > select instance from v$thread; INS

Oracle資料庫啟動和關閉詳細過程

一、資料庫開啟  startup資料庫正常啟動 1.startup nomount   啟動 Oracle DB 例項:NOMOUNT ,建立sga,建立了alert日誌,用於create db,create controlfile 啟動資料庫例項時,請選擇例項啟動時所處

oracle資料庫啟動與關閉

  連線資料庫    sqlplus " / as sysdba"        或者    sqlplus  /nolog    connect / as sysdba   啟動資料庫    startup   引數: NOMOUNT,MOUNT,OPEN,FORCE,RESTRICT    引數說明: 

windows下面 修改oracle資料庫例項名(SID)

SQL*Plus: Release 9.2.0.5.0 - Production on 星期日 11月 21 13:32:34 2004   Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

修改oracle資料庫例項

1.準備 原資料庫的例項名為linuxdb,控制檔案、資料檔案、聯機日誌檔案存放在/home/oracle/ora9/oradata/linuxdb目錄,將所有的檔案拷貝到另外一個目錄/home/oracle/ora9/oradata/dbtest。再將linuxdb 的初始

linux下刪除oracle資料庫例項

1、停止服務 首先用命令 lsnrctl stop  然後執行  sqlplus /nolog        sql>   conn / as sysdba       sql>   shutdown 2、檢視例項程序並刪除 find $OR

JDBC連線oracle資料庫的基本步驟

0、基礎: 建立java專案,匯入jdbc的jar包。 jdbc jar包下載傳送門:https://download.csdn.net/download/weixin_38569499/10431997 1、通過反射載入驅動類 程式碼: Class.forName

解決資料庫例項啟動ORA-00205問題

問題描述:ORA-00205: error in identifying control file, check alert log for more info 翻譯:控制檔案的錯誤,請檢查警報日誌中獲得更多資訊 實驗目的:為了做聯機熱備實驗,在原有的兩個控制檔案基礎上