Recriação de uma base de dados
Introdução
Este guia orienta o administrador quanto aos procedimentos necessários na recriação de uma base de dados do sistema. Clientes que possuem o serviço de hospedagem de bases de dados não devem realizar esses procedimentos diretamente. Eles devem solicitar ao Service Desk a recriação da base de dados desejada.
Objetivo
Com o passar do tempo, é normal que a massa de dados das bases de desenvolvimento, homologação e manutenção fiquem defasadas em relação à base de produção. Para a realização de alguns testes é útil que esses ambientes sejam similares ao ambiente de produção. Por esse motivo, é importante que essas bases de dados auxiliares sejam recriadas periodicamente, possibilitando que os testes e as homologações ocorram em um ambiente similar ao da produção. O objetivo desse manual é orientar o administrador do sistema na realização do procedimento de recriação de uma base de dados.
Estrutura do guia
Este guia descreve a recriação de uma base de dados em 5 etapas:
Preparação
Recriação da base de dados no SGBD
Descarte do cache local e de chaves global
Reativação da customização (apenas para bases de desenvolvimento)
Finalização
Preparação
Durante a recriação de uma base de dados, ela ficará inoperante e todos os dados contidos nela serão perdidos. É importante que:
Os usuários da base de dados sejam comunicados do processo recriação. Caso esteja em um projeto de implantação ou realizando o desenvolvimento de uma melhoria, o gerente de projeto deve estar ciente da realização do procedimento.
A recriação ocorra em um horário que evite a paralisação das atividades dos usuários da base de dados.
Seja avaliado se os dados contidos na base de dados podem ser perdidos. É sugerida a criação de uma cópia de segurança caso haja dúvidas quanto ao risco de perda de dados.
Caso seja uma base de desenvolvimento, é importante que todo o desenvolvimento custom tenha sido levado para o ambiente de produção antes do descarte da base de dados. Caso isso não seja possível, há a alternativa de criar uma cópia da base de desenvolvimento a ser descartada (base DCLIENTE_BACKUP), recriar a base de desenvolvimento (base DCLIENTE) e no final atualizar os scripts e registros custom da base recém criada DCLIENTE a partir da DCLIENTE_BACKUP utilizando o processo Desenvolvimento > Atualização > Atualizar Produtos. Essa atualização deve ocorrer após o procedimento de Descarte do Cache Local e de Chaves global descrito a seguir.
A base de dados a ser recriada deve estar indisponível para os usuários durante o processo. Um meio de retirar o acesso à base de dados é temporariamente mudar a porta de antedimento do servidor. Por exemplo, a base de desenvolvimento normalmente é servida na porta 82. Durante a recriação, a porta pode ser alterada para 8082, garantindo que a base fique offline para os usuários que tentarem acessar essa base durante o processo.
Recriação da base de dados no SGBD
A recriação da base de dados deve ser feita preferencialmente pelo DBA responsável pelo ambiente seguindo os procedimentos adequados ao servidor de banco de dados utilizado. O uso das ferramentas e comandos do próprio SGBD garantem uma cópia fiel do ambiente de produção, incluindo tabelas, índices, visões e outros objetos do banco de dados que possam ter sido criados por meio de customizações sem a utilização da infraestrutura do sistema.
Apesar da recriação também poder ser realizada via processos Criar cópia e Restaurar cópia, localizados em Desenvolvimento > Bancos de Dados > Migração, não é recomendada a recriação da base de dados por meio desses processos pelos seguintes motivos:
Esses processos são significativamente menos eficientes que a abordagem nativa do banco de dados, gerando uma demora e processamento desnecessário.
Os índices não são criados pelo processo e deverão ser criados após a restauração da base. O processo de indexação de uma base de dados de tamanho elevado pode ser extremamente demorado e deve ser realizado por meio do processo Desenvolvimento > Banco de Dados > Atualizar Estrutura, após a execução do procedimento de descarte do cache local e de chaves global descrito a seguir.
Eventuais objetos de bancos de dados criados em customizações sem a utilização da infraestrutura do sistema não serão copiados.
Descarte do cache local e de chaves global
Como foi realizada uma modificação da massa de dados de dados fora da infraestrutura do sistema, os caches locais e de chaves perderam a integridade. Logo após a recriação da base de dados no SGBD e antes de qualquer modificação nos dados, deve ser sinalizado para o sistema que é necessário um descarte do cache local. Para isso, execute o processo Admin > Cache local > Descartar o Cache de Dados e de Chaves.
Após a execução desse processo, o servidor e todas as estações que estejam com o Engine em execução devem ser reiniciadas para efetivar o comando de descarte. Somente após o reinício do Engine o sistema pode ser utilizado, inclusive para os processos de finalização da recriação da base de dados.
Importante: utilizar o sistema antes da execução do comando descrito acima poderá provocar a criação de chaves duplicadas. Caso isso ocorra, o processo de recriação terá que ser realizado novamente, pois a base de dados recém recriada terá perdido a integridade.
Reativação da customização (apenas para bases de desenvolvimento)
Caso a base de desenvolvimento esteja sendo recriada, é importante que a customização seja habilitada novamente. Para isso, execute o processo Admin > Customização > Configuração. Será exibido um diálogo perguntando se deseja habilitar a customização. Confirme e indique os usuários quem podem gerar chaves CUSTOM nessa base de dados.
Importante: a abertura do processo de Configuração sem a exibição de um diálogo perguntando se a customização deve ser habilitada indica que a base origem da cópia, possivelmente a produção, estava com a customização habilitada. Isso normalmente é um erro, pois apenas uma base de dados de desenvolvimento pode ter a customização ativa, garantindo assim a geração de chaves custom únicas. Caso a mensagem não tenha sido exibida, realize o seguinte procedimento:
Desative a customização na base origem da cópia utilizando o processo Admin > Customização > Configuração.
Na base de desenvolvimento que está sendo recriada, desative a customização, feche o processo e abra novamente para que a sugestão de ativação seja realizada com sucesso. Essa reativação irá garantir que o sequenciador de chaves custom seja reiniciado corretamente.
Finalização
Caso a porta do servidor tenha sido alterada na preparação do processo, ela deve ser retornada para a sua configuração original e o servidor deve ser reiniciado.
Após essa configuração, o processo estará concluído. Os usuários interessados devem ser informados que a base de dados está liberada e deve ser reforçada a necessidade de reiniciar o Engine das estações locais utilizadas por esses usuários.