WITH full_backup_sets AS (
SELECT
bs.set_stamp,
bs.set_count,
MIN(bp.start_time) AS set_start_time,
MAX(bp.completion_time) AS set_end_time
FROM
v$backup_set bs
JOIN
v$backup_piece bp
ON bs.set_stamp = bp.set_stamp AND bs.set_count = bp.set_count
WHERE
bs.backup_type = 'D' -- Full backups only
AND bp.status = 'A' -- Successful pieces
AND bp.start_time >= SYSDATE - 30 -- Last 30 days (adjust as needed)
GROUP BY
bs.set_stamp, bs.set_count
)
SELECT
ROUND(AVG((set_end_time - set_start_time) * 1440), 2) AS avg_full_backup_duration_mins,
COUNT(*) AS total_full_backup_jobs,
SYSDATE AS report_generated_at
FROM
full_backup_sets;





0 comments:
Post a Comment