我正在制作一个非常大的数据库(超过250个演出),超过2.25亿条logging。 这个数据库很难从其庞大的规模工作。 这个数据库是只读的。
我们正在寻找更快的硬件,但是我试图find最有效的方式来处理数据库。 该数据库必须每晚从主数据库更新,停机时间必须保持最短。 主数据库由第三方维护。
我试图find更新数据库的最佳方式,但我没有很多运气。 我研究了差异备份和事务日志备份,但为了应用它们,必须首先恢复完整备份。 在我的情况下,这完全违背了差异备份的目的,因为我可能会在master数据库上完成完整备份,然后每晚只恢复完整备份,因为这比恢复完全备份并每隔一段时间应用差异备份晚。
我希望有一个解决scheme,我可以完成一次完整的备份(或者一个月一次),然后从此基于相互构build的原始完全备份,简单地应用某种types的增量备份。 这会使停机时间缩短到一分钟,因为一旦第一次完全备份完成,我只能每晚应用增量备份。 我会简单地重build每个“增量”备份后的索引。 我没有find像这样的解决scheme。
我现在正在深入研究数据库备份和性能,并不断地阅读MSDN,但似乎这个解决scheme不是一个选项。 我以为我会问最后的手段 – 当然这里有一些pipe理大型数据库的地方,夜间恢复是不切实际的。
有什么build议么? 我也开放给build议/链接到性能的页面,因为我从来没有一个数据库这么大的工作。
您正在描述日志传送 ,但是您想要使用“差异”备份而不是日志备份,这是您的方法的问题。 通过日志传送,您可以还原数据库一次,然后在主站点上创build日志备份时应用日志备份,而且您永远不必重新初始完整备份还原。 只要继续使用每隔几个小时发货的日志,就可以获得只读副本。
也许这个第三方会设置一些复制的方式来改变每晚的变化?
如果您可以访问包含生产数据库和主服务器的环境,并且只读数据库可以是运行SQL2005 / SQL2008企业版的相同数据库实例,则可以使用数据库快照。 这会给你一个即时的时间点数据库的只读副本。
http://msdn.microsoft.com/en-us/library/ms175158.aspx
如果您不允许访问生产环境,您可以询问他们是否愿意在您的环境中设置镜像数据库 – 这也可以让您运行快照,但是您需要使用企业版软件和许可证。
http://msdn.microsoft.com/en-us/library/ms175511.aspx
如果他们/你不使用企业或者你需要靠近实时数据,那么事务复制是另一种select。
http://msdn.microsoft.com/en-us/library/ms151176.aspx
如果您的恢复时间过长,请考虑购买备份磁盘压缩软件的选项 – 这通常会根据所保存的数据types加快备份/恢复速度。
Remus首先回答了这个问题,但这里是日志传送scheme的工作原理: