DBAtlas · Veritabanı operasyon atlası

Veritabanını ve yedekleri bozulmaya karşı doğrula (VALIDATE)

OracleRMAN

Komut

# Fiziksel + mantiksal blok kontrolu (yedek uretmeden):
VALIDATE CHECK LOGICAL DATABASE;
# Buyuk datafile'lari paralel tara (11g+, birden cok kanal gerekir):
VALIDATE CHECK LOGICAL DATABASE SECTION SIZE 16G;
# Tek datafile / tablespace:
VALIDATE DATAFILE 7;
VALIDATE TABLESPACE users;
# Yedek alir gibi okuyup kontrol et (archivelog dahil):
BACKUP VALIDATE CHECK LOGICAL DATABASE ARCHIVELOG ALL;
# Belirli bir yedek setinin okunabilirligi:
LIST BACKUP SUMMARY;
VALIDATE BACKUPSET <bs_key>;
-- Bulunan bozuk bloklar ve etkilenen segment (SQL):
SELECT file#, block#, blocks, corruption_change#, corruption_type
FROM   v$database_block_corruption ORDER BY file#, block#;
SELECT DISTINCT e.owner, e.segment_name, e.segment_type
FROM   dba_extents e
JOIN   v$database_block_corruption c
  ON   e.file_id = c.file#
 AND   c.block# BETWEEN e.block_id AND e.block_id + e.blocks - 1;

Ne yapar?

Datafile'ları ve yedek setlerini okuyarak fiziksel ve (CHECK LOGICAL ile) mantıksal blok bozulmalarını tespit eder; bulunanları v$database_block_corruption'a yazar. SQL sorgusu bozuk bloğun hangi tablo/index'e ait olduğunu gösterir.

Ne zaman kullanılır?

ORA-01578/ORA-08103 gibi bozulma hatalarından sonra, depolama sorunlarının ardından ve düzenli (haftalık) bütünlük kontrolü olarak; yedeklerin gerçekten restore edilebilir olduğunu kanıtlamak için.

Dikkat

Tam okuma yapar; büyük veritabanlarında ciddi I/O yükü oluşturur, yoğun saatlerin dışında çalıştır. dba_extents sorgusu büyük veritabanlarında yavaş olabilir. Bozuk blok geçici (TEMP) veya boş alandaysa nesne eşleşmesi dönmez.

DBAtlas'ta aç →

İlgili