A partir daversao 11g a Oracle disponibilizou uma package que permite realizar testes ediagnosticar problemas no banco de dados, seu nome e DBMS_HM. Neste artigovamos demonstrar o uso da DBMS_HM. NOTA: Neste artigo sera abordada somente a execucao manual utilizandoo SQL*Plus. Para a ativacao ou execucao via Enterprise Manager, favor verificaro manual (OracleDatabase Administrator s Guide 11gR2). A packageDBMS_HM, permite examinar varias camadas e componentes do banco dedados. Com ela e possivel detectar corrupcoes de datafiles, corrupcoes deblocos logicos e fisicos, corrupcao de segmentos de undo ou de redo ecorrupcoes no dicionario de dados. As analises geram relatorios e em muitoscasos, a DBMS_HM faz recomendacoes para resolver os problemas encontrados. As verificacoes podem serexecutadas de duas formas:Reativa: O diagnostico pode ser executado de modo automaticoem resposta a um erro critico ocorrido. Manual: O DBA podeexecutar manualmente verificacoes utilizando a package DBMS_HM ou a interfacedo Enterprise Manager. As verificacoes podem serexecutadas com o banco online ou em offline (modo NOMOUNT).Somente a verificacao Integrity Check Redo e o DB Structure Integrity Check,nao pode ser realizada no modo online, as demais todas podem ser executadas. Tipos de verificacoes: DB Structure Integrity Check: Verifica a integridade dos datafiles e gerarelatorios de falhas se esses arquivos estiverem inacessiveis, corrompidos ouinconsistentes. Se o banco de dados estiver online verifica os arquivos de redolog,datafiles e controlfile. Se o banco de dados estiver offline verifica apenasos arquivos de controlfiles. Data Block Integrity Check: Verifica e detecta corrupcoesnos blocos dos discos, tais como falhas de checksum, incompatibilidades com osheaders e tails e inconsistencias logicas dentro do bloco. Redo Integrity Check: Verifica se o conteudo do redolognao esta corrompido. Undo Segment Integrity Check: Verifica se o segmento de undopossui corrupcoes. Ao localizar uma corrupcao no segmento de undo, essaverificacao usa os processos de PMON e SMON para tentar recuperar atransacao corrompida. Se esta recuperacao falhar, entao a package DBMS_HM armazenaas informacoes sobre a corrupcao na visao V$CORRUPT_XID_LIST. Transaction Integrity Check: Verificacao identica a UndoSegment Integrity Check exceto que e verifica apenas uma transacaoespecifica.Dicionario Integrity Check: Verificacao que examina aintegridade dos objetos do dicionario de dados. A seguir serao apresentados ospassos para a execucao da verificacao da base de dados, utilizando a packageDBMS_HM. Conectar-se ao SQL*Plus com o usuarioSYS. SQL> conn / as sysdba Connected.Verificar quais sao as opcoes disponiveis para o check no banco dedados, consultar a visao V$HM_CHECK:SQL> SELECT nameFROM v$hm_check WHERE internal_check='N';NAME----------------------------------------------------------------DB StructureIntegrity CheckCF Block IntegrityCheckData Block IntegrityCheckRedo Integrity CheckTransaction IntegrityCheckUndo SegmentIntegrity CheckDictionary IntegrityCheckASM Allocation Check8 rows selected.A maioria dasverficacoes do banco de dados sao apresentadas atraves da visaoV$HM_CHECK_PARAM.SQL> SET LINESIZE200SQL> SET PAGES 200SQL> COLUMNCHECK_NAME FORMAT A30 HEADING"NOME"SQL> COLUMNPARAMETER_NAME FORMAT A20 HEADING "PARAMETROS"SQL> COLUMNTYPE FORMAT A15 HEADING"TIPOS"SQL> COLUMNDEFAULT_VALUE FORMAT A15 HEADING"VALORES DEFAULT"SQL> COLUMNDESCRIPTION FORMAT A40 HEADING"DESCRICAO"SQL>SQL> SELECT C.NAMECHECK_NAME, P.NAME PARAMETER_NAME, P.TYPE, P.DEFAULT_VALUE, P.DESCRIPTION 2 FROM V$HM_CHECK_PARAM P,V$HM_CHECK C 3 WHERE P.CHECK_ID = C.ID 4 AND C.INTERNAL_CHECK = 'N' 5 ORDER BY C.NAME;NOME PARAMETROS TIPOS VALORES DEFAULT DESCRICAO---------------------------- -------------------------------- --------------- ---------------------ASM Allocation Check ASM_DISK_GRP_NAME DBKH_PARAM_TEXT ASM group nameCF Block Integrity Check CF_BL_NUM DBKH_PARAM_UB4 Control file block numberData Block Integrity Check BLC_DF_NUM DBKH_PARAM_UB4 File numberData Block Integrity Check BLC_BL_NUM DBKH_PARAM_UB4 Block numberDictionary