Wednesday, 14 May 2025

Filled under:

 SET LINESIZE 200

COL backup_type FOR A15

COL success_count FOR 15

COL failed_count FOR 15

COL total FOR 10

COL success_rate_pct FOR 20


WITH backup_status AS (

    SELECT

        DECODE(b.incremental_level,

               NULL, 'FULL',

               0, 'LEVEL 0 INCR',

               1, 'LEVEL 1 INCR',

               'OTHER') AS backup_type,

        CASE

            WHEN bs.status = 'A' THEN 1  -- Available (Success)

            ELSE 0

        END AS is_success,

        CASE

            WHEN bs.status <> 'A' THEN 1

            ELSE 0

        END AS is_failed

    FROM 

        v$backup_set b

        JOIN v$backup_set_details bs

          ON b.set_stamp = bs.set_stamp AND b.set_count = bs.set_count

    WHERE 

        b.start_time >= SYSDATE - 7  -- adjust as needed

)

SELECT

    backup_type,

    SUM(is_success) AS success_count,

    SUM(is_failed) AS failed_count,

    COUNT(*) AS total,

    ROUND((SUM(is_success) * 100.0) / COUNT(*), 2) AS success_rate_pct

FROM

    backup_status

GROUP BY

    backup_type

ORDER BY

    backup_type;


0 comments:

Post a Comment