如何在数据库之间切换

时间:2009-01-21 12:53:00

标签: sql-server-2005

我们的应用程序使用每天更新一次的大型产品数据库。更新需要大量时间和资源。这就是为什么我们更新产品数据库的备份并在更新完成后切换到它。

现在在数据库之间切换的唯一方法是滥用我们的负载均衡器。 应用程序始终使用相同的ip来访问数据库服务器。负载均衡器决定如何解析此IP:更新后,它使用更新服务器的IP。

这是一个可怕的黑客。有没有什么好方法可以在数据库之间切换?

2 个答案:

答案 0 :(得分:2)

听起来你只是从数据库中读取。如果是这种情况,请查看SQL Server 2005的快照功能。您可以拥有数据库的只读快照,并像查询常规数据库一样进行查询。

指向固定的快照名称,而不是指向您的实时数据库,如ReadOnlyCopy。在实时数据库中执行正常加载,并在加载完成后,删除快照并再次执行。快照过程非常快。

这也有一些其他优点:

  • 它避免了负载均衡器的成本/延迟问题。
  • 如果您的负载出现严重错误,您可以使用快照在实时数据库中插入/更新记录
  • 它需要的磁盘空间要少得多,因为两个完整副本不需要两倍的空间
  • 它释放了您的备份/恢复计划,因此您可以在适当的时间为应用程序执行此操作,而不是适合每日加载的时间

以下是Simple Talk的一篇很好的文章,解释了2005年快照的概念:

http://www.simple-talk.com/sql/database-administration/sql-server-2005-snapshots/

答案 1 :(得分:0)

一些不同的选择:

1)修改应用程序连接的数据库。在两者之间来回切换。

2)处理并更新到暂存数据库,然后将更改复制到您的实时数据库。