A Microsoft me fez acreditar que o SQL Server 2012 Copy Database Wizard é a maneira mais ideal de copiar um banco de dados do SQL Server 2000 para o SQL Server 2012. Depois de lutar por algumas horas, consegui superar alguns problemas e importar pequenos para bancos de dados SQL Server 2000 de tamanho médio no SQL Server 2012.
No entanto, o assistente falha constantemente para um banco de dados de 30 GB com estes erros:
Mensagem: Ocorreu um erro durante a transferência de dados. Consulte a exceção interna para obter detalhes.
StackTrace: em Microsoft.SqlServer.Management.Smo.Transfer.TransferData()
em Microsoft.SqlServer.Dts.Tasks.TransferObjectsTask.TransferObjectsTask.TransferDatabasesUsingSMOTransfer()
InnerException --> Tempo limite expirado. O período de tempo limite expirou antes da conclusão da operação ou o servidor não está respondendo.
CREATE DATABASE falhou. Alguns nomes de arquivo listados não puderam ser criados. Verifique os erros relacionados.
StackTrace:
em System.Data.SqlClient.SqlConnection.OnError(exceção SqlException, Boolean breakConnection)
em System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
em System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
Eu verifiquei duas vezes, não é um problema de caminho de arquivo, permissão ou espaço em disco. Acho que a CREATE DATABASE
etapa leva cerca de 2 minutos e o assistente assume que a operação expirou. Eu criei manualmente um banco de dados vazio com o mesmo caminho de arquivo e tamanho de arquivo usando SQL, que funcionou. Curiosamente, uma cópia do banco de dados de 1 GB falhou com os mesmos erros e foi bem-sucedida na segunda tentativa.
Por favor ajude.
Um caminho muito mais eficiente do que mexer com esse assistente seria:
ALTER DATABASE
.