Oracle資料庫例項啟動步驟分析
Oracle資料庫例項啟動時,分成nomount、mount和open的三個階段,下面的例項分析來展示不同階段時,系統到底做了哪些工作
1、nomout階段,該階段啟動的前提是有引數檔案,若沒有引數檔案,系統無法啟動,在該過程中,系統分配記憶體、開啟後臺程式,同時更新alter日誌檔案
例項nomount之前的狀態:
--無例項程式
[oracle@secdb1 admin]$ echo $ORACLE_SID
PROD
[oracle@secdb1 admin]$ ps -ef|grep PROD
oracle 14890 6310 0 21:12 pts/1 00:00:00 grep PROD
--alter日誌資訊
[oracle@secdb1 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狀態
[oracle@secdb1 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>
此時檢視程式和日誌資訊
[oracle@secdb1 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 ----------------日誌檔案已經更新
[oracle@secdb1 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目錄下無引數檔案,啟動例項是現象如下:
[oracle@secdb1 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
在該階段,可以進行資料庫的建立、控制檔案的建立
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/
1、nomout階段,該階段啟動的前提是有引數檔案,若沒有引數檔案,系統無法啟動,在該過程中,系統分配記憶體、開啟後臺程式,同時更新alter日誌檔案
例項nomount之前的狀態:
--無例項程式
[oracle@secdb1 admin]$ echo $ORACLE_SID
PROD
[oracle@secdb1 admin]$ ps -ef|grep PROD
oracle 14890 6310 0 21:12 pts/1 00:00:00 grep PROD
--alter日誌資訊
[oracle@secdb1 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狀態
[oracle@secdb1 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>
此時檢視程式和日誌資訊
[oracle@secdb1 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 ----------------日誌檔案已經更新
[oracle@secdb1 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@secdb1 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
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;---修改成非歸檔模式
如果控制檔案丟失,系統報錯,現象如下:
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
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/
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31383567/viewspace-2132365/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle資料庫啟動步驟Oracle資料庫
- Oracle Restart啟動資料庫例項故障一例OracleREST資料庫
- 單例項恢復RAC資料庫步驟(三)單例資料庫
- 單例項恢復RAC資料庫步驟(二)單例資料庫
- 單例項恢復RAC資料庫步驟(一)單例資料庫
- 【ASK_ORACLE】Relink ASM單例項資料庫詳細步驟OracleASM單例資料庫
- Oracle 資料庫例項啟動關閉過程Oracle資料庫
- ORACLE啟動步驟Oracle
- 快速掌握重啟Oracle資料庫的操作步驟Oracle資料庫
- 【02】Oracle資料庫的例項啟動關閉詳解Oracle資料庫
- 通過SQL*Plus遠端啟動Oracle資料庫例項SQLOracle資料庫
- 3.1.5.4 啟動例項並mount 資料庫資料庫
- 3.1.5.1 關於啟動資料庫例項資料庫
- oracle 資料庫例項Oracle資料庫
- Oracle Restart啟動資料庫例項故障一例( Oracle ASM儲存Spfile解析)OracleREST資料庫ASM
- 手動建立資料庫步驟資料庫
- Oracle例項和Oracle資料庫Oracle資料庫
- oracle資料庫與oracle例項Oracle資料庫
- 1、啟動oracle的步驟Oracle
- srvctl 是否能夠將RAC資料庫像單例項資料庫的方式一步一步啟動資料庫單例
- 較好的重新啟動資料庫的步驟-----餘楓資料庫
- Oracle 資料檔案移動步驟Oracle
- 例項管理及資料庫的啟動關閉資料庫
- 一臺MySQL資料庫啟動多個例項MySql資料庫
- RAC環境只啟動單例項資料庫單例資料庫
- oracle啟動的三個步驟Oracle
- Oracle 啟動的三個步驟Oracle
- oracle 伺服器啟動步驟Oracle伺服器
- 開啟或關閉oracle資料庫的閃回功能步驟Oracle資料庫
- oracle資料庫使用者建立步驟Oracle資料庫
- ORACLE資料庫閃回步驟詳解Oracle資料庫
- 關閉ORACLE資料庫步驟參考Oracle資料庫
- ORACLE資料庫升級詳細步驟Oracle資料庫
- ORACLE 11gR2 單例項資料庫自啟Oracle單例資料庫
- oracle資料庫例項狀態Oracle資料庫
- 由AIX系統故障導致系統重啟,使Oracle資料庫自動啟動例項AIOracle資料庫
- RAC環境下單例項啟動Oracle資料庫重建控制檔案案例單例Oracle資料庫
- oracle 啟動 關閉步驟詳解Oracle