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

简介:

有时候,分发数据库(Distribution Database)会增长得非常大,那么如何解决呢,请看Chris Skorlinski,  Microsoft SQL Server Escalation 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
  1. --(shows breakout by day, by hour.  Took 2 hours on 350million rows, 100gb distribtuion db)
  2. SELECT T.[publisher_database_id]
  3.     ,  datepart(mm,[entry_time]) 'month'
  4.     ,  datepart(dd,[entry_time]) 'day'
  5.     ,  datepart(hh,[entry_time]) 'hour'
  6.     ,  count(C.[xact_seqno]) 'count of commands'
  7. FROM [distribution].[dbo].[MSrepl_transactions](nolock) T
  8. JOIN [MSrepl_commands](nolock) C
  9. ON T.[xact_seqno] = C.[xact_seqno]
  10. GROUP BY T.[publisher_database_id]
  11.   ,datepart(mm,[entry_time])
  12.   , datepart(dd,[entry_time])
  13.   , datepart(hh,[entry_time])
  14. order by 1,2,3,4
  15.  
  16. --Or, just select oldest 10 rows and note the entry_time stamp.
  17. --(select took 5 minutes on 350million rows, 100gb distribtuion db)
  18. SELECT TOP 10 * FROM [distribution].[dbo].[MSrepl_transactions](nolock)

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

Code Snippet
  1. EXEC dbo.sp_MSdistribution_cleanup @min_distretention = 0, @max_distretention = 120
  2.  
  3. Example output: (4 hours to removed 340million rows)
  4.  
  5. Removed 3493 replicated transactions consisting of 343877158 statements in 15043 seconds (22859 rows/sec).

Hope you found this helpful,

希望这个对你有用。

Chris Skorlinski,  Microsoft SQL Server Escalation Services

相关文章
|
2月前
|
Kubernetes 关系型数据库 MySQL
ChaosBlade常见问题之数据库进行故障注入报错ibdata1文件异常如何解决
ChaosBlade 是一个开源的混沌工程实验工具,旨在通过模拟各种常见的硬件、软件、网络、应用等故障,帮助开发者在测试环境中验证系统的容错和自动恢复能力。以下是关于ChaosBlade的一些常见问题合集:
27 1
|
2月前
|
SQL Oracle 关系型数据库
OceanBase数据库常见问题之慢SQL不显示如何解决
OceanBase 是一款由阿里巴巴集团研发的企业级分布式关系型数据库,它具有高可用、高性能、可水平扩展等特点。以下是OceanBase 数据库使用过程中可能遇到的一些常见问题及其解答的汇总,以帮助用户更好地理解和使用这款数据库产品。
|
2月前
|
SQL 关系型数据库 数据库
OceanBase数据库常见问题之upgrade_post想要不显示明文密码如何解决
OceanBase 是一款由阿里巴巴集团研发的企业级分布式关系型数据库,它具有高可用、高性能、可水平扩展等特点。以下是OceanBase 数据库使用过程中可能遇到的一些常见问题及其解答的汇总,以帮助用户更好地理解和使用这款数据库产品。
|
2月前
|
监控 关系型数据库 数据库
OceanBase数据库常见问题之文件存在但是数据库提示文件不存在如何解决
OceanBase 是一款由阿里巴巴集团研发的企业级分布式关系型数据库,它具有高可用、高性能、可水平扩展等特点。以下是OceanBase 数据库使用过程中可能遇到的一些常见问题及其解答的汇总,以帮助用户更好地理解和使用这款数据库产品。
|
2月前
|
监控 Java 数据库连接
OceanBase数据库常见问题之observer 启动失败如何解决
OceanBase 是一款由阿里巴巴集团研发的企业级分布式关系型数据库,它具有高可用、高性能、可水平扩展等特点。以下是OceanBase 数据库使用过程中可能遇到的一些常见问题及其解答的汇总,以帮助用户更好地理解和使用这款数据库产品。
|
2月前
|
运维 安全 Nacos
nacos常见问题之暴露到公网被改写数据库如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
47 3
|
2月前
|
关系型数据库 MySQL 数据库
OceanBase数据库常见问题之脚本执行失败如何解决
OceanBase 是一款由阿里巴巴集团研发的企业级分布式关系型数据库,它具有高可用、高性能、可水平扩展等特点。以下是OceanBase 数据库使用过程中可能遇到的一些常见问题及其解答的汇总,以帮助用户更好地理解和使用这款数据库产品。
|
14天前
|
SQL DataWorks 关系型数据库
DataWorks产品使用合集之DataWorks目前支持ES数据库的分表同步如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
35 1
|
2月前
|
存储 关系型数据库 数据处理
OceanBase数据库常见问题之start ob出错如何解决
OceanBase 是一款由阿里巴巴集团研发的企业级分布式关系型数据库,它具有高可用、高性能、可水平扩展等特点。以下是OceanBase 数据库使用过程中可能遇到的一些常见问题及其解答的汇总,以帮助用户更好地理解和使用这款数据库产品。
|
15天前
|
分布式计算 DataWorks 关系型数据库
DataWorks产品使用合集之在使用 DataWorks 数据集成同步 PostgreSQL 数据库中的 Geometry 类型数据如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
24 0