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 |
FILE | Nome do datafile da base de dados. |
START | Bloco 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. |
END | Bloco de termino da verificação. Se não for especificado, por default o DBV verifica até o ultimo bloco do arquivo. |
BLOCKSIZE | Tamanho do bloco do arquivo, pode ser verificado atraves do comando show parameter db_block_size. |
LOGFILE | Aponta o arquivo onde será gerado a saida da verificação, por default a saida é no display do terminal. |
FEEDBACK | Indica o progresso da verificação (…), se for especificado 0 nenhum indicador de progresso é mostrado. |
PARFILE | Especifica o nome do arquivo de parâmetros a ser utilizado. |
USERID | Usuário e senha, necessário apenas quando o arquivo a ser verificado é um arquivo ASM ou uma verificação de segmento. |
SEGMENT_ID | Nú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_SCN | Quando um valor for especificado o DBV escreve mensagens de diagnóstico para cada bloco, cujo nível de bloco SCN exceder o valor especificado. |
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)
0 comentários:
Postar um comentário