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.

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.

The database doesn't start because of the listener? Really? A database can run without the listener being present...

I think you should set:

- Your ORACLE_HOSTNAME environment variable to the virtual name. (ORACLE_HOSTNAME=ecrdev)- Use the virtual name in the listener.ora and tnanames.ora files.- Make sure the DNS (or local hosts file) resolves the virtual name to the currently running IP address.