executada manualmente, mas que pode ser executada facilmente através da geração de um script e que pode te ajudar rapidamente em um operação de restauração da base de dados.
Falaremos hoje sobre a operação de restauração chamada de Restore Redirected. Esta operação consiste em restaurar um base de dados em um outro servidor, ou em um outro ambiente ou até mesmo para atualização de bases de homologação.
Acredito que a maioria dos DBAs DB2 já tenham se deparado com pedidos de atualização de bases de homologação, ou criação de um novo ambiente a partir da cópia de um ambiente já existente, pois bem, seus problemas acabaram.
Vamos demonstrar em alguns passos como efetuar a criação do script e como proceder.
Partindo do principio, faremos uma cópia de uma base de dados (Backup) para que possamos dar andamento ao nossos testes.
Para tirarmos um backup offline (sem aplicações conectadas) ou cold backup devemos prosseguir com o seguinte comando:
Após completarmos a operação de cópia da base de dados (Backup), vamos supor que nos foi pedido para seja feito no nosso ambiente de homologação uma atualização utilizando o Backup de produção que acabamos de tirar.
Mãos a obra, vamos então gerar o nosso script que facilitará muito nossa vida. A maioria dos DBAs DB2, devem se recordar que ao fazermos um Restore Redirected precisamos configurar os paths (caminhos fisicos) onde as tablespaces serão alocadas ou Storage Group no caso de utilização de banco de dados em Automatic Storage, também precisamos configurar um novo path para os logs, paralelismo que este Restore terá no momento da execucação, um novo path para o próprio banco de dados (caso o banco de dados não exista), os novos storage paths caso o banco de dados esteja em Automatic Storage e Etc.
Para gerarmos o script de Restore Redirected basta utilizarmos o comando abaixo, lógicamente populando o comando com os dados que vocês possuem.
Ao executarmos o comando acima, um arquivo no formato .sql será criado e poderá ser rodado para a criação do banco no seu novo ambiente. É claro, que devemos atualizar alguns parametros dentro do script para que possamos fazer este Restore Redirected. A função do script é gerar o modelo que você irá utilizar, e assim facilitar a vida.
Estou adicionando ao post, o arquivo gerado ao executar o comando acima na minha máquina, mas estou trocando a extensão pois o blog não aceita arquivo no formato .sql. Para voltar o arquivo no formato .sql basta apenas trocar a extensão .doc para .sql.
Ao editar o arquivo será necessário fornecer valores para alguns ou todos os campos, isso dependerá do seu ambiente, mas de uma forma reduzida alguns campos são necessários, tais como DBPATH, NEWLOGPATH, STOGROUP e etc.
Agora vamos executar o script que criamos, e para isso basta executar o comando abaixo:
Percebam que o banco de dados foi restaurado com sucesso e também logo após foi possivel conectar ao banco de dados. Isso foi possivel pois foi feito restore através de um backup offline ou cold backup. Caso fosse utilizado um backup online ou hot backup, poderiamos aplicar os logs até o ponto desejado. Mas sobre restore point in time faremos um outro post.
Galera qualquer dúvida estamos à disposição. Forte abraço e até a proxima.
Ola ,
Parabéns pelo artigo Otávio. Um restore redirect para que esta começando realmente ñ eh trivial, e gerar o script de forma quase automática ajuda muito.
Eu, particularmente, tenho um shell scritp para gerar o .sql, que ler a sysibmadm.container_utilization e com um AWK , crio os DB2 SET TABLESPACES. Isso utilizo com a V9.5, que ainda ñ tem Storage Groups e ñ utilizo AUTOMATIC STORAGE.
Fica ai a dica :).
Abraços
Obrigado Marcelo. Exatamente, para quem esta comecando um restore redirected não é coisa trivial e pode gerar muita confusão. Interessante o seu script, mas você utilizá-o para gerar os set containers onde fará o restore (no ambiente que recebera o restore) ou no ambiente de onde você tirou o backup? Voce ja tinha utilizado a geracao automatica do script de restore?
Ola Otavio,
O script eh lançado na maquina onde se executou o backup , e com a instancia/BBDD ainda funcionando. Claro que se a situação eh de desastre , e dependendo da configuração de HA que tenhas , essa possibilidade ñ existe.
Eu ja utilizei a geração automática do script , e funciona bem, mas dependendo da situação/configuração e do entorno que tenhas, tens que tocar muita coisa e dai podem vir falhos. Um shell script eh programar-lo , testar-lo e ñ tens que tocar em nada mas, e te atendará na maioria dos casos.
Abraços, e uma vez mas parabéns pelo artigo.
Marcelo Boa tarde,
Você já fez o post sobre backup online (hot backup) ?
tenho um backup Online e estou tentando restaurar, o utilizei o procedimento relatado no post acima ele termina com sucesso mais ao tentar conectar ao banco aparace
a seguinte mensagem:
[IBM][CLI Driver] SQL1117N A connection to or activation of
database “TESTE” cannot be made because of ROLL-FORWARD
PENDING. SQLSTATE=57019
então tentei: db2 rollforward db teste to end of logs and stop
e então apresentou o erro:
E:\SQLLIB\BIN>db2 rollforward db teste to end of logs and stop
SQL4970N Roll-forward recovery on database “TESTE” cannot reach the specifie
stop point (end-of-log or point-in-time) on database partition(s) “0”.
Roll-forward recovery processing has halted on log file “S0020342.LOG”.
Agradeço qualquer ajuda.
db2 rollforward db cisserp to end of backup and complete