domingo, 19 de fevereiro de 2012

Verificando corrupção física – DBV

Para quem não conhece, o DBVerify, mais conhecido apenas por DBV é um utilitário externo via linha de comando oferecido pela Oracle para a verificação da integridade física dos arquivos de dados (datafiles). Verificação de arquivos como controlfile e redo não são suportados. 

O DBV pode ser realizado tanto com o banco de dados offline como online, a grande diferença está no tempo de execução onde a verificação offline se destaca sendo significantemente mais rápida. Esta verificação se torna muito importante quando precisamos verificar a integridade de um backup (copia-imagem) antes de ser restaurado, ou como auxílio diagnóstico quando ocorrer problemas de corrupção de dados. 

Existem duas interfaces de linha de comando para o DBV, uma especifica o arquivo de dados/blocos e outra onde podemos especificar um segmento para verificação, ambas serão abordadas. 

Quando realizamos uma verificação dos arquivos de dados/blocos o DBV inicia um scanneamento sobre o arquivo executando validações e oferecendo a saida das verificações para diagnósticos, este processo tambem pode ser realizado sobre arquivos gerenciados pelo ASM apenas sendo necessário fornecer um USERID válido para o DBV se conectar na instance ASM. 

Quando executamos uma verificação sobre um segmento, este também fornece informações para diagnóstico, no entanto vale certa cautela nesta execução pois o segmento que está sendo verificado se torna bloqueado até que a operação seja concluida, isto porque as informações são recuperadas a partir do banco de dados corrente. Necessário informar USERID com privilégios SYSDBA. 

Antes de abordarmos alguns exemplos de utilização, vamos identificar as opções (parâmetros) que podem ser informados ao DBV. 

Observe que o DBVerify é iniciado pelo próprio comando dbv

[oracle@orcl ~]$ dbv help=yes
 
DBVERIFY: Release 11.1.0.6.0 - Production on Thu Nov 3 09:11:26 2011
 
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
 
Keyword     Description                    (Default)
----------- ------------------------------ -----------
FILE        File to Verify                 (NONE)
START       Start Block                    (First Block of File)
END         End Block                      (Last Block of File)
BLOCKSIZE   Logical Block Size             (8192)
LOGFILE     Output Log                     (NONE)
FEEDBACK    Display Progress               (0)
PARFILE     Parameter File                 (NONE)
USERID      Username/Password              (NONE)
SEGMENT_ID  Segment ID (tsn.relfile.block) (NONE)
HIGH_SCN    Highest Block SCN To Verify    (NONE)
            (scn_wrap.scn_base OR scn)

Note que todos os parâmetros foram listados, tanto para verificação de arquivo como de segmento. 

PARÂMETRO    DESCRIÇÃO/ENTRADA
FILENome do datafile da base de dados.
STARTBloco de inicio da verificação. Se não for especificado, por default o DBV inicia a verificação a partir do primeiro bloco do arquivo.
ENDBloco de termino da verificação. Se não for especificado, por default o DBV verifica até o ultimo bloco do arquivo.
BLOCKSIZETamanho do bloco do arquivo, pode ser verificado atraves do comando show parameter db_block_size.
LOGFILEAponta o arquivo onde será gerado a saida da verificação, por default a saida é no display do terminal.
FEEDBACKIndica o progresso da verificação (…), se for especificado 0 nenhum indicador de progresso é mostrado.
PARFILEEspecifica o nome do arquivo de parâmetros a ser utilizado.
USERIDUsuário e senha, necessário apenas quando o arquivo a ser verificado é um arquivo ASM ou uma verificação de segmento.
SEGMENT_IDNúmero de identificação do segmento a ser verificado. AS informações podem ser coletadas na SYS_USER_SEGS. (Necessário conectar como SYSDBA)
HIGH_SCNQuando um valor for especificado o DBV escreve mensagens de diagnóstico para cada bloco, cujo nível de bloco SCN exceder o valor especificado.


Verificação de arquivos de dados: 

  dbv [ USERID=username/password ]
    FILE = filename
  | { START = block_address | END = block_address }
  | BLOCKSIZE = integer
  | LOGFILE = filename
  | FEEDBACK = integer
  | HELP  = { Y | N } 
  | PARFILE = filename

Verificando um arquivo de dados non-ASM:

[oracle@orcl ~]$ dbv file=/u02/oradata/orcl11g/new_point01.dbf
 
DBVERIFY: Release 11.1.0.6.0 - Production on Thu Nov 3 09:54:36 2011
 
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
 
DBVERIFY - Verification starting : FILE = /u02/oradata/orcl11g/new_point01.dbf
 
 
DBVERIFY - Verification complete
 
