Skip to content
Release: Australia · Updated: 2026-06-07 · Official documentation · View source

Oracle database discovery

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).

Patterns perform the discovery of Oracle installations. These patterns replace several probes for new instances. If you want to continue to use probes, you can deactivate the Horizontal discovery probe, which launches the pattern, and then activate the necessary probes.

Note: Oracle DB on Unix and Oracle DB on Windows do not support RAC single-node discovery.

The Oracle DB on Unix and Oracle DB on Windows patterns discover Oracle catalog objects through the pattern extension Get Catalog info. For more information, see Oracle Catalog discovery. For general information about database catalog discovery, see database catalogs.

Note: For information on Probe to Pattern migration see the knowledge article KB0694477.

Credentials

Configure these credentials:

Credential typeAdditional information
Applicative credentials

Applicative credentials are mandatory for two use cases:

  • Executing SQL queries against the remote Oracle DB Instance
  • Creating connections to database links
  • Software Asset Management activated

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:

  • PRODUCT_COMPONENT_VERSION
  • V$VERSION
  • V$DATABASE
  • V$PARAMETER
Oracle Wallet authenticationYou can use Oracle Wallet instead of applicative credentials \(for UNIX only\).
Windows credentialsRequired 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 credentialsRequired 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.

The following commands are run for Oracle clusterware:

CommandDescription
`ps -ef | grep 'crsd.bin' |grep -v grep`Verifies if Oracle CRS process is running.
`ps -ef |grep LISTENER | grep -v $$ | head -1 | awk '{print $8}'`Gets Oracle home from the listener process path. Used when the ORACLE\_HOME environment variable is unavailable.
`ps -ef | grep 'd.bin' | grep -v grep | grep -v bash | awk '{print $8}'`Gets Oracle Grid home from the CRS daemon process path.
`/u01/app/12.1.0.2/grid/bin/olsnodes -c | egrep -v 'error|return code'`Gets Oracle CRS cluster name.
`sudo /u01/app/12.1.0.2/grid/bin/ocrcheck | egrep -v 'error|return code'`Gets Oracle CRS cluster ID.
`/u01/app/12.1.0.2/grid/bin/crsctl query crs softwareversion| egrep -v 'error|return code'`Gets Oracle CRS version.
`/u01/app/12.1.0.2/grid/bin/olsnodes | egrep -v 'error|return code'`Gets Oracle CRS nodes.
`/u01/app/12.1.0.2/grid/bin/crsctl status server | egrep -v 'error|return code'`Gets Oracle CRS node status.
`/u01/app/12.1.0.2/grid/bin/crsctl stat res -f | tr '\n' '#'`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.
`/u01/app/12.1.0.2/grid/bin/srvctl config scan | tr '\n' ‘ '`Gets Oracle RAC SCAN VIP configurations.
`/u01/app/12.1.0.2/grid/bin/srvctl config vip -node ol7-121-rac1| egrep ' Name' | awk '{print $3}'`Gets Oracle CRS VIPs name.
`/u01/app/12.1.0.2/grid/bin/srvctl config vip -node ol7-121-rac1| grep ' IPv4 Address:' | awk '{print $4}'`Get Oracle CRS VIPs ip\_address.

Important: Sudo permission are required to run sudo /u01/app/12.1.0.2/grid/bin/ocrcheck | egrep -v 'error|return code'.

Classifiers, patterns, and probes

Discovery uses these classifiers, probes, and patterns for Oracle database discovery:

ClassifierTrigger probesPattern
Oracle Instance
  • Horizontal discovery probe: launches patterns
  • Powershell-Oracle - Instance PFile (for Windows)*
  • Powershell-Oracle - Instance Version (for Windows)*
  • SSHCommand-Oracle - Instance Details (for Linux)*

Application patterns:

  • Oracle DB On Windows Pattern
  • Oracle DB on UNIX Pattern

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 ListenerSSHCommand-Oracle - Listener Detailsnone

*Probes inactive for new instances.

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

The following data is collected on the Oracle Instances [cmdb_ci_db_ora_instance] table for both UNIX and Windows:

LabelField nameAdditional information
SIDsidObtained from the name of the process that starts with `ora_pmon_`
Install directoryinstall\_directoryObtained from the path of `ORA_HOME`
VersionversionObtained in this order:- From the output of the `ORA_HOME/bin/sqlplus /NOLOG` command - From the output of the `ORA_HOME/bin/lsnrctl` status command - From the path of `ORA_HOME`
Parameter filepfileThe 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*/dbs/spfile*SID*.ora - *oracle\_home*/dbs/spfile.ora - *oracle\_home*/dbs/init*SID*.ora
Oracle Homeoracle\_homeObtained from the *ORATAB* file.
EditioneditionObtained from the `context.xml` file.
NamenameCombination of SID name Host name in the format `SID@HOST_NAME`.
TCP port\(s\)tcp\_portObtained from the `tnsnames.ora` file, or `lsnrctl` status command. If no valid information is retrieved, the default port 1521 is assigned.

