quinta-feira, 26 de dezembro de 2019

Data-Refresh DB-System OCI

Os autores desse artigo sao:
Leandro Tocachelis - LinkedIn
Alexandre Fagundes - LinkedIn

Objetivo:

Viabilizar os passos para fazer um Data-Refresh de um DB-System no OCI, normalmente isso é feito em bancos de testes e/ou homologação.

Para quem trabalha na área, o Data-Refresh é uma atividade solicitada diversar vezes durante o ano e por varios motivos diferentes, pensando nisso decidimos criar esse artigo.

Sabemos que existem varias formas de fazer essas atividades, mas queremos demonstrar como isso é feito usando os recursos prontos que a OCI ja nos fornece.

Pré-requisitos *exclusivos* deste passo a passo:

Essa atividade exige que sejam cumpridos alguns pré-requisitos.
Se algum deles a resposta for negativa, o procedimento que deve fazer provavelmente é diferente desse artigo.
  1. Data de atualização dos dados nao pode ser um valor exato (Ex: 23/12/2019 14h47min). Precisa ser em uma janela de tempo (Ex: entre 23/12/2019 14h00m e 23/12/2019 18h00m).
  2. O backup a ser utilizado para criação do novo ambiente, deverá ser um backup automático (previamente configurado na console), ou entao um backup standalone (criado a partir da console dentro da janela de tempo).
  3. Os DB-System's origem e destino devem residir no mesmo AD (obviamente na mesma regiao).
  4. O DB-System destino deverá ser destruído antes do início do data-refresh

Dicas e Considerações:


Preferencialmente, os nomes dos PDBs residentes no DB-System origem, devem ser específicos, não utilizando o nome padrao que é dado na hora que eles foram criados (Ex: <SID>_PDB1).
  • Esta ação pode evitar futuros equívocos. Ex: Strings de conexão, para o DB-System destino, com SERVICE_NAME idêntico ao da origem.
Previamente ao DB-System destino ser destruído, validar a necessidade de coletar algumas informações, como:
  • DB-Links
  • DBA Directories
  • Usuários (DB e S.O)
  • Agendamentos (jobs, crontab)
  • Custom scripts 
  • Backup de algum objeto/schema
  • Backup Standalone do banco todo

Fortemente recomendado que as strings de conexões apontem para o HOSTNAME, tanto na origem como no destino. Pois, a cada novo DB-System criado a partir de um backup, é atribuído um novo IP automaticamente, mantendo apenas o HOSTNAME.

Procedimentos:

  1. Coletar informações do DB-System antes de destruir:


    Alem dos detalhes do DB-System, verificar os outros itens que estao sugeridos na sessao "Dicas e Considerações" logo acima.
  2. Destruir o DB-System que será recriado:

  3. Verificar qual Backup será usado para criar o DB-System:

    Acessar o DB-System de origem e verificar quais os backups disponiveis.
    Verificar se algum deles se encaixa na janela de tempo que foi solicitado (Ex: entre 23/12/2019 14h00m e 23/12/2019 18h00m).
  4. Iniciar a Criação do DB-System a partir do Backup:


    • O campo "Database Admin Password" é para colocar a nova senha do DB-System que esta sendo criado.
    • O campo "Password for Transparent Data Encryption (TDE) Waller or RMAN ENCRYPTON" é a senha do ambiente de origem para ser possivel restaurar o backup que estamos usando.

    Essas senhas podem e DEVEM ser diferentes.

     
    O tempo de provisionamento é correspondente ao tamanho do banco de dados.
    Quanto maior, mais tempo vai levar.
    Neste momento, apenas aguardar.
  5. Confirmar a finalização da criação:



    Podemos observar que ficou com o mesmo nome do ambiente anterior que foi destruido.
    O IP esta outro, mas o HOSTNAME o mesmo, por isso a importancia de usar apenas o HOSTNAME em todas as strings de conexões.
  6. Reconfigurar o novo DB-System de destino:

    Neste momento, esse novo DB-System esta com os dados iguais a producao, inclusive DB-Links, DIRECTORIES, UTL_FILE_DIR, Jobs, senha dos usuarios.

    Se antes de destruir foi feito algum backup de objeto/schema, esse é o momento para aplicar o backup, caso necessário.

    Verificar se algum desses itens precisa ser ajustado.
  7. Liberar o ambiente para iniciar as atividades:

     Após terminar a reconfiguração do novo ambiente, o mesmo ja pode ser liberado para receber conexões das aplicações e/ou usuários.
    Se as strings estão usando o HOSTNAME, nao deve ocorrer nenhum erro de conexao no destino. Pois, a cada novo DB-System criado a partir de um backup, é atribuído um novo IP automaticamente, mantendo apenas o HOSTNAME.

Obrigado.

Nenhum comentário:

Postar um comentário