Total Pages Examined         : 12800
Total Pages Processed (Data) : 42
Total Pages Failing   (Data) : 0
Total Pages Processed (Index): 6
Total Pages Failing   (Index): 0
Total Pages Processed (Other): 47
Total Pages Processed (Seg)  : 0
Total Pages Failing   (Seg)  : 0
Total Pages Empty            : 12705
Total Pages Marked Corrupt   : 0
Total Pages Influx           : 0
Total Pages Encrypted        : 0
Highest block SCN            : 2981584 (0.2981584)

NOTA:

• Pages = Blocos • Total Pages Examined = Número de blocos no arquivo
• Total Pages Processed = Número de blocos que foram verificados (blocos formatados)
• Total Pages Failing = Número de blocos que falharam na verificação
• Total Pages Empty = Número de blocos vazios
• Total Pages Marked Corrupt = Número de blocos em que o cabeçado é inválido. Blocos corrompidos!
• Total Pages Influx = Número de blocos que estão sendo lidos e gravados ao mesmo tempo. Ocorre quando o banco de dados está aberto e o DBV não pode obter uma imagem consistente dos blocos que estão em fluxo.

Verificando um arquivo de dados ASM: Necessário informar um USERID para o dbv se conectarna instance ASM.

[oracle@orcl ~]$ dbv USERID=SYS/***** file=+DGDADOS/datafiles/users01.dbf logfile=/usr/tmp/dbv.log
 
DBVERIFY: Release 11.1.0.6.0 - Production on Thu Nov 3 10:19:15 2011
 
Copyright (c) 1982, 2007, Oracle.  All rights reserved.

[oracle@orcl ~]$ cat /usr/tmp/dbv.log
 
DBVERIFY: Release 11.1.0.6.0 - Production on Thu Nov 3 10:19:15 2011
 
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
 
 
DBVERIFY - Verification starting : FILE = +DGDADOS/datafiles/users01.dbf
 
DBVERIFY - Verification complete
 
Total Pages Examined         : 13376
Total Pages Processed (Data) : 9240
Total Pages Failing   (Data) : 0
Total Pages Processed (Index): 290
Total Pages Failing   (Index): 0
Total Pages Processed (Other): 2548
Total Pages Processed (Seg)  : 0
Total Pages Failing   (Seg)  : 0
Total Pages Empty            : 1298
Total Pages Marked Corrupt   : 0
Total Pages Influx           : 0
Total Pages Encrypted        : 0
Highest block SCN            : 0 (0.0)


Verificação de Segmento:

Syntax:

  dbv USERID = username/password 
  | SEGMENT_ID = tsn.segfile.segblock
  | LOGFILE = filename
  | FEEDBACK = integer
  | HELP  = { Y | N }
  | PARFILE = filename


[oracle@orcl ~]$ sqlplus / as sysdba
 
SQL*Plus: Release 11.1.0.6.0 - Production on Thu Nov 3 10:22:39 2011
 
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
 
 
Conectado a:
Oracle Database 11g Release 11.1.0.6.0 - Production
 
SQL> select us.TABLESPACE_ID, us.HEADER_FILE, us.HEADER_BLOCK
  2  from SYS_USER_SEGS us, DBA_SEGMENTS s
  3  where us.segment_name=s.segment_name
  4  and s.owner='ANDERSON'
  5  and s.segment_name='TESTE';
 
TABLESPACE_ID HEADER_FILE HEADER_BLOCK
------------- ----------- ------------
            6           5           11
SQL> exit
Desconectado de Oracle Database 11g Release 11.1.0.6.0 - Production

Executando..:

[oracle@orcl ~]$ dbv USERID=ANDERSON/****** segment_id=6.5.11
 
DBVERIFY: Release 11.1.0.6.0 - Production on Thu Nov 3 10:35:35 2011
 
Copyright (c) 1982, 2007, Oracle.  All rights reserved.
 
DBVERIFY - Verification starting : SEGMENT_ID = 6.5.11
 
 
DBVERIFY - Verification complete
 
Total Pages Examined         : 3
Total Pages Processed (Data) : 0
Total Pages Failing   (Data) : 0
Total Pages Processed (Index): 0
Total Pages Failing   (Index): 0
Total Pages Processed (Other): 2
Total Pages Processed (Seg)  : 1
Total Pages Failing   (Seg)  : 0
Total Pages Empty            : 0
Total Pages Marked Corrupt   : 0
Total Pages Influx           : 0
Total Pages Encrypted        : 0
Highest block SCN            : 0 (0.0)
Postagem mais recente Postagem mais antiga Página inicial

0 comentários:

Postar um comentário

Translate

# Suporte

# ACE Program

#Oracle

#Oracle
Disclaimer: The views expressed on this blog are my own and do not necessarily reflect the views of Oracle.

#Blog reconhecido

#ARTICULISTA

Marcadores

Postagens populares