Note: See Oracle options for pattern extensions and additional information collected.

LabelField nameAdditional information
SIDsidObtained from the process parameter that is passed to the `oracle.exe` process.
Install directoryinstall\_directory 
VersionversionObtained from the output of the `ORA_HOME/bin/sqlplus.exe -V` command.
Parameter filepfileThe 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*\\database\\spfile*SID*.ora - *oracle\_home*\\database\\spfile.ora - *oracle\_home*\\database\\init*SID*.ora
Oracle Homeoracle\_homeParsed from the path of `oracle.exe`
Editionedition 

Note: See Oracle options for pattern extensions and additional information collected.

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.

LabelField name
Instanceinstance
Optionoption
Licensablelicensable
Currently usedcurrently_used
First usage datefirst_usage
Last usage datelast_usage
Last sample datelast_sample
Detected usagedetected_usage
Sample intervalsample_interval
Table privileges neededAdditional information
The following tables are accessed as part of the Oracle option extension for UNIX and Windows:- DBA\_FEATURE\_USAGE\_STATISTICS - CDB\_FEATURE\_USAGE\_STATISTICS - V$DATABASE - V$VERSION - GV$PARAMETER - V$CONTAINERS - V$INSTANCEThe 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. - Oracle option extensions for UNIX - Oracle option extensions for Windows
TableLabels 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\_nodeName \[name\] Node state \[node\_state\] IP address \[ip\_address\] Node status \[node\_status\]
cmdb\_ci\_unix\_cluster\_resourceName \[name\] Resource type \[resource\_type\] Resource status \[resource\_status\] Properties \[properties\]
cmdb\_ci\_cluster\_vipName \[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

Note: Discovery can also find additional attributes for the instance using the Extend Oracle instance extension. See the Oracle website for more information on options https://docs.oracle.com/en/. Discovery saves these attributes to the Oracle Instances [cmdb_ci_db_ora_instance] table.

LabelField name
Instanceinstance
Host Namehost_name
IS_CDBcdb_yn
DB Unique Namedb_unique_name
DB Namedatabase_name
Replication Enabledreplication_enabled
Table privileges neededAdditional information
The following tables are accessed as part of the Extend Oracle Instance extension for UNIX and Windows:- V$DATABASE - V$INSTANCEThe 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

When Oracle instances are hosted on virtual machines, the system creates relationships between CIs.

CIRelationshipCI
Oracle instanceHosted onComputer [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 byComputer [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 classRelationshipDependent class
Oracle instanceHosted onComputer [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 byComputer [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 byVirtual Machine Instance [cmdb_ci_vm_instance]Note: The vCPU count is populated in this table.
Virtual Machine Instance \[cmdb\_ci\_vm\_instance\]Hosted onAWS Datacenter \[cmdb\_ci\_aws\_datacenter\] or Azure Datacenter \[cmdb\_ci\_azure\_datacenter\]

Relationships for clusterware

CIRelationshipCI
Unix Cluster \[cmdb\_ci\_unix\_cluster\]Virtualizes::Virtualized byCluster Virtual IP \[cmdb\_ci\_cluster\_vip\]
Unix Cluster Resource \[cmdb\_ci\_unix\_cluster\_resource\]Defines resources for::Gets resources fromUnix Cluster Node \[cmdb\_ci\_unix\_cluster\_node\]
Cluster Virtual IP \[cmdb\_ci\_cluster\_vip\]Uses::Used byUnix Cluster Node \[cmdb\_ci\_unix\_cluster\_node\]
Unix Cluster Node \[cmdb\_ci\_unix\_cluster\_node\]Cluster of::ClusterUnix Cluster \[cmdb\_ci\_unix\_cluster\]
Unix Cluster Node \[cmdb\_ci\_unix\_cluster\_node\]Hosted on:HostsUnix Cluster \[cmdb\_ci\_unix\_cluster\]
Unix Cluster Resource \[cmdb\_ci\_unix\_cluster\_resource\]Defines resources for::Gets resources fromUnix Cluster \[cmdb\_ci\_unix\_cluster\]
Unix Cluster \[cmdb\_ci\_unix\_cluster\]Hosts::Hosted onLinux Server \[cmdb\_ci\_linux\_server\]
Unix Cluster Node \[cmdb\_ci\_unix\_cluster\_node\]Hosted on::HostsLinux Server \[cmdb\_ci\_linux\_server\]

Parent Topic:Database discovery

Related topics

Add the Horizontal Pattern probe to a classifier

Horizontal Pattern probe

Database Administrator (DBA) report discovery

Oracle Catalog discovery

Oracle pluggable database and container database discovery

Oracle GLAS data collection using patterns