Eu tenho um banco de dados com quase 1 TB de FILESTREAM
dados dos quais não preciso fazer backup (se os dados forem excluídos, eles serão recriados automaticamente em algumas horas, por isso não é importante). A maioria dos dados é alterada a cada dois dias, portanto, os backups diferenciais não ajudam a manter o tamanho baixo.
Eu tinha os backups funcionando da maneira que eu precisava, configurando o Recovery Mode Full
, criando um separado FILEGROUP
para o e FILESTREAM
, em seguida, fazendo backups apenas do "Primário" FILEGROUP
. O problema causado foi que o arquivo de log (que também é copiado) agora é desnecessariamente grande porque inclui os FILESTREAM
dados.
SIMPLE
O Modo de recuperação retira minha capacidade de fazer backups de FILEGROUP
s específicos , então também não acho que isso seja uma opção.
Meu pensamento é apenas mover os FILESTREAM
dados para um banco de dados separado, mas agora estou perdendo a integridade referencial e certamente herdando uma série de outros problemas.
Existe alguma maneira de criar backups parciais no Simple
modo de recuperação (sem definir a FILESTREAM
tabela como somente leitura)? Caso contrário, existem outras soluções sãs para o meu problema?
fonte
Uma solução para um banco de dados definido no modo de recuperação SIMPLE é ter os dados FILESTREAM em um grupo de arquivos somente leitura (que não é a sua opção ideal) e, em seguida, fazer backup apenas dos grupos de arquivos de leitura / gravação com DIFFERENTIAL como este:
Ele obterá todos os dados que foram alterados em qualquer grupo de arquivos de leitura / gravação. É o mais fácil, pronto para uso, que você pode manter backups parciais gerenciáveis sem obter os dados do FILESTREAM. No entanto, seria necessário que o processo de carregamento dos dados mencionados precisasse modificar o grupo de arquivos para leitura / gravação, carregar quaisquer dados adicionais e, em seguida, configurar para ler apenas novamente. Certamente não é o ideal.
fonte
Sinto-me sujo ao fornecer isso como uma opção, mas se você optar por segregar os dados FILESTREAM em seu próprio banco de dados, poderá manter o RI entre as tabelas nos dbs separados por meio de gatilhos :
Espere que os problemas de desempenho e uma seção do couro cabeludo fiquem sem pêlos depois de puxar tufos de pêlos da cabeça em frustração, mas teoricamente você poderia fazer isso. Eu não recomendo essa abordagem em nenhum nível; em vez disso, sugiro fortemente que você aumente a frequência de seus backups de tlog e / ou mude para o modelo de recuperação com registro em massa e veja quanto espaço você economiza, mas essa é uma solução possível. Você realmente precisaria considerar o benefício de separar esses dados e lidar com um design de banco de dados frankensteiniano, mas é uma opção.
... Eu tenho que ir tomar banho agora ...
fonte
Sei que esta pergunta já foi respondida, mas há outra solução que pode ajudar outras pessoas. Recentemente, aprendi no blog de Brent Ozar que existe uma opção para descartar seus backups de log imediatamente:
Assim, você pode deixar seu banco de dados no
Full
modo de recuperação e fazer backups de grupos de arquivos. Quando o log de transações ficar muito grande, basta emitir o comando backup log e pronto.fonte