Archivelog calendar

Summary 

You need to know, especially in TByte systems, how much archives produced every day, how they are produced during the day hours and of course how many of them are deleted by RMAN backup. 

With this script you have a per day and per hour calendar of archiving! It shows how many produced as a total every day, how much have already deleted from Unix and what the remaining is in GBytes.

SELECT * FROM (
SELECT A.*, B.SIZE_GB, DECODE(C.SIZE_GB, NULL, 0, C.SIZE_GB) DELETED_GB, B.SIZE_GB - DECODE(C.SIZE_GB, NULL, 0, C.SIZE_GB) REMAIN_GB 
FROM (SELECT * FROM (SELECT TO_DATE(b.date_time, 'DD/MM/YYYY') dt, TO_CHAR(TO_DATE(b.date_time, 'DD/MM/YYYY'), 'DAY') DAY, 
"00", "01",  "02", "03", "04", "05", "06", "07", "08", "09", 
"10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", TOTAL 
FROM (SELECT  date_time, 
SUM(DECODE(HOUR,'00',1,NULL)) "00", SUM(DECODE(HOUR,'01',1,NULL)) "01", SUM(DECODE(HOUR,'02',1,NULL)) "02", 
SUM(DECODE(HOUR,'03',1,NULL)) "03", SUM(DECODE(HOUR,'04',1,NULL)) "04", SUM(DECODE(HOUR,'05',1,NULL)) "05", 
SUM(DECODE(HOUR,'06',1,NULL)) "06", SUM(DECODE(HOUR,'07',1,NULL)) "07", SUM(DECODE(HOUR,'08',1,NULL)) "08", 
SUM(DECODE(HOUR,'09',1,NULL)) "09", SUM(DECODE(HOUR,'10',1,NULL)) "10", SUM(DECODE(HOUR,'11',1,NULL)) "11",
SUM(DECODE(HOUR,'12',1,NULL)) "12", SUM(DECODE(HOUR,'13',1,NULL)) "13", SUM(DECODE(HOUR,'14',1,NULL)) "14",
SUM(DECODE(HOUR,'15',1,NULL)) "15", SUM(DECODE(HOUR,'16',1,NULL)) "16", SUM(DECODE(HOUR,'17',1,NULL)) "17",
SUM(DECODE(HOUR,'18',1,NULL)) "18", SUM(DECODE(HOUR,'19',1,NULL)) "19", SUM(DECODE(HOUR,'20',1,NULL)) "20",
SUM(DECODE(HOUR,'21',1,NULL)) "21", SUM(DECODE(HOUR,'22',1,NULL)) "22", SUM(DECODE(HOUR,'23',1,NULL)) "23", COUNT(*) TOTAL  
FROM (SELECT TO_CHAR(first_time, 'DD/MM/YYYY') DATE_TIME,  
SUBSTR(TO_CHAR(first_time, 'DD/MM/YYYY HH24:MI:SS'),12,2) HOUR FROM V$LOG_HISTORY)
--where date_time = '06/12/2004' 
GROUP BY date_time) b)) A, 
(SELECT TO_CHAR(FIRST_TIME, 'DD/MM/YYYY') DATE_TIME, 
SUM(ROUND((blocks*block_size)/(1024*1024*1024),3)) SIZE_GB 
FROM v$archived_log GROUP BY TO_CHAR(FIRST_TIME, 'DD/MM/YYYY')) B, 
(SELECT TO_CHAR(FIRST_TIME, 'DD/MM/YYYY') DATE_TIME, 
SUM(ROUND((blocks*block_size)/(1024*1024*1024),3)) SIZE_GB 
FROM v$archived_log WHERE DELETED = 'YES' GROUP BY TO_CHAR(FIRST_TIME, 'DD/MM/YYYY')) C 
WHERE TO_CHAR(A.DT, 'DD/MM/YYYY') = B.DATE_TIME 
AND TO_CHAR(A.DT, 'DD/MM/YYYY') = c.DATE_TIME(+)
) ORDER BY dt DESC;
Output
DTDAY000102030405060708091011121314151617181920212223TOTALSIZE_GBDELETED_GBREMAIN_GB
18/2/2008MONDAY 642  2  31353218         4919,42312,9546,469
17/2/2008SUNDAY 634  2  2 14122  3  3 634214,57714,5770
16/2/2008SATURDAY 5855361875201435260401311431622 12 17466177,047177,0470
15/2/2008FRIDAY 87452422524855465420432424253660359146,44146,440
14/2/2008THURSDAY 8622323253775784333161033812351,20751,2070
13/2/2008WEDNESDAY75760645538302829356179899293999170154514631115416,01416,010
12/2/2008TUESDAY 56543867421516111012942155322161274321132,257132,2570
11/2/2008MONDAY 4542 12 35315605374112814410305256364147,742147,7420
10/2/2008SUNDAY 5432 2  31243936 3  3 134010640,39740,3970
9/2/2008SATURDAY 48919331112 175531219 528487471562423159,33159,330
8/2/2008FRIDAY 98727772252232211282955541036191249646667783299,919299,9190
7/2/2008THURSDAY 48576492231 165544542448147339319127,344127,3440
6/2/2008WEDNESDAY6616763235383642204343529606257399161,974161,9740
5/2/2008TUESDAY 8714422 3456854525423812121514057,46357,4630
4/2/2008MONDAY 37162 12 15378553344613634814661,00961,0090
3/2/2008SUNDAY    2 2 1211521118122 32 626328,99928,9990

Comments

Popular posts from this blog

Reboot Exadata Machine

ORA-01565: error in identifying file '?/dbs/spfile@.ora'

STEPS TO troubleshoot long running concurrent request in R12.2.x