我有一台安装了PostgreSQL 9.3.4 x64的Windows 2012R2服务器作为服务。似乎每次服务器执行Windows更新并最终重新启动时,PostgreSQL服务都无法再次启动。这是重启之前的PostgreSQL日志:
日志:收到快速关机请求
日志:中止任何活动交易
致命:由于管理员命令而终止连接
致命:由于管理员命令而终止连接
致命:由于管理员命令而终止连接
致命:由于管理员命令而终止连接
致命:由于管理员命令而终止连接
致命:由于管理员命令而终止连接
日志:autovacuum发射器关闭
错误:由于用户请求而取消声明
日志:autovacuum发射器关闭
重新启动后,我在服务器上运行了几个postgres.exe
实例,数据库文件夹包含一个非空的postmaster.pid
。重启后的PostgreSQL日志包含以下内容:
致命:数据库系统正在启动 日志:数据库系统中断;最后知晓于2016-04-09 02:31:22 CEST
日志:数据库系统没有正常关闭;自动恢复进行中 记录:在D2 / 9C630820处记录零长度 日志:不需要重做
致命:数据库系统正在启动 致命:数据库系统正在启动 ...
致命:数据库系统正在启动
由于数据库通常用于 readonly 目的,我想我可能不会遇到数据库损坏。
到目前为止,我可以手动强制postgres.exe
实例关闭(虽然我只有一个实例,当我执行结束进程时,它会让我拒绝访问 on),删除postmaster.pid
文件,然后重启PostgreSQL服务。即使我仍在运行流氓postgres.exe
实例,该服务似乎也没问题。
Windows和PostgreSQL会像这样挣扎的原因是什么?