Faça backup e restaure o banco de dados do SQL Server com o grupo de arquivos FILESTREAM

8

Eu uso o SQL Server e tenho um banco de dados enorme com dois grupos de arquivos:

  • Primário : que contém todos os dados, exceto os arquivos grandes (mais de 1 MB)
  • FILESTREAM (leitura / gravação) : que contém os arquivos grandes

Agora, o cenário de backup é:

  • Toda sexta-feira, obtenha um backup completo (2h)
  • Todos os dias da semana, exceto sexta-feira, obtenha um backup diferencial (2h)

Como o banco de dados é grande e está em produção em um servidor remoto, sempre que eu quero trazer o banco de dados para o meu ambiente local para criar um banco de dados de teste (semanalmente), tenho que trazer o primário e o fluxo de arquivos.

Eu gostaria de poder alterar a maneira como os backups e as restaurações são executados, de tal maneira que apenas foi necessário trazer o grupo de arquivos primário, ignorando o fluxo de arquivos. Dessa forma, toda semana eu traria apenas o grupo de arquivos primário e não todas as informações que supõem o fluxo de arquivos.

Eu acho que pode haver muitos problemas, e todas as referências de filestream podem ser perdidas ao acessar os arquivos. Gostaria de saber se é possível modificar o conteúdo de todas as colunas do fluxo de arquivos ao executar um backup ou usar um fluxo de arquivos diferente hospedado no ambiente de teste. Além disso, ouvi falar sobre a Restauração fragmentada de apenas alguns grupos de arquivos, mas tenho muitas dúvidas sobre como executá-la.

Pergunta 1: posso ter esse cenário?

Pergunta 2: é uma boa idéia ter apenas um backup completo e trazer backups diferenciais / logs de transações para o ambiente de teste?

Pergunta 3: posso ter um cenário melhor para fazer backup e restaurar?

Sou todo ouvidos às recomendações. Se você tiver algum exemplo, por favor, mostre-me com uma consulta T-SQL.

Mario Navarro Claras
fonte
A Visão geral do Filestream nos informa explicitamente que você pode excluir os grupos FILESTREAM de seus backups. Porém, a implementação do TSQL seria incrível de ver
clifton_h 9/09/17
Sim, você pode excluir o FILESTREAM do seu backup, mas no processo de restauração precisará fornecê-lo. Acho que isso sempre é necessário quando o seu grupo de filestream é de leitura e gravação. Isso significa que você pode fazer uma cópia de segurança apenas parcial dos seus dados e outro backup, incluindo grupos de arquivos read-write (que contém os arquivos)
Mario Navarro Claras

Respostas:

1

Gostaria de saber se é possível modificar o conteúdo de todas as colunas de fluxo de arquivos ao executar um backup

Não.

Eu criaria meu banco de dados de teste com o mesmo esquema que o banco de dados de produção e, em seguida, escreveria um script personalizado para sincronizar os dados no grupo de arquivos primário (isso é bastante fácil, pois seu sistema de produção é a fonte, portanto, a sincronização é apenas em uma direção )

Depois, com os dados do fluxo de arquivos, eu stub os arquivos, o que pode ser feito de várias maneiras. Em cima da minha cabeça, de alguma forma eu geraria arquivos de zero byte no lado do teste.

Randolph West
fonte