DEF iod_user = 'C##IOD'; DEF odis_user = 'ADMIN'; -- COL ampersand NEW_V ampersand NOPRI; COL double_ampersand NEW_V double_ampersand NOPRI; SELECT CHR(38) AS ampersand, CHR(38)||CHR(38) AS double_ampersand FROM DUAL; DEF hints_text = "FIRST_ROWS(1)"; DEF hints_text = "FIRST_ROWS(1) OPT_PARAM('_fix_control' '5922070:OFF')"; DEF cs_file_dir = '/tmp/'; DEF cs_temp_dir = '/u01/app/oracle/tools/tmp'; DEF cs_timestamp_full_format = 'YYYY-MM-DD"T"HH24:MI:SS.FF3'; DEF cs_datetime_full_format = 'YYYY-MM-DD"T"HH24:MI:SS'; DEF cs_datetime_display_format = 'yyyy-mm-ddThh:mi:ss'; DEF cs_datetime_short_format = 'YYYY-MM-DD"T"HH24.MI.SS'; DEF cs_datetime_hh24_format = 'YYYY-MM-DD"T"HH24'; DEF cs_datetime_dd_format = 'YYYY-MM-DD'; DEF cs_datetime_dense_format = 'YYYYMMDD_HH24MISS'; DEF cs_me_top = '10'; DEF cs_me_last = '10'; DEF cs_me_days = '30'; DEF cs_aas_on_cpu_per_sql = '2.5'; DEF cs_cpu_ms_per_row = '0.500'; DEF cs_buffer_gets_per_row = '25'; DEF cs_disk_reads_per_row = '1'; DEF cs_min_rows_per_exec_cap = '10'; DEF cs_default_reference = 'NULL'; DEF cs_reference_sanitized = ''; DEF cs_awr_days = '7'; DEF cs_binds_days = '1'; DEF cs_sqlmon_top = '100'; DEF chart_foot_note_0 = 'Notes:'; DEF chart_foot_note_1 = '
1) Drag to Zoom, and right click to reset Chart.'; DEF is_stacked = "isStacked: true,"; DEF cs_legend_position = 'right'; DEF vaxis_baseline = ""; DEF vaxis_viewwindow = ""; DEF hAxis_maxValue = ""; DEF cs_hAxis_maxValue = ""; DEF hAxis_maxValue_forecast = '0.375'; -- [{linear}|polynomial|exponential|none] DEF cs_trendlines_types = '[{none}|linear|polynomial|exponential]' DEF cs_trendlines_type = 'none'; DEF cs_trendlines_series = ""; DEF cs_trendlines = ""; DEF cs_chart_width = '1200px'; DEF cs_chart_height = '500px'; DEF cs_chartarea_left = '90'; DEF cs_chartarea_top = '75'; DEF cs_chartarea_width = '75%'; DEF cs_chartarea_height = '70%'; DEF cs_chart_option_explorer = ''; DEF cs_chart_option_pie = '//'; -- cs_chart_option_focustarget [{datum}|category] DEF cs_chart_option_focustarget = 'datum'; DEF cs_chart_option_pointsize = '4'; DEF cs_chart_pie_slice_text = "// pieSliceText: 'percentage',"; DEF cs_oem_colors_series = ''; DEF cs_oem_colors_slices = '//'; DEF cs_curve_type = '//'; DEF cs_def_local_dir = '.'; DEF cs_local_dir = ''; -- DEF cs_realm = ''; DEF cs_rgn = ''; DEF cs_region = ''; DEF cs_locale = ''; DEF cs_other_acronym = ''; DEF cs_onsr = ''; DEF cs_dedicated = ''; DEF cs_odis = ''; DEF cs_skip = ''; DEF cs_dbid = ''; DEF cs_db_name = ''; DEF cs_db_name_u = ''; DEF cs_mysid = ''; DEF cs_con_id = ''; DEF cs_con_name = ''; DEF cs_instance_number = ''; DEF cs_db_version = ''; DEF cs_host_name = ''; DEF cs_startup_time = ''; DEF cs_startup_days = ''; DEF cs_date_time = ''; DEF cs_file_date_time = ''; DEF cs_file_timestamp = ''; DEF cs_current_schema = ''; DEF cs_containers_count = ''; DEF cs_cdb_availability_perc = ''; DEF cs_host_shape = ''; DEF cs_disk_config = ''; -- DEF cs_file_prefix = ''; DEF cs_file_name = ''; DEF cs_script_name = ''; DEF cs_script_acronym = ''; DEF spool_id_chart_footer_script = 'cs_null.sql'; DEF spool_chart_1st_column = 'Date Column'; -- DEF cs_min_snap_id = ''; DEF cs_min_snap_end_time = ''; DEF cs_snap_interval_seconds = ''; DEF cs_ash_interval_ms = ''; -- DEF cs_1h_snap_id = ''; DEF cs_1d_snap_id = ''; DEF cs_7d_snap_id = ''; DEF cs_30d_snap_id = ''; -- DEF cs_sql_id = ''; DEF cs_signature = ''; DEF cs_sql_handle = ''; DEF cs_plan_hash_value = ''; DEF cs_application_category = ''; DEF cs_sql_hv = ''; -- DEF cs_sample_time_from = ''; DEF cs_sample_time_to = ''; -- -- [{AUTO}|MANUAL] DEF cs_snap_type = 'AUTO'; -- [{-666}|sid] DEF cs_sid = '-666'; -- DEF pdb_creation = ''; -- COL cs_realm NEW_V cs_realm FOR A3 NOPRI; COL cs_region NEW_V cs_region FOR A14 NOPRI; COL cs_rgn NEW_V cs_rgn FOR A3 NOPRI; COL cs_locale NEW_V cs_locale FOR A6 NOPRI; COL cs_other_acronym NEW_V cs_other_acronym FOR A8 NOPRI; COL cs_onsr NEW_V cs_onsr FOR A1 NOPRI; COL cs_dedicated NEW_V cs_dedicated FOR A1 NOPRI; COL cs_dbid NEW_V cs_dbid FOR A12 NOPRI; COL cs_db_name NEW_V cs_db_name FOR A9 NOPRI; COL cs_db_name_u NEW_V cs_db_name_u FOR A9 NOPRI; COL cs_db_open_mode NEW_V cs_db_open_mode FOR A10 NOPRI; COL cs_con_id NEW_V cs_con_id FOR A4 NOPRI; COL cs_mysid NEW_V cs_mysid NOPRI; COL cs_con_name NEW_V cs_con_name FOR A30 NOPRI; COL cs_current_schema NEW_V cs_current_schema FOR A30 NOPRI; COL cs_oracle_home NEW_V cs_oracle_home NOPRI; COL cs_pdb_open_mode NEW_V cs_pdb_open_mode FOR A10 NOPRI; COL cs_instance_number NEW_V cs_instance_number FOR A1 NOPRI; COL cs_cpu_util_perc NEW_V cs_cpu_util_perc FOR A6 NOPRI; COL cs_cpu_load NEW_V cs_cpu_load FOR A3 NOPRI; COL cs_num_cpu_cores NEW_V cs_num_cpu_cores FOR A3 NOPRI; COL cs_num_cpus NEW_V cs_num_cpus FOR A3 NOPRI; COL cs_cpu_count NEW_V cs_cpu_count FOR A3 NOPRI; DEF cs_allotted_cpu = '?'; COL cs_allotted_cpu NEW_V cs_allotted_cpu FOR A5 NOPRI; DEF cs_resource_manager_plan = '?'; COL cs_resource_manager_plan NEW_V cs_resource_manager_plan FOR A30 NOPRI; COL cs_db_version NEW_V cs_db_version FOR A17 NOPRI; COL cs_startup_time NEW_V cs_startup_time FOR A19 NOPRI; COL cs_startup_days NEW_V cs_startup_days FOR A5 NOPRI; COL cs_date_time NEW_V cs_date_time FOR A19 NOPRI; COL cs_file_date_time NEW_V cs_file_date_time FOR A19 NOPRI; COL cs_file_timestamp NEW_V cs_file_timestamp FOR A15 NOPRI; COL cs_easy_connect_string NEW_V cs_easy_connect_string FOR A132 NOPRI; COL cs_containers_count NEW_V cs_containers_count NOPRI; COL cs_cdb_availability_perc NEW_V cs_cdb_availability_perc FOR A3 NOPRI; -- COL cs_file_prefix NEW_V cs_file_prefix NOPRI; COL cs_file_name NEW_V cs_file_name NOPRI; COL cs_script_name NEW_V cs_script_name NOPRI; -- COL cs_min_snap_id NEW_V cs_min_snap_id FOR A6 NOPRI; COL cs_min_snap_end_time NEW_V cs_min_snap_end_time FOR A19 NOPRI; COL cs_snap_interval_seconds NEW_V cs_snap_interval_seconds FOR A4 NOPRI; COL cs_ash_interval_ms NEW_V cs_ash_interval_ms FOR A5 NOPRI; -- COL cs_1h_snap_id NEW_V cs_1h_snap_id FOR A6 NOPRI; COL cs_1d_snap_id NEW_V cs_1d_snap_id FOR A6 NOPRI; COL cs_7d_snap_id NEW_V cs_7d_snap_id FOR A6 NOPRI; COL cs_30d_snap_id NEW_V cs_30d_snap_id FOR A6 NOPRI; COL cs_startup_snap_id NEW_V cs_startup_snap_id FOR A6 NOPRI; -- COL cs_signature NEW_V cs_signature FOR A20 NOPRI; COL cs_sql_handle NEW_V cs_sql_handle FOR A20 NOPRI; -- COL stgtab_sqlbaseline_script NEW_V stgtab_sqlbaseline_script NOPRI; COL stgtab_sqlprofile_script NEW_V stgtab_sqlprofile_script NOPRI; COL stgtab_sqlpatch_script NEW_V stgtab_sqlpatch_script NOPRI; COL pdb_creation NEW_V pdb_creation NOPRI; -- VAR cs_begin_total_time NUMBER; VAR cs_begin_elapsed_time NUMBER; EXEC :cs_begin_total_time := DBMS_UTILITY.get_time; DEF cs_total_time = ''; DEF cs_elapsed_time = ''; COL cs_total_time NEW_V cs_total_time NOPRI; COL cs_elapsed_time NEW_V cs_elapsed_time NOPRI; -- VAR cs_signature NUMBER; VAR cs_sql_text CLOB; VAR cs_zapper_managed_sql_banner CLOB; VAR kiev_metadata_date VARCHAR2(30); -- SET TERM OFF; -- SELECT SYS_CONTEXT('USERENV', 'SID') AS cs_mysid, SYS_CONTEXT('USERENV', 'CON_ID') AS cs_con_id, SYS_CONTEXT('USERENV', 'CON_NAME') AS cs_con_name, SYS_CONTEXT('USERENV', 'CURRENT_SCHEMA') AS cs_current_schema, SYS_CONTEXT('USERENV', 'ORACLE_HOME') AS cs_oracle_home, TRIM(TO_CHAR(SYSDATE , '&&cs_datetime_full_format.')) AS cs_date_time, TRIM(TO_CHAR(SYSDATE , '&&cs_datetime_short_format.')) AS cs_file_date_time, TRIM(TO_CHAR(SYSDATE , '&&cs_datetime_dense_format.')) AS cs_file_timestamp FROM DUAL / -- SELECT TRIM(TO_CHAR(d.dbid)) AS cs_dbid, LOWER(d.name) AS cs_db_name, UPPER(d.name) AS cs_db_name_u, d.open_mode AS cs_db_open_mode FROM v$database d / -- COL cs_host_name NEW_V cs_host_name FOR A64 NOPRI; COL cs_odis NEW_V cs_odis FOR A1 NOPRI; SELECT TRIM(TO_CHAR(i.instance_number)) AS cs_instance_number, i.version AS cs_db_version, NVL(i.host_name, 'HOSTNAME') AS cs_host_name, CASE WHEN i.host_name IS NULL THEN 'Y' ELSE 'N' END AS cs_odis, TO_CHAR(i.startup_time, '&&cs_datetime_full_format.') AS cs_startup_time, TRIM(TO_CHAR(ROUND(SYSDATE - i.startup_time, 1), '990.0')) AS cs_startup_days FROM v$instance i / -- COL cs_skip NEW_V cs_skip FOR A2 NOPRI; COL list_sqlbaseline_script NEW_V list_sqlbaseline_script NOPRI; COL list_dg_members_script NEW_V list_dg_members_script NOPRI; COL cs_set_container_to_cdb_root NEW_V cs_set_container_to_cdb_root NOPRI; COL cs_set_container_to_curr_pdb NEW_V cs_set_container_to_curr_pdb NOPRI; COL cs_tools_schema NEW_V cs_tools_schema NOPRI; COL cs_stgtab_owner NEW_V cs_stgtab_owner NOPRI; COL cs_stgtab_prefix NEW_V cs_stgtab_prefix NOPRI; COL cs_spbl_create_pre NEW_V cs_spbl_create_pre NOPRI; COL cs_spbl_create_post NEW_V cs_spbl_create_post NOPRI; COL cs_spbl_validate NEW_V cs_spbl_validate NOPRI; COL cs_list_cbo_hints NEW_V cs_list_cbo_hints NOPRI; COL cs_list_cbo_hints_b NEW_V cs_list_cbo_hints_b NOPRI; COL cs_zapper_managed NEW_V cs_zapper_managed NOPRI; DEF cs_zapper_managed_sql = 'N'; -- SELECT CASE WHEN '&&cs_odis.' = 'Y' THEN '--' END AS cs_skip, CASE WHEN '&&cs_odis.' = 'Y' THEN 'cs_spbl_internal_list_simple.sql' ELSE 'cs_spbl_internal_list_debug.sql' END AS list_sqlbaseline_script, CASE WHEN '&&cs_odis.' = 'Y' THEN 'cs_null.sql' ELSE 'cs_internal_list_dg_members.sql' END AS list_dg_members_script, CASE WHEN '&&cs_odis.' = 'Y' THEN 'cs_null.sql' ELSE 'cs_set_container_to_cdb_root.sql' END AS cs_set_container_to_cdb_root, CASE WHEN '&&cs_odis.' = 'Y' THEN 'cs_null.sql' ELSE 'cs_set_container_to_curr_pdb.sql' END AS cs_set_container_to_curr_pdb, CASE WHEN '&&cs_odis.' = 'Y' THEN '&&odis_user.' ELSE '&&iod_user.' END AS cs_tools_schema, CASE WHEN '&&cs_odis.' = 'Y' THEN '&&odis_user.' ELSE '&&iod_user.' END AS cs_stgtab_owner, CASE WHEN '&&cs_odis.' = 'Y' THEN 'odis' ELSE 'iod' END AS cs_stgtab_prefix, CASE WHEN '&&cs_odis.' = 'Y' THEN 'cs_null.sql' ELSE 'cs_spbl_create_pre.sql' END AS cs_spbl_create_pre, CASE WHEN '&&cs_odis.' = 'Y' THEN 'cs_null.sql' ELSE 'cs_spbl_create_post.sql' END AS cs_spbl_create_post, CASE WHEN '&&cs_odis.' = 'Y' THEN 'cs_null.sql' ELSE 'cs_spbl_validate.sql' END AS cs_spbl_validate, CASE WHEN '&&cs_odis.' = 'Y' THEN 'cs_null.sql' ELSE 'cs_list_cbo_hints.sql' END AS cs_list_cbo_hints, CASE WHEN '&&cs_odis.' = 'Y' THEN 'cs_null.sql' ELSE 'cs_list_cbo_hints_b.sql' END AS cs_list_cbo_hints_b, CASE WHEN '&&cs_odis.' = 'Y' THEN 'cs_null.sql' ELSE 'cs_zapper_managed.sql' END AS cs_zapper_managed FROM DUAL / -- SELECT CASE WHEN COUNT(*) > 0 THEN 'cs_spbl_internal_stgtab_baseline.sql' ELSE 'cs_null.sql' END AS stgtab_sqlbaseline_script FROM dba_tables WHERE owner = UPPER('&&cs_stgtab_owner.') AND table_name = UPPER('&&cs_stgtab_prefix._stgtab_baseline') / -- SELECT CASE WHEN COUNT(*) > 0 THEN 'cs_sprf_internal_stgtab_sqlprofile.sql' ELSE 'cs_null.sql' END AS stgtab_sqlprofile_script FROM dba_tables WHERE owner = UPPER('&&cs_stgtab_owner.') AND table_name = UPPER('&&cs_stgtab_prefix._stgtab_sqlprof') / -- SELECT CASE WHEN COUNT(*) > 0 THEN 'cs_spch_internal_stgtab_sqlpatch.sql' ELSE 'cs_null.sql' END AS stgtab_sqlpatch_script FROM dba_tables WHERE owner = UPPER('&&cs_stgtab_owner.') AND table_name = UPPER('&&cs_stgtab_prefix._stgtab_sqlpatch') / -- SELECT i.version_full AS cs_db_version -- 19c FROM v$instance i / -- SELECT c.open_mode AS cs_pdb_open_mode FROM v$containers c WHERE c.con_id = SYS_CONTEXT('USERENV', 'CON_ID') / -- SELECT TRIM(TO_CHAR(ROUND(100 * os.busy_time / (os.busy_time + os.idle_time), 1), '990.0'))||'%' AS cs_cpu_util_perc FROM ( SELECT NULLIF(GREATEST(busy_t2.value - busy_t1.value, 0), 0) AS busy_time, NULLIF(GREATEST(idle_t2.value - idle_t1.value, 0), 0) AS idle_time FROM (SELECT value FROM dba_hist_osstat WHERE stat_name = 'BUSY_TIME' ORDER BY snap_id DESC NULLS LAST FETCH FIRST 1 ROW ONLY) busy_t1, (SELECT value FROM dba_hist_osstat WHERE stat_name = 'IDLE_TIME' ORDER BY snap_id DESC NULLS LAST FETCH FIRST 1 ROW ONLY) idle_t1, (SELECT value FROM v$osstat WHERE stat_name = 'BUSY_TIME') busy_t2, (SELECT value FROM v$osstat WHERE stat_name = 'IDLE_TIME') idle_t2 ) os / -- SELECT TRIM(TO_CHAR(o.value)) AS cs_num_cpu_cores FROM v$osstat o WHERE o.stat_name = 'NUM_CPU_CORES' / -- SELECT TRIM(TO_CHAR(o2.value)) AS cs_num_cpus FROM v$osstat o2 WHERE o2.stat_name = 'NUM_CPUS' / -- SELECT TRIM(TO_CHAR(ROUND(o3.value))) AS cs_cpu_load FROM v$osstat o3 WHERE o3.stat_name = 'LOAD' / -- SELECT p.value AS cs_cpu_count FROM v$parameter p WHERE p.name = 'cpu_count' / -- SELECT TO_CHAR(h.op_timestamp, '&&cs_datetime_full_format') AS pdb_creation FROM dba_pdb_history h WHERE h.operation = 'CREATE' / -- COL dba_or_cdb NEW_V dba_or_cdb NOPRI; SELECT CASE WHEN SYS_CONTEXT('USERENV', 'CON_NAME') = 'CDB$ROOT' THEN 'cdb' ELSE 'dba' END AS dba_or_cdb FROM DUAL / -- DEF cs_scope_1 = ''; DEF cs_sqlstat_days = '61'; @@cs_sample_time_boundaries.sql @@cs_snap_id_from_and_to.sql -- /****************************************************************************************/ -- ALTER SESSION SET container = CDB$ROOT; -- SELECT 'CONTAINERS:'||TRIM(TO_CHAR(COUNT(*))) AS cs_containers_count FROM v$containers WHERE con_id > 2 AND open_mode = 'READ WRITE' / -- SELECT TO_CHAR(ROUND(100 * &&cs_tools_schema..PDB_CONFIG.get_cdb_availability), 'FM990') AS cs_cdb_availability_perc FROM DUAL / -- DEF cs_region = 'UNKNOWN_REGION'; SELECT CASE WHEN '&&cs_host_name.' = 'HOSTNAME' THEN 'UNKNOWN_REGION' ELSE &&cs_tools_schema..IOD_META_AUX.get_region('&&cs_host_name.') END AS cs_region FROM DUAL / -- SELECT REPLACE(&&cs_tools_schema..IOD_META_AUX.get_realm('&&cs_region.'), '?', 'X') AS cs_realm, REPLACE(&&cs_tools_schema..IOD_META_AUX.get_region_acronym('&&cs_region.'), '?', 'X') AS cs_rgn FROM DUAL / -- SELECT REPLACE(&&cs_tools_schema..IOD_META_AUX.get_other_acronym('&&cs_region.'), '?', 'X') AS cs_other_acronym, REPLACE(&&cs_tools_schema..IOD_META_AUX.get_onsr('&&cs_region.'), '?', 'X') AS cs_onsr, REPLACE(&&cs_tools_schema..IOD_META_AUX.get_dedicated('&&cs_region.'), '?', 'X') AS cs_dedicated FROM DUAL / -- SELECT &&cs_tools_schema..IOD_META_AUX.get_locale(value) AS cs_locale FROM v$parameter WHERE name = 'db_domain' / -- COL zapper_19_actions_script NEW_V zapper_19_actions_script NOPRI; SELECT CASE WHEN COUNT(*) > 0 THEN 'cs_zapper_19_actions.sql' ELSE 'cs_null.sql' END AS zapper_19_actions_script FROM dba_tables WHERE owner = UPPER('&&cs_stgtab_owner.') AND table_name = UPPER('zapper_log') / -- COL oem_me_sqlperf_script NEW_V oem_me_sqlperf_script NOPRI; SELECT CASE WHEN COUNT(*) > 0 THEN 'cs_oem_me_sqlperf.sql' ELSE 'cs_null.sql' END AS oem_me_sqlperf_script FROM dba_tables WHERE owner = UPPER('&&cs_stgtab_owner.') AND table_name = UPPER('alerts_hist') / -- SELECT /*+ OPT_PARAM('_px_cdb_view_enabled' 'FALSE') */ r.plan AS cs_resource_manager_plan, CASE WHEN '&&cs_con_name.' = 'CDB$ROOT' THEN '&&cs_cpu_count. (SAME AS CPU_COUNT)' WHEN r.utilization_limit IS NULL OR '&&cs_cpu_count.' IS NULL THEN '?' ELSE TRIM(TO_CHAR(ROUND(r.utilization_limit * TO_NUMBER('&&cs_cpu_count.') / 100, 1), '990.0'))||'('||r.utilization_limit||'% OF CPU_COUNT)' END AS cs_allotted_cpu FROM v$parameter p, dba_cdb_rsrc_plan_directives r WHERE p.name = 'resource_manager_plan' AND r.directive_type(+) = 'PDB' AND r.plan(+) = REPLACE(p.value, 'FORCE:') AND r.pluggable_database(+) = '&&cs_con_name.' / -- SELECT /*+ OPT_PARAM('_px_cdb_view_enabled' 'FALSE') */ COALESCE('&&cs_resource_manager_plan.', r.plan) AS cs_resource_manager_plan, CASE WHEN '&&cs_con_name.' = 'CDB$ROOT' THEN '&&cs_cpu_count.' WHEN r.utilization_limit IS NULL OR '&&cs_cpu_count.' IS NULL THEN '?' WHEN '&&cs_allotted_cpu.' <> '?' THEN '&&cs_allotted_cpu.' ELSE TRIM(TO_CHAR(ROUND(r.utilization_limit * TO_NUMBER('&&cs_cpu_count.') / 100, 1), '990.0'))||'('||r.utilization_limit||'% by Default)' END AS cs_allotted_cpu FROM v$parameter p, dba_cdb_rsrc_plan_directives r WHERE p.name = 'resource_manager_plan' AND r.directive_type(+) = 'DEFAULT_DIRECTIVE' AND r.plan(+) = REPLACE(p.value, 'FORCE:') AND r.pluggable_database(+) = 'ORA$DEFAULT_PDB_DIRECTIVE' / -- COL blackout_dates_script NEW_V blackout_dates_script NOPRI; SELECT CASE WHEN COUNT(*) > 0 THEN 'cs_blackout_internal.sql' ELSE 'cs_null.sql' END AS blackout_dates_script FROM dba_tables WHERE owner = UPPER('&&cs_stgtab_owner.') AND table_name = 'BLACKOUT' / DEF cs_blackout_times = ''; @@&&blackout_dates_script. -- DEF cs_avg_running_sessions_cdb = '?'; COL cs_avg_running_sessions_cdb NEW_V cs_avg_running_sessions_cdb NOPRI; SELECT TRIM(TO_CHAR(ROUND(avg_running_sessions))) AS cs_avg_running_sessions_cdb FROM ( SELECT end_time, SUM(avg_running_sessions) AS avg_running_sessions, ROW_NUMBER() OVER (ORDER BY end_time DESC) AS rn FROM &&cs_tools_schema..dbc_rsrcmgrmetric_history WHERE /*consumer_group_name = 'OTHER_GROUPS' AND*/ end_time > SYSDATE - (1/24) GROUP BY end_time ) WHERE rn = 1 / DEF cs_avg_running_sessions_pdb = '?'; COL cs_avg_running_sessions_pdb NEW_V cs_avg_running_sessions_pdb NOPRI; SELECT TRIM(TO_CHAR(ROUND(avg_running_sessions))) AS cs_avg_running_sessions_pdb FROM ( SELECT end_time, SUM(avg_running_sessions) AS avg_running_sessions, ROW_NUMBER() OVER (ORDER BY end_time DESC) AS rn FROM &&cs_tools_schema..dbc_rsrcmgrmetric_history WHERE pdb_name = '&&cs_con_name.' AND /*consumer_group_name = 'OTHER_GROUPS' AND*/ end_time > SYSDATE - (1/24) GROUP BY end_time ) WHERE rn = 1 / -- replaced due to performance concerns (it would take up to 8 seconds in some environments) -- SELECT TRIM(TO_CHAR(ROUND(SUM(avg_running_sessions)))) AS cs_avg_running_sessions_cdb FROM v$rsrcmgrmetric WHERE consumer_group_name = 'OTHER_GROUPS' -- / -- COL cs_host_shape NEW_V cs_host_shape NOPRI; COL cs_disk_config NEW_V cs_disk_config NOPRI; SELECT 'SHAPE:'||host_shape AS cs_host_shape, 'DISK:'||disk_config AS cs_disk_config FROM &&cs_tools_schema..dbc_system ORDER BY timestamp DESC FETCH FIRST 1 ROW ONLY / -- BEGIN FOR i IN (SELECT owner, table_name FROM dba_tables WHERE owner = UPPER('&&cs_tools_schema.') AND table_name = UPPER('kiev_ind_columns')) LOOP EXECUTE IMMEDIATE 'SELECT TO_CHAR(timestamp, ''&&cs_timestamp_full_format.'') AS kiev_metadata_date FROM '||i.owner||'.'||i.table_name||' WHERE ROWNUM = 1' INTO :kiev_metadata_date; END LOOP; END; / COL kiev_metadata_date NEW_V kiev_metadata_date NOPRI; SELECT :kiev_metadata_date AS kiev_metadata_date FROM DUAL / -- -- time when host was rebooted (executed from CD$ROOT only) DEF cs_system_boot_time = ''; COL cs_system_boot_time NEW_V cs_system_boot_time FOR A19 NOPRI; SELECT TO_CHAR(MAX(system_boot_time), '&&cs_datetime_full_format.') AS cs_system_boot_time FROM &&cs_tools_schema..dbc_system; -- -- phonebook, compartment_id and kiev_data_store DEF cs_phonebook_pdb = ''; DEF cs_compartment_id_pdb = ''; DEF cs_kiev_store_name = ''; -- COL cs_phonebook_pdb NEW_V cs_phonebook_pdb FOR A256 NOPRI; COL cs_compartment_id_pdb NEW_V cs_compartment_id_pdb FOR A128 NOPRI; COL cs_kiev_store_name NEW_V cs_kiev_store_name FOR A128 NOPRI; -- -- executed from CD$ROOT only SELECT NVL(phonebook, 'UNKNOWN') AS cs_phonebook_pdb, -- out of horizon (oc1) else from kiev/dbpcs metadata NVL(compartment_id, 'UNKNOWN') AS cs_compartment_id_pdb, -- out of kiev or dbcps metadata NVL(kiev_store_name, 'N/A') AS cs_kiev_store_name -- null for kiev multi-schema pdbs FROM &&cs_tools_schema..dbc_pdb_metadata_v WHERE pdb_name = '&&cs_con_name.' -- from SYS_CONTEXT('USERENV', 'CON_NAME') when connected into PDB / -- ALTER SESSION SET CONTAINER = &&cs_con_name.; -- /****************************************************************************************/ -- DEF cs_easy_connect_string = 'CONNECT_STRING'; WITH service AS ( SELECT /*+ MATERIALIZWE NO_MERGE OPT_PARAM('_px_cdb_view_enabled' 'FALSE') */ CASE WHEN ds.pdb = 'CDB$ROOT' THEN 'oradb' WHEN ts.name = 'KIEV' THEN 'kiev' ELSE 'orapdb' END type, ds.name||'.'||SYS_CONTEXT('USERENV','DB_DOMAIN') name, vs.con_id, ds.pdb FROM cdb_services ds, v$active_services vs, v$tablespace ts WHERE 1 = 1 AND ds.pdb = SYS_CONTEXT ('USERENV', 'CON_NAME') AND ds.name LIKE 's\_%' ESCAPE '\' AND ds.name NOT LIKE '%\_ro' ESCAPE '\' AND vs.con_name = ds.pdb AND vs.name = ds.name AND ts.con_id(+) = vs.con_id AND ts.name(+) = 'KIEV' ) SELECT --s.pdb, --'jdbc:oracle:thin:@//'|| CASE WHEN '&&cs_host_name.' = 'HOSTNAME' THEN 'CONNECT_STRING' ELSE s.type||'-'|| CASE WHEN s.pdb = 'CDB$ROOT' THEN REPLACE(LOWER(SYS_CONTEXT('USERENV','DB_NAME')),'_','-') ELSE REPLACE(LOWER(s.pdb),'_','-') END||'.svc.'|| CASE WHEN REGEXP_COUNT(REPLACE(REPLACE(LOWER(SYS_CONTEXT('USERENV','DB_DOMAIN')),'regional.',''),'.regional',''),'\.') = 0 THEN SUBSTR('&&cs_host_name.',INSTR('&&cs_host_name.','.',-1,1)+1) ELSE SUBSTR('&&cs_host_name.',INSTR('&&cs_host_name.','.',-1,2)+1) END||'/'|| s.name END cs_easy_connect_string FROM service s / -- SELECT TRIM(TO_CHAR(snap_id)) cs_min_snap_id, TRIM(TO_CHAR(end_interval_time, '&&cs_datetime_full_format.')) cs_min_snap_end_time FROM dba_hist_snapshot WHERE dbid = TO_NUMBER('&&cs_dbid.') AND instance_number = TO_NUMBER('&&cs_instance_number.') ORDER BY snap_id ASC FETCH FIRST 1 ROW ONLY / -- @@cs_last_snap.sql -- SELECT TRIM(TO_CHAR((24 * 3600 * EXTRACT(day FROM snap_interval)) + (3600 * EXTRACT(hour FROM snap_interval)) + (60 * EXTRACT(minute FROM snap_interval)) + EXTRACT(second FROM snap_interval))) cs_snap_interval_seconds FROM dba_hist_wr_control / SELECT TRIM(TO_CHAR(sampling_interval)) cs_ash_interval_ms FROM v$ash_info / -- SELECT TRIM(TO_CHAR(MIN(snap_id))) cs_1h_snap_id FROM dba_hist_snapshot WHERE dbid = TO_NUMBER('&&cs_dbid.') AND instance_number = TO_NUMBER('&&cs_instance_number.') AND end_interval_time > SYSDATE - (1/24) / SELECT TRIM(TO_CHAR(MIN(snap_id))) cs_1d_snap_id FROM dba_hist_snapshot WHERE dbid = TO_NUMBER('&&cs_dbid.') AND instance_number = TO_NUMBER('&&cs_instance_number.') AND end_interval_time > SYSDATE - 1 / SELECT TRIM(TO_CHAR(MIN(snap_id))) cs_7d_snap_id FROM dba_hist_snapshot WHERE dbid = TO_NUMBER('&&cs_dbid.') AND instance_number = TO_NUMBER('&&cs_instance_number.') AND end_interval_time > SYSDATE - 7 / SELECT TRIM(TO_CHAR(MIN(snap_id))) cs_30d_snap_id FROM dba_hist_snapshot WHERE dbid = TO_NUMBER('&&cs_dbid.') AND instance_number = TO_NUMBER('&&cs_instance_number.') AND end_interval_time > SYSDATE - 30 / SELECT TRIM(TO_CHAR(MIN(snap_id))) cs_startup_snap_id FROM dba_hist_snapshot WHERE dbid = TO_NUMBER('&&cs_dbid.') AND instance_number = TO_NUMBER('&&cs_instance_number.') AND begin_interval_time > TO_DATE('&&cs_startup_time.', '&&cs_datetime_full_format.') / -- DEF cs_kiev_owner = ''; COL cs_kiev_owner NEW_V cs_kiev_owner NOPRI; SELECT owner cs_kiev_owner FROM dba_tables WHERE table_name = 'KIEVDATASTOREMETADATA' AND num_rows > 0 ORDER BY num_rows / DEF cs_jason_value = ''; COL cs_jason_value NEW_V cs_jason_value NOPRI; select JSON_VALUE(DATA, '$.transactorConfiguration.algorithmType') cs_jason_value from &&cs_kiev_owner..kievdynamicconfiguration where version=(select MAX(version) from &&cs_kiev_owner..kievdynamicconfiguration) / DEF cs_kiev_version = ''; COL cs_kiev_version NEW_V cs_kiev_version FOR A30 TRUNC NOPRI; DEF cs_schema_name = ''; COL cs_schema_name NEW_V cs_schema_name FOR A30 TRUNC NOPRI; SELECT CASE WHEN '&&cs_kiev_owner.' IS NULL THEN 'NOT_KIEV' ELSE NVL('&&cs_jason_value.', 'CLASSIC') END AS cs_kiev_version, NVL('&&cs_kiev_owner.', 'NOT_KIEV') AS cs_schema_name FROM DUAL / -- @@/tmp/cs_default_reference.sql SET TERM ON; --CLEAR SCREEN; PRO PRO Reference: [{&&cs_default_reference.}|DBPERF-nnnnn|IOD-nnnnn|NOC-nnnnn|PROJECT-nnnnn] PRO Enter Reference: &&cs_reference. COL cs_reference NEW_V cs_reference NOPRI; SELECT UPPER(REPLACE(COALESCE('&&cs_reference.', '&&cs_default_reference.'), ' ')) AS cs_reference FROM DUAL; COL cs_reference_sanitized NEW_V cs_reference_sanitized NOPRI; SELECT TRANSLATE('&&cs_reference.', '*()@#$[]{}|/\".,?<>''', '___________________') cs_reference_sanitized FROM DUAL; -- DEF target_local_directory = '&&cs_def_local_dir.'; COL cs_local_dir NEW_V cs_local_dir NOPRI; SELECT NVL('&&target_local_directory.', '&&cs_def_local_dir.') cs_local_dir FROM DUAL; -- DEF cs_extended_reference = ''; COL cs_extended_reference NEW_V cs_extended_reference NOPRI; SELECT '&&cs_reference.'|| CASE '&&cs_odis.' WHEN 'N' THEN ' &&cs_realm. &&cs_region. &&cs_rgn. &&cs_locale.' END|| ' &&cs_db_name..&&cs_con_name.'|| NVL2('&&cs_other_acronym.', ' &&cs_other_acronym.', NULL)|| CASE '&&cs_odis.' WHEN 'Y' THEN ' ODIS' END|| CASE '&&cs_onsr.' WHEN 'Y' THEN ' ONSR' END|| CASE '&&cs_dedicated.' WHEN 'Y' THEN ' DEDICATED' END AS cs_extended_reference FROM DUAL / SPO /tmp/cs_default_reference.sql; PRO DEF cs_default_reference = "&&cs_reference."; SPO OFF; -- SET TERM OFF; VAR who_am_i CLOB; !who am i > /tmp/get_who_am_i.txt get /tmp/get_who_am_i.txt . 999999 ]'; END;; 0 BEGIN :who_am_i := q'[ / DEF who_am_i = 'oracle'; COL who_am_i NEW_V who_am_i NOPRI; SELECT REGEXP_SUBSTR(:who_am_i, '[a-z]+') AS who_am_i FROM DUAL / DEF engineer_info = ''; COL engineer_info NEW_V engineer_info NOPRI; SELECT SUBSTR('&&who_am_i. '||SUBSTR(REPLACE('&&cs_reference.', ' '), 1, 30)||' &&cs_date_time.', 1, 64) AS engineer_info FROM DUAL / -- V$SESSION.CLIENT_INFO EXEC DBMS_APPLICATION_INFO.set_client_info(client_info => '&&engineer_info.'); -- V$SESSION.CLIENT_IDENTIFIER V$ACTIVE_SESSION_HISTORY.CLIENT_ID DBA_HIST_ACTIVE_SESS_HISTORY.CLIENT_ID EXEC DBMS_SESSION.set_identifier(client_id => '&&engineer_info.'); SET TERM ON;