--- title: Oracle database discovery description: 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\). locale: en-US canonical_url: https://www.servicenow.com/docs/r/australia/it-operations-management/itom-visibility/c\_OracleDatabaseDiscovery.html release: australia product: ITOM Visibility classification: itom-visibility topic_type: concept last_updated: "2026-06-07" reading_time_minutes: 11 breadcrumb: [Database discovery, Data collected by ITOM Visibility, ITOM Visibility reference, ITOM Visibility, IT Operations Management] --- # 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/it-operations-management/discovery-and-service-mapping-patterns/oracle-catalog-discovery.md). For general information about database catalog discovery, see [database catalogs](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/it-operations-management/itom-visibility/c_DatabaseCatalogs.md). **Note:** For information on Probe to Pattern migration see the knowledge article [KB0694477](https://support.servicenow.com/kb_view.do?sysparm_article=KB0694477). ## Credentials Configure these credentials:
| Credential type | Additional information |
|---|---|
| [Applicative credentials](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/platform-security/applicative-creds.md) | 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 authentication](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/it-operations-management/discovery-and-service-mapping-patterns/oracle-wallet-authentication.md) | You can use Oracle Wallet instead of applicative credentials. |
| [Windows credentials](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/platform-security/r_WindowsCredentialsForm.md) | 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/it-operations-management/service-mapping/r_CommandsnCredentials.md). This list includes commands that require elevated rights to discover and map Unix-based hosts in your organization. |
| [SSH credentials](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/platform-security/r_SSHCredentialsForm.md) | 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/it-operations-management/service-mapping/r_CommandsnCredentials.md). This list includes commands that require elevated rights to discover and map Unix-based hosts in your organization. |
| Command | Description |
|---|---|
| `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. |
| Classifier | Trigger probes | Pattern |
|---|---|---|
| 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](https://raw.githubusercontent.com/ServiceNow/ServiceNowDocs/australia/markdown/australia/it-operations-management/itom-visibility/r_DataCollDiscoLinuxComputers.md) 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 |
| 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:- 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 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*/dbs/spfile*SID*.ora - *oracle\_home*/dbs/spfile.ora - *oracle\_home*/dbs/init*SID*.ora |
| 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*\\database\\spfile*SID*.ora - *oracle\_home*\\database\\spfile.ora - *oracle\_home*\\database\\init*SID*.ora |
| Oracle Home | oracle\_home | Parsed from the path of `oracle.exe` |
| Edition | edition |
| Table privileges needed | Additional 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$INSTANCE | 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/](https://support.oracle.com/portal/) for more information about usage scripts. - Oracle option extensions for UNIX - Oracle option extensions for Windows |
| 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\] |
| Table privileges needed | Additional information |
|---|---|
| The following tables are accessed as part of the Extend Oracle Instance extension for UNIX and Windows:- V$DATABASE - V$INSTANCE | 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. |
| 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. |
| 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\] |
| 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\] |