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

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

环境

系统平台:银河麒麟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;保证数据库正常关闭,并且不用等待;

相关推荐
workflower1 小时前
软件工程-练习
数据库·需求分析·个人开发·极限编程·结对编程
扶尔魔ocy1 小时前
【QT自定义2D控件】QGraphics绘制仪表盘
数据库·qt·microsoft
yookay zhang2 小时前
达梦数据库监听进程
网络·数据库·oracle
Archy_Wang_12 小时前
centos7的mysql做定时任务备份所有数据库
数据库·mysql
Java 码农2 小时前
MySQL基础操作案例设计
数据库·mysql
友友马2 小时前
『 QT 』按钮类控件属性解析
开发语言·数据库·qt
vvw&3 小时前
如何在 Ubuntu 上安装 PostgreSQL
linux·运维·服务器·数据库·ubuntu·postgresql
qq_5470261793 小时前
Canal实时同步MySQL数据到Elasticsearch
数据库·mysql·elasticsearch
java1234_小锋4 小时前
REDIS集群会有写操作丢失吗?为什么
数据库·redis·缓存
兰若姐姐4 小时前
如何进行MSSQL提权?sp_oacreate、sp_oamethod和沙盒提权以及xp_regwrighte提权
数据库·sqlserver