How does Delphix communicate with hosts for the purpose of managing them?
Delphix talks to hosts primarily using secure shell (ssh). The username used for ssh is referred to as the Delphix OS user. The Delphix toolkit is copied over to the hosts using secure copy (scp).
What is the Delphix toolkit?
The toolkit contains the Delphix Engine tools that interact with the host. The tools include utility scripts, host management scripts, virtual database (VDB) recovery scripts, and various other tools and utilities.
What are the Delphix toolkit directory requirements?
The toolkit directory must exist, must be writable by Delphix OS user and group (0770 permissions), and have at least 2 GB of free space. Each engine will require its own toolkit be pushed out to the host, the space required is on a per engine basis.
Can a single directory on a host be used by multiple Delphix Engines?
Yes. A separate sub-directory for each Delphix Engine that uses this host is created.
Can toolkit directory reside on NFS?
Yes, although with a caveat. Delphix creates a sub-directory in the toolkit directory which is unique to a given Delphix Engine. If you want to add two hosts to a Delphix Engine using the same toolkit directory residing on NFS, then the second host addition will fail because the sub-directory already exists. The solution for this is to give separate toolkit directory for each of the hosts. Please refer to Error: Host is already managed by this Delphix Engine for more details.
Is there support for password-less ssh?
Yes. If the security environment of the Delphix Engine deployment requires the use of public key encryption, or “password-less ssh”, then choose “Public Key” login type while adding the host. Please refer for more details to "Target Host OS and Database Configuration Options" section of the Delphix Engine Documentation.
Can I still use hostchecker with password-less ssh?
Yes, however the SSH check will fail. Since the ssh connectivity has already been checked by coming to the host from the Delphix Engine, simply skip this check or ignore the failure.
Any restrictions on the ssh version used?
Delphix only works with SSH-2 and does not support SSH-1.
Any issues with two factor authentication solutions used with ssh?
Delphix will not be able to communicate with the host configured with such solutions. Such solutions need to be disabled on that host or for the Delphix OS user.
What are the Delphix OS user requirements?
Delphix OS user need to meet certain criteria in regards to permissions, privileges, group memberships and sudo rights. Please refer to Oracle Support and Requirements.
Why is "sudo" required for ps/pargs for non-standard listeners? I thought every user could run ps/pargs?
See How to Create and Maintain Permissions for Delphix OS and Database Users on Host Systems (Oracle) for a complete explanation.
Is there a tool available to create the Delphix OS user?
Yes. There is a utility script available(createDelphixOSUser.sh) that is part of the HostChecker.
Can Delphix OS user be an LDAP user?
Yes. The LDAP user should meet all the requirements as that of a local Delphix OS user. Please see Configuring the Masking Engine for LDAP/ Active Directory Authentication for more information
Can there be more than one Delphix OS user for a given host?
Yes. For Provisioning a VDB to a target host, you can pick the Delphix OS user to use, during Provisioning time. Additional OS users can be added after the host addition using Manage > Environments
Any gotchas with the user profile scripts used for the Delphix OS user?
scp fails when user profile scripts produce output. scp is used to copy over the Delphix toolkit. This is a known issue with scp.
What are the supported Platforms for Source and Target Hosts?
Please refer to Oracle Support Matrix.
What host OS configuration details are inspected by Delphix?
Delphix gathers the following information about the host:
Current User (The user who is running this script)
Processor Type (e.g. i386)
Platform (e.g. i86pc)
Machine Type (e.g. i86pc)
Total Memory (e.g. 2560000) - Unit being KB
OS Name(e.g. AIX)
OS Version (e.g. 6.1, 5.11)
Distribution (e.g. CentOS)
Kernel Name (e.g. SunOS)
Kernel Release (e.g. 5.11)
Kernel Version (e.g. snv_111b)
Time Zone (The timezone string reported by 'date' on the OS with the offset from GMT e.g. PDT-0700)
Canonical Time Zone (The Solaris Canonical Timezone for the host e.g. Australia/Sydney)
Toolkit Directory Available Space (e.g. 25600) - Unit being KB
How does Delphix inspect the host OS configuration details?
Most of the details are gathered using standard OS commands. Canonical Time Zone is inspected using a Java utility which requires having the Java executable in the path of the Delphix OS user.
What Oracle installation details are inspected by Delphix?
Delphix gathers the following information for every Oracle install discovered:
Name (Database product name i.e Oracle)
Vendor (Database vendor name i.e Oracle)
ORACLE Home (Oracle Home for database)
Version (Database version)
Bit (32/64 depending on whether the installation is 32 or 64 bit)
Setuid bit (yes/no, depending on whether the setuid bit is set on the Oracle binary)
Setgid bit (yes/no, depending on whether the setgid bit is set on the Oracle binary)
Install User (The user who installed Oracle)
Install User ID (The ID of the user who installed Oracle)
Install Group (The group who installed Oracle)
Install Group ID (The ID of the group who installed Oracle)
RAC (yes/no, depending on whether the Home is part of a RAC installation)
RAC Hosts (list of nodes on which the RAC Home is installed)
How are Oracle installations discovered by Delphix?
Oracle records details of software installation and updates in inventory files. Delphix Engine discovery of installations require access to these files for the Delphix OS user.
First, the inventory file home is searched for in the following files:
Second, all the installs are obtained by reading the inventory file from here <INVENTORY_HOME>/ContentsXML/inventory.xml
Finally, the "comps.xml" file is inspected in each and every Oracle home to get the details of the install
Hence install discovery relies on the host having either /etc/oraInst.loc or /var/opt/oracle/oraInst.loc. If either of these files exists:
1. The Delphix OS user has read access to the central Oracle inventory (a file named inventory.xml) pointed to by oraInst.loc.
2. The central inventory has information about the Oracle homes on this host.
3. The Delphix OS user has read privileges to the Oracle homes mentioned in the central Inventory
What Oracle instance details are inspected by Delphix?
Delphix gathers the following information for every Oracle instance discovered:
Instance Name (Name of the DB instance)
ORACLE Home (The Oracle Home for the instance)
LISTENER Alias (The listener alias serving this instance)
LISTENER Host (The listener host)
Port (The listener port for the instance)
Connection String (The Protocol Address for the Listener)
JDBC Connection String (The JDBC Connection String for the instance)
RAC (yes/no, depending on whether the instance is part of a RAC Setup)
RAC Hosts (list of nodes on which the RAC instance is configured)
How are listeners discovered by Delphix?
Delphix discovers only currently running listeners.
First, it gets the list of listeners by inspecting the process listing.
Second, it gets the information about Owner of the listener process, Oracle Home of the listener, TNS_ADMIN environment variable of the listener, for each and every listener discovered.
Note that finding TNS_ADMIN environment requires sudo privileges for the command where available, to inspect process environment. This is needed if the listener process is owned by a user different from Delphix OS user.
How are Oracle instances discovered by Delphix?
Delphix discovers only currently running instances.
First, Delphix gets the list of instances by inspecting the process listing.
Second, Delphix identifies if a given instance is a RAC one. This is found by inspecting the process listing.
Third, for non-RAC case, Delphix checks the ORATAB file(/etc/oratab) to find the matching Oracle home for the instance. For RAC instances, use "srvctl" command to find the matching Oracle home for the instance.
Finally, Delphix finds the listener(s) serving the instance using the command "lsnrctl".
Hence instance discovery relies on the host meeting these requirements:
- Running Oracle instances
- Running Listeners. And if the listener is owned by a user other than the Delphix OS user, then the privileges needed to inspect the listener process environment
- For non-RAC instances, having instances in the ORATAB file(/etc/oratab)
- For the RAC instances, having enough permissions for the Delphix OS user to run "srvctl" command. The Delphix OS user must exist with the required permissions on all the hosts that are part of this RAC instance.
What does the Host add/refresh job progress updates mean?
The host add/refresh is a job and the job progress is presented as percentage.
0 Job started
5 Validating host
10 Connecting to host
20 Generating UUID for the host
25 Preparing toolkit directory on the host
30 Pushing OS inspector toolkit to the host
35 Inspecting OS configuration on the host
37 Pushing VDB metadata to the host
75 Inspecting database configuration on the host
80 Pushing Delphix toolkit to the host
90 Persisting the current configuration of the host
100 Finished adding the host
How to check if the host has met all the requirements needed by Delphix?
HostChecker can be used for this. HostCheker is a bundle of utilities that checks various requirements of a host.
Can Database Installations be manually added?
Yes. Database installations that are not automatically discovered by Delphix can be added using Add Dataset Home
Can Database Instances be manually added?
Yes. Database instances and their associated JDBC listener strings that are not automatically discovered by Delphix can be added using Manage > Environment > Databases.
Note that manually added entries can be deleted whereas that is not possible with the automatically discovered entries.
Can administrator do some basic troubleshooting of network between Delphix server and host?
Yes, basic troubleshooting can be found in Manage > Environments
Can Linking/Provisioning be disabled on a host?
This is possible at the granularity of Database Installation level. Linking/Provisioning can be disabled for a given Database Installation on a host using "Host Manager"(Manage/Hosts in the GUI). Sample screenshot is: