This week we attempted a failover from one datacentre to the other. In my eyes its a basic failover, which moves the file system which has all the oracle files and application info via a virtual host. This is a single instance 11.2 database
All works fine until it comes to the database, where because of the listener info, the database does not start.
As normal the listener.ora file contains the hostname (as seen below)
- Code: Select all
listener.ora
# Generated by Oracle configuration tools.
LISTENER.ORA NETWORK CONFIGURATION FILE: /MWARE/ORACLE/11.2/PRODUCT/11.2.0/DBHOM
E_1/NETWORK/ADMIN/LISTENER.ORA = listener.ora Network Configuration File: /mware
/oracle/11.2/product/11.2.0/dbhome_1/network/admin/listener.ora
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = bvecrdev.HSCNI.NET)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
$ hostname
bvecrdev
$
We have two hostnames bvecrdev and rvecrdev and a virtual hostname of ecrdev. At any one time the database will run on either one of the hosts, but if we attempt the failover and hope to use the virtual name, the database is there, but accepts no connections. This all makes sense to me, as without the hostname in the listener file, the database will not accept connections. But when the filesystem is moved along with the listener, it will contain the incorrect node, which therefore means the listener and subsequently the database will not start - hence the reason for using a virtual name (ecrdev) but using this it fails. Is there anything else that I can check here? The client has this method working in a number of similar environments, but their way of doing it is to disable the listener file, so surprise surprise when I do this, the database is not opened. Somehow I do not believe their method
So I was wondering have you got anything that I can check or implement where I can look at the virtual machine, to determine, why I cannot establish connectivity. I was wondering what would happen if you had both hostnames in the listener.ora file and regardless of which ever node it's on, should work. Therefore by-passing the virtual name option and opting for 2 hostnames in the listener.ora file - which would end up looking like this: I'm not even sure if this is feasible. Ideally I'd like to include the virtual name or IP address in the listener.ora, however when I use that there is no connection to the database or service.
- Code: Select all
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = bvecrdev.HSCNI.NET)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rvecrdev.HSCNI.NET)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
Many thanks in advance,
Jnrpeardba