Postgresql - 不存在PostgreSQL集群;服务重启期间看“man pg_createcluster”

时间:2018-01-31 23:01:08

标签: database postgresql

我正在尝试停止已在Ubuntu服务器上运行的Postgresql 9.3数据库,但收到以下消息:

root @ myprodserver:〜#sudo /etc/init.d/postgresql stop

  • 不存在PostgreSQL集群;见“man pg_createcluster”

如果我尝试列出群集,我会得到一个空结果:

root @ myprodserver:〜#pg_lsclusters Ver Cluster端口状态所有者数据目录日志文件

我试图运行一个createcluster:

root @ myprodserver:〜#pg_createcluster 9.3 main

配置现有群集(配置:/etc/postgresql/9.3/main,data:/var/lib/postgresql/9.3/main,owner:106:114) 错误:move_conffile:必需的配置文件/var/lib/postgresql/9.3/main/postgresql.conf不存在

数据库已启动并正在运行。响应显示存在群集。我在过去多次重启服务而没有错误消息。

以下是'sudo ps aux |的结果grep postgres':

root 673 0.0 0.0 11748 2232 pts / 5 R + 15:57 0:00 grep --color = auto postgres

postgres 1044 0.0 0.2 293560 17868? S 2017 87:45 /usr/lib/postgresql/9.3/bin/postgres -D /var/lib/postgresql/9.3/main -c config_file = / etc / postgresql / 9.3 / main / postgresql.conf

postgres 1288 0.2 1.7 294156 142248? Ss 2017 657:18 postgres:checkpointer process

postgres 1289 0.2 1.7 293700 140836? Ss 2017 694:24 postgres:作家流程

postgres 1290 0.0 0.0 293560 7476? Ss 2017 140:10 postgres:wal writer process

postgres 1291 0.0 1.3 294508 107148? Ss 2017 55:46 postgres:autovacuum launcher process

postgres 1292 0.0 0.0 105220 3772? Ss 2017 172:17 postgres:stats collector process

postgres 7669 0.0 0.2 296244 17700? Ss 12:04 0:02 postgres:adempiere postgres :: 1(49525)闲置

postgres 7671 0.0 0.6 298716 54004? Ss 12:04 0:00 postgres:adempiere adempiere_produzione :: 1(49526)闲置

postgres 7855 0.0 0.4 295844 38160? Ss 12:04 0:00 postgres:adempiere adempiere_produzione :: 1(49527)闲置

postgres 8068 0.0 0.2 294884 18324? Ss 12:06 0:00 postgres:adempiere adempiere_produzione :: 1(49528)闲置

postgres 10115 0.0 1.9 308236 159916? Ss 14:25 0:05 postgres:adempiere adempiere_produzione 192.107.YY.XXX(55631)闲置

(继续)

2 个答案:

答案 0 :(得分:3)

关闭服务器PG无法启动后,群集(数据库实例)丢失。

最后我能够恢复它。我必须纠正一些事情(见下文)然后我执行了:

sudo pg_createcluster 9.3 main

然后你应该开始吧

sudo /etc/init.d/postgresql start

系统回复: 配置现有群集....

在这些情况下可以做的事情: - 检查所有配置文件和数据文件是否在正确的文件夹中 - 检查postmaster.opts文件是否指向正确的位置

如果主群集(通常是“main”)仍未启动,则可以使用以下命令创建新群集:

pg_createcluster 9.3 cluster2

然后将数据库备份还原到新群集。

控制PG群集的命令:

列出群集

pg_lsclusters 

启动/停止群集

pg_ctlcluster <pg version> <cluster name> <start|stop>
pg_ctlcluster 9.3 main start 
pg_ctlcluster 9.3 clust2 stop 

停止群集 - 删除活动连接

pg_ctlcluster -m fast 9.3 clust2 stop 

答案 1 :(得分:0)

正如您从ps aux的输出中看到的那样,在每一行的开头,每个postgres进程都以用户postgres的形式运行。

根据this,可以安全地运行:sudo pkill -u postgres,它会发送一个信号让进程自行关闭,而不是以蛮力的方式。