Data is obtained via ODBC.
Prerequisites
Connectivity check
Allow access from the XorMon host to PostgreSQL host on port 5432
Create DB user
Create database user ("xormon" in this example) with these privileges on each database on host machine.
CREATE ROLE xormon WITH PASSWORD 'your_passw0rd' LOGIN;
GRANT SELECT ON TABLE pg_stat_bgwriter TO xormon;
GRANT SELECT ON TABLE pg_stat_database TO xormon;
GRANT SELECT ON TABLE pg_stat_activity TO xormon;
GRANT SELECT ON TABLE pg_locks TO xormon;
GRANT SELECT ON TABLE pg_cursors TO xormon;
GRANT SELECT ON TABLE pg_stat_progress_vacuum TO xormon;
GRANT SELECT ON TABLE pg_stat_replication TO xormon;
GRANT SELECT ON TABLE pg_stat_wal_receiver TO xormon;
Attach PostgreSQL
-
As PostgreSQL gives us info about every DB on host machine we suggest that you use the machine hostname as "Host alias" and choose one DB for initial connect.
XorMon UI ➡ Device ➡ Database ➡PostgreSQL DB ➡ New :
In case of error: SCRAM authentication requires libpq version 10 or above
Either upgrade libpq to version 10+ or change users password authentication to md5 and generate new password
- Run "Test" for configured PostgreSQL database, it must show "OK"
-
Wait about 1 hour, then refresh the web browser cache by Ctrl-F5
Data is obtained through SQL (SQL*Plus). Oracle client must be installed on XorMon server.
Monitoring implementation
does not require any Oracle licensed features like Oracle Diagnostics Pack or Oracle Tuning Pack .
Monitoring requires a database user with the following view only permissions to collect monitoring data:
- create session
- select rights on specific sys.* tables
Note a bug in Oracle Database
19.11.0.0 and 19.12.0.0
Oracle Instant Client and SQL*Plus installation
Oracle Instant Client and SQL Plus are used for collecting information from an Oracle DB instance.
Oracle DB user is needed with sufficient privileges.
Version compatibility
OIC 19c supports Oracle DB versions 11.2.0.4 and newer.
If you are using previously installed SQL Plus, make sure it is version 12.2 and above.
Oracle Instant Client (OIC) can be deployed from a ZIP file or installed as an RPM package.
Installation steps are performed under
root account
Create DB user
Database user in each Oracle instance must be created, it will be used for monitoring access.
You can choice whatever user name (below examle show "xormon" user, then specify it in XorMon Database properties.
- Standalone / RAC
$ sqlplus sys"/as sysdba"
create user xormon_check identified by "<password>" default tablespace USERS temporary tablespace TEMP;
grant create session to xormon_check;
grant select on sys.v_$instance_ping to xormon_check;
grant select on sys.v_$resource_limit to xormon_check;
grant select on sys.gv_$resource_limit to xormon_check;
grant select on sys.v_$sysmetric_summary to xormon_check;
grant select on sys.gv_$sysmetric_summary to xormon_check;
grant select on sys.v_$sysmetric_history to xormon_check;
grant select on sys.gv_$sysmetric_history to xormon_check;
grant select on sys.v_$datafile to xormon_check;
grant select on sys.gv_$datafile to xormon_check;
grant select on sys.v_$filestat to xormon_check;
grant select on sys.gv_$filestat to xormon_check;
grant select on sys.v_$instance to xormon_check;
grant select on sys.gv_$instance to xormon_check;
grant select on sys.v_$database to xormon_check;
grant select on sys.gv_$database to xormon_check;
grant select on sys.v_$osstat to xormon_check;
grant select on sys.gv_$osstat to xormon_check;
grant select on sys.v_$session to xormon_check;
grant select on sys.gv_$session to xormon_check;
grant select on sys.v_$sgainfo to xormon_check;
grant select on sys.gv_$sgainfo to xormon_check;
grant select on sys.v_$containers to xormon_check;
grant select on sys.gv_$containers to xormon_check;
grant select on sys.v_$pgastat to xormon_check;
grant select on sys.gv_$pgastat to xormon_check;
grant select on sys.v_$system_wait_class to xormon_check;
grant select on sys.gv_$system_wait_class to xormon_check;
grant select on sys.v_$system_event to xormon_check;
grant select on sys.gv_$system_event to xormon_check;
grant select on sys.v_$cluster_interconnects to xormon_check;
grant select on sys.gv_$cluster_interconnects to xormon_check;
grant select on sys.v_$sysstat to xormon_check;
grant select on sys.gv_$sysstat to xormon_check;
grant select on sys.v_$service_stats to xormon_check;
grant select on sys.gv_$service_stats to xormon_check;
grant select on sys.v_$event_histogram to xormon_check;
grant select on sys.gv_$event_histogram to xormon_check;
grant select on dba_free_space to xormon_check;
grant select on dba_temp_free_space to xormon_check;
grant select on dba_data_files to xormon_check;
grant select on dba_registry to xormon_check;
grant select on dba_temp_files to xormon_check;
grant select on sys.registry$history to xormon_check;
grant select on sys.REGISTRY$SQLPATCH to xormon_check;
grant select on sys.v_$recovery_file_dest to xormon_check;
grant select on sys.v_$log to xormon_check;
grant select on sys.v_$controlfile to xormon_check;
grant select on dba_alert_history_detail to xormon_check;
grant select on sys.v_$logfile to xormon_check;
exit;
- Multitenant
$ sqlplus sys"/as sysdba"
create user xormon_check identified by "<password>" default tablespace USERS temporary tablespace TEMP CONTAINER = ALL;
grant create session to xormon_check CONTAINER = ALL;
grant SET CONTAINER to xormon_check CONTAINER = ALL;
grant select on sys.v_$instance_ping to xormon_check CONTAINER = ALL;
grant select on sys.v_$resource_limit to xormon_check CONTAINER = ALL;
grant select on sys.gv_$resource_limit to xormon_check CONTAINER = ALL;
grant select on sys.v_$sysmetric_summary to xormon_check CONTAINER = ALL;
grant select on sys.gv_$sysmetric_summary to xormon_check CONTAINER = ALL;
grant select on sys.v_$sysmetric_history to xormon_check CONTAINER = ALL;
grant select on sys.gv_$sysmetric_history to xormon_check CONTAINER = ALL;
grant select on sys.v_$datafile to xormon_check CONTAINER = ALL;
grant select on sys.gv_$datafile to xormon_check CONTAINER = ALL;
grant select on sys.v_$filestat to xormon_check CONTAINER = ALL;
grant select on sys.gv_$filestat to xormon_check CONTAINER = ALL;
grant select on sys.v_$instance to xormon_check CONTAINER = ALL;
grant select on sys.gv_$instance to xormon_check CONTAINER = ALL;
grant select on sys.v_$database to xormon_check CONTAINER = ALL;
grant select on sys.gv_$database to xormon_check CONTAINER = ALL;
grant select on sys.v_$osstat to xormon_check CONTAINER = ALL;
grant select on sys.gv_$osstat to xormon_check CONTAINER = ALL;
grant select on sys.v_$session to xormon_check CONTAINER = ALL;
grant select on sys.gv_$session to xormon_check CONTAINER = ALL;
grant select on sys.v_$sgainfo to xormon_check CONTAINER = ALL;
grant select on sys.gv_$sgainfo to xormon_check CONTAINER = ALL;
grant select on sys.v_$containers to xormon_check CONTAINER = ALL;
grant select on sys.gv_$containers to xormon_check CONTAINER = ALL;
grant select on sys.v_$pgastat to xormon_check CONTAINER = ALL;
grant select on sys.gv_$pgastat to xormon_check CONTAINER = ALL;
grant select on sys.v_$system_wait_class to xormon_check CONTAINER = ALL;
grant select on sys.gv_$system_wait_class to xormon_check CONTAINER = ALL;
grant select on sys.v_$system_event to xormon_check CONTAINER = ALL;
grant select on sys.gv_$system_event to xormon_check CONTAINER = ALL;
grant select on sys.v_$con_sysmetric_summary to xormon_check CONTAINER = ALL;
grant select on sys.gv_$con_sysmetric_summary to xormon_check CONTAINER = ALL;
grant select on sys.v_$con_sysmetric_history to xormon_check CONTAINER = ALL;
grant select on sys.gv_$con_sysmetric_history to xormon_check CONTAINER = ALL;
grant select on sys.v_$cluster_interconnects to xormon_check CONTAINER = ALL;
grant select on sys.gv_$cluster_interconnects to xormon_check CONTAINER = ALL;
grant select on sys.v_$sysstat to xormon_check CONTAINER = ALL;
grant select on sys.gv_$sysstat to xormon_check CONTAINER = ALL;
grant select on sys.v_$service_stats to xormon_check CONTAINER = ALL;
grant select on sys.gv_$service_stats to xormon_check CONTAINER = ALL;
grant select on sys.v_$event_histogram to xormon_check CONTAINER = ALL;
grant select on sys.gv_$event_histogram to xormon_check CONTAINER = ALL;
grant select on dba_free_space to xormon_check CONTAINER = ALL;
grant select on dba_temp_free_space to xormon_check CONTAINER = ALL;
grant select on dba_data_files to xormon_check CONTAINER = ALL;
grant select on dba_registry to xormon_check CONTAINER = ALL;
grant select on dba_temp_files to xormon_check CONTAINER = ALL;
grant select on sys.registry$history to xormon_check CONTAINER = ALL;
grant select on sys.REGISTRY$SQLPATCH to xormon_check CONTAINER = ALL;
grant select on sys.v_$recovery_file_dest to xormon_check CONTAINER = ALL;
grant select on sys.v_$log to xormon_check CONTAINER = ALL;
grant select on sys.v_$controlfile to xormon_check CONTAINER = ALL;
grant select on dba_alert_history_detail to xormon_check CONTAINER = ALL;
grant select on sys.v_$logfile to xormon_check CONTAINER = ALL;
exit;
- DataGuard: Standalone/RAC
Enhance user priviledges on primary database. DG instance does not need xormon user.
grant select on sys.v_$dataguard_config to xormon_check;
grant select on sys.v_$ARCHIVE_DEST to xormon_check;
grant select on sys.v_$archive_dest_status to xormon_check;
- DataGuard: Multitenant/RAC Multitenant
Enhance user priviledges on primary database. DG instance does not need xormon user.
grant select on sys.v_$dataguard_config to xormon_check CONTAINER = ALL;
grant select on sys.v_$ARCHIVE_DEST to xormon_check CONTAINER = ALL;
grant select on sys.v_$archive_dest_status to xormon_check CONTAINER = ALL;
- Note that for older databases than 12c you get errors like this, ignore them (you do not get this data from database: PSU,patches info)
SQL> grant SET CONTAINER to xormon;
ORA-00990: missing or invalid privilege
SQL> grant select on sys.REGISTRY$SQLPATCH to xormon;
ORA-00942: the table does not exist
Connectivity check
Allow access from the XorMon host to Oracle DB host.
Make sure you are using correct port.
Default port for Oracle DB sessions is 1521.
ORACLE_HOME
ORACLE_HOME sets the path to binary files for Oracle client and SQLplus.
You can set ORACLE_HOME separately for each database, see "Attach Oracle Database" below.
Or you can set ORACLE_HOME globally in Settings -> Application -> Advanced
Create a new Key/Value pair where the key will be 'ORACLE_HOME' and the value will contain the path.
Attach Oracle Databases
-
XorMon UI ➡ Device ➡ Database ➡ Oracle DB ➡ New :
Oracle service: to list Oracle service use this cmd on the server where DB is running: lsnrctl status
Oracle RAC: Do not use SCAN IP in the configuration, add Virtual IP for each RAC node/instance separately. These instances should use the same listener service
Make sure that connection test passes without errors or warnings.
-
Number of attached Oracle RAC instances is limited to 1 in the Free edition.
However you can attach Oracle RAC nodes even as stand-alone instances if you reach the limitation, there is no limit for attaching of Oracle stand-alone DB instances.
- Run "Test" for configured database, it must show "OK"
-
Wait about 1 hour, then refresh the web browser cache by Ctrl-F5