【问题标题】:What is the suggested approach to Syncing/Backing up/Restoring from SQL Server 2008 to SQL Server 2005从 SQL Server 2008 同步/备份/还原到 SQL Server 2005 的建议方法是什么
【发布时间】:2010-03-30 15:22:17
【问题描述】:

我的开发机器上只有 SQL Server 2008(开发版)

我的托管公司只有 SQL Server 2005 可用(而且我没有直接连接到此数据库的访问权限)

我只是想知道最好的方法是什么:

  1. 将初始数据库结构和数据投入生产。
  2. 并在未来保持任何结构更改/数据更改同步。

据我所知……

  • 复制 - 不是一个选项,因为我无法连接到生产数据库。

  • 恢复备份 - 不是一个选项,因为据我所知,您无法从 2008 年导出可在 2005 年恢复的数据库(即使 2008 年数据库设置为 2005 年兼容模式),而且不会无论如何,在我的开发版本之上恢复生产是有意义的。

  • 从我的 2008 数据库中转储所有脚本,将我的 Dev 还原为 2008 -> 2005 的机器,并从脚本重新创建数据库,然后只需使用备份和恢复将初始数据库投入生产,然后运行从那时起通过网络面板编写脚本

  • 从我的 2008 数据库中转储所有脚本,并从生产中的脚本生成整个 2005 数据库。然后从那时起通过网络面板运行脚本

  • 对于最后 2 个选项,我可能还需要使用一些工具(我认为在网络上存在)编写所有数据插入脚本

还有其他我没有考虑的可能的解决方案吗?

【问题讨论】:

  • 感谢各位的建议。最终安装了一个 2005 实例与我的 2008 安装并行,以便更轻松地管理事情。

标签: sql-server sql-server-2005 sql-server-2008 backup restore


【解决方案1】:

最安全的 选项是将您的开发环境恢复为 SQL 2005,因为无论您的代码与您的托管环境兼容。您应该能够在您的盒子上安装一个单独的 2005 实例,这应该可以节省时间(出于性能原因,一次只有一个 2005/2008 处于活动状态)。要进行此配置,您可能必须卸载 2008,然后安装 2005 实例,然后再安装 2008 实例。

关于数据,您可能需要查看 BCP 实用程序,以将数据复制进和复制出数据库。一旦掌握了窍门,它就非常快捷方便。

【讨论】:

    【解决方案2】:

    您可以在您的开发机器上同时运行 2005 和 2008 实例(实际上每个实例的多个实例)(正如您所提到的,您还可以在 2008 中以 2005 兼容模式运行数据库,这实际上只对禁用语法有用特征)。我会推荐这个,因为您说您可以将您的安装恢复到 2005 - 只需并排运行。

    因此,您可以从主机备份和恢复到您的开发机器,然后使用任意数量的数据库比较工具(例如 Red Gate SQL Compare 或 ApexSQLDiff)来比较您的开发机器上的 2005 年和 2008 年数据库并生成更改用于在 dev 中进行测试然后应用于生产的脚本。

    【讨论】:

      【解决方案3】:

      这是因为您的开发交付物是数据库 MDF,而不是脚本源。战斗已经失败。除了部署初始引擎版本不同之外,当您尝试部署应用程序的第一次更新时,您还会遇到更多问题。您会发现自己试图将模式的增量应用到生产中,这不是一件容易的事。您可能最终会使用 SQL Compare 之类的工具或类似的工具。即使是现在,当您拥有 1(一个)开发人员和 1(一个)生产服务器时也是如此。随着您将更多开发人员或更多部署添加到组合中,情况会变得越来越糟。

      但还有更好的方法。

      一种方法是使用基于源代码的开发工具,例如 Visual Studio Database Edition。 VSDB 项目的可交付成果是一个 .dbschema,可以使用 vsdbcmd 工具将其作为差异增量部署到生产环境中。

      更好的方法是对架构进行版本控制,并通过从 v.N 升级到 v.N+1 的脚本部署所有内容。见Version Control and Your Database

      除了可管理的部署路径之外,这两种方法都提供数据库架构更改的源代码控制版本。

      确实,即使使用基于脚本的方法,您最终也可以在脚本中使用 2008 年的功能,并且在部署时会有惊喜,但像 VSDB 这样的工具实际上可以在构建/编译期间捕获这些功能。即使您确实犯了错误,也很容易通过修改脚本来恢复,而不是从头开始在正确降级版本的新空数据库上。

      【讨论】:

      • 那里的资源非常好。非常感谢......我什至没有考虑过这样的事情。一定会调查的。这只是一个个人项目,因此不会有更多的开发人员,但任何能保持我自己的时间和理智的东西都是有益的。谢谢。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-12
      • 2010-09-29
      • 2023-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多