Recriação de uma base de dados
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 suporte 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.
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 > Base 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 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”. O usuário utilizado para comandar o descarte do cache local e de chaves precisa ter permissão ao escopo de autorização “database.discardCaches”. Usuários do grupo “Administrators” possuem esse escopo por padrão.
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.
Revisão de configurações específicas da base de dados
- Título e subtítulo da base de dados: Admin > Base de dados > Configurações.
- Endereços de acesso ao sistema: Admin > Servidores > Endereços de acesso ao sistema.
- Botões de login SSO customizados: Admin > Segurança > Políticas de segurança > Provedores de identidades.
Em bases de desenvolvimento e homologação, também é importante desativar os usuários que não precisam ter acesso as essas bases de dados. A princípio, todos os usuários da base de produção que não estejam envolvidos no desenvolvimento ou suporte devem ter o acesso desativado.
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.