瀚高数据库
目录
环境
症状
问题原因
解决方案
环境
系统平台:银河麒麟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;保证数据库正常关闭,并且不用等待;