- 浏览: 244070 次
最新评论
报错:
canceling statement due to conflict with recovery
DETAIL: User query might have needed to see row versions that must be removed.
Hot Standby 环境下的 standby 节点执行查询时报错,报错信息如下:
1、执行长时间查询时报错。
根据错误信息,初步估计当在从库上执行查询时,与主库发生了冲突。
2、网上GOOGLE ,信息如下
Long running queries on the standby are a bit tricky, because they
might need to see row versions that are already removed on the master.
备注:意思是说,长时间SQL如果跑在 standby 节点上是一个笑话,因为 standby 节点有可能需要读取主库上被 removed 的数据。
3、解决方法,修改参数
根据实际情况,调大参数:max_standby_streaming_delay = 30min;
当在 Standby 提供应用时,如果 Standby 节点上的SQL 与接收主库日志发生冲突时,
这个参数决定了从库等侍这个查询的时间,默认值为 30s, 有SQL执行时间估计在二分钟左
右,从而被 Standby库主动 Cancel 了。也可以将这个参数设置成 -1. 表示 standby 节点永远等侍这个查询,
这无疑是有风险的,如果这个查询不结束,那么从库一直处于与主库的中断状态,不会同步主库数据,而会一
直等从库这个SQL执行完成。
4、其他说明
PostgreSQL 的 Hot Standby常被用来当只读的数据库提供查询或者统计服务, 但是由于各种原因查询SQL可能被cancel掉。
例如:
1)主库执行了DROP某TABLE的操作, 而standby库上某用户正在查询这个表的数据. 当standby接收到了这些XLOG的信息并且
准备在standby库上apply的时候, 如果这个SQL还在执行, 就发生冲突了, 这个时候standby 要判断是否要cancel掉这个SQL
使得apply可以正常进行下去, 或者standby选择等待多长时间.
2)主库执行删除表空间或者删除库等相关的操作也会遇到上面的问题.
3)更隐晦的是主库上执行了vacuum操作, 这些被vacuum掉的tuple, 可能是standby库上的SQL可见的TUPLE, 也会发生冲突.
4)还有其他原因
那么Standby根据什么来判断是CANCEL SQL还是选择等待, 如果等待, 等多长时间?有两个参数控制:
max_standby_archive_delay
max_standby_streaming_delay
如果值等于-1表示永不因为recovery 和SQL冲突原因cancel standby上的SQL.
如果设置了一个值如30秒, 那么在cancel 冲突的SQL前, 会等待,通过GetStandbyLimitTime来判断是否要触发CANCEL SQL, 当GetStandbyLimitTime返回的值为0 时表示永不触发CANCEL, 如果返回的是一个时间值, 这个时间值和当前时间进行比较,如果小于当前时间则进行CANCEL操作.
canceling statement due to conflict with recovery
DETAIL: User query might have needed to see row versions that must be removed.
Hot Standby 环境下的 standby 节点执行查询时报错,报错信息如下:
1、执行长时间查询时报错。
根据错误信息,初步估计当在从库上执行查询时,与主库发生了冲突。
2、网上GOOGLE ,信息如下
Long running queries on the standby are a bit tricky, because they
might need to see row versions that are already removed on the master.
备注:意思是说,长时间SQL如果跑在 standby 节点上是一个笑话,因为 standby 节点有可能需要读取主库上被 removed 的数据。
3、解决方法,修改参数
根据实际情况,调大参数:max_standby_streaming_delay = 30min;
当在 Standby 提供应用时,如果 Standby 节点上的SQL 与接收主库日志发生冲突时,
这个参数决定了从库等侍这个查询的时间,默认值为 30s, 有SQL执行时间估计在二分钟左
右,从而被 Standby库主动 Cancel 了。也可以将这个参数设置成 -1. 表示 standby 节点永远等侍这个查询,
这无疑是有风险的,如果这个查询不结束,那么从库一直处于与主库的中断状态,不会同步主库数据,而会一
直等从库这个SQL执行完成。
4、其他说明
PostgreSQL 的 Hot Standby常被用来当只读的数据库提供查询或者统计服务, 但是由于各种原因查询SQL可能被cancel掉。
例如:
1)主库执行了DROP某TABLE的操作, 而standby库上某用户正在查询这个表的数据. 当standby接收到了这些XLOG的信息并且
准备在standby库上apply的时候, 如果这个SQL还在执行, 就发生冲突了, 这个时候standby 要判断是否要cancel掉这个SQL
使得apply可以正常进行下去, 或者standby选择等待多长时间.
2)主库执行删除表空间或者删除库等相关的操作也会遇到上面的问题.
3)更隐晦的是主库上执行了vacuum操作, 这些被vacuum掉的tuple, 可能是standby库上的SQL可见的TUPLE, 也会发生冲突.
4)还有其他原因
那么Standby根据什么来判断是CANCEL SQL还是选择等待, 如果等待, 等多长时间?有两个参数控制:
max_standby_archive_delay
max_standby_streaming_delay
如果值等于-1表示永不因为recovery 和SQL冲突原因cancel standby上的SQL.
如果设置了一个值如30秒, 那么在cancel 冲突的SQL前, 会等待,通过GetStandbyLimitTime来判断是否要触发CANCEL SQL, 当GetStandbyLimitTime返回的值为0 时表示永不触发CANCEL, 如果返回的是一个时间值, 这个时间值和当前时间进行比较,如果小于当前时间则进行CANCEL操作.
发表评论
-
pg 锁
2016-01-14 16:26 0pg 锁 ... -
postgresql 的三类日志
2016-01-14 15:59 18539一、PostgreSQL有3种日志: 1)pg_log(数据 ... -
pg存储过程--创建分区表
2016-01-13 15:46 01)将普通表改成按时间字段分区表 调用select fun_c ... -
pg常用自制shell脚本-tina
2016-01-13 15:30 49531)小型监控: 1.在pg库主机上部署,每5分钟执行一次,插入 ... -
postgresql 时间类型和相关函数
2016-01-13 10:41 5471今天来好好学习一下postgresql涉及时间的字段类型和一些 ... -
pg 表空间
2016-01-07 16:28 3128一、说明 在数据库运维工作中,经常会有数据目录使用率较高 ... -
pg 定期vacuum和reindex
2016-01-07 14:56 8619定期vacuum和reindex: 一 ... -
pg 序列
2016-01-06 16:58 1625一、简介 一个序列对象通常用于为行或者表生成唯一的标识符。 ... -
pg 简单备份和恢复
2016-01-06 15:53 3772pg的备份和恢复 pg_dump ... -
ERROR: invalid page header in block 27073 of relation base/21078/45300926
2016-01-06 15:12 2147突然断网,检查后通知我们UPS断电,db所在主机重启 1、连上 ... -
pg_cancel_backend()和pg_terminate_backend()
2016-01-05 17:42 3556pg_cancel_backend()和pg_terminat ... -
postgresql dblink 使用
2015-12-31 14:33 2048dblink的使用 pg的跨库查询工具 select dbli ... -
root用户不能使用psql或者pg_dump等pg命令
2015-12-24 14:40 7048root用户不能使用psql或者pg_dump等pg命令 [ ... -
postgresql新建库2个常见报错
2015-12-22 16:43 6291今天使用pg建库发现两个报错: ERROR: new c ... -
安装postgresql 9.1.1
2015-12-22 16:25 642安装postgresql 9.1.1 ---版本自选,步骤相同 ... -
pgbadger监控安装和使用
2015-12-21 10:01 2036pgbadger监控安装和使用 https://github ... -
oracle,postgresql,mysql一些使用上的区别记录
2015-12-16 11:38 01.限制行数: select * from ta where ... -
postgresql存储过程实例:已审核证书存入临时表
2015-12-14 16:44 657存储过程实例: 需求: 思路:建立存储过程 代码逻辑: 1 ... -
pg 函数sfa_tmp_sleep()执行越来越慢-sql分析
2015-12-11 09:48 680pg 函数sfa_tmp_sleep()执行越来越慢 ... -
pgpool 主从流复制模式下的安装使用
2015-12-11 09:50 4128pgpool-II 是一个位于 PostgreSQL 服务器和 ...
相关推荐
This was due to a problem where it would be freed automatically if there was a problem with the ArchiveStream when trying to open it as a zip file (possibly corrupt). Best practice is that ...
Modeling and Canceling Tremor in Human-Machine Interfaces
* Due to a Windows Help engine limitation on Windows 98 and Millennium, the Help system Index tab will be empty if the index exceeds 32,767 keywords. If you encounter an empty Help Index tab after ...
5G/ADC/BIOA transistor level implementation of a 3 bit digital harmonic canceling (DHC) digital to analog converter (DAC), and a 10 bit successive approximation register (SAR) analog to digital ...
3.5.1 How to Install Packages with the pkgadd Command 51 3.5.2 Adding Frequently Installed Packages to a Spool Directory 54 3.5.3 Removing Software Packages 56 Chapter 4 Software Management: Patches ...
### Developing Software with ClearCase 2002 #### 1. ClearCase的概念 ClearCase 是一个功能强大的软件配置管理系统,由 IBM Rational 开发。它主要用于版本控制和变更管理,能够帮助开发团队有效地管理源代码、...
With this toolkit you can easily add archive functionality to your projects. ZipForge includes our new unique techonology, a transaction system. This innovative solution gives you a fast and easy ...
If a control has properties with these same names, you will not be able to access the properties unless you preface the name with the object property. For example, assume that an ActiveX control is ...
hue control, defective pixel canceling, noise canceling, etc., are programmable through the serial camera control bus (SCCB) interface. In addition, the OV7740 uses proprietary technology to improve ...
The OV13850 has an image array capable of operating at up to 24 frames per second (fps) in 10-bit 13.2megapixel resolution with complete user control over image quality, formatting and output data ...
3. "Despite a strong wind, children are still looking forward to not canceling(cancel) the outdoor activity at the weekend." "not canceling" 是动名词的否定形式,作介词"to"的宾语,表示孩子们期待着不要...
这个压缩包包含了一个名为"Interference_canceling_LMS.m"的MATLAB文件,它演示了如何利用LMS算法来实现语音信号中的高斯白噪声干扰对消。 LMS算法是自适应滤波理论中的一个重要工具,由Steele于1960年提出,其目标...
- "There are those who are opposed to canceling the meeting." "opposed to"后接动名词"cancelling"。 - "The temperature here has increased 5 degrees in the last 50 years." "increase"应用过去分词...
This GFF, which consists of temperature-sensitive long period gratings (LPGs) and a temperature compensated slanted fiber Bragg grating (SFBG),follows the gain shift of EDF with temperature....
- Performs regularly archive updates using transactions that allows canceling all modifications at any time in case of some failures. Also this technology optimizes the speed of the archive ...
第一篇论文《Crystal-Less BLE Transmitter With Clock Recovery From GFSK-Modulated BLE Packets》介绍了无需晶体振荡器的BLE(蓝牙低功耗)发射器,其创新之处在于能从GFSK(高斯频移键控)调制的BLE包中恢复时钟...
Active Noise Control(ANC)是一种有源噪声控制技术,通过引入canceling“antinoise”波来消除噪声。这种技术广泛应用于制造、工业操作和消费品等领域。 ANC的基本概念 ANC通过引入一个canceling“antinoise”波...