fbpx
+55 (11) 4506-3239

24 jul 2012

Erro ao executar o reorgchk no DB2

//
Comments0

Após transferir ou fazer qualquer tipo de manutenção em uma base de dados do IBM DB2, o recomendado é executar uma estatística para verificar quais tabelas necessitam ser reparadas.
Para isso, existe o comando reorgchk que gera esta estatista em um arquivo texto.
Para executar o comando, basta conectar ao banco de dados “db2 connect db nome_banco” e executar o comanto db2 reorgchk update statistics on table all > xyz.out
Em algumas situações, podemos nos deparar com a seguinte mensagem de erro
SQL2310N  The utility could not generate statistics.  Error “-964” was returned.
Esta mensagem diz que não foi possível gerar a estatística na determinada base.
Um problema semelhante ocorreu comigo ao tentar gerar a estatista do banco JCRDB do IBM WebSphere Portal Server. Como já é de conhecimento de muitos, este banco é grande pois nele encontra-se todos os conteúdos do IBM WebContent Management e em algumas versões do WebSphere Portal como a 6.0.x, também existe os documentos do PDM. Tanto que existem configurações específicas na criação deste banco.
Devido ao tamanho deste banco, o problema estava ocorrendo devido ao tamanho do log configurado na instância ser insuficiente com o tamanho real do log durante a sua criação.
A solução do problema, neste caso, está em aumentar o tamanho do LOGPRIMARY. A alteração fará com que seja possível gerar a estatística.

1 – Para aumentar o tamanho do LOGPRIMARY, faça login no servidor IBM DB2.
2 – Entre na instância desejada: set db2instance=db2
3 – Execute os comandos abaixo:

db2 update db cfg using LOGPRIMARY 200
db2 connect reset
db2stop
db2start

4 – Connect novamente na base de dados.
db2 connect to JCRDB user db2admin using password

5 – Execute o reorgchk para gerar a estatística.
db2 reorgchk update statistics on table all > D:WebSphereReorgDB2JCRDB.out

Neste caso, o problema estava relacionado ao tamanho do log. Em outros casos, pode ser necessário alterar outros parâmetros como por exemplo.

Ao executar o comando reorgchk, o comando db2 reorgchk update statistics on table all > xyz.out pode falhar com o seguinte erro (erro 964):

SQL2310N: O utilitário não pode gerar a estatística: Se você receber esse erro, altere a configuração de LOGFILSIZ e LOGSECOND do banco de dados correspondente. Os valores padrão dessas configurações são 1000 e 20, respectivamente. Consulte a documentação do DB2 para obter detalhes sobre como aplicar a nova configuração.

Documentação do IBM DB2