国产99久久精品_欧美日本韩国一区二区_激情小说综合网_欧美一级二级视频_午夜av电影_日本久久精品视频

最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
當前位置: 首頁 - 科技 - 知識百科 - 正文

淺析RAC下SPFILE文件修改之整理三篇文章

來源:懂視網 責編:小采 時間:2020-11-09 15:03:25
文檔

淺析RAC下SPFILE文件修改之整理三篇文章

淺析RAC下SPFILE文件修改之整理三篇文章:關于RAC下spfile淺析_整理于_2014.4.17 第一篇:RAC下SPFILE文件修改 在RAC下spfile位置的修改與單節點環境不完全一致,有些地方需要特別注意,否則可能修改會失敗。 下面用一個例子說明:SPFILE放在ASM中一個不正確的目錄(+ARCH)中,現在想把它放在另
推薦度:
導讀淺析RAC下SPFILE文件修改之整理三篇文章:關于RAC下spfile淺析_整理于_2014.4.17 第一篇:RAC下SPFILE文件修改 在RAC下spfile位置的修改與單節點環境不完全一致,有些地方需要特別注意,否則可能修改會失敗。 下面用一個例子說明:SPFILE放在ASM中一個不正確的目錄(+ARCH)中,現在想把它放在另

關于RAC下spfile淺析_整理于_2014.4.17 第一篇:RAC下SPFILE文件修改 在RAC下spfile位置的修改與單節點環境不完全一致,有些地方需要特別注意,否則可能修改會失敗。 下面用一個例子說明:SPFILE放在ASM中一個不正確的目錄(+ARCH)中,現在想把它放在另外一個

關于RAC下spfile淺析_整理于_2014.4.17

第一篇:RAC下SPFILE文件修改

在RAC下spfile位置的修改與單節點環境不完全一致,有些地方需要特別注意,否則可能修改會失敗。

下面用一個例子說明:SPFILE放在ASM中一個不正確的目錄(+ARCH)中,現在想把它放在另外一個目錄(+DBSYS)下。

以下是具體步驟:

1. 原spfile位置

SQL> show parameter spfile

NAME TYPE VALUE

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

spfile string +ARCH/dwrac/spfiledwrac.ora

2. 拷貝spfile到其他目錄

由于在ASM中,不能直接cp,需要通過迂回的辦法實現。

sys@dwrac2> create pfile='/tmp/pfile.ora'from spfile;

File created.

sys@dwrac2> createspfile='+DBSYS/dwrac/spfiledwrac.ora' from pfile='/tmp/pfile.ora';

File created.

3. 修改所有節點$ORACLE_HOME/dbs/init下的參數文件

[oracle@dwdb04 dbs]$ vi initdwrac2.ora

SPFILE='+ARCH/dwrac/spfiledwrac.ora'

==>

SPFILE='+DBSYS/dwrac/spfiledwrac.ora'

4. 通過sqlplus方式重啟實例

sys@dwrac2> shutdown immediate

Database closed.

Database dismounted.

ORACLE instance shut down.

sys@dwrac2> startup

ORACLE instance started.

Total System Global Area 5.2429E+10 bytes

Fixed Size 2193872 bytes

Variable Size 3707766320 bytes

Database Buffers 4.8671E+10 bytes

Redo Buffers 48136192 bytes

Database mounted.

Database opened.

sys@dwrac2> show parameter spfile

NAME TYPE VALUE

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

spfile string +DBSYS/dwrac/spfiledwrac.ora

可以發現,spfile已經修改成功。

5. 但是如果用過srvctl重啟數據庫,發現spfile又變回來了:

[oracle@dwdb02 dbs]$ srvctl stop instance-d dwrac -i dwrac1,dwrac2,dwrac3,dwrac4

[oracle@dwdb02 dbs]$ srvctl start instance-d dwrac -i dwrac1,dwrac2,dwrac3,dwrac4

[oracle@dwdb02 dbs]$ sqlplus "/assysdba"

sys@dwrac2> show parameter spfile

NAME TYPE VALUE

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

spfile string +ARCH/dwrac/spfiledwrac.ora

6. 原因及解決

這是為什么呢?實際上在RAC環境中,我們更多時候是用srvctl來管理RAC資源,而srvctl的信息來自ocr,包括spfile的位置信息。我們剛才那樣做雖然修改了參數文件的位置,但是ocr并不知道,它還用原來的文件啟動數據庫。

我們可以用srvctl查看數據庫的配置信息來確認:

[oracle@dwdb01 dbs]$ srvctl config database-d dwrac -a

dwdb01 dwrac1 /oracle/product/10.2.0/db

dwdb02 dwrac2 /oracle/product/10.2.0/db

