Prerequisites for monitoring Oracle Database

This section provides information about the prerequisites for monitoring Oracle instances.

Create a Foglight User

A Foglight user needs to be created using the following syntax:

- CREATE USER <username> IDENTIFIED BY <password> [CONTAINER=ALL];
- GRANT CONNECT TO <username> [CONTAINER=ALL];

When the feature multitenant container database (CDB) architecture is enabled, the customer should create the user with “container=all”.

Permissions for monitoring Oracle database

Following are the permissions required to monitor Oracle database. The installation wizard grants these permissions as part of the installation process:

For Oracle 12c and above, replace all the dba_* dictionary views with the cdb prefix (cdb_*)

Oracle views requiring Select permission:

Dictionary viewDictionary viewDictionary view
dba_constraintsgv_$sessionv_$logfile
dba_data_filesgv_$session_waitv_$open_cursor
dba_db_linksgv_$sort_segmentv_$osstat
dba_directoriesgv_$spparameterv_$parameter
dba_extentsgv_$sqlv_$pgastat
dba_free_spacegv_$sysstatv_$pq_sysstat
dba_indexesgv_$temp_extent_poolv_$process
dba_jobsgv_$undostatv_$recovery_file_dest
dba_jobs_runningobj$v_$resource
dba_librariesrecyclebin$v_$result_cache_statistics
dba_objectsts$v_$rman_status
dba_profilesuet$v_$rowcache
dba_role_privsuser$v_$segstat
dba_rolesv_$archive_destv_$segment_statistics
dba_rollback_segsv_$archived_logv_$sess_time_model
dba_scheduler_jobsv_$asm_diskv_$session
dba_scheduler_running_jobsv_$asm_disk_statv_$session_wait
dba_segmentsv_$asm_diskgroupv_$sesstat
dba_sequencesv_$asm_diskgroupv_$sga
dba_sequencesv_$asm_diskgroup_statv_$sga_dynamic_components
dba_synonymsv_$asm_operationv_$sgainfo
dba_sys_privsv_$asm_templatev_$sgastat
dba_tab_columnsv_$cellv_$spparameter
dba_tab_privsv_$controlfilev_$sql
dba_tablesv_$databasev_$sql_plan
dba_tablespacesv_$datafilev_$sqlarea
dba_temp_filesv_$dataguard_statusv_$sqltext_with_newlines
dba_temp_free_spacev_$dbfilev_$standby_log
dba_undo_extentsv_$dispatcherv_$statname
dba_usersv_$enqueue_statv_$sysmetric
dba_viewsv_$enqueue_statisticsv_$sysstat
dba_recyclebinv_$event_namev_$system_event
fet$v_$filestatv_$system_parameter
file$v_$fixed_tablev_$tablespace
gv_$archive_destv_$flash_recovery_area_usagev_$temp_extent_pool
gv_$archived_logv_$instancev_$temp_space_header
gv_$instancev_$instance_cache_transferv_$tempfile
gv_$instance_cache_transferv_$iostat_filev_$tempstat
gv_$lockv_$librarycachev_$transaction
gv_$pq_sysstatv_$lockv_$memory_target_advice
gv_$rman_configurationv_$logv_$pga_target_advice
gv_$rman_outputv_$log_historyv_$sga_target_advice
v_$undostatv_$sql_shared_cursor
gv_$archive_dest_statusv_$flashback_database_logv_$backup_set_details
gv_$dataguard_statsv_$dataguard_configv_$session_event
gv_$dataguard_statusv_$services

Additional configurations for Amazon RDS for Oracle instances

There are two user credential options for monitoring Amazon RDS for Oracle instances:

  • Master predefined user that comes as part of Amazon RDS for Oracle instance Or
  • Separate user who has either of the following:
    • SELECT_CATALOG_ROLE or SELECT ANY TABLE system privilege
    • Grant additional permissions by manually executing the following commands from the master user:
      - EXEC
      RDSADMIN.RDSADMIN_UTIL.GRANT_SYS_OBJECT(p_obj_name=>'FET$',p_grante
      e =>'TEST', p_privilege => 'SELECT');
      - EXEC
      RDSADMIN.RDSADMIN_UTIL.GRANT_SYS_OBJECT(p_obj_name=>'UET$' p_grante
      e =>'TEST', p_privilege => 'SELECT');
      - EXEC
      RDSADMIN.RDSADMIN_UTIL.GRANT_SYS_OBJECT(p_obj_name=>'FILE$'
      p_grant
      ee =>'TEST', p_privilege => 'SELECT');
      - EXEC
      RDSADMIN.RDSADMIN_UTIL.GRANT_SYS_OBJECT(p_obj_name=>'OBJ$',p_grante
      e =>'TEST', p_privilege => 'SELECT');
      - EXEC
      RDSADMIN.RDSADMIN_UTIL.GRANT_SYS_OBJECT(p_obj_name=>'TS$'
      p_grantee
      =>'TEST', p_privilege => 'SELECT');
      - EXEC
      RDSADMIN.RDSADMIN_UTIL.GRANT_SYS_OBJECT(p_obj_name=>'USER$',p_grant
      ee =>'TEST', p_privilege => 'SELECT');
      - EXEC
      RDSADMIN.RDSADMIN_UTIL.GRANT_SYS_OBJECT(p_obj_name=>'RECYCLEBIN$',p_grantee =>'TEST', p_privilege => 'SELECT');