我有一个长时间运行的redgate脚本,它将一堆模式类型更改应用于数据库。运行需要3个小时。此脚本将在具有镜像和事务日志传送的生产数据库上运行。
我的具体问题是如何通过巨大的redgate生成脚本影响事务日志传送?它的配置: 每15分钟备份一次 支持本地驱动器 运到dr服务器驱动器 每30分钟应用一次 保持60分钟
它是否会逐步发送更改,或者如果有一个redgate事务,它将在完成之前发送?
关注的是 1.长时间运行的脚本不会受此事务日志传送的影响(因为它将跨越多个备份) 2.更改是以递增方式发送还是作为一个大转储 - 我认为redgate通常使用一个事务,所以如果它失败则会回滚所有内容?我知道日志文件总共增加了大约80 gig,所以我试图确保有足够的空间来存储事务日志,以存储它需要存储的任何内容。
谢谢!
答案 0 :(得分:0)
您应该能够通过检查RedGate脚本来判断它是否只是一个大事务。只需将sql文件grep为“begin transaction”即可获得一个想法。
如果是,那么在事务完成并提交之前,您的事务日志传送将不会发送,因此它跨越同步并不重要。我很确定是这种情况 - 我的基础是http://msdn.microsoft.com/en-us/library/ms151706.aspx这篇文章,其中说:
分发数据库[是]存储转发队列,将更改发送给订阅者。
“只有已提交的事务才会发送到分发数据库。”
答案 1 :(得分:0)
好的,所以我通过我的升级(耶!)发现它并没有将整个东西作为一个大块运送。从他们的dba我得到了这个信息:
它并不是一个大块...你只需要有更大的TRN文件。您经常使用TRN备份并运送它们并应用它们,您保留的越小。但是,备份显然需要cpu + i / o ...所以你不想连续运行它。
所以虽然我认为日志文件会增长到90g ..然后尝试在它上面运送某种90g文件没有。它只是逐步填充了事务日志传送文件夹,它已经足够升级60g了。)