1. 程式人生 > >搭建RAC用sqlplus啟動db資源顯示offline問題分析處理

搭建RAC用sqlplus啟動db資源顯示offline問題分析處理

一.問題描述
rac庫用sqlplus啟動節點二正常,但crsctl顯示db資源為offline,而用srvctl啟動例項時,db資源顯示online;
如下:
sqlplus啟動db正常,而用crsctl stat res -t檢視資源狀態,出現:
ora.st.db
1 ONLINE ONLINE T50003 Open 
2 OFFLINE OFFLINE Instance Shutdown


當用srvctl start  instance -d st -i st2啟例項2時,則是: 
ora.st.db
1 ONLINE ONLINE T50003 open 
2 ONLINE ONLINE T50004 open
oraccle版本:RAC 11.2.0.4 for solaris 11.2
二.原因分析

上述問題,當用sqlplus啟動後,若再用一次srvctl來啟動例項,db資源恢復顯示正常,由於未來環境是生產環境,這樣多操作一次感覺很怪,不知是否有什麼隱患和風險,必需要解決掉這 
個問題,否則,就只能重新搭建和再恢復資料,由於專案時間很緊,時間和精力上不希望再重新搭建rac和恢復資料,也會影響到環境交付。
該rac搭建過程也比較曲折:
因為在安裝grid psu2補丁時,出現opatch報錯,通過分析,節點2的psu2沒有打成功,而小補丁在節點一安裝時沒有加local選項,而將節點一安裝的補丁及相應用配置寫到了節點二上 
,致節點二執行opatch操作時報錯,為了保證節點二不留有隱患和風險,有對節點2進行delete node後,再add node操作。
上面報錯問題懷疑與節點2的刪除和重新新增有關。如是對節點一關閉例項,然後再用sqlplus啟動,結果顯示節點1也存在與節點2同樣的問題,這樣就排除了節點2的問題與delete node和 
add node相關。
難道是資料庫st註冊到OCR中有問題嗎?從ocr中移除database,並重新註冊ocr後,問題依然存在。
如是檢查OS層面是否有異常,dmesg發現部分磁碟有報label錯誤,仔細檢查磁碟發現這些盤沒有在使用,是分給將來的本機ADG使用的,所以磁碟label報錯與些問題無關。 
T50004 cmlb: [ID 107833 kern.warning] WARNING: /scsi_vhci/
[email protected]
(ssd24):
T50004 Corrupt label; wrong magic number
T50004 cmlb: [ID 107833 kern.warning] WARNING: /scsi_vhci/[email protected] (ssd24): 
因為不想重新搭rac,所以晚上回家後,繼續從MOS中查詢各種與db resorce offline相關的文件閱讀,11.2 RAC: In "crsctl stat res -t" State Details May Be Missing or Incorrect 
(文件 ID 1086563.1)和srvctl reports wrong instance status for disabled instances (文件 ID 1320970.1)這兩個文件中提到的case有點相似,但與這個問題還完全不一樣。如是將問 
題分析聚焦在srvctl啟庫和sqlplus啟庫的差別上。
在節點二上執行: crsctl stat res -p,檢視ocr中註冊的相關db資源狀態:
NAME=ora.st.db
TYPE=ora.database.type
ACL=owner:oraabc:rwx,pgrp:oinstall:r--,other::r--,group:dba:r-x,user:oragrid:r-x
ACTION_FAILURE_TEMPLATE=
ACTION_SCRIPT=
ACTIVE_PLACEMENT=1
AGENT_FILENAME=%CRS_HOME%/bin/oraagent%CRS_EXE_SUFFIX%
AUTO_START=restore
CARDINALITY=2
CHECK_INTERVAL=1
CHECK_TIMEOUT=30
CLUSTER_DATABASE=true
DATABASE_TYPE=RAC
DB_UNIQUE_NAME=st
DEFAULT_TEMPLATE=PROPERTY(RESOURCE_CLASS=database) PROPERTY(DB_UNIQUE_NAME= CONCAT(PARSE(%NAME%, ., 2), %USR_ORA_DOMAIN%, .)) ELEMENT(INSTANCE_NAME= 
%GEN_USR_ORA_INST_NAME%) ELEMENT(DATABASE_TYPE= %DATABASE_TYPE%)
DEGREE=1
DESCRIPTION=Oracle Database resource
----注意上面的NAME=ora.st.db,資料庫在OCR中是以db_unique_name的形式註冊的。
再進一步執行:
-bash-4.1$ srvctl config database -d st
Database unique name: st
Database name: 
Oracle home: /mapp/orapl/11.2.0
Oracle user: oraabc
Spfile: +MDG1/st/spfilest.ora
Domain: 
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: st
Database instances: st1,st2
Disk Groups: MDG1,REDODG1,REDODG2
Mount point paths: 
Services: g_io,dgp,mdr,r_io
Type: RAC
Database is administrator managed
---發現註冊到ocr中的db_unique_name為st。
而在資料庫端的設定為nhst,如下:
SQL> show parameter db_unique_name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_unique_name string NHst
那麼產生問題的原因就找到了,就是db_unique_name只在資料庫層有更改為nhst,而ocr中沒有更新。而原來用srvctl去啟例項,db資源顯示正常,是因為srvctl會直接去呼叫sqlplus啟動例項。
三.解決

