Published on

November 17, 2015

Automatizando backups de banco de dados do SQL Server

Olá colegas administradores de banco de dados SQL,

Neste artigo, vou compartilhar com vocês algumas stored procedures que podem ser usadas para automatizar o processo de backup e substituição dos arquivos de backup do banco de dados e arquivos de log de transações no SQL Server. Essa solução é particularmente útil para usuários que desejam manter apenas um backup de banco de dados em seu servidor por vez, ajudando a economizar espaço no servidor de banco de dados.

Esses scripts estão sendo executados com sucesso em nosso ambiente de produção há vários meses, fornecendo uma solução de backup confiável e eficiente. É importante observar que um processo separado de outra aplicação faz backup do sistema de arquivos do nosso servidor de banco de dados para fita todas as noites, garantindo que cada backup em fita do dia tenha um backup exclusivo para aquele dia armazenado.

A stored procedure principal requer um parâmetro de pasta pai para armazenar todos os backups. Se a pasta ainda não existir, a procedure a criará. Além disso, subpastas serão criadas para todos os bancos de dados online. A procedure faz backup de todos os bancos de dados online, verificando se um banco de dados não está no modo de backup SIMPLE. Nesses casos, a procedure realiza um backup do log de transações.

São fornecidas duas stored procedures: uma para backup de banco de dados e outra para backup de log de transações. A procedure de backup de banco de dados exclui todos os logs de transações, pois esses logs só são úteis com um arquivo de backup de banco de dados criado anteriormente. Tanto os arquivos de backup de banco de dados quanto os arquivos de log de transações são armazenados na pasta do respectivo banco de dados.

Para automatizar o processo de backup, você pode criar um job do SQL Agent e executar a stored procedure de backup de banco de dados diariamente. Além disso, você pode criar um job para executar a stored procedure de backup de log de transações com mais frequência, como a cada 15 minutos ou 4 horas, dependendo de seus requisitos.

Se você deseja fazer backup apenas de determinados bancos de dados, pode especificá-los usando um parâmetro. Da mesma forma, se você deseja excluir determinados bancos de dados do backup, há um parâmetro para isso também. Além disso, se você deseja armazenar backups de bancos de dados diferentes em locais diferentes, pode usar os parâmetros de inclusão e exclusão para criar conjuntos de backups diferentes em locais diferentes em seu servidor ou unidade compartilhada.

Aqui está um exemplo de como seriam as propriedades do Job Step de amostra:

-- Propriedades do Job Step de Backup de Banco de Dados
EXEC dbo.DatabaseBackup
    @BackupType = 'FULL',
    @Compress = 'Y',
    @CheckSum = 'Y',
    @CleanupTime = 24,
    @LogToTable = 'Y'

-- Propriedades do Job Step de Backup de Log de Transações
EXEC dbo.TransactionLogBackup
    @BackupType = 'LOG',
    @Compress = 'Y',
    @CheckSum = 'Y',
    @CleanupTime = 24,
    @LogToTable = 'Y'

Ao implementar essas stored procedures e automatizar o processo de backup, você pode garantir que seus bancos de dados do SQL Server sejam regularmente backupados e que você tenha a flexibilidade de personalizar as configurações de backup de acordo com seus requisitos específicos.

Obrigado por ler e feliz administração de banco de dados!

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.