Hurriyet

15 Ağustos 2013 Perşembe

Oracle Veritabanı: Daily Checklist - Günlük Veritabanı Kontrolleri - Backup Kontrolleri

Sistemimizde mutlaka kontrol etmemiz gereken konu ise backup'ların alınıp alınmadığıdır. Backup'ların kontrolü aşırı önemlidir. Onların varlığı database'imizi bir felaket senaryosunda kurtarmamız için bir gereklilikdir. Bununla birlikte backup'lar alındıktan sonra bunların rman catalog'una yazılması, obsolete kalmış backupların veya gerekliliğini yitirmiş, backup stratejilerine göre kullanışlılığını yitirmiş olan backup parçalarının silinmesi de gereklidir; çünkü bunlar veritabanına göre çok fazla yer kaplaya bilmektedirler.

Bu yüzden ilk daha önce dediğimiz gibi önce ilk önce backup'ların durumunu katalogdakilerle eşleştiririz.

 crosscheck archivelog all;  
 crosscheck backup;  
 crosscheck backupset;  

Gereksiz olanları sileriz. Bir backup'ın gereksiz olup olmadığına backup stratejisine göre karar verebiliriz. Eğer incremental backup stratejisi uyguluyorsa 7 günden daha önce alınmış  archive log'lar silinebilinir. 1 Haftadan önce alınmış  backuplar silinebilinir.

DELETE NOPROMPT BACKUPSET DEVICE TYPE DISK COMPLETED BEFORE 'SYSDATE-1';  
   
 DELETE NOPROMPT ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7';  

Alınmış olan backupların durumu incelenmelidir. Bir gün önce alınan backupların başarıyla sonuçlanıp sonuçlanmadığı kontrol edilmelidir. 

select * from v$rman_status where object_type ='DB INCR' order by start_time desc ;  

Aynı şekilde normal alınmış database backup'ları da mutlaka kontrol edilmelidir.

select * from v$rman_status where OPERATION ='BACKUP' order by start_time desc ;  


Genel olarak backupların ne zaman başlatıldığı ne zaman bittiği nereye alındığı, hangi backup'ın alındığı gibi bilgiler için aşağıdaki komutu kullanabiliriz.

 select to_char(start_time,'dd.mm.yyyy hh24:mi:ss'),to_char(end_time,'dd.mm.yyyy hh24:mi:ss'),status,object_type,output_device_type from v$rman_status     
 where OPERATION ='BACKUP' order by start_time desc ;    

Yapılan backup joblarıyla ilgil daha ayrıntılı bilgi almak için aşağıdaki komut da kullanılabilinir.

SELECT * FROM (    
   SELECT TO_CHAR(start_time,'DD-MON-YY HH24:MI') "Start", TO_CHAR(end_time,'DD-MON-YY HH24:MI') "End", time_taken_display "Time", input_bytes_display "Input", output_bytes_display "Output", input_bytes_per_sec_display "Input/sec", output_bytes_per_sec_display "Output/sec",    
       output_device_type, status, input_type,    
 round(elapsed_seconds/60,2) "Elapsed Min", Optimized,    
 ROUND(compression_ratio,2) "Compress Ratio"    
    FROM v$rman_backup_job_details    
   ORDER BY session_key DESC    
 )    
 WHERE ROWNUM < 21;




Hiç yorum yok:

Yorum Gönder