数据库未正常关闭后,再次启动时只有主进程,数据库日志无输出

瀚高数据库
目录
环境
症状
问题原因
解决方案

环境

系统平台:银河麒麟svs(X86_64)

版本:4.5.8
症状

现象:使用pg_ctl stop停止数据库,未正常关闭;使用pg_ctl stop -m i 强制关闭数据库后,再次启动数据库,启动失败;只有数据库主进程,查询数据库日志没有任何输出;

使用strace跟踪数据库主进程显示数据库在处理base/pgsql_tmp目录下的文件:

问题原因

base/pgsql_tmp目录用来支持一些需要临时存储空间的操作,比如排序、大型查询等;目录大小跟随这些操作变化,当数据库关闭时,数据库没有任何操作,则目录为空;但当前目录不为空,导致报错,也是强制关闭数据库导致的。

解决方案

1、查询数据库进程是否正常,若只有主进程,则kill;

2、将pgsql_tmp目录下的文件移动到其他目录下;

解决:数据库关闭时,先执行checkpoint;保证数据库正常关闭,并且不用等待;

相关推荐
好想有猫猫2 分钟前
【Redis】服务端高并发分布式结构演进之路
数据库·c++·redis·分布式·缓存
桥Dopey27 分钟前
关系型数据库PostgreSQL for Mac 保姆级使用教程
数据库·postgresql
@_猿来如此32 分钟前
Django 实现电影推荐系统:从搭建到功能完善(附源码)
数据库·后端·python·django
nbsaas-boot33 分钟前
SQL Server 存储过程开发手册
数据库
uncofish36 分钟前
springboot不连接数据库启动(原先连接了mysql数据库)
数据库·spring boot·mysql
Databend2 小时前
大数据是不是凉了?
数据库
学也不会2 小时前
雪花算法
java·数据库·oracle
LG.YDX4 小时前
MySQL:13.用户管理
数据库·mysql
晓柏4 小时前
常用数据库备份与恢复
数据库