• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

[翻译]当分发数据库增长到25G时如何解决

mysql 搞代码 4年前 (2022-01-09) 23次浏览 已收录 0个评论

有时候,分发数据库(Distribution Database) 会增长得非常大,那么如何解决呢,请看 Chris Skorlinski, Microsoft SQL Server Escalation Services 的解决方案。 原文地址:How to resolve when Distribution Database is growing huge (+25gig), 本人翻译

有时候,分发数据库(Distribution Database)会增长得非常大,那么如何解决呢,请看Chris Skorlinski, Microsoft SQL Server Esca

本文来源gao!%daima.com搞$代*!码网1

lation Services 的解决方案。

原文地址:How to resolve when Distribution Database is growing huge (+25gig), 本人翻译水平有限,如果有什么地方翻译不当或不对的地方,请不吝指教!

是的,我当然知道大数据库是相对的,但总体来说,如果你看到分发数据库越来越大增长到25G,这意味着清理进程很难删除复制事务,后面我将介绍如何以及为什么清理过程会这样。但是现在我想介绍一种我们经常用的技巧从分发数据清除数据行。这个解决方案包括修改SQL复制存储过程,以及增加每笔事务删除的行数,如果你对代码修改感到不舒服,直接跳到STEP 7吧。

第一篇发布出来的是“保守”的方法,接下来,我会发表一些更“激进”的解决方案。

1) 保存清理删除msrepl_commands对象的srepl_commands存储过程的原始脚本

sp_helptext sp_MSdelete_publisherdb_trans

2) 将CREATE改为ALTER

ALTER PROCEDURE sp_MSdelete_publisherdb_trans

3)改变三处DELETE操作,从2000改为100000行

DELETE TOP(2000) MSrepl_commands . . .

4) 保存msrepl_transaction 清理存储过程sp_MSdelete_dodelete的原始代码

sp_helptext sp_MSdelete_dodelete

5)将CREATE关键字改为ALTER

ALTER PROCEDURE sp_MSdelete_dodelete

6)改变两处删除MSrepl_transactions记录的地方,将5000改为100000行。

delete TOP(5000) MSrepl_transactions . . .

7) Determine oldest day containing transactions 决定保留事物多少天

Code Snippet

8)通过SSMS或TSQL作业执行清理以前的事务(24小时*5天=120),然后继续执行减少@max_distretention的执行

Code Snippet

Hope you found this helpful,

希望这个对你有用。

Chris Skorlinski, Microsoft SQL Server Escalation Services


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:[翻译]当分发数据库增长到25G时如何解决

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址