AlloyDB调用google_columnar_engine_add_policy创建定时策略报错
报错信息
WARNING: Failed to add policy job since the add condition is not satisfied
问题背景
配置AlloyDB列式引擎自动列推荐与填充定时调度功能时,执行如下SQL语句持续报错:SELECT google_columnar_engine_add_policy( 'RECOMMEND_AND_POPULATE_COLUMNS', 'EVERY', 10, 'HOURS');
多次调整policy_interval、duration、time_unit参数的取值组合均返回相同错误,仅当policy_interval参数取值为IMMEDIATE时语句可正常执行,但单次立即执行模式无法满足定时调度需求。
故障根因
- 实例版本不满足要求:支持周期性定时调度策略的AlloyDB最低版本为兼容PostgreSQL 14/15的15.5.0补丁版本,低于该版本的实例仅支持
IMMEDIATE单次执行模式,无法添加定时作业。 - 前置功能开关未开启:添加定时策略前需要先开启列式引擎自动推荐的常驻开关,系统检测到无对应常驻运行的服务模块时,会直接拒绝添加定时策略作业。
- 参数取值不合法:
EVERY定时模式下支持的最小调度间隔为24小时,测试时设置的10小时间隔本身不符合参数约束,也会触发条件校验失败。
解决步骤
- 校验实例版本,执行以下SQL查看当前实例版本号:
SELECT alloydb_version();
若返回版本低于15.5.0,先将实例升级到最新稳定补丁版本,升级完成后重启实例生效。 - 开启自动列推荐常驻开关,依次执行以下SQL完成配置加载:
ALTER SYSTEM SET google_columnar_engine.enable_auto_recommendation = ON; SELECT pg_reload_conf(); - 等待配置生效(约1-2分钟)后,将调度间隔调整为符合约束的取值,重新执行策略添加语句即可,参考示例:
SELECT google_columnar_engine_add_policy( 'RECOMMEND_AND_POPULATE_COLUMNS', 'EVERY', 24, 'HOURS');
内容的提问来源于stack exchange,提问作者Bal Krishna Jha
相关产品推荐
相关产品推荐

