在系统和SQL Server版本之间移动SQL Server数据库的最快方法?

我们正在把我们不重要的SQL Server数据库[65Gib]移到新的服务器上。

在组合中,我们正在从SQL Server 2005迁移到SQL Server 2008 R2,理想的情况是需要一些时间来处理ALTER,将不同的表移动到不同的文件组中。

传统的刀子将是:

  • 老OLD服务器
  • 复制closures数据库文件(刚刚意识到,我将不得不find一些其他的方式从masterdb的用户login复制 )
  • 通过GigE将它们复制到新的数据库
  • 将数据库导入NEW服务器并允许进行任何升级。
  • 完成ALTERs
  • 启用NEW服务器

我希望尽可能多地预先传输数据。 是否有一个很好的[简单]的方法来复制数据库的实时版本,并继续更新目标服务器,直到所有的准备工作完成? 它发生在我身上,我可以使用复制,但我不知道是否可以然后促进复制奴隶主…

或者,我是否在尝试同时切换服务器和软件版本时出错?

65 GB确实是微不足道的,但是在复制速度慢的局域网或者几分钟的停机时间之后,可能还没有完成。

最简单的切换方法是在现有数据库和数据库之间进行logshipping(无恢复模式)。

您应该能够在切换之前复制login和代理作业,并将其保留为禁用状态,直到您将您的实时stream量转移。

切换服务器和版本的SQL服务器在同一时间不是一个错误,取决于您的要求。 请记住,在SQL Server 2008 R2上引入数据库是一个单向的过程,它会在数据库首次执行恢复时升级数据文件,并且不会返回!

你其他不那么简单的select是做以下事情:

  • 在您的新服务器上安装与现有服务器相​​同版本的SQL Server
  • 安装数据库镜像btwn现有的和新的服务器
  • 在复制login/代理作业/其他依赖关系时做相同的准备工作
  • 将镜像故障转移到新的服务器上,使其成为主服务器(假设您有来自应用程序的支持来执行此操作)
  • 将现有服务器更新到2008 r2,然后将镜像升级新服务器故障恢复到2008 r2,然后再次故障转移删除镜像,closures旧服务器

上述方法可能有很多变化。 故事的寓意是,你必须考虑割接的成本与停机成本。 这是一个权衡。

您可以从旧服务器分离数据库,复制物理文件并将其附加到新的服务器; 它会高兴地附加到不同的SQL Server版本,如果您已经传输login(使用build议的方法之一),一切都将立即工作。

在传输之前进行完整的数据库备份和日志备份(以及可选地缩小数据库)将有助于减小要复制的文件的大小。

本文包括几个使login传输非常简单的存储过程。

http://support.microsoft.com/kb/918992

它还保留login的原始sid,因此您的数据库用户将不需要sp_change_users_login将新login的sid与存储在用户数据库中的sid进行匹配。

我会备份/恢复前一天晚上全部备份,然后做一个差异备份/恢复的一天。 我不会复制MDF和LDF。 我之前已经在磁盘上迁移了大约400Gb的数据库。

即时文件初始化为MDF使这相当迅速

login我已经脚本和应用,作业设置和禁用等已经。

数据库镜像可以在不同版本的SQL中使用。 我通过使用数据库镜像并提前迁移login来完成您正在尝试的操作。 问题是你必须用t-sql设置数据库镜像,gui不会接受它,你也不能回去,所以在你想要切换之前对数据库进行完全备份,使镜像失效,做sp_change_users_logins'Update_One''用户''用户'来同步你的新login与数据库中存在的用户,你就完成了。 任何大小的DB迁移不到10秒。 更less,如果你有所有脚本。

为什么在执行还原时不要复制MDF和LDF? 我们的数据库是约。 350GB英寸