我找到记录运输在SQL服务器2005年的环境。这个想法是设立常日志运送到一个辅助服务器。的意图:使用辅助服务器服务于报告的查询,从而减的主数据库服务器。

我遇到了这个 sqlservercentral论坛主题:

当你创建的日志的运费你有2个选择。你可以配置恢复日志操作要做恢或与备用选项。如果你使用恢选项,不能一问题选择发言。如果不是恢使用的备用选项,可以运行选择的查询数据库。铭记与备用选项时登录文件的恢复出现的用户会被踢出去没有警告的恢复过程。敏锐地配置时日志的运备选项,也可以选择2之间的选择–杀了所有的过程,在二级数据库和执行日志恢复或不执行日志恢复,如果该数据库正在使用。当然如果你选择的第二选择,恢复操作,可能永远不会如果有人打开了一个数据库连接并不会关闭,所以它是最好使用第一项选择。

所以我的问题是:

  • 是的上面真的吗?你真的可以不使用运输的方式,我打算?
  • 如果这是真的,谁能解释为什么你不能执行选择的发言数据库,而该交易日志是正在恢复?

编辑:

第一个问题是重复的 这serverfault问题.但我还是会喜欢的第二个问题回答说:为什么它不能够执行选择的发言,同时交易日志是正在恢复?

有帮助吗?

解决方案

有人能解释为什么你不能 执行选择发言 数据库的同时,交易日志 正在恢复?

简短的回答是,恢复声明需要一个独锁上数据库正在恢复。

对于写道,我希望,没有必要对我解释为什么他们不符合还原。为什么它不允许读么?首先,有没有办法知道如果一个会议,已经锁定了一个数据库是要做一个读或写字。但是,即使这将是可能的,恢复(记录或备份)的工作,直接更新数据页面数据库。由于这些更新,直到物理位置(网页)和不遵守的逻辑层次(元数据分区页行),他们将没有荣誉可能的意图锁从其他数据的读者,因而有可能改变结构 因为他们阅读.一个选择表格的扫描以下网页次上的指针将被抛入一片混乱,造成损坏的阅读。

其他提示

嗯,是的,没有。

你可以做什么你希望做到的,在那你可能会减少报告的工作负载,为辅助服务器的配置日志运送到一个只读复制的数据库。我已经设置这种类型的建筑在一些场合之前,它确实很好。

需要说明的是,为了执行一个恢复的交易日志的备份文件必须有没有其他数据库连接在的问题。因此该两个选择是,当恢复过程的运行,它将失败,从而优先考虑用户的连接,或者它将成功通过切断所有用户的连接,以便执行恢复。

取决于你恢复频率这不一定是一个问题。你只是教育你的用户到这样的事实,说每小时过去10小时,有一种可能性那你报告可能会失败。如果发生这种情况只是重新运行的报告。

编辑:你可能还需要评估替代architeciture的解决方案的业务需要。例如,交易复制或镜像数据库与数据库的快照

如果你有企业的版本,可以使用数据库镜像+快照创造的只读数据库的副本,可供报告,等等。镜像,使用"持续"日志运费"引擎盖下".这是经常使用的在方案有所描述。

是的这是真的。

我认为以下情况:
虽然交易日志是正在恢复,该数据库是锁,因为大部分,它正在更新。
这是对业绩的原因,然后其他任何东西。

我可以看到两种选择:

  1. 使用数据库的镜像。
  2. 日志的时间安排运输,只有发生当的报告系统未被使用。

轻微的混淆在于,恢标志的恢复意味着你的数据库是不会被提出的一个恢复状态并进入一个在线状态-这就是为什么选择的发言将不会的工作-该数据库是离线。没有恢复标志是有让你恢复多日志中的文件一行(在博士类型的方案)没有把数据库。

如果你不想记录的船舶/有缺点你可能会换一种方式复制事务,但是间接费用/建立将更加复杂的整体。

会peer-to-peer的复制工作。然后你就可以运行查询的一个实例,并使保存负载上的原来的实例。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top