2010-09-08 59 views
0

我有一个长时间运行的redgate脚本,它将一堆模式类型更改应用于数据库。这将需要3个小时才能运行。此脚本将在具有镜像和事务日志传送的生产数据库上运行。事务日志传送是否受长时间运行的Redgate脚本影响

我的具体问题是,交易日志传送如何受到巨大的Redgate生成脚本的影响?它的配置: 备份每15分钟 备份到运到容灾服务器驱动器本地驱动器 应用于每30分钟 保持60分钟

将它仍然逐步出货的变化,或者如果有一个展鹏交易它会在它完成之前不会出货?

值得关注的是, 1.长时间运行的脚本将不受此交易日志传送的影响(考虑到其要跨越多个备份) 2.是否更改将逐步出货或者作为一个大的垃圾 - 如我认为redgate通常使用一个交易,所以如果它失败它回滚一切?我知道日志文件总共增加了大约80个演出,所以我试图确保有足够的空间让事务日志传送来存储它需要存储的任何内容。

谢谢!

回答

0

好吧,我通过升级(yay!)完成了它,发现它没有把整个东西当成一个大块。从他们的dba我得到这些信息:

它并不是一个大块......当你走的时候你只会有更大的TRN文件。您经常使用TRN备份并运送并应用它们,则可以保留较小的备份。但是,显然采取备份需要cpu + i/o ...所以你不想连续运行它。

所以,虽然我认为日志文件将增长到90克..然后尝试运送某种类型的90克文件没有。它只是递增地填满了事务日志传送文件夹和它已经足够升级的60g :)

0

您应该能够通过检查RedGate脚本来判断它是否是一项大事务。只需grep“开始事务”的sql文件来获得一个想法。

如果是,那么在事务处理完成并提交之前,您的事务日志传送将不会传送它,因此它跨越同步并不重要。我敢肯定是这样的话 - 我这篇文章http://msdn.microsoft.com/en-us/library/ms151706.aspx它说在此基础:

分发数据库[是]的存储和转发队列从中更改发送到订阅服务器.. “

”只有已提交的事务发送到分发数据库。“

+0

谢谢!做一个grepwin给了我许多开始事务的实例 - 但事实证明,存储的proc文本包含了事务,所以这有点误导性:)看起来像是在最后有一个开始事务,最后是一个提交事务 - 但是在整个脚本中是这样的:IF @@ TRANCOUNT = 0 BEGIN INSERT INTO #tmpErrors(错误)SELECT 1 BEGIN TRANSACTION END – Jen 2010-09-09 00:43:37

+0

我认为SQL Compare 8可以指定事务的大小,但我们使用的是5 :(试图突出显示的dba,我认为会有大量的日志文件出货,但他不同意。转让90场演出将会很有趣;) – Jen 2010-09-09 00:46:12

+0

你的意思是开始时的交易? (你说结束了)。带有嵌套BEGIN TRANSACTION的BEGIN .. END语句似乎是在发生错误或事情发生时开始交易。有关它可能在做什么的更多信息,我建议你看看这3篇文章: http://msdn.microsoft.com/en-us/library/ms188929.aspx http://msdn.microsoft.com/en -us/library/ms190487.aspx http://msdn.microsoft.com/en-us/library/ms187967.aspx – imoatama 2010-09-09 01:04:35

相关问题