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.