Microsoft 让我相信 SQL Server 2012 复制数据库向导是将 SQL Server 2000 数据库复制到 SQL Server 2012 的最佳方式。经过几个小时的努力,我能够解决一些问题,并且能够导入小到中型 SQL Server 2000 数据库转换为 SQL Server 2012。
但是,对于 30GB 的数据库,该向导经常失败,并出现以下错误:
消息:传输数据时发生错误。有关详细信息,请参阅内部异常。
StackTrace:在 Microsoft.SqlServer.Dts.Tasks.TransferObjectsTask.TransferObjectsTask.TransferDatabasesUsingSMOTransfer()
的 Microsoft.SqlServer.Management.Smo.Transfer.TransferData()
InnerException --> 超时已过期。在操作完成之前超时时间已过或服务器没有响应。
创建数据库失败。无法创建列出的某些文件名。检查相关错误。
StackTrace:在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning() 的 System.Data.SqlClient.SqlConnection.OnError(
SqlException 异常,布尔 breakConnection )
在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior,SqlCommand cmdHandler,SqlDataReader dataStream,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj)
我已经仔细检查过,这不是文件路径、权限或磁盘空间问题。我认为该CREATE DATABASE
步骤需要 2 分钟左右,并且向导假定操作超时。我使用 SQL 手动创建了一个具有相同文件路径和文件大小的空数据库,这很有效。有趣的是,一个 1GB 的数据库副本因相同的错误而失败,并在第二次尝试时成功。
请帮忙。
比弄乱那个向导更有效的方法是:
ALTER DATABASE
.