Uma coisa que nenhum DBA curte é quando depois de anos o seu banco de dados chega a um limite e que para resolver tem que alterar um parametro que só pode ser alterado depois de recriar o banco, isso foi o que aconteceu, no final de semana a equipe foi adicionar mais espaço no banco na hora do banco reconhecer o novo espaço apareceu a mensagem:
No RABNSIZE é especificado o comprimento relativo do número do bloco no banco de dados (não é o comprimento do bloco em si). Se o RABNSIZE=3 (número do bloco é 24 bits ir três bytes), o número máximo de RABNs é 16.777.215. Agora se o banco foi definido como RABNSIZE=4 (número do bloco é 31 bits ou quatro byts), o máximo é 2.147.483.646
SOLUÇÃO
Tem que modificar o RABN para 31-bit não é um processo tão imediato, pois estamos falando em modificar a estrutura do banco. Teríamos de executar alguns steps: - ADASAV para tirar o back-up completo do banco; - ADAORD com RESTRUCTUREDB; - ADADEF DEFINE com RABNSIZE=4;
JCL DO RESTRUCTUREDB
Primeiro procedimento que vai ser feito é o backup do banco off-line
Restructuredb do banco
Redefinindo o banco, neste passo altero o RABNSIZE;
Neste ponto vamos restaurar o cartucho que foi gravado o restructuredb;
Levou 26 horas para fazer esse procedimento todo;
E06 : Allocation exceeds maximum rabn
O banco Adabas chegou no limite do RABNSIZE 3; O número de RABNs que pode ser atribuído a ASSO e o DATA é usado no momento da definição do banco.
No RABNSIZE é especificado o comprimento relativo do número do bloco no banco de dados (não é o comprimento do bloco em si). Se o RABNSIZE=3 (número do bloco é 24 bits ir três bytes), o número máximo de RABNs é 16.777.215. Agora se o banco foi definido como RABNSIZE=4 (número do bloco é 31 bits ou quatro byts), o máximo é 2.147.483.646
SOLUÇÃO
Tem que modificar o RABN para 31-bit não é um processo tão imediato, pois estamos falando em modificar a estrutura do banco. Teríamos de executar alguns steps: - ADASAV para tirar o back-up completo do banco; - ADAORD com RESTRUCTUREDB; - ADADEF DEFINE com RABNSIZE=4;
JCL DO RESTRUCTUREDB
Primeiro procedimento que vai ser feito é o backup do banco off-line
//AAFAS240 JOB (AAFP,DIBD),GER,CLASS=S,MSGCLASS=A,TYPRUN=HOLD
//*UQ ALLOW
//* --------------------------------------------------------
//* BACKUP OFFLINE DO BANCO
//* --------------------------------------------------------
//SAVE EXEC AAFAU240,TIME=1440
//DDSAVE1 DD DSN=ADABAS.C.SAVE.DB240.ANTES.RESTRUCT,
// DISP=(NEW,CATLG),UNIT=TP35,LABEL=(,SL)
//* --------------------------------------------------------
//DDCARD DD * ADARUN PROG=ADASAV,DBID=240,MODE=SINGLE,PLOGRQ=NO //DDKARTE DD * ADASAV SAVE
/*
RESTRUCTUREDB
Restructuredb do banco
//AAFAREDB JOB (AAFA,DIBD),CLAUD,CLASS=S,MSGCLASS=A,TYPRUN=HOLD
//*UQ ALLOW
//* -------------------------------------------------------
//* RESTRUCTUREDB NO BANCO 240
//* -------------------------------------------------------
//ADAORD EXEC AAFAU240,TIME=1440
//DDFILEA DD DSN=ADABAS.C.RESTRUCT.DB240,
// DISP=(NEW,KEEP),UNIT=TP35,LABEL=(1,SL)
//* --------------------------------------------------------
//DDCARD DD * ADARUN PROG=ADAORD,MODE=SINGLE,DBID=240,PLOGRQ=NO ADARUN LP=25000,LWKP2=3494
//DDKARTE DD * ADAORD RESTRUCTUREDB
/*
DEFINIÇÃO O BANCO ADABAS
Redefinindo o banco, neste passo altero o RABNSIZE;
//AAFADEF JOB (AAFA,DIBD),CLAUD,CLASS=S,MSGCLASS=A,TYPRUN=HOLD
//*UQ ALLOW
//* -------------------------------------------------------
//* DEFINICAO O BANCO ADABAS
//* -------------------------------------------------------
//DEFINE EXEC AAFAU240
//DDCARD DD * ADARUN PROG=ADADEF,MODE=SINGLE,DBID=240,SVC=249,DEVICE=8391
//DDKARTE DD *
ADADEF DEFINE DBNAME='DB.PROD.BELIART',DBIDENT=240
ADADEF ASSOSIZE=50000,40704
ADADEF DATASIZE=116900,106182
ADADEF WORKSIZE=500
ADADEF MAXFILES=2048,RABNSIZE=4
ADADEF FILE=19,CHECKPOINT
ADADEF NAME='AAF-CHECKPOINT',MAXISN=100000
ADADEF DSSIZE=5000B,NISIZE=100B,UISIZE=30B
ADADEF OVERWRITE
/*
RESTAURANDO O RESTRUCTUREDB
Neste ponto vamos restaurar o cartucho que foi gravado o restructuredb;
//AAFASTOR JOB (AAFA,DIBD),CLAUD,MSGCLASS=A,CLASS=S,TYPRUN=HOLD
//*UQ ALLOW
//* -----------------------------------------------------------
//* ADAORD : STORE INTO A DIFFERENT DATABASE
//* AFTER ADAORD RESTRUCTURE
//* -----------------------------------------------------------
//STORE EXEC AAFAU240,TIME=1440
//DDFILEA DD DSN=ADABAS.C.RESTRUCT.DB240,
// DISP=OLD,UNIT=TP35,VOL=SER=TPXXXX,LABEL=(1,SL)
//* ------------------------------------------------------------
//DDCARD DD * ADARUN PROG=ADAORD,MODE=SINGLE,DBID=240,PLOGRQ=NO ADARUN LU=65535,LWKP2=3494,LP=25000
//DDKARTE DD *
ADAORD STORE ALLFILES,OVERWRITE
ADAORD FILE=019,CHECKPOINT
ADAORD FILE=020,SECURITY
/*
TEMPO TOTAL
Levou 26 horas para fazer esse procedimento todo;
222.43 MINUTES EXECUTION - BACKUP
529.35 MINUTES EXECUTION - RESTRUCTUREDB SAVE
0.15 MINUTES EXECUTION - ADADEF
835.31 MINUTES EXECUTION - RESTRUCTUREDB STORE

0 comentários:
Enviar um comentário