Estou trabalhando na configuração de uma cópia de desenvolvimento de um banco de dados de produção no SQL Server 2008 R2 SP1. O banco de dados ativo está sendo pouco utilizado por dois desenvolvedores atualmente para consultas somente leitura, mas o novo banco de dados também terá atualizações.
Como o banco de dados tem 2,1 TB e levou um total de 3 dias para restaurar e atualizar para a versão mais recente necessária para o teste, meu plano original era criar um novo conjunto de arquivos de backup e depois restaurar a partir desses arquivos. Isso me permitiria criar a cópia de desenvolvimento do banco de dados na mesma instância e máquina SQL, sem precisar colocar o banco de dados atual offline.
No entanto, para economizar alguns dias, pensei que seria uma boa ideia copiar apenas os arquivos físicos do banco de dados e anexar a nova cópia do banco de dados. Infelizmente, quando tento copiar, recebo um erro referente ao bloqueio que o SQL Server coloca nesses arquivos.
Como não posso colocar o banco de dados offline apenas para transferir os arquivos de log (posso concluir isso antes que as pessoas entrem pela manhã), existe alguma maneira de copiar os arquivos do banco de dados ativo sem colocar o banco de dados em um estado offline? Ou devo esperar até que as pessoas vão para casa fazer isso?
fonte
Não, você terá que colocá-lo offline para copiar os arquivos. Se você tiver seu banco de dados dividido em arquivos / grupos de arquivos menores, isso poderá ajudar a acelerar a restauração do backup depois que você o tiver feito uma vez (dependendo de quais dados estão sendo alterados e de que são necessários para a cópia do desenvolvimento).
fonte
Eu vi as outras respostas e elas fazem todo o sentido. No entanto, apenas para responder sua pergunta, você certamente pode copiar arquivos de banco de dados sem colocar o banco de dados offline. Você precisará usar a programação SMO para esse fim. Verifique isso: http://technet.microsoft.com/en-us/library/ms162175(v=sql.100).aspx
Observe que o link fornecido é para objetos de programação SMO gerais e não para uma resposta específica a esta pergunta. Ainda não o fiz, mas em breve vou tentar isso e vou deixar todos saberem (se bem me lembro) o que eu descobrir.
fonte
Sim.
Tudo que você precisa fazer é definir o banco de dados como somente leitura:
Corre:
Copie os arquivos do banco de dados - MDF, LDF etc. para o novo destino
Depois que a cópia estiver concluída, você poderá desconectar e reconectar no novo local. Apenas redefina a opção somente leitura e use a mesma conta de usuário ao manipular esses arquivos. Além disso, convém excluir os arquivos antigos após a movimentação.
Outro método
Após a cópia bem-sucedida dos arquivos (etapa 2 acima):
Você pode definir o banco de dados para:
Single_User
mode e depois:Corre:
D:\
sendo o novo localVerifique se os arquivos de dados no novo local (
D:\
) têm acesso total à conta de serviço que está executando o SQL Server.Reinicie os serviços SQL
Corre:
Feito!
fonte