dwdb03 dwrac3 /oracle/product/10.2.0/db

dwdb04 dwrac4 /oracle/product/10.2.0/db

DB_UNIQUE_NAME: dwrac

DB_NAME: dwrac

ORACLE_HOME: /oracle/product/10.2.0/db

SPFILE: +ARCH/dwrac/spfiledwrac.ora

DOMAIN: null

DB_ROLE: null

START_OPTIONS: null

POLICY: AUTOMATIC

ENABLE FLAG: DB ENABLED

可以看到,SPFILE的位置指向是+ARCH。解決方法是通過srvctl修改SPFILE的位置。

[oracle@dwdb01 dbs]$ srvctl modify database-d dwrac -p '+DBSYS/dwrac/spfiledwrac.ora'

[oracle@dwdb01 dbs]$ srvctl config database-d dwrac -a

dwdb01 dwrac1 /oracle/product/10.2.0/db

dwdb02 dwrac2 /oracle/product/10.2.0/db

dwdb03 dwrac3 /oracle/product/10.2.0/db

dwdb04 dwrac4 /oracle/product/10.2.0/db

DB_UNIQUE_NAME: dwrac

DB_NAME: dwrac

ORACLE_HOME: /oracle/product/10.2.0/db

SPFILE: +DBSYS/dwrac/spfiledwrac.ora

DOMAIN: null

DB_ROLE: null

START_OPTIONS: null

POLICY: AUTOMATIC

ENABLE FLAG: DB ENABLED

[oracle@dwdb01 dbs]$ srvctl stop database-d dwrac

[oracle@dwdb01 dbs]$ srvctl start database-d dwrac

sys@dwrac2> show parameter spfile

NAME TYPE VALUE

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

spfile string +DBSYS/dwrac/spfiledwrac.ora

可以看到,此時Oracle是用新的spfile啟動的。

7.總結

在RAC環境下修改spfile:

1. 需要修改$ORACLE_HOME/dbs下的相關文件,指向新文件

2. 需要用srvctl修改config信息,指向新文件

第二篇:Oracle ASM存儲Spfile解析

以下來自論壇:

