偶小梦
发布于

operation category READ is not supported in state standby

➢ 解答
生产环境,Oushu DB 使用甲方自己运行的 Hadoop 作为存储,Hadoop 集群扩容客户自行重启后 namenode active 节点切换到了另一个原 standby 的节点上,导致 SQL 运行报错:
ERROR: cannot fetch block locations
Operation category READ is not supported in state standby
检查发现 OushuDB 的 filespace entry 初始化的时候没有配置成 servicename 的方式:客户环境监测结果如下:

select * from pg_filespace_entry;
hdfs://bigdata-m-005:8020/hawq_data
期待的应该是:
hdfs://ns1/hawq_data
方案:通过使用 move filespace 的方法修改数据库。操作命令:
1)hawq stop cluster -a -M fast (需要用停止的库去更新)
2)备份 masterdd 的数据,其中 pg_log 部分可删除旧文件
3)export GPPORT (如果没有使用默认端口的话)
4)hawq filespace --movefilespace --location=
5)hawq start cluster -a (重启数据库)
6)重建 standby
7)如果第四步失败,用备份元数据覆盖恢复

评论
    test