Olá, tenho três bancos de dados no meu sistema, um deles eu uso para produção diária, os outros dois uso pra testes das atualizações do ERP, do banco de dados da produção eu tenho um backup diário que é feito com o comando abaixo:
CONNECT TO 'NOME_DO_BANCO';
QUIESCE DATABASE IMMEDIATE FORCE CONNECTIONS;
CONNECT RESET;
backup database 'nome_do_banco' to f:\Backup\base;
connect to 'nome_do_banco';
UNQUIESCE DATABASE;
CONNECT RESET;
Como eu faço para restaurar essa cópia dentro de um dos bancos de dados de testes que eu uso?
Permalink Reply by RM on August 19, 2009 at 4:12pm
Oi Poliester,
Esta operacao de restore do backup vindo de um ambiente para um outro, eh uma coisa muito comum, hoje mesmo eu restarei uma copia de producao num ambiente que chamamos de STAGING usando um script que execute um "redirect restore".
Vamos por parte entao.
Uma vez que vc tem este backup vc precisa saber quais sao os tablespace containers deste backup que vc tirou de producao, porque na maioria das vezes os containers (path) e sizes nao sao os mesmos em outro ambiente. Entao faca assim: Execute em producao o seguinte comando:
db2 "restore from f:\Backup\base taken at into with 4 buffers buffer 1074 redirect generate script
NAO se assuste isso nao ira mexer no seu corrente database apesar da mensagem "DB20000I The RESTORE DATABASE command completed successfuly"
Isso porque DB2 usou o corrente arquivo pra gerar um script de restore.
Bem agora voce pode adaptar este script file pro seu ambiente de testes depois de mover este arquivo de backup pro diretorio apropriado. Veja se ha espaco suficiente para a alocacao dos containers (vc pode diminuir se for o caso) e mude o path dos files.
Uma vez que pelo comando acima voce excutou um backup offline, vc nao precisa se preocupar com rollforward logs depois do restore.
Me diga se voce entendeu, caso contrario eh so me comunicar.
Um abraco
Ronaldo Marzullo
IBM Certified Database Administrator
DB2 9 Advanced DBA for Linux, Unix and Windows
Dentro de F:\Backup\base eu tenho backup's de pelo menos três dias atrás. Cada um dá 12GB, antes de rodar o comando acima, não seria necessário, por exemplo, setar o caminho completo de onde está umd os backup's?
Permalink Reply by RM on August 19, 2009 at 4:54pm
nao eh preciso, se voce setar como esta acima f:\Backup\base (e dentro deste caminho voce tem mais de um arquivo de backup) DB2 sabera baseado no nome do banco de dados e do timestamp qual o arquivo usar.
Faca um teste com um existente num ambiente de testes se voce se sente mais seguro.
Dentro do arquivo de backup ha varias informacoes, como o nome do banco de dados, timestamp que o backup foi executado, se contem logs ou nao, se foi offline ou online,qual o programa de compressao usado, etc).
geralmente qdo se executa um backup, vem como resposta um timestamp, mas se voce olhar num arquivo de backup ele se parace assim:
Ok, vou pegar o último backup, fazer uma cópia dele em outra pasta e prosseguirei conforme você me orientou!!
Quando estiver terminado posto aqui os resultados. :)
Confesso que estou meio inseguro, mas é preciso resolver e assim o farei!! (rsrs)
Permalink Reply by RM on August 20, 2009 at 8:49am
Poliester,
Ja que voce esta inseguro, faca assim pegue um backup (online ou offline) num ambiente de testes e execute o comando que te indiquei, isso servira pra voce ver como o DB2 gerara o script de restore redirect. Uma vez que vc se familiarizou com o utilitario, vc executa o mesmo no ambiente de producao para extrair exatamente todas as informacoes de tablespace containers etc. Ai voce leva este script + o backup de procucao pra o ambiente que vc quer restaurar e depois de ajustar o scrtipt pra o devido ambiente voce o executa.
Se voce tiver qualquer duvida me fale e eu te ajudo.
Um abraco
Permalink Reply by RM on August 21, 2009 at 11:08am
Poliester,
Vendo o screenshot da sua tela percebo que o que falhou foi que voce nao forneceu todos os parametros necessarios.
O exemplo abaixo dara a voce uma idea do que voce dever escrever.
db2 "restore db from f:\Backup\base taken at into with 4 buffers buffer 1074 redirect generate script .