Fala galera, tudo certo? Hoje vamos dar continuidade ao assunto do final de semana passado, o DRS. E hoje você já vai colocar ele para funcionar aí no seu lab. Quem caiu direto nessa postagem, corre que ainda dá tempo de ver a postagem do final de semana passado e entender um pouco mais o que irá acontecer por aqui. Caso queira passar por lá depois, agora iremos iniciar a implementação de uma ferramenta que estou desenvolvendo para automatizar o RESTORE DATABASE no SQL Server. Para implementação, irá precisar de duas instâncias SQL Server, uma simulando o ambiente de PRODUÇÃO, e outra o ambiente de teste, dev, homologação... Só que pelo amor do tio Bill, não vai fazer isso no seu cliente agora, vamos entender como funciona primeiro. A primeira coisa que você vai fazer é clicar AQUI para baixar os arquivos no repositório do github, recomendo criar a seguinte estrutura de pastas e depois se achar necessário pode fazer as alterações -> C:\app\DRS\ <- Dentro da pasta DRS vo...
Gerar link
Facebook
X
Pinterest
E-mail
Outros aplicativos
Automatizando Teste de Restore - Introdução
Gerar link
Facebook
X
Pinterest
E-mail
Outros aplicativos
-
Fala galera, tudo certo?
Fazem aproximadamente 6 meses entrei no mundão dos DBAs, e
desde então diariamente venho adquirindo inúmeros conhecimentos com meus
colegas de trabalho e com a comunidade na internet. Essa troca de conhecimentos
despertou uma vontade muito grande de também compartilhar, e aqui estamos, meu
primeiro post.
Estou desenvolvendo uma ferramenta que ainda precisa ganhar
um bom nome, mas por hora vamos chama-la de DRS. Data Restore Safety, e é sobre
ela que vou falar hoje.
Bom, com esse nome pouco intuitivo já dá para ter ideia da finalidade
da ferramenta, primeiro vou explicar a motivação para a criação e em seguida
comento sobre seus processos.
Recentemente um cliente solicitou uma rotina de “Teste de
Restauração” para um de seus bancos de dados principal. Feito! Criei um job que
buscava no diretório de backup a peça mais nova, renomeava os arquivos MDF e LDF, restaurava o banco com outro nome, por fim gerava um log do processo e
removia o banco restaurando.
Atendeu a solicitação, mas eu senti que dava para melhorar,
após alguns minutos de conversa com um colega do time, surgiu a
seguinte ideia:
“Por que você não faz um script genérico que restaura todos os
bancos? Afinal, todos são importantes”
Eu fiquei olhando fixamente pro nada por uns 3 minutos até
que a ideia foi tomando forma, só não sabia ainda o que fazer com os arquivos MDF e LDF. Pois bem, nasceu o DRS e hoje posso dizer que está é a v1.0 .
Desenvolvido em BATCH e T-SQL o Data Restore Safety restaura
todos os bancos de dados qualificados para o procedimento. Após a implementação
basta informar o diretório onde ficam as peças de backup, credencias de acesso
para a instância e os diretórios de destino para os arquivos MDF, NDF E LDF.
Vamos ver funcionando?
Na imagem abaixo temos a instância LAB com os bancos
Financeiro, RH, Traces e Vendas.
E como pode observar, temos duas peças de backup para cada
banco de dados:
Dentro do nosso banco Traces temos uma tabela chamada
BACKUPQUEUE onde no início do processo serão inseridos os nomes dos bancos
qualificados pra a restauração. O nosso semáforo. No momento estou usando como
critério o banco ter efetuado ao menos um backup nas últimas 48 horas e não ser
um banco de sistema.
Se não existir nenhum banco qualificado, o processo é
encerrado, caso exista ao menos um, o processo de restauração inicia. O DRS
pega o nome do banco a ser restaurado e busca a peça de backup mais recente deste banco no diretório de backups.
Com o diretório completo da peça selecionada, uma procedure ‘sp_FileRestore’
que também criei no banco Traces é executada para gerar o script de restauração
com os novos diretórios para os arquivos MDF, NDF, LDF.
Agora com nosso script de restauração, o DRS faz a
restauração propriamente dita, com sucesso ou falha esse banco é removido da
BACKUPQUEUE e o resultado vai para o log.
Por fim, outra procedure é executada ‘sp_DropRestore’, com
ela, em vez de executar um DROP DATABASE e correr o risco de eliminar uma base que
não faz parte do processo, validações são feitas para um DROP DATABASE mais
seguro.
Enquanto existir bancos na BACKUPQUEUE, o mesmo processo
será executado, segue o log do processo:
== Inicio do processo == == Populando semaforo == - Bases qualificadas : Financeiro RH Traces Vendas == Restore atual == - Nome Original da base : Financeiro - Nome Restauracao da base: Financeiro_DRS - Peca utilizada: D:\MSSQLSERVER\MSSQL14.LAB\MSSQL\Backup\Financeiro\Financeiro_backup_2018_12_02_145703_4868281.bak - Data de inicio: 2018_12_02_15_23_37 - Script de restore: C:\app\DRS\temp\ScriptRestore_Financeiro.sql - Status do restore: 10 percent processed. 20 percent processed. 30 percent processed. 40 percent processed. 50 percent processed. 60 percent processed. 70 percent processed. 80 percent processed. 90 percent processed. 100 percent processed. Processed 26288 pages for database 'Financeiro_DRS', file 'Financeiro' on file 1. Processed 2 pages for database 'Financeiro_DRS', file 'Financeiro_log' on file 1. RESTORE DATABASE successfully processed 26290 pages in 1.024 seconds (200.569 MB/sec). - Banco Financeiro_DRS eliminado - Data de Termino: 2018_12_02_15_23_41 == Fim do Restore == == Restore atual == - Nome Original da base : RH - Nome Restauracao da base: RH_DRS - Peca utilizada: D:\MSSQLSERVER\MSSQL14.LAB\MSSQL\Backup\RH\RH_backup_2018_12_02_145703_7306050.bak - Data de inicio: 2018_12_02_15_23_41 - Script de restore: C:\app\DRS\temp\ScriptRestore_RH.sql - Status do restore: 10 percent processed. 20 percent processed. 30 percent processed. 40 percent processed. 50 percent processed. 60 percent processed. 70 percent processed. 80 percent processed. 90 percent processed. 100 percent processed. Processed 26288 pages for database 'RH_DRS', file 'RH' on file 1. Processed 2 pages for database 'RH_DRS', file 'RH_log' on file 1. RESTORE DATABASE successfully processed 26290 pages in 0.910 seconds (225.695 MB/sec). - Banco RH_DRS eliminado - Data de Termino: 2018_12_02_15_23_45 == Fim do Restore == == Restore atual == - Nome Original da base : Traces - Nome Restauracao da base: Traces_DRS - Peca utilizada: D:\MSSQLSERVER\MSSQL14.LAB\MSSQL\Backup\Traces\Traces_backup_2018_12_02_145703_3188990.bak - Data de inicio: 2018_12_02_15_23_45 - Script de restore: C:\app\DRS\temp\ScriptRestore_Traces.sql - Status do restore: 10 percent processed. 21 percent processed. 30 percent processed. 41 percent processed. 51 percent processed. 60 percent processed. 71 percent processed. 82 percent processed. 90 percent processed. 100 percent processed. Processed 368 pages for database 'Traces_DRS', file 'Traces' on file 1. Processed 3 pages for database 'Traces_DRS', file 'Traces_log' on file 1. RESTORE DATABASE successfully processed 371 pages in 0.108 seconds (26.796 MB/sec). - Banco Traces_DRS eliminado - Data de Termino: 2018_12_02_15_23_47 == Fim do Restore == == Restore atual == - Nome Original da base : Vendas - Nome Restauracao da base: Vendas_DRS - Peca utilizada: D:\MSSQLSERVER\MSSQL14.LAB\MSSQL\Backup\Vendas\Vendas_backup_2018_12_02_145703_9767782.bak - Data de inicio: 2018_12_02_15_23_47 - Script de restore: C:\app\DRS\temp\ScriptRestore_Vendas.sql - Status do restore: 10 percent processed. 20 percent processed. 30 percent processed. 40 percent processed. 50 percent processed. 60 percent processed. 70 percent processed. 80 percent processed. 90 percent processed. 100 percent processed. Processed 26288 pages for database 'Vendas_DRS', file 'Vendas' on file 1. Processed 2 pages for database 'Vendas_DRS', file 'Vendas_log' on file 1. RESTORE DATABASE successfully processed 26290 pages in 0.962 seconds (213.496 MB/sec). - Banco Vendas_DRS eliminado - Data de Termino: 2018_12_02_15_23_51 == Fim do Restore == == Fim do processo. Não existem bases para restauração. ==
Esse é o DRS, no próximo post irei trazer o código comentado e os passos necessários para a implementação da ferramenta.
Toda interação é bem-vinda, abraços,
Natan Rocha.
Fala galera, tudo certo? Hoje vamos dar continuidade ao assunto do final de semana passado, o DRS. E hoje você já vai colocar ele para funcionar aí no seu lab. Quem caiu direto nessa postagem, corre que ainda dá tempo de ver a postagem do final de semana passado e entender um pouco mais o que irá acontecer por aqui. Caso queira passar por lá depois, agora iremos iniciar a implementação de uma ferramenta que estou desenvolvendo para automatizar o RESTORE DATABASE no SQL Server. Para implementação, irá precisar de duas instâncias SQL Server, uma simulando o ambiente de PRODUÇÃO, e outra o ambiente de teste, dev, homologação... Só que pelo amor do tio Bill, não vai fazer isso no seu cliente agora, vamos entender como funciona primeiro. A primeira coisa que você vai fazer é clicar AQUI para baixar os arquivos no repositório do github, recomendo criar a seguinte estrutura de pastas e depois se achar necessário pode fazer as alterações -> C:\app\DRS\ <- Dentro da pasta DRS vo...
Comentários
Postar um comentário