Oracle Single Instance Autodiscovery Algorithm
Whenever you add or refresh a UNIX environment, Delphix will attempt to automatically discover Oracle components on the target. This document describes the process for Single Instance Oracle on Delphix 4.3.
Delphix will autodiscover Oracle Listeners, Database Homes, and Databases.
The first step in the process is to discover running Oracle Listeners. Delphix uses the UNIX "ps" command to find running Listeners and determine their TNS_ADMIN setting from the process. That's why Delphix requires elevated privileges for the "ps" command--so that it can determine that environment variable setting. Delphix then runs "lsnrctl" and determines information about the Listener, such as its port and services.
The second step in the process is to discover installed Oracle Homes that might run databases. Delphix uses the Oracle Inventory to find Oracle Homes. That's why Delphix requires read privileges to the Inventory pointer file (oraInst.loc) as well as to Inventory files. Delphix checks each home for the "oracle" executable in the "bin" directory, and ignores any homes which don't have it. In this way, Delphix ignores Oracle Homes for non-database products, like the Grid Control Agent.
Delphix will not discover Oracle Homes that are not listed properly in the Oracle Inventory. If you have created Oracle Homes by copying them from another server, you should attach Oracle Homes to the inventory through Oracle supported techniques to enable autodiscovery to locate them.
The final step in the process is to discover running Databases. Delphix user the UNIX "ps" command to find running Databases. It then reads the /etc/oratab file to determine which Oracle Home the Database is using. That's why Delphix requires read access to /etc/oratab, and why you must have an entry for your databases in that file for autodiscovery to find them. If Delphix cannot match a running database with an entry in the oratab file for a Home that was discovered in step 2, the database will not be discovered.
If autodiscovery doesn't find some of your Oracle components, you should try to fix the problem and simply Refresh the Environment. Refreshing your environment is harmless, even if there are running VDBs.
As a final solution, you can manually add all the components described here through the GUI.
Once you've manually added Oracle Listeners, Homes, or Databases, they will not be discarded. Delphix internally keeps track of which components are manually added, and preserves these through subsequent autodiscovery runs.