是否有可能移动一个SQL Server 2005数据库到不同的服务器运行SQL Server 2008没有任何停机时间? 该系统是24/7,并且必须被移动到具有不同存储的不同服务器。
我们试图复制数据库,但是这并不能保证整个数据库在过程结束时保持同步。
零停机时间没有。 但是经过仔细的规划,您可以在接近零时间的情况下脱身。
选项1:
选项2(更多的工作,更less的停机时间):
当然,为了做到这一点,你需要testing并确保你没有错过任何东西,当你真的这样做:)
没有抱歉。 我没有看到没有任何停机时间移动数据库的方法。 在像复活节假期期间,你甚至无法在一个小时内放入数据库?
一个非常复杂的方式来做到这一点(几乎)
显然,这里的一切都需要testing,还有很多详细的步骤。
或者 – 让pipe理层同意停机时间,并将其公布给客户。 然后练习和testing升级到死亡!
向pipe理层解释试图做到“便宜”的技术难题。 当你第一次build立一个完整的27×7架构时,这是你build立一个系统的东西。
即使是最大的系统也计划停机。 这是无用的停机时间,你需要担心更多。
事务复制是你的朋友在这里…
如果您将新服务器设置为从服务器,则应该能够启动并运行新的数据库,然后在准备就绪时切换(这里的停机时间最短,我们正在讲话的时间最短,而不是几小时)。 ..你可能需要重新索引一张或三张表,但一旦完成,就完成了。
恐怕你不会单靠SQL Server来实现这一点。 过去我使用过一种名为Double Take的产品,它允许您将DB克隆到另一台服务器,然后在方便时进行故障切换。
在新机器上启动服务时,故障转移过程仍然会导致一些停机。
如果现在只是单个实例/非群集设置,则不会在数据丢失的情况下实现0%的停机时间。 如果数据库主要被读取较多,并且最好丢失一些写入操作,那么把数据库放下,那么你可能有一些select。
您可以对数据库执行COPY_ONLY完全备份,然后在完成后将bak文件移到新的服务器存储中。 将数据库恢复到新的SQL实例,并重新编写连接string(希望这只是一个inc文件),然后重新启动您的站点。 你会在网站上有一个小故障,活动会话将重新启动。
然而。 您将在备份和还原之间丢失所有写入。
您可以尝试使用db镜像解决scheme以最less的停机时间(几秒钟来进行故障切换)达到此目的。 你可以看看这个MSDN文章更多信息: http : //msdn.microsoft.com/en-us/library/bb677181.aspx
汤姆
如果您使用.NET解决scheme作为使用2.0框架的应用程序服务器,则tvanzele的build议应该可以正常工作。 下面的步骤:
您可以考虑在两个环境之间为数据库设置同步镜像。 当同步时,数据库可以被故障转移(或返回),只有任何在飞行中的交易中断。
我build议你使用Redgate软件来做。 SQL Compare
将帮助您在其他服务器中新创build的数据库中重新创build完全相同的结构。 然后使用SQL Compare Data
为您创build“复制”脚本并执行它(或稍后保存)。 奇迹般有效。 我用它来复制prod / dev db之间的东西。
这很好,因为你可以做一次Sql Data Compare
。 然后,当它移动了一些数据(并且新的数据到达了旧的数据库),你可以重新运行它,所以它只会在几秒钟内同步差异。
使用SQL Data Compare Pro,您可以比较和同步SQL Server实时数据库与备份,比较两个备份或使用源代码pipe理下的SQL脚本文件夹。 使用命令行界面,您可以自动执行任务并安排比较,以便轻松编辑审计跟踪。
Redgate SQL工具带你的朋友永远(我没有办法与Redgate联系):p
作为一个方面说明。 由于数据是非常大的我会build议使用SQL数据比较来使用块(每个副本的几个表)。 然后再进行最后的同步,以同步复制期间发生的任何差异(即使花了你3个小时,也只需要同步几行的行数)。
我遇到一个名为ChronicDB的产品,声称可以在零宕机的情况下进行迁移。 我不确定他们是否支持SQL Server。
我确实以停机时间结束了。 我采取了“常规”备份/恢复方式,包括最终尾部的事务日志。
我仍然认为,应该有一个开箱即用的方式来做到这一点,没有任何停机时间。