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

Riz*_*sim 6 sql-server

我们正在将重要的 SQL Server 数据库 [65Gib] 移至新服务器。

添加到组合中,我们将从 SQL Server 2005 迁移到 SQL Server 2008 R2,理想情况下需要花一些时间执行 ALTER 以将各种表移动到不同的文件组中。

传统的刀结束将是:

  • 关闭旧服务器
  • 复制数据库文件(刚刚意识到我必须找到一些其他方法来从 masterdb复制用户登录)
  • 将它们通过 GigE 复制到新数据库
  • 将数据库导入新服务器并允许进行任何升级。
  • 完成 ALTER
  • 启用新服务器

我希望尽可能多地预加载传输;有没有一种好的 [简单] 方法来复制数据库的实时版本并继续更新目标服务器,直到完成所有准备工作?我突然想到我可以使用复制,但我不知道我是否可以将复制从站提升为主站...

还是我在尝试同时切换服务器和软件版本时犯了错误?

Nic*_*ias 8

65 GB 确实是微不足道的,但在通过慢速 LAN 复制时可能还没有结束,或者如果您无法承受几分钟的停机时间。

切换(并保持简单)的最快方法是在现有数据库和数据库之间进行日志传送(无恢复模式)。

您应该能够在切换之前复制登录和代理作业,并在您移动实时流量之前将它们禁用。

同时切换服务器和 sql server 版本并不是一个错误,这取决于您的要求。请记住,在 sql server 2008 R2 上使 db 联机是一种单向过程,它将在 db 第一次进行恢复时升级数据文件,并且没有回头路!

您的另一个不太简单的选择是执行以下操作:

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

上述方法可能有许多变体。这个故事的寓意是您必须考虑转换成本与停机成本。这是一种权衡。

  • 我不会把 65GB 称为微不足道的。同意,它是“小”的,但它并不“微不足道”,因为它根本不需要关心。这里的大多数人都会被挑战甚至想到它(更多地谈论他们,同意)。否则+1。 (2认同)
  • 我发现这是规划镜像创建和镜像需要升级后的步骤的有用指南。http://blogs.lessthandot.com/index.php/DataMgmt/DBAdmin/mirroring-sql-server-2005-to-sql-server--2 (2认同)