Oracle database discovery
Summarize
Summary of Oracle database discovery
Oracle database discovery in ServiceNow enables identification of Oracle database instances running on UNIX or Windows, including Oracle clusterware that supports Real Application Clusters (RAC). It uses discovery patterns that replace traditional probes to find Oracle installations and related clusterware components. This discovery helps populate and maintain accurate configuration items (CIs) in the CMDB for Oracle databases, supporting better asset and service management.
Show less
Credentials and Permissions
- Applicative credentials: Required for executing SQL queries and creating database link connections. The database user must have permissions to query key Oracle tables and access the
tnsnames.orafile. - Oracle Wallet authentication: Supported on UNIX as an alternative to applicative credentials.
- Windows credentials: Needed for Windows targets with read access to
tnsnames.ora. - SSH credentials: Needed for UNIX targets with read access to
orataband system parameter files. - Privileges: Elevated permissions (including sudo on UNIX) are required to run specific commands for clusterware discovery and to access key files.
Discovery Process and Components
- Discovery identifies Oracle instances by detecting running processes (
orapmonon UNIX andoracle.exeon Windows) within the defined IP ranges. - For Oracle clusterware, discovery runs various commands to gather cluster status, nodes, resources, and VIP configurations, requiring sudo privileges for some commands.
- Discovery uses classifiers, probes, and patterns specific to Oracle DB on UNIX and Windows, as well as shared library patterns for Oracle clusterware.
- Patterns replace multiple probes, but probes can be reactivated if needed by adjusting the Horizontal discovery probe.
Data Collected
- Key Oracle instance details collected include SID, install directory, version, Oracle home, edition, parameter file locations, host name, and TCP ports.
- Clusterware discovery collects cluster names, status, node details, resources, and VIP information.
- Oracle option discovery requires the Software Asset Management Professional for Oracle plugin and collects licensing and usage data from Oracle tables.
- Extend Oracle instance extension can gather additional instance attributes like container database status and replication enabled flags.
CI Relationships and Virtual Machines
- Oracle instances hosted on virtual machines are related to their hosting computers or servers, with the "Is virtual" field indicating virtualization status.
- For instances on AWS or Azure clouds, relationships include links to virtual machine instances and data centers.
- Oracle clusterware resources and nodes have defined relationships showing cluster membership and hosting.
Practical Implications for ServiceNow Customers
This discovery capability enables ServiceNow customers to automatically detect Oracle databases and clusterware components across UNIX and Windows environments, including virtualized and cloud-hosted instances. By setting up the proper credentials and permissions, customers ensure accurate and comprehensive population of the CMDB with Oracle-related CIs. This supports enhanced software asset management, compliance tracking, and service mapping.
Customers should review credential requirements carefully, configure the Horizontal Pattern probe correctly, and ensure necessary elevated privileges are granted to discover clusterware and RAC components effectively. Utilizing the extend Oracle instance extension and Oracle option discovery further enriches the data collected about Oracle environments.
Discovery can identify an Oracle database instance that is running on UNIX or Windows operating systems. It can also find Oracle clusterware, which runs Real Application Clusters (RAC).
Credentials
| Credential type | Additional information |
|---|---|
Applicative credentials are mandatory for two use cases: You must add the database user you configured during Oracle database installation. Specify Oracle instance [cmdb_ci_db_ora_instance] as the CI type.
The user must also have access to the tnsnames.ora parameters file. Make sure that the tnsnames.ora is configured correctly and exists in the Oracle path on the target Windows host. Also, verify that the utilized Discovery Credentials can read tnsnames.ora file. The user needs permissions for the SQL*Plus command line tool and
permissions to execute SELECT queries against the following tables:
|
|
| Oracle Wallet authentication | You can use Oracle Wallet instead of applicative credentials (for UNIX only). |
| Windows credentials | Required for Windows targets. The user must have read permissions to the tnsnames.ora file. For a list of privileged commands that you need for Discovery and Service Mapping, see Service Mapping commands requiring a privileged user. This list includes commands that require elevated rights to discover and map Unix-based hosts in your organization. |
| SSH credentials | Required for UNIX targets. The user must have read permission to the oratab file and read permission to the System Parameter file. For a list of privileged commands that you need for Discovery and Service Mapping, see Service Mapping commands requiring a privileged user. This list includes commands that require elevated rights to discover and map Unix-based hosts in your organization. |
Additional requirements
Discovery identifies a running instance of an Oracle database on UNIX from the process that starts with ora_pmon_. Ensure this process is running in the IP range you designate for Discovery. Discovery identifies a running instance of an Oracle database on Windows from the oracle.exe process. Ensure this process is running in the IP range you designate.
For Oracle clusterware, you also need permissions to read the /etc/hosts/ file, which associates host names with IP addresses.
| Command | Description |
|---|---|
|
|
Verifies if Oracle CRS process is running. |
|
|
Gets Oracle home from the listener process path. Used when the ORACLE_HOME environment variable is unavailable. |
|
|
Gets Oracle Grid home from the CRS daemon process path. |
|
|
Gets Oracle CRS cluster name. |
|
|
Gets Oracle CRS cluster ID. |
|
|
Gets Oracle CRS version. |
|
|
Gets Oracle CRS nodes. |
|
|
Gets Oracle CRS node status. |
|
|
Gets Oracle CRS resources. |
/u01/app/12.1.0.2/grid/bin/crsctl stat res -p | grep -v CHECK_R |grep -v error |grep -v failed |
Gets Oracle CRS VIP resources. |
|
|
Gets Oracle RAC SCAN VIP configurations. |
|
|
Gets Oracle CRS VIPs name. |
|
|
Get Oracle CRS VIPs ip_address. |
sudo /u01/app/12.1.0.2/grid/bin/ocrcheck | egrep -v 'error|return code'.Classifiers, patterns, and probes
| Classifier | Trigger probes | Pattern |
|---|---|---|
| Oracle Instance |
|
Application patterns:
This shared library pattern used by the Linux Server pattern: UNIX Cluster - ORACLE Clusterware
Note: This shared library pattern is triggered if the crsd.bin process is running on the Oracle database server. |
| Oracle Listener | SSHCommand-Oracle - Listener Details | none |
To use patterns, verify that the correct pattern is specified in the horizontal pattern probe on the classifier. See Add the Horizontal Pattern probe to a classifier for instructions.
Data collected
| Label | Field name | Additional information |
|---|---|---|
| SID | sid | Obtained from the name of the process that starts with ora_pmon_ |
| Install directory | install_directory | Obtained from the path of ORA_HOME |
| Version | version | Obtained in this order:
|
| Parameter file | pfile | The following locations are explored for the location of the System Parameter File. If this file does not exist in one of the explored locations, Discovery does not find the file and reports an error.
|
| Oracle Home | oracle_home | Obtained from the ORATAB file. |
| Edition | edition | Obtained from the context.xml file. |
| Name | name | Combination of SID name Host name in the format SID@HOST_NAME. |
| TCP port(s) | tcp_port | Obtained from the tnsnames.ora file, or lsnrctl status command. If no valid information is retrieved, the default port 1521 is assigned. |
| Label | Field name | Additional information |
|---|---|---|
| SID | sid | Obtained from the process parameter that is passed to the oracle.exe process. |
| Install directory | install_directory | |
| Version | version | Obtained from the output of the ORA_HOME/bin/sqlplus.exe -V command. |
| Parameter file | pfile | The following locations are explored for the location of the System Parameter File.
If this file does not exist in one of the explored locations, Discovery does not find the
file and reports an error.
|
| Oracle Home | oracle_home | Parsed from the path of oracle.exe |
| Edition | edition |
Oracle options
For general information on Oracle options, see https://docs.oracle.com/en/.
Discovery can also find the Oracle options that you enable on the instance using the legacy pattern extension, Oracle option extension for Windows/Unix. Note that to discover Oracle options, the Software Asset Management Professional for Oracle (com.snc.samp.oracle) plugin is required.
| Label | Field name |
|---|---|
| Instance | instance |
| Option | option |
| Licensable | licensable |
| Currently used | currently_used |
| First usage date | first_usage |
| Last usage date | last_usage |
| Last sample date | last_sample |
| Detected usage | detected_usage |
| Sample interval | sample_interval |
| Table privileges needed | Additional information |
|---|---|
The following tables are accessed as part of the Oracle option extension for UNIX and Windows:
|
The following pattern extensions use the Oracle script: options_packs_usage_statistics.sql. This sql script is for DB Server version 11.2 and later. You need the Select any dictionary privilege to execute the
script. See the support document ID13172651.1 on https://support.oracle.com/portal/ for more information about usage scripts.
|
| Table | Labels and field names |
|---|---|
| Unix Cluster [cmdb_ci_unix_cluster] |
Name [name] Cluster status [cluster_status] Cluster type [cluster_type] IP address [ip_address] Short description [short_description] Cluster ID [cluster_id] Cluster version [cluster_version] |
| cmdb_ci_unix_cluster_node |
Name [name] Node state [node_state] IP address [ip_address] Node status [node_status] |
| cmdb_ci_unix_cluster_resource |
Name [name] Resource type [resource_type] Resource status [resource_status] Properties [properties] |
| cmdb_ci_cluster_vip |
Name [name] IP address [ip_address] Cluster name [cluster_name] Cluster ID [cluster_id] |
On the dependency view, a +1 on an Oracle database server signifies that it is part of a cluster.
Extend Oracle instance extension
| Label | Field name |
|---|---|
| Instance | instance |
| Host Name | host_name |
| IS_CDB | cdb_yn |
| DB Unique Name | db_unique_name |
| DB Name | database_name |
| Replication Enabled | replication_enabled |
| Table privileges needed | Additional information |
|---|---|
The following tables are accessed as part of the Extend Oracle Instance extension for
UNIX and Windows:
|
The Extend Oracle Instance extension needs to be installed. This extension is included in the Discovery and Service Mapping Patterns application, version 1.0.72 or higher, which can be downloaded from the ServiceNow Store. |
Oracle instances on virtual machines
| CI | Relationship | CI |
|---|---|---|
| Oracle instance | Hosted on | Computer [cmdb_ci_computer] or Server [cmdb_ci_server] Note:
This is a virtual machine. The Is virtual field is true. |
| Computer [cmdb_ci_computer] or Server [cmdb_ci_server] Note:
This is a virtual machine. The Is virtual field is true. |
Virtualized by | Computer [cmdb_ci_computer] or Server [cmdb_ci_server] Note:
This is not a virtual machine. |
Oracle instances on virtual machines that are hosted on AWS or Azure clouds
| Base class | Relationship | Dependent class |
|---|---|---|
| Oracle instance | Hosted on | Computer [cmdb_ci_computer] Note: This is a virtual machine. The Is virtual field is
true. |
| Computer [cmdb_ci_computer] Note: This is a virtual machine. The Is virtual field is
true. |
Virtualized by | Computer [cmdb_ci_computer] Note: This is not a virtual machine. |
| Computer [cmdb_ci_computer] Note: This is a virtual machine. The Is virtual field is
true. |
Virtualized by | Virtual Machine Instance [cmdb_ci_vm_instance] Note: The vCPU count is populated in
this table. |
| Virtual Machine Instance [cmdb_ci_vm_instance] | Hosted on | AWS Datacenter [cmdb_ci_aws_datacenter] or Azure Datacenter [cmdb_ci_azure_datacenter] |
Relationships for clusterware
| CI | Relationship | CI |
|---|---|---|
| Unix Cluster [cmdb_ci_unix_cluster] | Virtualizes::Virtualized by | Cluster Virtual IP [cmdb_ci_cluster_vip] |
| Unix Cluster Resource [cmdb_ci_unix_cluster_resource] | Defines resources for::Gets resources from | Unix Cluster Node [cmdb_ci_unix_cluster_node] |
| Cluster Virtual IP [cmdb_ci_cluster_vip] | Uses::Used by | Unix Cluster Node [cmdb_ci_unix_cluster_node] |
| Unix Cluster Node [cmdb_ci_unix_cluster_node] | Cluster of::Cluster | Unix Cluster [cmdb_ci_unix_cluster] |
| Unix Cluster Node [cmdb_ci_unix_cluster_node] | Hosted on:Hosts | Unix Cluster [cmdb_ci_unix_cluster] |
| Unix Cluster Resource [cmdb_ci_unix_cluster_resource] | Defines resources for::Gets resources from | Unix Cluster [cmdb_ci_unix_cluster] |
Unix Cluster [cmdb_ci_unix_cluster] |
Hosts::Hosted on | Linux Server [cmdb_ci_linux_server] |
| Unix Cluster Node [cmdb_ci_unix_cluster_node] | Hosted on::Hosts | Linux Server [cmdb_ci_linux_server] |