Restaurar arquivo bak para arquivos menores de banco de dados mdf e ldf


11

Eu tenho um banco de dados legado cuja pesadelo falta de design não entrarei aqui, mas os arquivos no servidor são (relativamente) enormes. Eu tenho:

MyDatabase.mdf: 24.8GB
MyDatabase.ldf: 114.6GB

É feito backup desse banco de dados em um arquivo .bak todas as noites e enviado para o nosso servidor de relatórios, onde é restaurado. O arquivo .bak é muito menor, com apenas 1,8 GB.

No entanto, quando tento restaurá-lo no servidor de relatórios, ele falha devido ao espaço insuficiente. Existem cerca de 100 GB gratuitos no servidor e ele está tentando consumir os 139,4 GB inteiros que os arquivos consumiram no servidor original. A menos que meu conhecimento de compactação esteja terrivelmente errado, estou bastante confiante de que o arquivo de 1,8 GB não está realmente expandindo 7400%.

Minha pergunta: Existe alguma maneira de dizer ao SQL Server para restaurar esse arquivo de backup sem reservar esse espaço antecipadamente? Eu não me importo com nenhum dos logs; Eu só preciso que os dados estejam lá. Entendo bancos de dados da perspectiva de desenvolvimento e esquema, mas não sou de forma alguma qualquer DBA.

Isso está no SQL Server 2008 R2. Agradeço por qualquer ajuda ou sugestões.

Respostas:


11

O backup contém duas informações:

Os dados reais no backup são aqueles de 1,8 GB. Mas os metadados descrevem o layout dos arquivos como no servidor de produção original. Embora pareça compressão, não é compressão real. São apenas metadados x conteúdo. o problema é que, durante a restauração, a máquina de relatório cria um layout conforme descrito nos metadados, portanto, 114,6 GB + 24,8 GB. Agora, a verdadeira questão: você pode restaurá-lo sem recriar o layout original do arquivo DB? Não. No entanto, existem outras soluções para o seu problema: traga novamente o banco de dados original. A redução do log de transações abrange as etapas que você precisa executar, pois o log é o seu principal ponto problemático. Em seguida, implantaria o envio de logs em vez de backup / restauração.


Obrigado; encolher o log de transações fez o truque perfeitamente.
precisa saber é o seguinte

1
Envio de log em vez de backups de log?
Thomas Stringer

4
@ Shark: envio de logs em vez de backups completos , como forma de entregar o banco de dados à máquina de relatório.
Remus Rusanu

Oh, ok, eu perdi completamente essa parte da pergunta. Obrigado pelo esclarecimento !!
Thomas Stringer

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.