DBAtlas · 数据库运维图谱

25006: read_only_sql_transaction

PostgreSQL

含义

在只读事务中尝试执行修改数据的命令(INSERT/UPDATE/DELETE/DDL)。该事务被配置为只能读取。属于 Class 25(invalid_transaction_state)。

原因

SET TRANSACTION READ ONLY 或 default_transaction_read_only=on 设置;或者最常见的情况:对只读副本(hot standby / 流复制副本)尝试写入。备库按定义就是只读的。

解决方法

将写入路由到主库;检查拆分读写的连接路由。如果是误设:SET TRANSACTION READ WRITE; 或在服务器范围内设置 default_transaction_read_only=off。确保应用将读写流量发送到正确的节点。

在 DBAtlas 中打开 →

同一数据库的其他条目