InfluxDB 1升级至2后Grafana报默认保留策略未设置错误
问题背景
- 已完成InfluxDB 1.x到2.x版本升级,按流程完成了数据库映射配置
- Grafana对接时使用InfluxQL查询触发两类报错:
InfluxDB Error: default retention policy not set for databaseInfluxDB Error: not executed
- 切换Flux语法查询可正常返回数据,因业务要求需保留InfluxQL查询能力
报错根因
- InfluxDB 2.x 对1.x InfluxQL的兼容依赖「数据库/存储策略(RP)→ Bucket」的映射关系。升级后如果没有给映射生成的逻辑数据库绑定默认RP,InfluxQL查询未显式指定RP时,就会触发第一个默认RP缺失的报错。
not executed是前置校验失败的连锁反应:RP校验不通过的请求不会被InfluxDB执行,直接返回拒绝结果。- Flux语法查询直接指定目标Bucket路径,不需要走1.x时代的DB/RP映射校验逻辑,因此不受该配置缺失影响,可以正常取数。
修复方案
优先方案:InfluxDB侧补全默认RP配置(长期有效)
- 登录InfluxDB所在服务器,执行命令进入v1兼容shell:
influx v1 shell
- 先查询现有映射配置,确认目标数据库名、已有RP列表:
-- 查看所有映射生成的逻辑数据库 SHOW DATABASES -- 查看指定数据库下的所有RP,替换<你的数据库名>为实际业务库名 SHOW RETENTION POLICIES ON <你的数据库名>
- 检查返回结果里有没有RP的
default字段标记为true,如果没有,执行命令把对应RP设为默认:
-- 1.x版本默认RP为autogen,无自定义RP的场景直接执行 ALTER RETENTION POLICY autogen ON <你的数据库名> DEFAULT -- 如果业务用的是自定义RP,把语句里的autogen替换为实际RP名称即可
- 再次执行
SHOW RETENTION POLICIES ON <你的数据库名>,确认目标RP的default列值为true即配置完成。
临时规避方案:Grafana侧补全RP参数
如果暂时没有InfluxDB服务端操作权限,可以在Grafana的InfluxDB数据源配置页,找到InfluxDB Details分类下的Default retention policy输入项,填入实际使用的RP名称(默认填autogen即可),保存数据源后即可正常发起InfluxQL查询。
注意:该方案仅在查询侧补全参数,后续如果业务调整RP,需要同步修改Grafana配置,运维成本更高,不推荐作为长期方案。
验证
配置完成后在Grafana里用InfluxQL执行测试语句(比如SHOW MEASUREMENTS),能正常返回度量列表、无报错即修复完成。
内容的提问来源于stack exchange,提问作者OlKo
相关产品推荐
相关产品推荐

