Home » Infrastructure » Unix » Veritas Cluster, problem connecting to DB service with virtual IP
Veritas Cluster, problem connecting to DB service with virtual IP [message #226096] |
Thu, 22 March 2007 09:16 |
tcavuzic
Messages: 9 Registered: March 2007 Location: Croatia
|
Junior Member |
|
|
Dear all
I'm running Veritas Cluster Server on two Solaris 10 nodes. In service group Oracle, I have configured a database service which can be run either on node1 or node2. Basically, resources that the service relies on are:
- disk group (external storage) where the database actually resides (which needs to be attached either to node1 or node2, depending on which node currently runs the DB)
- virtual IP which is used by DB clients to connect to database
Both startup of the virtual IP interface and attaching the disk group works fine. TNS ping also works fine from both nodes.
However, the DB service itself does not start. When I try to connect to the database using sylplus user/pass@service, I get the response "shared memory realm does not exist".
I tried to play with listeners on both nodes, and I learned that if I configure Oracle listener (listener.ora, tnsnames.ora) with the physical IP address of the node, then everything works fine, the DB service can be started from Cluster GUI and clients can normally connect.
Any sugestions (even the most obvious ones) will be appreciated.
Regards
Tihomir
% tnsping database
TNS Ping Utility for Solaris: Version 10.1.0.3.0 - Production on 22-MAR-2007 15:12:41
Copyright (c) 1997, 2003, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = database)))
OK (10 msec)
%
% sqlplus system/password as sysdba
SQL*Plus: Release 10.1.0.3.0 - Production on Thu Mar 22 15:01:55 2007
Copyright (c) 1982, 2004, Oracle. All rights reserved.
Connected to an idle instance.
SQL> startup
ORACLE instance started.
Total System Global Area 167772160 bytes
Fixed Size 1301272 bytes
Variable Size 69477608 bytes
Database Buffers 96468992 bytes
Redo Buffers 524288 bytes
Database mounted.
Database opened.
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
% sqlplus user/password@database
SQL*Plus: Release 10.1.0.3.0 - Production on Thu Mar 22 15:03:54 2007
Copyright (c) 1982, 2004, Oracle. All rights reserved.
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
SVR4 Error: 2: No such file or directory
Enter user-name:
|
|
|
Re: Veritas Cluster, problem connecting to DB service with virtual IP [message #226113 is a reply to message #226096] |
Thu, 22 March 2007 10:29 |
tcavuzic
Messages: 9 Registered: March 2007 Location: Croatia
|
Junior Member |
|
|
Also noticed this, when I try to startup the DB manually:
% sqlplus /nolog
SQL*Plus: Release 10.1.0.3.0 - Production on Thu Mar 22 16:23:29 2007
Copyright (c) 1982, 2004, Oracle. All rights reserved.
SQL> connect / as sysdba
Connected.
SQL> startup
ORA-01081: cannot start already-running ORACLE - shut it down first
SQL>
SQL> startup
ORA-24324: service handle not initialized
ORA-01041: internal error. hostdef extension doesn't exist
SQL> startup mount database
ORA-24324: service handle not initialized
ORA-01041: internal error. hostdef extension doesn't exist
Is there any place in Oracle configuration where I could make a binding between this virtual IP and hostname for it? I have a feeling that oracle somehow doesn't link between Veritas' virtual IP for oracle, and the virtual hostname which is defined in listener.ora and tnsnames.ora, and which I added into /etc/hosts....
Or is it Veritas to blame??
Thanks
Tihomir
[Updated on: Thu, 22 March 2007 10:30] Report message to a moderator
|
|
|
|
|
Re: Veritas Cluster, problem connecting to DB service with virtual IP [message #226142 is a reply to message #226096] |
Thu, 22 March 2007 11:47 |
tcavuzic
Messages: 9 Registered: March 2007 Location: Croatia
|
Junior Member |
|
|
Just to show you that I tried:
(mounted disk, virtual IP enabled)
% tnsping database
TNS Ping Utility for Solaris: Version 10.1.0.3.0 - Production on 22-MAR-2007 17:47:07
Copyright (c) 1997, 2003, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = database)))
OK (20 msec)
% echo $ORACLE_SID
database
% sqlplus /nolog
SQL*Plus: Release 10.1.0.3.0 - Production on Thu Mar 22 17:43:52 2007
Copyright (c) 1982, 2004, Oracle. All rights reserved.
SQL> connect / as sysdba
Connected.
SQL> shutdown abort
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 167772160 bytes
Fixed Size 1301272 bytes
Variable Size 69477608 bytes
Database Buffers 96468992 bytes
Redo Buffers 524288 bytes
Database mounted.
Database opened.
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
% sqlplus user/password@database
SQL*Plus: Release 10.1.0.3.0 - Production on Thu Mar 22 17:44:35 2007
Copyright (c) 1982, 2004, Oracle. All rights reserved.
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
SVR4 Error: 2: No such file or directory
Enter user-name:
|
|
|
|
Re: Veritas Cluster, problem connecting to DB service with virtual IP [message #226149 is a reply to message #226144] |
Thu, 22 March 2007 12:10 |
tcavuzic
Messages: 9 Registered: March 2007 Location: Croatia
|
Junior Member |
|
|
Hello
I'm sorry if I sound confusing -- I'm not experienced with using Oracle, just trying to give as much data as possible... Here the contents:
bash-3.00# cat /opt/oracle/10/network/admin/listener.ora
# listener.ora Network Configuration File: /opt/oracle/10//network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = database)
(ORACLE_HOME = /opt/oracle/10/)
(SID_NAME = database)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521))
)
)
)
SUBSCRIBE_FOR_NODE_DOWN_EVENT_LISTENER=OFF
bash-3.00# cat /opt/oracle/10/network/admin/tnsnames.ora
# tnsnames.ora Network Configuration File: /opt/oracle/10/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
DATABASE =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = database)
)
)
"oracle" is on the Solaris level resolved to x.x.x.17, which is a pingable virtual IP created by Veritas for use by Oracle clients.
If I change "oracle" to real hostname of the node, I can login with sqlplus user/password@database... But if I do that, I'm loosing intended redundancy -- the idea is that virtual IP should be used...
And this is the log of what I was doing:
% ping oracle
oracle is alive
% tnsping database
TNS Ping Utility for Solaris: Version 10.1.0.3.0 - Production on 22-MAR-2007 18:17:46
Copyright (c) 1997, 2003, Oracle. All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = oracle)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = database)))
OK (10 msec)
% sqlplus user/password@database
SQL*Plus: Release 10.1.0.3.0 - Production on Thu Mar 22 18:18:06 2007
Copyright (c) 1982, 2004, Oracle. All rights reserved.
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
SVR4 Error: 2: No such file or directory
Enter user-name: ^C
% sqlplus /nolog
SQL*Plus: Release 10.1.0.3.0 - Production on Thu Mar 22 18:18:19 2007
Copyright (c) 1982, 2004, Oracle. All rights reserved.
SQL> connect / as sysdba
Connected.
SQL> shutdown
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 167772160 bytes
Fixed Size 1301272 bytes
Variable Size 69477608 bytes
Database Buffers 96468992 bytes
Redo Buffers 524288 bytes
Database mounted.
Database opened.
SQL> exit
Disconnected from Oracle Database 10g Enterprise Edition Release 10.1.0.3.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
% sqlplus user/password@database
SQL*Plus: Release 10.1.0.3.0 - Production on Thu Mar 22 18:19:08 2007
Copyright (c) 1982, 2004, Oracle. All rights reserved.
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
SVR4 Error: 2: No such file or directory
Enter user-name: ^C^C
%
[Updated on: Thu, 22 March 2007 12:20] Report message to a moderator
|
|
|
|
Re: Veritas Cluster, problem connecting to DB service with virtual IP [message #226172 is a reply to message #226096] |
Thu, 22 March 2007 13:11 |
tcavuzic
Messages: 9 Registered: March 2007 Location: Croatia
|
Junior Member |
|
|
Hi
I try to run sqlplus on the same machine the DB is running on. There are all together two nodes, which are in the same network, fully visible to each other, and controlled by Veritas. DNS isn't used at all (for increased reliability), every hostname that needs to get resolved (just a couple of them) is in /etc/hosts, which looks like this:
% cat /etc/hosts
#
# Internet host table
#
127.0.0.1 localhost
10.6.132.7 emm1 emm1.ims.mncxxx.mccxxx.3gppnetwork.org loghost
10.6.132.7 emm1-ce1
10.6.132.8 emm1-ce5
10.6.132.10 emm2
10.6.132.17 oracle
10.6.132.12 bgw
10.6.132.12 emm
Listener shows the status
emm1% /opt/oracle/10/bin/lsnrctl status LISTENER
LSNRCTL for Solaris: Version 10.1.0.3.0 - Production on 22-MAR-2007 18:56:08
Copyright (c) 1991, 2004, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Solaris: Version 10.1.0.3.0 - Production
Start Date 22-MAR-2007 18:45:16
Uptime 0 days 0 hr. 10 min. 51 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /opt/oracle/10/network/admin/listener.ora
Listener Log File /opt/oracle/10/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=10.6.132.17)(PORT=1521)))
Services Summary...
Service "database" has 1 instance(s).
Instance "database", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully
emm1%
And tail -f listener.log added up the following line when I entered sqlplus user/password@database:
22-MAR-2007 18:57:33 * (CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=database)(CID=(PROGRAM=)(HOST=emm1)(USER=database))) * (ADDRESS=(PROTOCOL=tcp)(HOST=10.6.132.17)(PORT=37807)) * establish * database * 0
What I find strange in this line is that it uses "emm1" instead of "oracle" (although the connection gets established apparently)
I'm close to reinstalling Oracle
Thanks
Tihomir
[Updated on: Thu, 22 March 2007 13:17] Report message to a moderator
|
|
|
|
|
|
Re: Veritas Cluster, problem connecting to DB service with virtual IP [message #226394 is a reply to message #226096] |
Fri, 23 March 2007 08:53 |
tcavuzic
Messages: 9 Registered: March 2007 Location: Croatia
|
Junior Member |
|
|
Hi
Thank you for your time and effort, first of all. What did you mean by mentioning two IP addresses? I have configured network interfaces ce1 (addr. .7) and ce5 (addr. .. Also, in addition to that, Veritas Cluster forms a virtual interface (addr. .17), which is intended to serve for Oracle requests and is bound to hostname "oracle" in /etc/hosts. So, except entering "oracle" in listener.ora and tnsnames.ora (instead of a localhost), is there anything else I should do?
Recently I did the following:
node2% lsnrctl services LISTENER
LSNRCTL for Solaris: Version 10.1.0.3.0 - Production on 23-MAR-2007 14:43:17
Copyright (c) 1991, 2004, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle)(PORT=1521)))
Services Summary...
Service "database" has 1 instance(s).
Instance "database", status UNKNOWN, has 1 handler(s) for this service...
Handler(s):
"DEDICATED" established:20 refused:0
LOCAL SERVER
The command completed successfully
emm2% tnsping database
Is there any way to change this "LOCAL SERVER" into anything else? Could that perhaps be the problem?
I also tried to configure listener with EXTPROC part (just read about it), but then the listener reports that it doesn't know of service requested in connect descriptor...
Thanks
Tihomir
|
|
|
|
Goto Forum:
Current Time: Thu Nov 28 15:16:49 CST 2024
|