在之前的文章《Oracle Restart啟動數據庫實例故障一例》(http://space.itpub.net/17203031/viewspace-774622)中,筆者解決了一個由于使用create pfilefrom spfile引起的Restart無法啟動數據庫實例的故障。

嚴格的說,筆者并沒有完全將其解決。主要體現在Spfile的使用和存放上。

1、問題簡述

Oracle Database安裝在ASM存儲的時候,默認都是使用ASM保存Spfile參數文件。與早期的pfile文件不同,Spfile是具有二進制格式,能夠支持部分參數的動態調整。

所以,我們出現問題的時候,發現Restart的配置信息中包括了ASM中的Spfile參數內容。

[oracle@SimpleLinux ~]$ srvctl config database -d ora11g

Database unique name: ora11g

Database name:

Oracle home: /u01/app/oracle/product/11.2.0/db_1

Oracle user: oracle

Spfile: +DATA/ORA11G/spfileora11g.ora

Domain:

Start options: open

Stop options: immediate

Database role: PRIMARY

Management policy: AUTOMATIC

Database instance: ora11g

Disk Groups: DATA,RECO

Services:

我們之前的修復方法,就是將spfile內容置空,讓數據庫實例啟動使用默認路徑$ORACLE_HOME/dbs的spfile和pfile參數進行檢索。

SQL> show parameter spfile

NAME TYPE VALUE

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

spfile string /u01/app/oracle/product/11.2.0

/db_1/dbs/spfileora11g.ora

但是此時,我們在ASM路徑上是存在spfile上的。

ASMCMD> pwd

+DATA/ORA11G

ASMCMD> ls

CONTROLFILE/

DATAFILE/

ONLINELOG/

PARAMETERFILE/

TEMPFILE/

spfileora11g.ora

在這種情況下,如果配置了ASM目錄的spfile啟動標志,啟動Restart會報錯。

[oracle@SimpleLinux ~]$ srvctl modify database -d ora11g-p +DATA/ora11g/spfileora11g.ora

[oracle@SimpleLinux ~]$ srvctl start database -d ora11g

PRCR-1079 : Failed to start resource ora.ora11g.db

CRS-5010: Update of configuration file "/u01/app/oracle/product/11.2.0/db_1/dbs/initora11g.ora"failed: details at "(:CLSN00014:)" in"/u01/app/grid/product/11.2.0/grid/log/simplelinux/agent/ohasd/oraagent_grid/oraagent_grid.log"

CRS-5017: The resource action "ora.ora11g.db start" encounteredthe following error:

CRS-5010: Update of configuration file"/u01/app/oracle/product/11.2.0/db_1/dbs/initora11g.ora" failed:details at "(:CLSN00014:)" in "/u01/app/grid/product/11.2.0/grid/log/simplelinux/agent/ohasd/oraagent_grid/oraagent_grid.log"

. For details refer to "(:CLSN00107:)" in"/u01/app/grid/product/11.2.0/grid/log/simplelinux/agent/ohasd/oraagent_grid/oraagent_grid.log".

CRS-2674: Start of 'ora.ora11g.db' on 'simplelinux' failed

2、分析和思考

一起冷靜想想~

Pfile和spfile是參數文件經歷的兩個階段。在umount階段,Oracle是通過參數$ORACLE_HOME和$ORACLE_SID進行目錄定位,定位到$ORACLE_HOME/dbs或者$ORACLE_HOME/database,到里面尋找制定規則的參數文件。

Oracle首先會去尋找Spfile,之后才會去找Pfile。我們通過create spfile和create pfile可以實現兩者的轉化。

一個比較常見的問題案例是:如果我們把啟動參數改錯了,啟動不了了,那么怎么辦?標準的做法是通過create pfilefrom spfile,拿到一個文本格式的參數pfile。在里面修改啟動參數,糾正錯誤。啟動時候,使用startuppfile=xxx使用“指定的pfile”啟動數據庫實例,再通過create spfile from pfile將變化固化下來。

Oracle Restart提供的配置參數spfile其實是很詭異的。從直觀上看,好像是有startup數據庫實例,后面可以自己去指定參數文件,類似于startupspfile=xxx的作用。但是實際上,startup是不支持spfile這樣的參數的。

如果這個參數是用于指定,那么在Restart啟動的時候我們已經設置爭取的spfile位置,指定位置上面也有文件。但是根本沒有效果,Oracle還是尋找參數文件。

那么,就只有一種可能性:即使Oracle使用Restart啟動,也不是依靠指定的spfile,還是按照原有的規則運行。

網絡上有一種方法,說的是如果我們需要指定一個spfile啟動文件的時候,應該怎么做。答案是建立一個空的pfile文件,里面直接指定SPFILE參數的文件位置。

綜合幾種思路,我們可以設想到Spfile保存在ASM里面,同時讓Restart和sqlplus啟動時候可以訪問到ASMSpfile的方法。

3、配置ASM上SPFILE啟動

首先是創建出ASM上的spfile。注意:創建spfile的時候一定是從pfile創建,所以需要轉換一下。

SQL> startuppfile=/u01/app/oracle/product/11.2.0/db_1/dbs/initora11g.ora

ORACLE instance started.

Total System Global Area 263639040bytes

Fixed Size 1344312bytes

Variable Size 134221000bytes

Database Buffers 125829120bytes

Redo Buffers 2244608bytes

Database mounted.

Database opened.

SQL> show parameter spfile

NAME TYPE VALUE

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

spfile string

SQL> create spfile='+DATA/ORA11G/spfileora11g.ora'from pfile;

File created.

此時,我們在ASM里面可以看到生成的spfile二進制文件。

ASMCMD> ls -l

Type Redund Striped Time Sys Name

Y CONTROLFILE/

Y DATAFILE/

Y ONLINELOG/

Y PARAMETERFILE/

Y TEMPFILE/

N spfileora11g.ora => +DATA/ORA11G/PARAMETERFILE/spfile.267.829130539

第二部是創建維護一個“轉發”參數文件。

SQL> shutdown immediate;

Database closed.

Database dismounted.

ORACLE instance shut down.

[oracle@SimpleLinux ~]$ cd $ORACLE_HOME

[oracle@SimpleLinux db_1]$ cd dbs

[oracle@SimpleLinux dbs]$ ls -l

total 28

-rw-rw---- 1 oracle asmadmin 1544 Sep 12 12:58 hc_ora11g.dat

-rw-r--r-- 1 oracle oinstall 2851 May 15 2009 init.ora

-rwxr-x--- 1 oracle oinstall 959 Oct 18 09:51 initora11g.ora

-rwxrwx--- 1 oracle oinstall 887Sep 29 09:31 initora11g.ora.bk

-rw-r----- 1 oracle asmadmin 24Sep 12 12:58 lkORA11G

-rw-r----- 1 oracle oinstall 1536 Sep 12 13:11 orapwora11g

-rw-r----- 1 oracle asmadmin 2560 Oct 18 09:57spfileora11g.ora

在里面要完成兩件事情,一個是將dbs目錄下面的spfile刪除。因為依據Oracle啟動的原則,是先找spfile,之后再找pfile。第二件是修改文本參數文件,作為轉發。

[oracle@SimpleLinux dbs]$ mv spfileora11g.ora spfileora11g.ora.bk

[oracle@SimpleLinux dbs]$ cat initora11g.ora

SPFILE='+DATA/ora11g/spfileora11g.ora’ –注意:不能包括*前綴或者SID前綴

[oracle@SimpleLinux dbs]$ ls -l

total 28

-rw-rw---- 1 oracle asmadmin 1544 Sep 12 12:58 hc_ora11g.dat

-rw-r--r-- 1 oracle oinstall 2851 May 15 2009 init.ora

-rwxr-x--- 1 oracle oinstall 41Oct 18 10:07 initora11g.ora

-rwxrwx--- 1 oracle oinstall 887Sep 29 09:31 initora11g.ora.bk

-rw-r----- 1 oracle asmadmin 24Sep 12 12:58 lkORA11G

-rw-r----- 1 oracle oinstall 1536 Sep 12 13:11 orapwora11g

-rw-r----- 1 oracle asmadmin 2560 Oct 18 09:57 spfileora11g.ora.bk

使用srvctl關閉和啟動數據庫。

[oracle@SimpleLinux dbs]$ srvctl start database -d ora11g

[oracle@SimpleLinux dbs]$ srvctl config database -d ora11g

Database unique name: ora11g

Database name:

Oracle home: /u01/app/oracle/product/11.2.0/db_1

Oracle user: oracle

Spfile: +DATA/ora11g/spfileora11g.ora

Domain:

Start options: open

Stop options: immediate

Database role: PRIMARY

Management policy: AUTOMATIC

Database instance: ora11g

Disk Groups: DATA,RECO

Services:

[oracle@SimpleLinux dbs]$ srvctl status database -d ora11g

Database is running.

數據庫中,spfile參數被設置為ASM路徑。

SQL> show parameter spfile;

NAME TYPE VALUE

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

spfile string +DATA/ora11g/spfileora11g.ora

故障徹底解決。

4、結論

綜合上面的實驗,我們可以看到ASM下Spfile使用的方法。ASM下的Spfile并不是拋棄原有的啟動規則,而是借助原有的pfile進行了目標轉接。之后筆者查看MOS中的對應方案,官方推薦的也是這樣的做法。

這樣就需要一個前提,就是dbs或者database目錄中不能包括spfile。如果包括了,Oracle設置的轉接機制就被替換掉了。

另一個問題是我們一直看到的錯誤提示信息,提示參數文件initora11g.ora格式不能識別。筆者的理解是,原始的文件是筆者使用create pfilefrom spfile創建出來的,默認的SPFILE=XXX的內容被覆蓋。而Oracle Restart不能識別這種非轉接內容文件,所以報錯。

第三篇:Oracle Restart啟動數據庫實例故障一例

網絡整理:

Oracle Restart是11gR2中推出的重要高可用(HighAvailability)特性。在Single Instance情況下,Clusterware形成一個可用性維護框架,Oracle組件服務都是在這個維護管理框架上進行管理。

Oracle Restart從職責上負責兩方面的功能,一個是Oracle各個服務組件的自動啟動。鑒于組件間復雜的依賴關系,使用Restart自動的進行啟動順序調節是比較好的一種策略。另一個功能是高可用支持,如果某一個組件意外被終止運行,比如異常中斷,Oracle Restart是可以定期的檢查“治下”組件的生存情況,一旦檢查出問題就會進行自動的啟動。

目前單實例Oracle使用Oracle Restart支持的組件內容有:監聽器Listener、Oracle實例和數據庫、ASM實例、ASM磁盤組、數據庫服務Service和ONS(OracleNotification Service)。

本篇記錄筆者遇到的一個故障場景,不甚復雜,和行業大牛們大作不敢相比。權當思路記錄,留待需要的朋友不時之需。

1、問題故障出現

在一臺11gR2的Oracle上,筆者部署了單實例ASM實例和磁盤組結構,并且在上面部署了SingleInstance Oracle。由于是測試使用,筆者在上面進行過一些測試和實驗,今天啟動服務器之后,發現問題。

grid@SimpleLinux simplelinux]$ uptime