重新更改OCR中的db_unique_name為nhst,操作如下:
1.停庫和從ocr中移除庫
srvctl stop database -d st
srvctl remove database -d st
2.啟動庫,再更改db層的設定
startup
alter system set db_unique_name=NHst scope=spfile sid='*';
3) cluster級別新增database資源
srvctl add database -d nhst -n st -o /abcapp/orap/11.2.0
srvctl add instance -d nhst -i st1 -n T50003
srvctl add instance -d nhst -i st2 -n T50004
4) 修改ocr中db與asm磁碟組的依賴關係
srvctl modify database -d nhst -a "MDG1,REDODG1,REDODG2"
5)重新註冊service
srvctl add service -d nhst -s mgpl -r st1 -a st2 -P basic -e select -m basic
...................................
啟動 service
srvctl start service -d nhst -s mgpl
最後驗證如下:
用sqlplus關節點二,再啟動節點二,檢查正常,如下:
-bash-4.1$ crsctl stat res -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS 
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.LISTENER.lsnr
ONLINE ONLINE T50003 
ONLINE ONLINE T50004 
ora.MDPLMDG1.dg
ONLINE ONLINE T50003 
ONLINE ONLINE T50004 
ora.OCRVOTDG.dg
ONLINE ONLINE T50003 
ONLINE ONLINE T50004 
ora.REDODG1.dg
ONLINE ONLINE T50003 
ONLINE ONLINE T50004 
ora.REDODG2.dg
ONLINE ONLINE T50003 
ONLINE ONLINE T50004 
ora.asm
ONLINE ONLINE T50003 Started 
ONLINE ONLINE T50004 Started 
ora.gsd
OFFLINE OFFLINE T50003 
OFFLINE OFFLINE T50004 
ora.net1.network
ONLINE ONLINE T50003 
ONLINE ONLINE T50004 
ora.ons
ONLINE ONLINE T50003 
ONLINE ONLINE T50004 
ora.registry.acfs
ONLINE ONLINE T50003 
ONLINE ONLINE T50004 
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE T50003 
ora.cvu
1 ONLINE ONLINE T50004 
ora.T50003.vip
1 ONLINE ONLINE T50003 
ora.T50004.vip
1 ONLINE ONLINE T50004 
ora.nhst.db
1 ONLINE ONLINE T50003 Open 
2 ONLINE ONLINE T50004 Open 
ora.nhst.gplm_io.svc
1 ONLINE ONLINE T50003 
ora.nhst.mdgplm.svc
1 ONLINE ONLINE T50003 
ora.nhst.mdrdm.svc
1 ONLINE ONLINE T50003 
ora.nhst.rdm_io.svc
1 ONLINE ONLINE T50004 
ora.oc4j
1 ONLINE ONLINE T50004 
ora.scan1.vip
1 ONLINE ONLINE T50003 
-bash-4.1$
-bash-4.1$ srvctl status database -d nhst
Instance st1 is running on node T50003
Instance st2 is running on node T50004


