Eu vou assumir que seu orçamento é limitado (porque sempre é, não é?).
Vá até o site da Ola Hallengren e pegue uma cópia de sua solução de manutenção. Execute o script depois de configurar o básico:
SET @BackupDirectory = N'C:\Backup' -- Specify the backup root directory.
SET @CleanupTime = NULL -- Time in hours, after which backup files are deleted. If no time is specified, then no backup files are deleted.
Como você está usando a edição Express, não terá o SQL Agent que permite agendar tarefas, portanto, use o agendador de tarefas do Windows para configurar seus backups. Como seu RPO é de 15 minutos, eu recomendaria 1 dia inteiro (à meia-noite, por exemplo) e um backup de log a cada 5 minutos. Verifique se os bancos de dados estão em FULL
.
Um trabalho típico ficaria assim:
sqlcmd -E -S MYSERVER\MYINSTANCE -d master -Q "EXECUTE dbo.DatabaseBackup @Databases = 'ALL_DATABASES', @Directory = N'F:\SQLBackup', @BackupType = 'FULL'" -b
(agende isso todos os dias)
sqlcmd -E -S MYSERVER\MYINSTANCE -d master -Q "EXECUTE dbo.DatabaseBackup @Databases = 'ALL_DATABASES', @Directory = N'F:\SQLBackup', @BackupType = 'LOG'" -b
(agende isso a cada 5 minutos)
Enquanto você estiver usando essa solução, examine as outras possibilidades de atualização de estatísticas e manutenção de índices, ...
Ao restaurar, restaure o FULL e todos os seguintes backups de LOG em ordem. Certifique-se de restaurar com NORECOVERY
até ter aplicado o último arquivo de log. Como pode haver muitos arquivos, você pode querer investigar isso. Veja aqui para mais informações sobre isso.
Agora vem a parte difícil . Se a máquina morrer, você ainda não obterá seu RPO, portanto, é necessário remover os backups da máquina (e talvez até mesmo para um local geograficamente distante). Há uma tonelada de opções aqui.
O que geralmente faço é fazer o backup em um datacenter / máquina diferente com a ferramenta de backup usada no ambiente para backups de arquivos simples. Se não houver nenhum, talvez você queira procurar uma conta da Amazon Web Services e movê-la para o S3. Se você está preocupado com a segurança, pode criptografar seus backups com aplicativos como Arq .
Então, final: RTO . Isso pode ser complicado, dependendo de como você olha para ele. Você tem uma equipe que possa implantar um novo SQL Server, se necessário, e restaurar os backups (da AWS)? Existe um sistema de rotação de chamadas? você vai pegar o telefone 24/7?
Se você quiser automatizar isso, as coisas ficarão muito mais complicadas e você precisará de servidores adicionais com certeza. Desde que você está em 2008, você poderia configurar o envio de log. Este é um recurso do SQL Server que você pode usar gratuitamente com todas as versões possíveis. Faz uma cópia dos arquivos de log e os restaura para o seu servidor sql secundário. Eu posso elaborar se você quiser.
Por favor, certifique-se de testar a sua solução e monitorar se os backups estão funcionando bem! Nada é mais do que ter que fazer uma restauração e perceber que o backup não foi executado em 5 dias. Se precisar ser barato, enviar os resultados funciona, mas isso fica muito rápido. Talvez procure em um sistema de monitoramento como Icinga se o dinheiro é um problema.
PSA: Não sou afiliado a nenhuma das soluções que proponho aqui, é o que geralmente faço quando me deparo com esta questão.