13:58:13 up 2:24, 1 user, load average: 0.03, 0.02, 0.00

[grid@SimpleLinux simplelinux]$ ps -ef |grep pmon

grid 3212 1 0 11:35 ? 00:00:01 asm_pmon_+ASM

grid 27724 27685 0 13:58 pts/0 00:00:00 grep pmon

根據標準的Oracle Restart配置,ASM實例、ASM磁盤組和數據庫實例都是在Restart管理范圍,應該是隨著服務器啟動而自動啟動。但是從實際情況看,ASM實例已經自動啟動,數據庫實例沒有啟動。

同RAC結構一樣,Restart也是借助服務器啟動過程中,以ohasd為首的高可用守護進程進行步步啟動動作。

這種情況下,查看日志信息是最好的選擇,看看那個環節出現問題。

[grid@SimpleLinux simplelinux]$ pwd

/u01/app/grid/product/11.2.0/grid/log/simplelinux

[grid@SimpleLinux simplelinux]$ ls -l |grep alert

-rw-rw---- 1 grid oinstall 14494Oct 17 11:35 alertsimplelinux.log

對grid和clusterware的日志,都是保留在$ORACLE_HOME/log下的目錄從中。Alert.log是主日志,也是檢查的起始點。通常是里面發現的問題,進行進一步的分析動作。