-bash-4.1$ srvctl config database -d nhst
Database unique name: nhst
Database name: st
Oracle home: /abcapp/orap/11.2.0
Oracle user: oraab
Spfile: +ABCDG1/st/spfilest.ora
Domain: 
Start options: open
Stop options: immediate
Database role: PRIMARY
Management policy: AUTOMATIC
Server pools: st
.........................
-bash-4.1$ crsctl stat res -p
NAME=ora.nhst.db
TYPE=ora.database.type

相關推薦

搭建RACsqlplus啟動db資源顯示offline問題分析處理

一.問題描述 rac庫用sqlplus啟動節點二正常,但crsctl顯示db資源為offline,而用srvctl啟動例項時,db資源顯示online; 如下: sqlplus啟動db正常,而用crsctl stat res -t檢視資源狀態,出現: ora.st.db 1

rac新增節點提示db資源存在處理

1.問題描述 lpc50020:/mdcabcapp/oraabc/home$srvctl add database -d nhcabcst -n cabcst -o /mdcabcapp/oraabc/11.2.0 PRCS-1007 : Server pool nhca

點選按鈕後jQuery禁止按鈕並顯示文字[正在處理...]

通過val設定按鈕的文字,並用attr修改disabled屬性。測試程式碼如下: <html> <body> <form method="get" action="ht

12c RAC 添加刪除ora.dbanme.db資源

dom 操作 per sta automatic 1.0 disk 安裝數據庫 執行 一、說明我們在安裝數據庫集群的時候,最後有一步是使用DBCA建庫,建庫的過程中到底在集群資源中做了什麽呢?實際上添加了一個ora.dbname.db這個集群資源。刪除數據庫的方法1、使用D

11g RAC集群啟動關閉、各種資源檢查、配置信息查看匯總。

11g RAC集群啟動關閉、各種資源檢查簡要:一:集群的啟動與關閉1. rac集群的手動啟動[root@node1 bin]# ./crsctl start cluster -all2. 查看rac集群的狀態[root@node1 bin]# ./crsctl stat res -t3. rac集群的關閉[r

1.確認問題是由引導損壞引起的 在啟動電源後系統停留在啟動介面,顯示電腦品牌LOGO,進入不了系統啟動介面。可以pe等方法進入win系統,無法正常出現ubuntu多系統選擇介面。 2.做ubunt

歡迎使用Markdown編輯器寫部落格 本Markdown編輯器使用StackEdit修改而來,用它寫部落格,將會帶來全新的體驗哦: Markdown和擴充套件Markdown簡潔的語法 程式碼塊高亮 圖片連結和圖片上傳 LaTex數學公式 UML序列圖和流程圖 離線寫

dataguard搭建-rac到單機

dataguard rac到單機一 檢查源端,打開歸檔SQL>archive log list; #如果未打開,關閉數據庫 Shutdown immediate; #啟動至mount狀態 Startup mount #開啟歸檔 SQL> alter database archivelog ; D

eclipse啟動tomcat時報Could not publish server configuration for Tomcat v8.0 Server at localhost..錯誤

ecg avd metadata ber cli for hbm aac tlb Could not publish server configuration for Tomcat v8.0 Server at localhost. Context with path “

購物車和戶交互,顯示省市縣三級聯動的選擇

