GoogleCloudPlatform / database-assessment

Database Migration Assessment
https://googlecloudplatform.github.io/database-assessment/
Apache License 2.0
59 stars 35 forks source link

ER: Adding query for validate source platform compatibility for RMAN backups in mixed platforms #213

Open smpawar opened 1 year ago

smpawar commented 1 year ago

Enhancement Request Details

As a waverunner user I want to validate that if source environment is RMAN compatible .

Query to validate source platform compatibility:

For Oracle database 12.2 and lower versions:

set lines 200 pages 999 col platform_name for a30 col version_full for a20 col compatible_full for a20 Col support_status for a15 with vsrcinfo as ( SELECT platform_id, platform_name, (SELECT version FROM product_component_version where product like '%Oracle%Database%') version_full, (SELECT substr(version,1,2) FROM product_component_version where product like '%Oracle%Database%') version_first_digit, (SELECT substr(version,4,1) FROM product_component_version where product like '%Oracle%Database%') version_second_digit, (select value from v$parameter where name = 'compatible') compatible_full, (select substr(value,1,2) from v$parameter where name = 'compatible') compatible_first_digit, (select substr(value,4,1) from v$parameter where name = 'compatible') compatible_second_digit FROM v$database ) SELECT platform_id, platform_name, version_full, compatible_full, case when platform_name = 'Solaris Operating System (x86-64)' and to_number(version_first_digit) = 10 and to_number(version_second_digit) > 2 then 'SUPPORTED' when platform_name = 'Solaris Operating System (x86-64)' and to_number(version_first_digit) > 10 then 'SUPPORTED' when platform_name = 'Microsoft Windows x86 64-bit' and to_number(version_first_digit) = 11 and to_number(version_second_digit) >= 1 and to_number(compatible_first_digit) = 11 and to_number(compatible_second_digit) >= 1 then 'SUPPORTED' when platform_name = 'Microsoft Windows x86 64-bit' and to_number(version_first_digit) > 11 and to_number(compatible_first_digit) = 11 and to_number(compatible_second_digit) >= 1 then 'SUPPORTED' when platform_name = 'Microsoft Windows x86 64-bit' and to_number(version_first_digit) > 11 and to_number(compatible_first_digit) > 11 then 'SUPPORTED' when platform_name = 'Linux x86 64-bit' then 'SUPPORTED' else 'NOT_SUPPORTED' end as SUPPORT_STATUS from vsrcinfo; For Oracle database 18.0 and above versions (table structure changed):

col platform_name for a30 col version_full for a20 col compatible_full for a20 Col support_status for a15 with vsrcinfo as ( SELECT platform_id, platform_name, (SELECT version_full FROM product_component_version where product like '%Oracle%Database%') version_full, (SELECT substr(version_full,1,2) FROM product_component_version where product like '%Oracle%Database%') version_first_digit, (SELECT substr(version_full,4,1) FROM product_component_version where product like '%Oracle%Database%') version_second_digit, (select value from v$parameter where name = 'compatible') compatible_full, (select substr(value,1,2) from v$parameter where name = 'compatible') compatible_first_digit, (select substr(value,4,1) from v$parameter where name = 'compatible') compatible_second_digit FROM v$database ) SELECT platform_id, platform_name, version_full, compatible_full, case when platform_name = 'Solaris Operating System (x86-64)' and to_number(version_first_digit) = 10 and to_number(version_second_digit) > 2 then 'SUPPORTED' when platform_name = 'Solaris Operating System (x86-64)' and to_number(version_first_digit) > 10 then 'SUPPORTED' when platform_name = 'Microsoft Windows x86 64-bit' and to_number(version_first_digit) = 11 and to_number(version_second_digit) >= 1 and to_number(compatible_first_digit) = 11 and to_number(compatible_second_digit) >= 1 then 'SUPPORTED' when platform_name = 'Microsoft Windows x86 64-bit' and to_number(version_first_digit) > 11 and to_number(compatible_first_digit) = 11 and to_number(compatible_second_digit) >= 1 then 'SUPPORTED' when platform_name = 'Microsoft Windows x86 64-bit' and to_number(version_first_digit) > 11 and to_number(compatible_first_digit) > 11 then 'SUPPORTED' when platform_name = 'Linux x86 64-bit' then 'SUPPORTED' else 'NOT_SUPPORTED' end as SUPPORT_STATUS from vsrcinfo;

Version

None

What oracle database version are you seeing the problem on?

None

Which sql script version ?

None

Relevant log output

No response

cofin commented 1 year ago

@wpuziewicz Can you take a look at this? Maybe we can pull it in for 4.3.2?

wpuziewicz commented 1 year ago

This request can be fulfilled using data we already collect. We can add the SQL to the loader or we can put it in the report.