[ohasd(2744)]CRS-2767:Resource staterecovery not attempted for 'ora.diskmon' as its target state is OFFLINE

2013-10-17 11:35:34.373

[cssd(3130)]CRS-1601:CSSD Reconfigurationcomplete. Active nodes are simplelinux .

2013-10-17 11:35:50.094

[/u01/app/grid/product/11.2.0/grid/bin/oraagent.bin(3072)]CRS-5010:Updateof configuration file "/u01/app/oracle/product/11.2.0/db_1/dbs/initora11g.ora"failed: details at "(:CLSN00014:)" in"/u01/app/grid/product/11.2.0/grid/log/simplelinux/agent/ohasd/oraagent_grid/oraagent_grid.log"

2013-10-17 11:35:55.645

[/u01/app/grid/product/11.2.0/grid/bin/oraagent.bin(3072)]CRS-5010:Updateof configuration file"/u01/app/oracle/product/11.2.0/db_1/dbs/initora11g.ora" failed:details at "(:CLSN00014:)" in"/u01/app/grid/product/11.2.0/grid/log/simplelinux/agent/ohasd/oraagent_grid/oraagent_grid.log"

2013-10-17 11:35:55.806

[ohasd(2744)]CRS-2807:Resource'ora.ora11g.db' failed to start automatically.

我們定位到了問題片段,從上面標紅的內容看。Clusterware在啟動dismon服務之后,試圖啟動數據庫,也就是ora.ora11g.db。在訪問一個參數文件(注意是pfile)過程中,發現問題。

進一步檢查指出的oraagent_grid.log日志,也沒有過多的信息提示。

2013-10-17 11:35:50.049:[ora.ora11g.db][3013430160] {0:0:2} [start] sclsnInstAgent::sUpdateOratab fileupdated with dbName ora11g value /u01/app/oracle/product/11.2.0/db_1:N

2013-10-17 11:35:50.049:[ora.ora11g.db][3013430160] {0:0:2} [start] sclsnInstAgent::sUpdateOratab CSSunlock

2013-10-17 11:35:50.090:[ora.ora11g.db][3013430160] {0:0:2} [start] (:CLSN00014:)Failed to open file/u01/app/oracle/product/11.2.0/db_1/dbs/initora11g.ora

2013-10-17 11:35:50.091: [ AGENT][3013430160] {0:0:2}UserErrorException: Locale is

2013-10-17 11:35:50.091:[ora.ora11g.db][3013430160] {0:0:2} [start] clsnUtils::error Exception type=2string=

CRS-5010: Update of configuration file"/u01/app/oracle/product/11.2.0/db_1/dbs/initora11g.ora" failed:details at "(:CLSN00014:)" in "/u01/app/grid/product/11.2.0/grid/log/simplelinux/agent/ohasd/oraagent_grid/oraagent_grid.log"

從信息上看,是對pfile沒有能夠打開。

2、一次不成功的嘗試

從日志信息上,看到是不能夠打開文本參數控制文件。初步猜測是文件權限原因,下面進行檢查。

[grid@SimpleLinux oraagent_grid]$ cd/u01/app/oracle/product/11.2.0/db_1/dbs/

[grid@SimpleLinux dbs]$ ls -l

total 20

-rw-rw---- 1 oracle asmadmin 1544 Sep 1212:58 hc_ora11g.dat

-rw-r--r-- 1 oracle oinstall 2851 May15 2009 init.ora

-rw-r----- 1 oracle oinstall 887 Sep 29 09:31 initora11g.ora

-rw-r----- 1 oracle asmadmin 24 Sep 12 12:58 lkORA11G

-rw-r----- 1 oracle oinstall 1536 Sep 1213:11 orapwora11g

[grid@SimpleLinux dbs]$ id oracle

uid=500(oracle) gid=500(oinstall)groups=500(oinstall),501(dba),502(oper),602(asmdba)

