Identificando blocos corrompidos nos bancos Oracle e SQL Server

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

  1. Muiitoo top! Agora sei usar um CHECDB no oracle rsrsrs!

    Valeu!

Deixe uma resposta

Seu e-mail não será publicado.

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

×