GoogleCloudPlatform / GoogleCloudPlatform/database-assessment

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

Open
#213 2 comments 0 reactions 0 assignees View on GitHub
enhancement
Dominant language
Python
Stars
83
Forks
38
PR merge metrics
No merged PRs in 30d

Description

### 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_

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.