我们正在把我们不重要的SQL Server数据库[65Gib]移到新的服务器上。
在组合中,我们正在从SQL Server 2005迁移到SQL Server 2008 R2,理想的情况是需要一些时间来处理ALTER,将不同的表移动到不同的文件组中。
传统的刀子将是:
我希望尽可能多地预先传输数据。 是否有一个很好的[简单]的方法来复制数据库的实时版本,并继续更新目标服务器,直到所有的准备工作完成? 它发生在我身上,我可以使用复制,但我不知道是否可以然后促进复制奴隶主…
或者,我是否在尝试同时切换服务器和软件版本时出错?
65 GB确实是微不足道的,但是在复制速度慢的局域网或者几分钟的停机时间之后,可能还没有完成。
最简单的切换方法是在现有数据库和新数据库之间进行logshipping(无恢复模式)。
您应该能够在切换之前复制login和代理作业,并将其保留为禁用状态,直到您将您的实时stream量转移。
切换服务器和版本的SQL服务器在同一时间不是一个错误,取决于您的要求。 请记住,在SQL Server 2008 R2上引入数据库是一个单向的过程,它会在数据库首次执行恢复时升级数据文件,并且不会返回!
你其他不那么简单的select是做以下事情:
上述方法可能有很多变化。 故事的寓意是,你必须考虑割接的成本与停机成本。 这是一个权衡。
您可以从旧服务器分离数据库,复制物理文件并将其附加到新的服务器; 它会高兴地附加到不同的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英寸