[grid@SimpleLinux dbs]$ id grid

uid=501(grid) gid=500(oinstall)groups=500(oinstall),501(dba),600(asmadmin),601(asmoper),602(asmdba)

權限內容是oracle用戶讀寫、組用戶讀。從權限上看,grid和oracle讀取和修改的問題不算特別嚴重。但是還是進行測試嘗試。

[oracle@SimpleLinux dbs]$ chmod 770initora11g.ora

[oracle@SimpleLinux dbs]$ ls -l

total 20

-rw-rw---- 1 oracle asmadmin 1544 Sep 1212:58 hc_ora11g.dat

-rw-r--r-- 1 oracle oinstall 2851 May15 2009 init.ora

-rwxrwx--- 1 oracle oinstall 887 Sep 29 09:31 initora11g.ora

-rw-r----- 1 oracle asmadmin 24 Sep 12 12:58 lkORA11G

-rw-r----- 1 oracle oinstall 1536 Sep 1213:11 orapwora11g

嘗試啟動數據庫。

[grid@SimpleLinux ~]$ srvctl start database-d ora11g

PRCR-1079 : Failed to startresource ora.ora11g.db

CRS-5010: Update of configurationfile "/u01/app/oracle/product/11.2.0/db_1/dbs/initora11g.ora" failed:details at "(:CLSN00014:)" in"/u01/app/grid/product/11.2.0/grid/log/simplelinux/agent/ohasd/oraagent_grid/oraagent_grid.log"

CRS-5017: The resource action"ora.ora11g.db start" encountered the following error:

CRS-5010: Update of configurationfile "/u01/app/oracle/product/11.2.0/db_1/dbs/initora11g.ora" failed:details at "(:CLSN00014:)" in"/u01/app/grid/product/11.2.0/grid/log/simplelinux/agent/ohasd/oraagent_grid/oraagent_grid.log"

. For details refer to"(:CLSN00107:)" in "/u01/app/grid/product/11.2.0/grid/log/simplelinux/agent/ohasd/oraagent_grid/oraagent_grid.log".

CRS-2674: Start of'ora.ora11g.db' on 'simplelinux' failed

啟動失敗。那么,試著使用傳統sqlplus命令行方式啟動是否可行?

[oracle@SimpleLinux ~]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.3.0 Production onThu Oct 17 14:17:11 2013

Copyright (c) 1982, 2011, Oracle. All rights reserved.

SQL> conn / as sysdba

Connected to an idle instance.

SQL> startup

ORACLE instance started.

Total System Global Area 263639040 bytes

Fixed Size 1344312 bytes

Variable Size 134221000 bytes

Database Buffers 125829120 bytes

Redo Buffers 2244608 bytes

Database mounted.

Database opened.

SQL> quit

Disconnected from Oracle Database 11gEnterprise Edition Release 11.2.0.3.0 - Production

With the Partitioning, Automatic StorageManagement, OLAP, Data Mining

and Real Application Testing options

[oracle@SimpleLinux ~]$ ps -ef | grep pmon

grid 3212 1 0 11:35 ? 00:00:02 asm_pmon_+ASM

oracle 27979 1 0 14:17 ? 00:00:00 ora_pmon_ora11g

oracle 28106 27921 0 14:17 pts/0 00:00:00 grep pmon

[oracle@SimpleLinux ~]$ srvctl statusdatabase -d ora11g

Database is running.

啟動成功,使用sqlplus命令行可以啟動,但是Oracle Restart啟動就會失敗。那么問題在哪兒?

3、Spfile vs. Pfile

從直觀上看,Oracle Restart啟動的時候是希望訪問到參數文件pfile。從直觀的感覺上,好像被替代很長時間的pfile為什么會被提及。利用已經啟動的數據庫實例,看一下當前使用的是什么參數文件。

SQL> show parameter spfile

NAME TYPE VALUE

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

spfile string

SQL>

當前啟動是利用pfile啟動的,剛剛我們對$ORACLE_HOME/dbs的檢索也沒有看到spfile文件。Oracle啟動過程中,是默認先根據環境變量“拼湊”的路徑查找spfile,之后才是pfile。系統spfile參數為空,說明當前使用的是pfile。

但是,對應到Oracle Restart里面的啟動信息,似乎有些差別。

[grid@SimpleLinux ~]$ srvctl configdatabase -d ora11g

Database unique name: ora11g

Database name: ora11g

Oracle home:/u01/app/oracle/product/11.2.0/db_1

Oracle user: oracle

Spfile:+DATA/ora11g/spfileora11g.ora

Domain:

Start options: open

Stop options: immediate

Database role: PRIMARY

Management policy: AUTOMATIC

Database instance: ora11g

Disk Groups: DATA,RECO

Services:

明顯出現不同。這個時候,筆者想起之前進行過實驗,在ASM環境下進行spfile和pfile的生成操作。懷疑是這個過程中,存在Restart和實例信息的不匹配。

想出了第二種修復策略。

SQL> create spfile from pfile;

File created.

SQL> startup force

ORACLE instance started.

Total System Global Area 263639040 bytes

Fixed Size 1344312 bytes

Variable Size 134221000 bytes

Database Buffers 125829120 bytes

Redo Buffers 2244608 bytes

Database mounted.

Database opened.

SQL> show parameter spfile

NAME TYPE VALUE

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

spfile string /u01/app/oracle/product/11.2.0

/db_1/dbs/spfileora11g.ora

設置恢復現有的spfile作為啟動參數文件。試圖讓Restart和實例信息一致。

[oracle@SimpleLinux ~]$ srvctl modifydatabase -d ora11g-p /u01/app/oracle/product/11.2.0/db_1/dbs/spfileora11g.ora

[oracle@SimpleLinux ~]$ srvctl configdatabase -d ora11g

Database unique name: ora11g

Database name: ora11g

Oracle home:/u01/app/oracle/product/11.2.0/db_1

Oracle user: oracle

Spfile: /u01/app/oracle/product/11.2.0/db_1/dbs/spfileora11g.ora

Domain:

Start options: open

Stop options: immediate

Database role: PRIMARY

Management policy: AUTOMATIC

Database instance: ora11g

Disk Groups: DATA,RECO

Services:

實驗啟動,故障依然。

[oracle@SimpleLinux tmp]$ srvctl startdatabase -d ora11g

PRCR-1079 : Failed to start resourceora.ora11g.db

CRS-5010: Update of configuration file"/u01/app/oracle/product/11.2.0/db_1/dbs/initora11g.ora"failed: details at "(:CLSN00014:)" in"/u01/app/grid/product/11.2.0/grid/log/simplelinux/agent/ohasd/oraagent_grid/oraagent_grid.log"

CRS-5017: The resource action"ora.ora11g.db start" encountered the following error:

CRS-5010: Update of configuration file"/u01/app/oracle/product/11.2.0/db_1/dbs/initora11g.ora" failed:details at "(:CLSN00014:)" in"/u01/app/grid/product/11.2.0/grid/log/simplelinux/agent/ohasd/oraagent_grid/oraagent_grid.log"

. For details refer to"(:CLSN00107:)" in"/u01/app/grid/product/11.2.0/grid/log/simplelinux/agent/ohasd/oraagent_grid/oraagent_grid.log".

CRS-2674: Start of 'ora.ora11g.db' on'simplelinux' failed

第二次修復嘗試以失敗告終,Oracle Restart依然尋找那個pfile。但是筆者獲得了方向,就是系統問題在于Restart中對數據庫啟動參數文件的不一致。

4、問題解決

Oracle Restart是一個很復雜的體系,在沒有經驗和資料的情況下,筆者也不能證明說是Oracle Bug之類的。

一種思路可以進行嘗試。對于Oracle Restart,各種組件都是在上面可插拔的。根據需要,我們可以進行動態的配置注冊過程。從之前的情況看,數據庫本身是沒有問題的,應該就是配置過程中的故障。那么,modify配置是有問題的??刹豢梢詫atabase ora11g剔除出Restart體系,之后再添加過來。

Srvctl的add和remove命令可以幫助我們實現功能。而且在add過程中,只有-o參數是強制的,輸入ORACLE_HOME目錄。

[oracle@SimpleLinux dbs]$ srvctl removedatabase -d ora11g

Remove the database ora11g? (y/[n]) y

[oracle@SimpleLinux dbs]$ srvctl add database -d ora11g -o/u01/app/oracle/product/11.2.0/db_1

[oracle@SimpleLinux dbs]$ srvctl configdatabase -d ora11g

Database unique name: ora11g

Database name:

Oracle home: /u01/app/oracle/product/11.2.0/db_1

Oracle user: oracle

Spfile:

Domain:

Start options: open

Stop options: immediate

Database role: PRIMARY

Management policy: AUTOMATIC

Database instance: ora11g

Disk Groups:

Services:

Spfile為空。試著重新啟動。

[oracle@SimpleLinux dbs]$ srvctl start database -d ora11g

[oracle@SimpleLinux dbs]$ ps -ef | greppmon

grid 3215 1 0 14:47 ? 00:00:00 asm_pmon_+ASM

oracle 5265 1 0 15:22 ? 00:00:00 ora_pmon_ora11g

oracle 5386 3578 0 15:22 pts/0 00:00:00 grep pmon

