Opções regulares de backup e arquivamento para um dispositivo cliente que executa o MS SQL Express, incluindo restaurações

2

No ambiente atual, um aplicativo cliente foi implantado em um único dispositivo de terminal, por exemplo, computador portátil. O aplicativo cliente registra & recupera as informações necessárias para fins de regulamentação e conformidade e, como está hoje, não há backup dos dados.

Como os dados são considerados críticos para relatórios normativos e de conformidade, as opções de backup e arquivamento estão sendo exploradas.

Quais opções disponíveis existem para fazer backup, arquivar e restaurar o banco de dados do cliente?

Ambiente

  1. O dispositivo cliente é executado no Windows 7
  2. MS SQL Express 2008

Requisitos

  1. RTO - 24 horas
  2. RPO - 15 minutos
por Motivated 13.11.2015 / 07:40

3 respostas

3

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.

    
por 13.11.2015 / 22:25
2

Acho que você está combinando alta disponibilidade com backups. São duas coisas diferentes. Os grupos Sempre ativados não estão relacionados ao backup do banco de dados SQL. Você também não precisa fazer backup do banco de dados para um farm SQL (o que você acha que um farm SQL é). Você pode simplesmente fazer o script de um backup de banco de dados em intervalos que atendam ao seu RPO na máquina cliente em que o SQL Server Express está instalado.

    
por 13.11.2015 / 08:18
0

A versão do MSSQL Express não tem o SQL Server Agent. Você pode usar uma combinação de OSQL Utility (utilitário de linha de comando) e Windows Scheduler para executar a instrução t-sql BACKUP DATABASE . Você pode fazer backup para o local externo (se a conta do processo mssql permitir). Você pode usar o modo de restauração COMPLETO e a combinação de BACKUP DATABASE / BACKUP LOG para ter um tipo de backup contínuo (ou seja, backup de log a cada 15 minutos). Não se esqueça dos bancos de dados do sistema (mestre, modelo, msdb).

Você também pode usar o Dropbox (ou similar) como um local externo. Na verdade, a pasta dropbox é local, então você não terá problemas para acessar pastas de rede (a conta do mssql no Windows pode limitá-lo). O MSSQL 2008 R2 pode compactar dados no backup (não tenho certeza se a versão expressa pode).

    
por 13.11.2015 / 16:29