Oracle Listener HD discovery
Summarize
Summary of Oracle Listener HD discovery
ServiceNow Discovery leverages the Oracle Listener HD pattern to identify and map Oracle Real Application Cluster (RAC) components. This enables customers to gain comprehensive visibility into Oracle RAC environments by discovering Oracle Database Listeners and related cluster infrastructure components.
Show less
To activate this capability, customers must install the CMDB CI Class Models and Discovery and Service Mapping Patterns plugins from the ServiceNow Store. The pattern supports Oracle RAC setups on UNIX operating systems using Oracle Clusterware version 12.2.x.x or higher, with support for multiple UNIX OS types including AIX, Solaris, and HP-UX.
Prerequisites and Setup
- Install CMDB CI Class Models plugin (version 1.29.0 or later) and Discovery and Service Mapping Patterns plugin (version 1.0.82 or later).
- Ensure the Discovery User has Oracle DBA group membership or sufficient permissions.
- Ensure MID Server can access target Oracle RAC devices.
- Confirm Oracle Clusterware/Grid infrastructure and Oracle RAC database configuration are in place.
- Oracle Listener process must be running on supported UNIX hosts.
Discovery Process
The pattern executes key Oracle commands to gather detailed information such as listener status, cluster nodes, database services, and active resources. It sets environment variables like TNSADMIN and ORACLEBASE to locate configuration files, and runs commands including lsnrctl status, crsctl query cluster, and crsctl stat res to collect cluster and listener data.
If the lsnrctl status command returns no data, the pattern terminates as it indicates no active listener.
Data Captured and CMDB Impact
The pattern populates multiple CMDB classes with discovered data, enabling accurate representation of Oracle RAC environments:
- Oracle Database Listener (name, oracle home, configuration, scan listener name, version, TCP ports)
- Oracle Instance (SID, instance name)
- Oracle Database (unique name, type, operational status, hosting node)
- Oracle Cluster (cluster name, GUID, status, IP addresses)
- Oracle Cluster Node (hostname, IP, associated server and cluster)
- Oracle DB Service (service name, TCP port, managing listener, version)
- Host servers across various UNIX platforms (Linux, AIX, HP-UX, Solaris)
Relationships and Dependency Mapping
The pattern establishes detailed CI relationships in the CMDB to reflect the architecture and dependencies of Oracle RAC components. Key relationships include:
- Oracle Cluster hosts multiple Cluster Nodes
- Cluster Nodes hosted on UNIX servers (Linux, AIX, Solaris, HP-UX)
- Oracle Instances run on Cluster Nodes and UNIX servers
- Database Listeners depend on Instances and manage DB Services
- DB Services are used by Instances and managed by Listeners
These relationships enable customers to visualize and manage Oracle RAC environments effectively within their CMDB.
Limitations
- Oracle Clusterware setups are supported only on UNIX operating systems.
- The SSH Command-Oracle Listener Details classifier probe is inactive by default when CMDB CI Class Models version 1.29.0 or higher is installed.
Practical Benefits for ServiceNow Customers
By deploying the Oracle Listener HD discovery pattern, customers can automate the detection and mapping of complex Oracle RAC infrastructures, ensuring their CMDB accurately reflects current database cluster configurations. This visibility supports enhanced operational management, troubleshooting, and impact analysis of Oracle database services and their underlying clusters within ServiceNow.
ServiceNow Discovery uses the Oracle Listener HD pattern to find and map Oracle real application cluster components. To discover these resources, install the CMDB CI Class Models and the Discovery and Service Mapping Patterns from the ServiceNow Store.
Oracle RAC enables you to cluster an Oracle database. Oracle RAC uses Oracle Clusterware for the infrastructure to bind multiple servers so they operate as a single system. Oracle Clusterware enables you to create a clustered pool of storage that can be used by any combination of non-cluster and Oracle RAC databases. Discovery uses Oracle Listener HD patterns to discover information about the Oracle Database Listener and the components in the Oracle RAC infrastructure, when such a setup is configured.
Request apps on the Store
Visit the ServiceNow Store website to view all the available apps and for information about submitting requests to the store. For cumulative release notes information for all released apps, see the ServiceNow Store version history release notes.
Prerequisites
- Ensure that the following plugins are installed:
- CMDB CI Class Models plugin (Version 1.29.0 or later).
- Discovery and Service Mapping Patterns plugin (Version 1.0.82 or later).
- Ensure that the Discovery User is in the Oracle DBA group or has the correct Permissions.
- Ensure that the MID Server has access to the target device.
- Ensure that the Oracle Clusterware/Grid infrastructure is installed and the Oracle RAC Database is configured. If there is an Oracle Clusterware setup.
- Ensure that the Oracle Listener process is running on a UNIX OS host.
- Use Oracle Clusterware minimum version 12.2.X.X (Oracle Database 12c Release 2) or higher, If there is an Oracle Clusterware setup.Note:This pattern is supported from the Paris release on. More UNIX OS types (AIX, Solaris, HP-UX) are supported from version 1.0.87 of the Discovery and Service Mapping Patterns plugins.
The following commands are executed during the pattern execution. Executing the commands enables the pattern to populate allthe relevant CMDB classes with the necessary information:
-
export TNS_ADMIN=<oracle_home_directory>/network/admin: Sets the ORACLE_HOME to the TNS_ADMIN environment variable.
-
export ORACLE_BASE==<oracle_home_directory>: Sets the ORACLE_HOME to the ORACLE_BASE environment variable.
-
lsnrctl status LISTENER_NAME: Checks the Database Listener status.
-
ps -ef | grep 'd.bin’: Searches for the GRID_HOME path.
-
crsctl query cluster site -all: Lists the nodes and disks that the sites contain.
-
lsnrctl services LISTENER_NAME: Lists the services that the listener identifies.
-
crsctl stat res -f -w '((TYPE = ora.database.type))’: Lists the database name, associated node, type, and active status.
Note:If no output is obtained from the lsnrctl status LISTENER_NAME, then the Oracle Listener HD pattern is terminated.
-
Limitations
The Oracle Clusterware setup is only supported for the UNIX Operating Systems. The base system SSH Command-Oracle - Listener Details classifier probe is inactive (Active is set to False), when installing the CMDB CI Class Models version 1.29.0 or higher.
Data collected by Discovery during horizontal discovery
Discovery populates the data in the CMDB when running the Oracle Listener HD pattern.
| Field | Description |
|---|---|
| Name [name] | The name of the Oracle Database Listener. |
| Oracle Home [oracle_home] | The Oracle home directory where software is installed. |
| Configuration [configuration] | The listener.ora network configuration file. |
| Scan Listener Name [scan_listener_name] | The name of the SCAN LISTENER. |
| Version [version] | The version of the Oracle product. |
| TCP port(s) [tcp_port] | The listening port for Oracle client connections. |
| Field | Description |
|---|---|
| SID [sid] | The specific name that specifically identifies the instance. |
| Name [name] | The name of the Oracle instance combination of SID@HOST_NAME. |
| Field | Description |
|---|---|
| Name [name] | The Oracle database unique name. |
| Type [type] | The Oracle database type. |
| Operational status [operational_status] | The active status of the Oracle database. |
| Node [node] | The host name of the node hosting the Oracle database. |
| Field | Description |
|---|---|
| Name [name] | The name of the Oracle database cluster. |
| Cluster ID [cluster_id] | The GUID of the Oracle database cluster. |
| Cluster Status [cluster_status] | The active state of the Oracle database cluster. |
| IP Address [ip_address] | The IP addresses of the nodes participating in the cluster. |
| Field | Description |
|---|---|
| Name [name] | The hostname of the cluster node combination of HOSTNAME@CLUSTER_NAME. |
| IP Address [ip_address] | The IP address of the cluster node, if resolvable by DNS. |
| Server [server] | The hostname of the host hosting the cluster node. |
| Cluster [cluster] | The name of the cluster to which the cluster node is associated. |
| Field | Description |
|---|---|
| Name [name] | The name of the service. |
| TCP port(s) [tcp_port] | The port of the service. |
| Listener name [listener_name] | The name of the Listener managing the service. |
| Version [version] | The version of the service. |
| Field | Description |
|---|---|
| Name [name] | The hostname of the Linux server that is hosting the Oracle Listener process. |
| Field | Description |
|---|---|
| Name [name] | The hostname of the AIX server that is hosting the Oracle Listener process. |
| Field | Description |
|---|---|
| Name [name] | The hostname of the HP-UX server that is hosting the Oracle Listener process. |
| Field | Description |
|---|---|
| Name [name] | The hostname of the Solaris server that is hosting the Oracle Listener process. |
Dependency Views map
The following dependency views display the relationships between Oracle Listener resources.
CI relationships
The Listener HD pattern creates the following relationships to support Oracle Listener discovery.
| CI | Relationship | CI |
|---|---|---|
| Oracle Cluster [cmdb_ci_oracle_cluster] | Cluster of::Cluster | Oracle Cluster Node [cmdb_ci_oracle_cluster_node] |
| Oracle Cluster Node [cmdb_ci_oracle_cluster_node] | Hosted on::Hosts | Linux Server [cmdb_ci_linux_server] |
| Oracle Instance [cmdb_ci_db_ora_instance] | Runs on::Runs | Linux Server [cmdb_ci_linux_server] |
| Oracle Database Listener [cmdb_ci_db_ora_listener] | Depends on::Used by | Oracle Instance [cmdb_ci_db_ora_instance] |
| Oracle Instance [cmdb_ci_db_ora_instance] | Uses::Used by | Oracle Database [cmdb_ci_db_oracle_database] |
| Oracle Database [cmdb_ci_db_oracle_database] | Hosted on::Hosts | Oracle Cluster Node [cmdb_ci_oracle_cluster_node] |
| Oracle Cluster Node [cmdb_ci_oracle_cluster_node] | Hosted on::Hosts | AIX Server [cmdb_ci_aix_server] |
| Oracle Instance [cmdb_ci_db_ora_instance] | Runs on::Runs | AIX Server [cmdb_ci_aix_server] |
| Oracle Cluster Node [cmdb_ci_oracle_cluster_node] | Hosted on::Hosts | Solaris Server [cmdb_ci_solaris_server] |
| Oracle Instance [cmdb_ci_db_ora_instance] | Runs on::Runs | Solaris Server [cmdb_ci_solaris_server] |
| Oracle Cluster Node [cmdb_ci_oracle_cluster_node] | Hosted on::Hosts | HPUX Server [cmdb_ci_hpux_server] |
| Oracle Instance [cmdb_ci_db_ora_instance] | Runs on::Runs | HPUX Server [cmdb_ci_hpux_server] |
| Oracle DB Service [cmdb_ci_db_ora_service] | Managed by::Manages | Oracle Database Listener [cmdb_ci_db_ora_listener] |
| Oracle Instance [cmdb_ci_db_ora_instance] | Uses::Used by | Oracle DB Service [cmdb_ci_db_ora_service] |