[oracle@SimpleLinux dbs]$ srvctl configdatabase -d ora11g

Database unique name: ora11g

Database name:

Oracle home:/u01/app/oracle/product/11.2.0/db_1

Oracle user: oracle

Spfile:

Domain:

Start options: open

Stop options: immediate

Database role: PRIMARY

Management policy: AUTOMATIC

Database instance: ora11g

Disk Groups: DATA,RECO

Services:

啟動成功!最后嘗試看看reboot系統時,能否自動啟動。

--重新啟動系統

[root@SimpleLinux simplelinux]# ps -ef | grep pmon

grid 3213 1 015:27 ? 00:00:00 asm_pmon_+ASM

oracle 3270 1 015:27 ? 00:00:00 ora_pmon_ora11g

root 3336 3042 015:27 pts/0 00:00:00 grep pmon

[grid@SimpleLinux ~]$ lsnrctl status

LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 17-OCT-2013 15:32:07

Copyright (c) 1991, 2011, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))

STATUS of the LISTENER

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

Alias LISTENER

Version TNSLSNRfor Linux: Version 11.2.0.3.0 - Production

Start Date 17-OCT-2013 15:27:06

Uptime 0 days 0hr. 5 min. 0 sec

Trace Level off

Security ON: LocalOS Authentication

SNMP OFF

Listener Parameter File /u01/app/grid/product/11.2.0/grid/network/admin/listener.ora

Listener Log File /u01/app/grid/diag/tnslsnr/SimpleLinux/listener/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=SimpleLinux.localdomain)(PORT=1521)))

Services Summary...

Service "+ASM" has 1 instance(s).

Instance "+ASM", statusREADY, has 1 handler(s) for this service...

Service "ora11g" has 1 instance(s).

Instance"ora11g", status READY, has 1 handler(s) for this service...

Service "ora11gXDB" has 1 instance(s).

Instance "ora11g",status READY, has 1 handler(s) for this service...

The command completed successfully

SQL> show parameter spfile

NAME TYPE VALUE

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

spfile string /u01/app/oracle/product/11.2.0/db_1/dbs/spfileora11g.ora

問題解決。

5、結論和反思

從直觀的感覺看,這應該是Restart和原有命令協調的一個故障。原有create pfile之后,Restart似乎不能夠支持pfile的啟動了。另外,在修復過程中,我們始終看到不能對spfile修改參數生效,也是一個疑惑點。

能夠肯定的是,在添加數據庫ora11g的時候,沒有明確指定啟動spfile的位置,那么應該是進入了自動檢索目錄spfile-pfile的過程。所以系統得到修復。

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

淺析RAC下SPFILE文件修改之整理三篇文章

淺析RAC下SPFILE文件修改之整理三篇文章:關于RAC下spfile淺析_整理于_2014.4.17 第一篇:RAC下SPFILE文件修改 在RAC下spfile位置的修改與單節點環境不完全一致,有些地方需要特別注意,否則可能修改會失敗。 下面用一個例子說明:SPFILE放在ASM中一個不正確的目錄(+ARCH)中,現在想把它放在另
推薦度:
標簽: 整理 文件 文章
  • 熱門焦點

最新推薦

猜你喜歡

熱門推薦

專題
Top
主站蜘蛛池模板: 亚洲一区日韩 | 120秒免费试看 | 999久久久| 亚洲精品成人久久久影院 | 亚洲最新 | 可以看的毛片 | 欧美xxxxxbbbbb| 国产午夜视频在线观看 | 亚洲一页 | 久久国产一级毛片一区二区 | 国产精品免费观看 | 97久久精品一区二区三区 | 国产一区二区免费视频 | a级精品国产片在线观看 | 一级毛片免费毛片毛片 | 欧美在线综合视频 | 99久久国产综合精品成人影院 | 伊人色综合97 | 亚洲欧美日韩高清中文在线 | 欧美国产中文 | 久久久久久91精品色婷婷 | 国产99久久 | 人与鲁牲交持级毛片 | 中文字幕久久亚洲一区 | 国产黄色片一级 | 高清精品一区二区三区一区 | 欧美射| 九九精品成人免费国产片 | 国产成人综合久久精品下载 | 97精品国产91久久久久久 | 日韩欧美亚洲综合一区二区 | 欧美日韩亚洲国产一区二区三区 | 久久久久久国产精品免费 | 久久精品国产91久久综合麻豆自制 | 精品一区二区三区四区电影 | 欧美日韩精品免费一区二区三区 | 亚洲 欧美 自拍 另类 欧美 | 亚洲精品自产拍在线观看app | 亚洲图片国产日韩欧美 | 亚欧在线 | 欧美一级电影网站 |