car strip 技術 元素 用戶交互 分享 set 功能 true 購物車 購物車 功能要求: 要求用戶輸入總資產,例如:2000 顯示商品列表,讓用戶根據序號選擇商品,加入購物車 購買,如果商品總額大於總資產,提示賬戶余額不足,否則,購買成功。 附加:可充值、某

PE啟動U盤安裝pfsense

pfsense 安裝安裝pfsense有很多方法,本文介紹用PE啟動U盤安裝pfsense系統。這種方法的特點是快速、簡便,適合在沒有光驅的電腦上進行安裝。在系統升級時,采用此方法進行安裝,一 般只要5分鐘就可以恢復正常設置。下面介紹具體的方法。一、下載WINPE程序推薦用通用PE工具箱,但我只有5.0的,後

tomcat啟動index頁面顯示不出來

request nbsp api tomcat pro bst 顯示 bsp tex 防火墻tomcat啟動後,首頁顯示不出來,日誌報錯 process request error ServletException AbstractMethodError...... 具體

量化字符串:安卓權威編程 13.7挑戰練習-優化字符串資源顯示

量化 文件 子標題 文件中 rim 字符串 練習 本地 情況 註意到沒有,只有一條crime記錄的時候,顯示總記錄數的子標題會顯示:1 crimes。請改正這個粗心的語法錯誤。實現思路上,你可以在代碼中準備不同字符串資源分情況使用,但這會給應用本地化制造麻煩。比較好的做法是

rac has,crsd啟動跟蹤--linux平臺

oracle linux hasd 刪掉了$CRS_HOME/log/$HOSTNAME/下的所有日誌文件和目錄,於是has啟不來了,單步執行:sh -x /etc/init/ohasdstrace -p ohasd的pid查看/var/log/messages,$ORACLE_HOME/log/

【問題整理】php調python腳本無顯示問題

php python 環境:windows Server2008+Apache+php+MySQL 問題:shell可以執行成功,但是php調用python就不行了 開發一個項目時需要用php調用python命令,如下: $cmd = ‘python

linux-第十二課時筆記-[FTP服務器搭建]-[虛擬戶FTP]-[03]

vim 服務 name -s 2-2 span 筆記 驗證 acc FTP虛擬用戶服務器搭建: 創捷一個賬號列表:     [[email protected] vsftpd]# echo -e "msl23\n123\nbenet\n123" >>

將tomcat以普通啟動

oca 啟動腳本 註意 啟動 autoconf -1 .sh star 用戶 1、為tomcat創建一個專用啟動用戶   useradd -M -r -d /dev/null -s /sbin/nologin tomcat 2、編譯jsvc   ① 進入tomcat的bin

C++ Builder創建和調dll中的資源

正常 面板 apt 用戶 .com reel pro trac 引號 程序開發中經常會用到一些圖標、圖片、光標、聲音等,我們稱它們為資源(Resource)。當多個窗口用到同樣的資源時,可以將這些公共的資源放到一個dll文件裏調用,這樣,由於定位資源比在磁盤中定位文件花費時

Unity3d-WWW實現圖片資源顯示以及保存和本地加載

editor call clas amp private out .text sset bytes 本文固定連接:http://blog.csdn.net/u013108312/article/details/52712844 WWW實現圖片資源顯示以及保存和本地加

html 頁面調js鏈接並顯示數據

html 頁面調用js鏈接並顯示數據html 頁面調用js鏈接並顯示數據一、測試頁面1<!doctype html><html><div id=‘dv‘></div> <script src="http://qt.gtimg.cn/q=sz399001"

使用普通啟動tomcat

tomcat首先進入tomcat 的bin目錄,把jsvc工具安裝請參考該鏈接。並把編譯好的jsvc復制到該bin目錄下。新建用戶tomcat使用bin目錄下的daemon.sh啟動tomcat,並把daemon.sh加入系統啟動環境。使用普通用戶啟動tomcat