A few days ago, the motherboard on our ESX server blew. This server was home to 2 different operational environment for the organisation. The domain I am tasked to maintain was gone in a flash. The server engineers remounted the SAN on a backup ESX machine with the same physical properties as the recently failed system. Before beginning recovery I began copying logs and backups from our DR to a safe location: over the last 5 months there seem to have been more hardware failures than the 3 years I was last a DBA in 2010. I know that if I had a backup of the system safely somewhere OUTSIDE of a VM environment, I would be able to restore the system regardless of how many servers failed.
Being the exact same physical server and starting up the exact same VMs, which were running no less than 30 minutes ago, I thought the cluster would come up in the exact same way.
This was not the case: the servers started, but the CRS failed to start up. The errors began popping up one after another in the cluster log.
E:\OracleGrid\11.2.0.3\log\<node1>\alert<node1>.log
[ohasd(1548)]CRS-2302:Cannot get GPnP profile. Error CLSGPNP_NO_DAEMON (GPNPD daemon is not running).
..........
[cssd(5064)]CRS-1656:The CSS daemon is terminating due to a fatal error; Details at (:CSSSC00011:) in E:\OracleGrid\11.2.0.3\log\<node1>\cssd\ocssd.log
2016-05-30 10:44:05.766:
[ohasd(2424)]CRS-2765:Resource 'ora.cssdmonitor' has failed on server '<node1>'.
Oracle Cluster Synchronization Services has failed because it seems to me that the GPNPD daemon is not running. The reasons for which are below.
E:\OracleGrid\11.2.0.3\log\<node1>\cssd\ocssd.log
2016-05-30 10:44:05.329: [ CSSD][5064]clssnmOpenGIPCEndp: opening cluster listener on gipc://<node1>:nm_<CLUSTER_NAME>-cluster
2016-05-30 10:44:05.329: [GIPCGMOD][5064] gipcmodGipcPassInitializeNetwork: Initializing passthrough GIPC
2016-05-30 10:44:05.385: [ GPNP][5064] clsgpnp_Init: [at clsgpnp0.c:585] 'E:\OracleGrid\11.2.0.3' in effect as GPnP home base.
2016-05-30 10:44:05.385: [ GPNP][5064] clsgpnp_Init: [at clsgpnp0.c:619] GPnP pid=5060, GPNP comp tracelevel=1, depcomp tracelevel=0, tlsrc:ORA_DAEMON_LOGGING_LEVELS, apitl:0, complog:1, tstenv:0, devenv:0, envopt:0, flags=2003
2016-05-30 10:44:05.396: [ GPNP][5064] clsgpnpkwf_initwfloc: [at clsgpnpkwf.c:399] Using FS Wallet Location : E:\OracleGrid\11.2.0.3\gpnp\<node1>\wallets\peer\
[ CLWAL][5064]clsw_Initialize: OLR initlevel [70000]
2016-05-30 10:44:05.422: [ GPNP][5064] clsgpnp_profileCallUrlInt: [at clsgpnp.c:2104] get-profile call to url "ipc://GPNPD_<node1>" disco "" [f=3 claimed- host: cname: seq: auth:]
2016-05-30 10:44:05.431: [ GPNP][5064] clsgpnp_profileCallUrlInt: [at clsgpnp.c:2234] Result: (0) CLSGPNP_OK. Successful get-profile CALL to remote "ipc://GPNPD_<node1>" disco ""
2016-05-30 10:44:05.432: [ CLSINET][5064] Returning NETDATA: 0 interfaces
2016-05-30 10:44:05.432: [GIPCXCPT][5064] gipcmodGipcPassInitializeNetwork: failed to find any interfaces in clsinet, ret gipcretFail (1)
2016-05-30 10:44:05.432: [GIPCGMOD][5064] gipcmodGipcPassInitializeNetwork: EXCEPTION[ ret gipcretFail (1) ] failed to determine host from clsinet
2016-05-30 10:44:05.640: [GIPCXCPT][5064] gipcSetAttributeStringF [gipcInternalAddress : gipcInternal.c : 354]: EXCEPTION[ ret gipcretFail (1) ] failure for obj 00000000063EAED0 [000000000000025a] { gipcAddress : name '', objFlags 0x0, addrFlags 0x0 }, name 'name', val 000000000012D130, len 39, flags 0x4000
2016-05-30 10:44:05.640: [GIPCXCPT][5064] gipcEndpointF [clsssclsnrsetup : clsssc.c : 2763]: EXCEPTION[ ret gipcretFail (1) ] failed endp create ctx 0000000005060F20 [000000000000006b] { gipcContext : traceLevel 2, fieldLevel 0x0, numDead 0, numPending 0, numZombie 0, numObj 5, numWait 0, hgid 000000000000006c, flags 0x2, objFlags 0x0 }, name 'gipc://<node1>:nm_<CLUSTER_NAME>-cluster', flags 0x0
2016-05-30 10:44:05.640: [ CSSD][5064]clsssclsnrsetup: gipcEndpoint failed, rc 1
2016-05-30 10:44:05.640: [ CSSD][5064]clssnmOpenGIPCEndp: failed to listen on gipc addr gipc://<node1>:nm_<CLUSTER_NAME>-cluster- ret 1
2016-05-30 10:44:05.640: [ CSSD][5064]clssnmCompleteInitVFDiscovery: failed to open gipc endp
2016-05-30 10:44:05.640: [ CSSD][5064](:CSSSC00011:)clssscExit: A fatal error occurred during initialization
To simplify fixing the issue, I shut down the second VM node and focused exclusively on the first node. I restarted the system and let the cluster try to self start. This failed.
This is when I began digging deeper into the logs in conjunction with MOS. I ran to MOS to begin searching for a solution as the above errors did not resonate with me. I was fortunate that the first
item that popped up in MOS was titled "GI Fails to Start as no Private Network Interface is Available (Doc ID 1481176.1)" - without opening the note, I immediately checked
the private network interface. I was happy to see that the private network interfaces for the node interconnect were left out of the migration - meaning that the cluster nodes
were unable to interface. I requested the administrators to correct the interface. Once they were restored, I managed to get the first node up, followed by the second node.
SUMMARY:
Check the private interface, make sure the interface is viewable in network properties on both nodes in the cluster - if not, have the administrator check that they have been made available to the VMs in the cluster.
Showing posts with label crsctl. Show all posts
Showing posts with label crsctl. Show all posts
Wednesday, 1 June 2016
Monday, 14 March 2016
crsctl status very slow in windows environment
If you find that crsctl takes time to return the cluster or a component status then it is quite possible that the calling user is not part of the local administration group.
crsctl stat res -t
Thursday, 10 March 2016
Daily Cluster Health Report
This
post will show you how to setup a RAC component report: an email that sends
the state of the cluster components. This helps a DBA keep an eye on the cluster
and act preemptively if any component appears offline.
REQUIREMENTS:
1. Access to Task Scheduler (or cron for Linux)
2. A from address from a recognized mail server within your domain.
3. A home folder to deploy the scripts
REQUIREMENTS:
1. Access to Task Scheduler (or cron for Linux)
2. A from address from a recognized mail server within your domain.
3. A home folder to deploy the scripts
INSTALL
1. Open up command prompt (cmd) and execute the following – adjust root location if need be
e:
mkdir E:\dba\script\clusterhealthreport
cd E:\dba\script\clusterhealthreport
2. Create a file called mail.vbs inside E:\oracle\scripts\LogReport. Copy the following and paste into the file
'Grab the parameters
1. Open up command prompt (cmd) and execute the following – adjust root location if need be
e:
mkdir E:\dba\script\clusterhealthreport
cd E:\dba\script\clusterhealthreport
2. Create a file called mail.vbs inside E:\oracle\scripts\LogReport. Copy the following and paste into the file
'Grab the parameters
from_address = WScript.Arguments(0)
to_address = WScript.Arguments(1)
subject = WScript.Arguments(2)
file = WScript.Arguments(3)
'Set the file reading variables
Const ForReading = 1
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
'Set the mail properties
SMTPServer = "smtprelay.inter.domain.net"
Recipient = to_address
From = from_address
Subject = subject
'Create the mail object
GenericSendmail SMTPserver, From, Recipient, Subject, Message
Sub GenericSendmail (SMTPserver, From, Recipient, Subject, Message)
Message = fso.OpenTextFile(file,ForReading).ReadAll
'Assisgn the values to our mail object and send the mail off
set msg = WScript.CreateObject("CDO.Message")
msg.From = From
msg.To = Recipient
msg.Subject = Subject
msg.TextBody = Message
msg.Configuration.Fields
("http://schemas.microsoft.com/cdo/configuration/smtpserver") =
SMTPServer
msg.Configuration.Fields("http://schemas.microsoft.com/cdo/configuration/sendusing")
= 2
msg.Configuration.Fields.Update
msg.Send
End Sub
3. Create a file called clusterhealthreport.bat and paste the following into it. Set the variables in yellow to what you want:
3. Create a file called clusterhealthreport.bat and paste the following into it. Set the variables in yellow to what you want:
SET CLUSTERNAME=CLUSTERNAME
SET WORKING_DIR=E:\dba\script\clusterhealthreport
SET PATH=%PATH%;%WORKING_DIR%
SET PATH=%PATH%;%WORKING_DIR%
SET ORACLE_BASE=E:\Oracle
SET ORACLE_HOME=E:\OracleGrid\11.2.0.4
cd %WORKING_DIR%
E:
SETLOCAL EnableDelayedExpansion
echo CLUSTER HEALTH REPORT >
clusterhealthreport.log
echo --------------------- >>
clusterhealthreport.log
echo . >>
clusterhealthreport.log
echo crsctl stat res -t >>
clusterhealthreport.log
crsctl stat res -t >> clusterhealthreport.log
mail.vbs serveraddress@servername.net emailaddress@domain.net
"%CLUSTERNAME% Cluster Health Report"
%WORKING_DIR%\clusterhealthreport.log
4. Create a task scheduler to run once a day – I usually set it for 5:30am:Click start, open task scheduler
Right click task scheduler library
Under the general tab, ensure the task executes with the highest privileges and runs while the user in not logged into the system. Enter a description for the server administrator.
Create a schedule – for details on their configuration see the screenshot below.
In the action tab, browse to the bat file location created in step 3
CLUSTER HEALTH REPORT
---------------------
.
crsctl stat res -t
--------------------------------------------------------------------------------
NAME TARGET STATE SERVER STATE_DETAILS
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
ONLINE ONLINE yournodedb01
ONLINE ONLINE yournodedb02
ora.H_DRIVE.dg
ONLINE ONLINE yournodedb01
ONLINE ONLINE yournodedb02
ora.LISTENER.lsnr
ONLINE ONLINE yournodedb01
ONLINE ONLINE yournodedb02
ora.asm
ONLINE ONLINE yournodedb01 Started
ONLINE ONLINE yournodedb02 Started
ora.gsd
OFFLINE OFFLINE yournodedb01
OFFLINE OFFLINE yournodedb02
ora.net1.network
ONLINE ONLINE yournodedb01
ONLINE ONLINE yournodedb02
ora.ons
ONLINE ONLINE yournodedb01
ONLINE ONLINE yournodedb02
ora.registry.acfs
ONLINE ONLINE yournodedb01
ONLINE ONLINE yournodedb02
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.LISTENER_SCAN1.lsnr
1 ONLINE ONLINE yournodedb02
ora.LISTENER_SCAN2.lsnr
1 ONLINE ONLINE yournodedb01
ora.LISTENER_SCAN3.lsnr
1 ONLINE ONLINE yournodedb01
ora.cvu
1 ONLINE ONLINE yournodedb01
ora.oc4j
1 ONLINE ONLINE yournodedb01
ora.scan1.vip
1 ONLINE ONLINE yournodedb02
ora.scan2.vip
1 ONLINE ONLINE yournodedb01
ora.scan3.vip
1 ONLINE ONLINE yournodedb01
ora.database.db
1 ONLINE ONLINE yournodedb01 Open
2 ONLINE ONLINE yournodedb02 Open
ora.yournodedb01.vip
1 ONLINE ONLINE yournodedb01
ora.yournodedb02.vip
1 ONLINE ONLINE yournodedb02
Subscribe to:
Posts (Atom)





