Os 2 principais bancos de dados do mercado possuem alguns meios eficazes de identificar se há blocos corrompidos na base de dados. A intenção é mostrar de maneira simples e clara os métodos utilizados para checar se há algum problema de corrupção de dados, arquivos, dentre outros.
Oracle
Utilizando a view: v$database_block_corruption. É preciso rodar o comando backup validate check logical database para popular a view v$database_block_corruption!
su - oracle rman target / Recovery Manager: Release 11.2.0.4.0 - Production on Fri Jan 24 21:33:50 2020 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. connected to target database: CAM (DBID=354984621) RMAN> run { allocate channel d1 type disk; allocate channel d2 type disk; allocate channel d3 type disk; allocate channel d4 type disk; backup validate check logical database; }
Após rodar o comando acima você receberá uma mensagem parecida com essa abaixo que basicamente informando que o validate foi executado:
Starting backup at 24-JAN-20 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=869 device type=DISK channel ORA_DISK_1: starting full datafile backup set channel ORA_DISK_1: specifying datafile(s) in backup set input datafile file number=00134 name=+DATA_ASM_DG/cam/datafile/cam_copa_br_2014.dbf input datafile file number=00068 name=+DATA_ASM_DG/cam/datafile/cam_liberta_2013.1164.1014261749 List of Datafiles ================= File Status Marked Corrupt Empty Blocks Blocks Examined High SCN ---- ------ -------------- ------------ --------------- ---------- 1 OK 0 14488 393235 333147726939 File Name: +DATA_ASM_DG/cam/datafile/cam_copa_br_2014.dbf Block Type Blocks Failing Blocks Processed ---------- -------------- ---------------- Data 0 172981 Index 0 184618 Other 0 21129 File Status Marked Corrupt Empty Blocks Blocks Examined High SCN ---- ------ -------------- ------------ --------------- ---------- 4 OK 0 88152 163840 332369926878 File Name: +DATA_ASM_DG/cam/datafile/cam_liberta_2013.1164.1014261749 Block Type Blocks Failing Blocks Processed ---------- -------------- ---------------- Data 0 0 Index 0 74697 Other 0 991 Finished backup at 24-JAN-20 released channel: d1 released channel: d2 released channel: d3 released channel: d4 RMAN>
Por fim, execute o comando abaixo para verificar se algum bloco está corrompido. É sempre bom que essa consulta não retorne nenhuma linha.
select * from v$database_block_corruption
SQL Server
No SQL Server, é a tabela suspect_pages é usada para manter informações sobre páginas corrompidas. Existem 3 opções que populam a tabela suspect_pages do banco de dados MSDB com informações precisas:
Durante uma operação DBCC CHECKDB.
Durante uma operação de backup.
Uma query que precisa ler uma página.
Para verificar basta rodar o comando abaixo, lembrando que é sempre bom que essa consulta não retorne nenhuma linha 😀
use msdb go select * from suspect_pages;
E assim aprendemos duas maneiras simples e eficazes de fazer essa checagem!
1 comentário
Muiitoo top! Agora sei usar um CHECDB no oracle rsrsrs!
Valeu!