文章目录
openGauss学习笔记-193 openGauss 数据库运维-常见故障定位案例-备机卡住-数据库只读
193.1 switchover操作时,主机降备卡住
193.1.1 问题现象
一主多备模式下,系统资源不足时,发生switchover,出现主机降备时卡住。
193.1.2 原因分析
当系统资源不足时,无法创建第三方管理线程,导致其管理的子线程无法退出,出现主机降备时卡住。
193.1.3 处理办法
需要执行以下命令终止主机进程,使备机正常升主。确定为上述场景时执行以下操作,不是上述场景时请勿按照本方法执行。
kill -9 PID
193.2 磁盘空间达到阈值,数据库只读
193.2.1 问题现象
执行非只读SQL时报错如下。
ERROR: cannot execute %s in a read-only transaction.
或者运行中部分非只读SQL(insert、update、create table as、create index、alter table及copy from等)时报错。
canceling statement due to default_transaction_read_only is on.
193.2.2 原因分析
磁盘空间达到阈值后,设置数据库只读,只允许只读语句执行。
193.2.3 处理办法
-
使用maintenance模式连接数据库,以下两种方法均可。
-
方式一
gsql -d postgres -p 8000 -r -m
-
方式二
gsql -d postgres -p 8000 -r
连接成功后,执行如下命令:
set xc_maintenance_mode=on;
-
-
使用DROP/TRUNCATE语句删除当前不再使用的用户表,直至磁盘空间使用率小于设定的阈值。
删除用户表只能暂时缓解磁盘空间不足的问题,建议尽早通过扩容解决磁盘空间不足的问题。
-
使用系统用户omm设置数据库只读模式关闭。
gs_guc reload -D /gaussdb/data/dbnode -c "default_transaction_read_only=off"