A Microsoft me fez acreditar que o Assistente para Cópia de Banco de Dados do SQL Server 2012 é a maneira mais ideal de copiar um banco de dados do SQL Server 2000 para o SQL Server 2012. Depois de 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 em um banco de dados de 30 GB com estes erros:
Mensagem: Ocorreu um erro ao transferir 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 decorrido 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 caminho de arquivo, permissão ou problema de espaço em disco. Penso que o CREATE DATABASE
passo demora cerca de 2 minutos e o assistente assume que a operação expirou. Criei manualmente um banco de dados vazio com o mesmo caminho 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 teve êxito na segunda tentativa.
Por favor ajude.
fonte
Respostas:
Um caminho muito mais eficiente do que mexer com esse assistente seria:
ALTER DATABASE
.fonte