题
是的,我知道。存在正在运行的副本 SQL Server 6.5
2008年是荒谬的。
也就是说,从以下位置迁移的最佳方式是什么? 6.5
到 2005
?有直接路径吗?我找到的大多数文档都涉及升级 6.5
到 7
.
我应该忘记本土人吗 SQL Server
升级实用程序,编写所有对象和数据的脚本,并尝试从头开始重新创建?
我本来打算在这个周末尝试升级,但服务器问题将其推迟到下周末。因此,在这一周内,任何想法都会受到欢迎。
更新。这就是我最终这样做的方式:
- 备份有问题的数据库并主控
6.5
. - 执行
SQL Server 2000
的instcat.sql
反对6.5
的师父。这允许SQL Server 2000
要连接到的 OLEDB 提供程序6.5
. - 使用
SQL Server 2000
是独立的"Import and Export Data"
创建 DTS 包,使用OLEDB
连接到 6.5。这样就成功复制了全部6.5
的表到一个新的2005
数据库(也使用OLEDB
). - 使用
6.5
的企业管理器将所有数据库的索引和触发器编写到 .sql 文件中。 - 在 2005 的 Management Studio 中针对数据库的新副本执行该 .sql 文件。
- 使用 6.5 的企业管理器编写所有存储过程的脚本。
- 执行那个
.sql
文件反对2005
数据库。几十个存储过程存在问题,导致它们与2005
. 。主要是non-ANSI joins
和quoted identifier issues
. - 纠正了所有这些问题并重新执行了
.sql
文件。 - 重新创建了
6.5
的登录2005
并给予他们适当的权限。
纠正存储过程时需要进行一些冲洗/重复(有数百个需要纠正),但除此之外升级进展顺利。
能够使用 Management Studio 而不是 Query Analyzer
和 Enterprise Manager 6.5
真是一个惊人的差异。一些报告查询花费了 20-30 秒 6.5 database
现在运行时间为 1-2 秒,没有任何修改、新索引或任何东西。我没想到会立即得到改善。
解决方案
嘿,我也还被困在那个营地里。我们必须支持的第三方应用程序终于要到 2K5 了,所以我们快要出局了。但我感受到你的痛苦 8^D
也就是说,从我从 DBA 那里听到的一切来看,关键是先将数据库转换为 8.0 格式,然后再转到 2005 年。我相信他们为此使用了内置的迁移/升级工具。6.5 和 8.0 之间有一些重大步骤,比直接从 6.5 到 2005 更好地解决。
如果您还不知道的话,您最大的痛苦是 DTS 已经被 SSIS 取代。有一个 shell 类型模块将运行现有的 DTS 包,但您需要在 SSIS 中手动重新创建它们。其难易程度取决于软件包本身的复杂性,但到目前为止我已经完成了一些工作,而且进展非常顺利。
其他提示
您可以将 6.5 升级到 SQL Server 2000。您可能会更容易掌握 SQL Server 或 2000 版本的 MSDE。微软有一个页面 从 6.5 到 2000. 。一旦您拥有 2000 格式的数据库,SQL Server 2005 就可以毫无问题地将其升级到 2005 格式。
如果您没有 SQL Server 2000,您可以 下载 MSDE 2000 直接来自微软的版本。
我绝不是权威人士,但我相信唯一受支持的路径是从 6.5 到 7。当然,这将是最明智的路线,那么我相信您可以轻松地从 7 直接迁移到 2005。
至于编写所有对象的脚本 - 我建议不要这样做,因为您将不可避免地错过一些东西(除非您的数据库确实微不足道)。
如果您可以找到 Visual Studio 6.0 的专业版或其他超级企业版 - 它附带了以下副本 MSDE (基本上是 SQL Express 的前身)。我相信 MSDE 2000 仍然可以从 Microsoft 免费下载,但我不知道您是否可以直接从 6.5 迁移到 2000。
我认为从概念上讲,你不太可能面临任何危险。然而,多年的实践告诉我,您总是会错过一些不会立即显现出来的对象、权限或其他数据库项目。如果您可以编写整个转储的脚本,那就更好了。因为您不太可能错过某些内容 - 如果您确实错过了某些内容,则可以轻松地将其添加到脚本中并进行修复。我会像瘟疫一样避免任何手动步骤(除了按一下回车键之外)。