quarta-feira, 16 de maio de 2012

Script de backup de todas as databases no SQL Server

Nas versões pagas do SQL Server, existem assistentes que facilitam o agendamento de tarefas de backup que gravem todos os databases existentes, sem a preocupação de que ao criar novas databases precise alterar estes procedimentos.
Em ambientes sem estes recursos, ou onde você prefirar criar manualmente estas atividades, sugiro o script abaixo, que irá selecionar todos os databases existentes na instância do servidor e executar para cada um a instrução de backup.
Para automatizar este procedimento copie o código abaixo e coloque em um arquivo neste exemplo chamado BACKUP.SQL.
Observe no início do script que tem o destino dos arquivos gerados pela rotina, altere conforme a tua necessidade.

DECLARE @name VARCHAR(150) -- Nome do Database  
DECLARE @path VARCHAR(256) -- Caminho do arquivo de backup
DECLARE @fileName VARCHAR(256) -- Arquivo do backup  

-- Define caminho de destino do backup
SET @path = 'D:\Backup\'  

-- Cria um cursor para selecionar todas as databases,  
--  excluindo model, msdb e tempdb
DECLARE db_cursor CURSOR FOR  
   SELECT name 
     FROM master.dbo.sysdatabases 
    WHERE name NOT IN ('model','msdb','tempdb')  

-- Abre o cursor e faz a primeira leitura 
OPEN db_cursor   
FETCH NEXT FROM db_cursor INTO @name   

-- Loop de leitura das databases selecionadas
WHILE @@FETCH_STATUS = 0   
BEGIN   
   SET @fileName = @path + @name + '.BAK'  
   -- Executa o backup para o database
   BACKUP DATABASE @name TO DISK = @fileName WITH FORMAT;  

   FETCH NEXT FROM db_cursor INTO @name   
END   

-- Libera recursos alocados pelo cursor
CLOSE db_cursor   
DEALLOCATE db_cursor 

A seguir crie outro arquivo chamado BACKUP.BAT com o conteúdo abaixo:
osql -E -S Servidor -i "d:\backup\sql\BackupBancos.SQL"

Agora basta criar um agendamento do próprio Windows chamando o arquivo BACKUP.BAT.

sexta-feira, 4 de maio de 2012

Webcast sobre Replicação no SQL Server

No dia 04 de maio de 2012 será realizada uma webcast para tratar de replicação, junto com o Marcus Vinicius @mvbitt serei um dos apresentadores do evento, quem tiver dispobilidade abaixo resumo do evento e link de inscrição:

Sexta – Feira (04/05)

Palestrante: Cesar Blumm (@cesarblumm) e Marcus Vinícius Bittencourt (@mvbitt)
Palestra: Replicação na Prática
Descrição: Uma visão geral sobre replicação e suas formas de publicações. Será criada uma replicação na prática passo-a-passo.
Horário: 20:00 a 21:00
Link para inscrição: https://msevents.microsoft.com/CUI/EventDetail.aspx?EventID=1032512282&Culture=pt-BR