使用复制数据库向导时超时过期错误

Sal*_*n A 8 sql-server ssis restore sql-server-2012

Microsoft 让我相信 SQL Server 2012 复制数据库向导是将 SQL Server 2000 数据库复制到 SQL Server 2012 的最佳方式。经过几个小时的努力,我解决了一些问题,并且能够导入小到中型 SQL Server 2000 数据库到 SQL Server 2012。

但是,对于 30GB 的数据库,向导经常失败并出现以下错误:

消息:传输数据时出错。有关详细信息,请参阅内部异常。
StackTrace:在 Microsoft.SqlServer.Management.Smo.Transfer.TransferData()
在 Microsoft.SqlServer.Dts.Tasks.TransferObjectsTask.TransferObjectsTask.TransferDatabasesUsingSMOTransfer()
InnerException --> 超时已过期。操作完成前超时时间已过或服务器未响应。
创建数据库失败。无法创建列出的某些文件名。检查相关错误。
StackTrace:
在 System.Data.SqlClient.SqlConnection.OnError(SqlException 异常,Boolean breakConnection)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)

我已经仔细检查过,这不是文件路径、权限或磁盘空间问题。我认为该CREATE DATABASE步骤需要 2 分钟左右,向导假定操作超时。我使用 SQL 手动创建了一个具有相同文件路径和文件大小的空数据库,该数据库有效。有趣的是,一个 1GB 的数据库复制失败并出现相同的错误并在第二次尝试时成功。

请帮忙。

Aar*_*and 7

比弄乱那个向导更有效的方法是:

  1. 对您的 2000 数据库进行完整备份。
  2. 将其恢复到 SQL 2005、2008 或 2008 R2 实例,所有这些实例都支持 2000 个数据库。如果您没有任何适用的实例,您仍然可以在此处获取2008 R2评估版。请注意,Express 将无法使用,因为它具有 4GB / 10GB 数据文件限制,具体取决于版本。
  3. 使用ALTER DATABASE.
  4. 在此数据库不再处于 80 兼容模式后,对其进行完整备份。
  5. 将此新备份还原到您的 SQL Server 2012 实例。
  6. 将兼容级别更改为 110 并更新统计信息。
  7. 测试