From bfae919891decf1b2175df62cfbbf61d13ad59f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20So=C5=82tan?= Date: Fri, 24 May 2024 09:51:35 +0000 Subject: [PATCH 1/5] integrate pdbsinfo.sql from DMA to Dumper --- .../oracle/StatsTaskListGenerator.java | 5 ++- .../oracle-stats/metadata/pdbs-info.sql | 45 +++++++++++++++++++ 2 files changed, 48 insertions(+), 2 deletions(-) create mode 100644 dumper/app/src/main/resources/oracle-stats/metadata/pdbs-info.sql diff --git a/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/oracle/StatsTaskListGenerator.java b/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/oracle/StatsTaskListGenerator.java index 3bad6191f..b2e83662c 100644 --- a/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/oracle/StatsTaskListGenerator.java +++ b/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/oracle/StatsTaskListGenerator.java @@ -30,9 +30,10 @@ class StatsTaskListGenerator { ImmutableList> createTasks(ConnectorArguments arguments) throws IOException { ImmutableList queries = ImmutableList.of( - OracleStatsQuery.create("hist-cmd-types", StatsSource.STATSPACK), + OracleStatsQuery.create("pdbs-info", StatsSource.METADATA), OracleStatsQuery.create("app-schemas-pdbs", StatsSource.METADATA), - OracleStatsQuery.create("app-schemas-summary", StatsSource.METADATA) + OracleStatsQuery.create("app-schemas-summary", StatsSource.METADATA), + OracleStatsQuery.create("hist-cmd-types", StatsSource.STATSPACK) // TODO: add entries for other SQLs to this list ); diff --git a/dumper/app/src/main/resources/oracle-stats/metadata/pdbs-info.sql b/dumper/app/src/main/resources/oracle-stats/metadata/pdbs-info.sql new file mode 100644 index 000000000..3a35820af --- /dev/null +++ b/dumper/app/src/main/resources/oracle-stats/metadata/pdbs-info.sql @@ -0,0 +1,45 @@ +-- Copyright 2022-2024 Google LLC +-- Copyright 2013-2021 CompilerWorks +-- +-- Licensed under the Apache License, Version 2.0 (the "License"); +-- you may not use this file except in compliance with the License. +-- You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +SELECT + con_id "ConId", + inst_id "InstId", + sum(sum_bytes) "SumBytes", + sum(used_mem) "UsedMem", + sum(alloc_mem) "AllocMem", + sum(max_mem) "MaxMem" +FROM ( + SELECT + con_id, + inst_id, + sum(bytes) sum_bytes, + NULL used_mem, + NULL alloc_mem, + NULL max_mem + FROM gv$sgastat + GROUP BY con_id, inst_id + UNION ( + SELECT + con_id, + inst_id, + NULL sum_bytes, + sum(pga_used_mem) used_mem, + sum(pga_alloc_mem) alloc_mem, + sum(pga_max_mem) max_mem + FROM gv$process + GROUP BY con_id, inst_id + ) +) +GROUP BY con_id, inst_id +ORDER BY con_id, inst_id From bb62755fe2a915f389417ac775d42b4146d64252 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20So=C5=82tan?= Date: Fri, 24 May 2024 12:48:40 +0000 Subject: [PATCH 2/5] integrate dbfeatures.sql from DMA to Dumper --- .../oracle/StatsTaskListGenerator.java | 12 ++++--- .../oracle-stats/metadata/db-features.sql | 32 +++++++++++++++++++ 2 files changed, 40 insertions(+), 4 deletions(-) create mode 100644 dumper/app/src/main/resources/oracle-stats/metadata/db-features.sql diff --git a/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/oracle/StatsTaskListGenerator.java b/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/oracle/StatsTaskListGenerator.java index b2e83662c..4be38c706 100644 --- a/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/oracle/StatsTaskListGenerator.java +++ b/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/oracle/StatsTaskListGenerator.java @@ -16,6 +16,9 @@ */ package com.google.edwmigration.dumper.application.dumper.connector.oracle; +import static com.google.edwmigration.dumper.application.dumper.connector.oracle.StatsTaskListGenerator.StatsSource.METADATA; +import static com.google.edwmigration.dumper.application.dumper.connector.oracle.StatsTaskListGenerator.StatsSource.STATSPACK; + import com.google.common.collect.ImmutableList; import com.google.edwmigration.dumper.application.dumper.ConnectorArguments; import com.google.edwmigration.dumper.application.dumper.task.Task; @@ -30,10 +33,11 @@ class StatsTaskListGenerator { ImmutableList> createTasks(ConnectorArguments arguments) throws IOException { ImmutableList queries = ImmutableList.of( - OracleStatsQuery.create("pdbs-info", StatsSource.METADATA), - OracleStatsQuery.create("app-schemas-pdbs", StatsSource.METADATA), - OracleStatsQuery.create("app-schemas-summary", StatsSource.METADATA), - OracleStatsQuery.create("hist-cmd-types", StatsSource.STATSPACK) + OracleStatsQuery.create("db-features", METADATA), + OracleStatsQuery.create("pdbs-info", METADATA), + OracleStatsQuery.create("app-schemas-pdbs", METADATA), + OracleStatsQuery.create("app-schemas-summary", METADATA), + OracleStatsQuery.create("hist-cmd-types", STATSPACK) // TODO: add entries for other SQLs to this list ); diff --git a/dumper/app/src/main/resources/oracle-stats/metadata/db-features.sql b/dumper/app/src/main/resources/oracle-stats/metadata/db-features.sql new file mode 100644 index 000000000..88ea921de --- /dev/null +++ b/dumper/app/src/main/resources/oracle-stats/metadata/db-features.sql @@ -0,0 +1,32 @@ +-- Copyright 2022-2024 Google LLC +-- Copyright 2013-2021 CompilerWorks +-- +-- Licensed under the Apache License, Version 2.0 (the "License"); +-- you may not use this file except in compliance with the License. +-- You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +SELECT + A.dbid "DbId", + A.name "Name", + A.version "Version", + A.detected_usages "DetectedUsages", + A.total_samples "TotalSamples", + A.currently_used "CurrentlyUsed", + A.first_usage_date "FirstUsageDate", + A.last_usage_date "LastUsageDate", + A.aux_count "AuxCount", + A.feature_info "FeatureInfo", + A.last_sample_date "LastSampleDate", + A.last_sample_period "LastSamplePeriod", + A.sample_interval "SampleInterval", + A.description "Description", + A.con_id "ConId" +FROM cdb_feature_usage_statistics A +ORDER BY A.name From 6c7cd46cd9ec549a494647bfa504234ba6d8b3ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20So=C5=82tan?= Date: Fri, 24 May 2024 14:22:11 +0000 Subject: [PATCH 3/5] add a gv$instance query --- .../oracle/StatsTaskListGenerator.java | 1 + .../oracle-stats/metadata/db-instances.sql | 40 +++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 dumper/app/src/main/resources/oracle-stats/metadata/db-instances.sql diff --git a/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/oracle/StatsTaskListGenerator.java b/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/oracle/StatsTaskListGenerator.java index 4be38c706..ebb4bcee8 100644 --- a/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/oracle/StatsTaskListGenerator.java +++ b/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/oracle/StatsTaskListGenerator.java @@ -34,6 +34,7 @@ ImmutableList> createTasks(ConnectorArguments arguments) throws IOExcept ImmutableList queries = ImmutableList.of( OracleStatsQuery.create("db-features", METADATA), + OracleStatsQuery.create("db-instances", METADATA), OracleStatsQuery.create("pdbs-info", METADATA), OracleStatsQuery.create("app-schemas-pdbs", METADATA), OracleStatsQuery.create("app-schemas-summary", METADATA), diff --git a/dumper/app/src/main/resources/oracle-stats/metadata/db-instances.sql b/dumper/app/src/main/resources/oracle-stats/metadata/db-instances.sql new file mode 100644 index 000000000..99feed79c --- /dev/null +++ b/dumper/app/src/main/resources/oracle-stats/metadata/db-instances.sql @@ -0,0 +1,40 @@ +-- Copyright 2022-2024 Google LLC +-- Copyright 2013-2021 CompilerWorks +-- +-- Licensed under the Apache License, Version 2.0 (the "License"); +-- you may not use this file except in compliance with the License. +-- You may obtain a copy of the License at +-- +-- http://www.apache.org/licenses/LICENSE-2.0 +-- +-- Unless required by applicable law or agreed to in writing, software +-- distributed under the License is distributed on an "AS IS" BASIS, +-- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +-- See the License for the specific language governing permissions and +-- limitations under the License. +SELECT + A.inst_id "InstId", + A.instance_number "InstanceNumber", + A.instance_name "InstanceName", + A.host_name "HostName", + A.version "Version", + A.version_legacy "VersionLegacy", + A.version_full "VersionFull", + A.startup_time "StartupTime", + A.status "Status", + A.parallel "Parallel", + A.thread# "ThreadNumber", + A.archiver "Archiver", + A.log_switch_wait "LogSwitchWait", + A.logins "Logins", + A.shutdown_pending "ShutdownPending", + A.database_status "DatabaseStatus", + A.instance_role "InstanceRole", + A.active_state "ActiveState", + A.blocked "Blocked", + A.con_id "ConId", + A.instance_mode "InstanceMode", + A.edition "Edition", + A.family "Family", + A.database_type "DatabaseType" +FROM gv$instance A From 4a867f097d7b0b3e6d0e1c90078c627e78a728dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20So=C5=82tan?= Date: Mon, 27 May 2024 11:10:27 +0000 Subject: [PATCH 4/5] rename 'METADATA' to 'NATIVE' to match design --- .../connector/oracle/StatsTaskListGenerator.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/oracle/StatsTaskListGenerator.java b/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/oracle/StatsTaskListGenerator.java index ebb4bcee8..ffc8773a2 100644 --- a/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/oracle/StatsTaskListGenerator.java +++ b/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/oracle/StatsTaskListGenerator.java @@ -16,7 +16,7 @@ */ package com.google.edwmigration.dumper.application.dumper.connector.oracle; -import static com.google.edwmigration.dumper.application.dumper.connector.oracle.StatsTaskListGenerator.StatsSource.METADATA; +import static com.google.edwmigration.dumper.application.dumper.connector.oracle.StatsTaskListGenerator.StatsSource.NATIVE; import static com.google.edwmigration.dumper.application.dumper.connector.oracle.StatsTaskListGenerator.StatsSource.STATSPACK; import com.google.common.collect.ImmutableList; @@ -33,11 +33,11 @@ class StatsTaskListGenerator { ImmutableList> createTasks(ConnectorArguments arguments) throws IOException { ImmutableList queries = ImmutableList.of( - OracleStatsQuery.create("db-features", METADATA), - OracleStatsQuery.create("db-instances", METADATA), - OracleStatsQuery.create("pdbs-info", METADATA), - OracleStatsQuery.create("app-schemas-pdbs", METADATA), - OracleStatsQuery.create("app-schemas-summary", METADATA), + OracleStatsQuery.create("db-features", NATIVE), + OracleStatsQuery.create("db-instances", NATIVE), + OracleStatsQuery.create("pdbs-info", NATIVE), + OracleStatsQuery.create("app-schemas-pdbs", NATIVE), + OracleStatsQuery.create("app-schemas-summary", NATIVE), OracleStatsQuery.create("hist-cmd-types", STATSPACK) // TODO: add entries for other SQLs to this list ); @@ -53,7 +53,7 @@ ImmutableList> createTasks(ConnectorArguments arguments) throws IOExcept /** The source of performance statistics. */ enum StatsSource { AWR("awr"), - METADATA("metadata"), + NATIVE("metadata"), STATSPACK("statspack"); final String value; From ab9fc0e3cf605ca6a8f083d77fb862c74dc21f5e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miko=C5=82aj=20So=C5=82tan?= Date: Mon, 27 May 2024 12:29:40 +0000 Subject: [PATCH 5/5] rename the stats SQLs directory to match the new enum value name --- .../dumper/connector/oracle/StatsTaskListGenerator.java | 2 +- .../oracle-stats/{metadata => native}/app-schemas-pdbs.sql | 0 .../oracle-stats/{metadata => native}/app-schemas-summary.sql | 0 .../resources/oracle-stats/{metadata => native}/db-features.sql | 0 .../oracle-stats/{metadata => native}/db-instances.sql | 0 .../resources/oracle-stats/{metadata => native}/pdbs-info.sql | 0 6 files changed, 1 insertion(+), 1 deletion(-) rename dumper/app/src/main/resources/oracle-stats/{metadata => native}/app-schemas-pdbs.sql (100%) rename dumper/app/src/main/resources/oracle-stats/{metadata => native}/app-schemas-summary.sql (100%) rename dumper/app/src/main/resources/oracle-stats/{metadata => native}/db-features.sql (100%) rename dumper/app/src/main/resources/oracle-stats/{metadata => native}/db-instances.sql (100%) rename dumper/app/src/main/resources/oracle-stats/{metadata => native}/pdbs-info.sql (100%) diff --git a/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/oracle/StatsTaskListGenerator.java b/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/oracle/StatsTaskListGenerator.java index ffc8773a2..d6dc65cad 100644 --- a/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/oracle/StatsTaskListGenerator.java +++ b/dumper/app/src/main/java/com/google/edwmigration/dumper/application/dumper/connector/oracle/StatsTaskListGenerator.java @@ -53,7 +53,7 @@ ImmutableList> createTasks(ConnectorArguments arguments) throws IOExcept /** The source of performance statistics. */ enum StatsSource { AWR("awr"), - NATIVE("metadata"), + NATIVE("native"), STATSPACK("statspack"); final String value; diff --git a/dumper/app/src/main/resources/oracle-stats/metadata/app-schemas-pdbs.sql b/dumper/app/src/main/resources/oracle-stats/native/app-schemas-pdbs.sql similarity index 100% rename from dumper/app/src/main/resources/oracle-stats/metadata/app-schemas-pdbs.sql rename to dumper/app/src/main/resources/oracle-stats/native/app-schemas-pdbs.sql diff --git a/dumper/app/src/main/resources/oracle-stats/metadata/app-schemas-summary.sql b/dumper/app/src/main/resources/oracle-stats/native/app-schemas-summary.sql similarity index 100% rename from dumper/app/src/main/resources/oracle-stats/metadata/app-schemas-summary.sql rename to dumper/app/src/main/resources/oracle-stats/native/app-schemas-summary.sql diff --git a/dumper/app/src/main/resources/oracle-stats/metadata/db-features.sql b/dumper/app/src/main/resources/oracle-stats/native/db-features.sql similarity index 100% rename from dumper/app/src/main/resources/oracle-stats/metadata/db-features.sql rename to dumper/app/src/main/resources/oracle-stats/native/db-features.sql diff --git a/dumper/app/src/main/resources/oracle-stats/metadata/db-instances.sql b/dumper/app/src/main/resources/oracle-stats/native/db-instances.sql similarity index 100% rename from dumper/app/src/main/resources/oracle-stats/metadata/db-instances.sql rename to dumper/app/src/main/resources/oracle-stats/native/db-instances.sql diff --git a/dumper/app/src/main/resources/oracle-stats/metadata/pdbs-info.sql b/dumper/app/src/main/resources/oracle-stats/native/pdbs-info.sql similarity index 100% rename from dumper/app/src/main/resources/oracle-stats/metadata/pdbs-info.sql rename to dumper/app/src/main/resources/oracle-stats/native/pdbs-info.sql