0

我拼命地试图找到一种简单的方法来定期检查 PGSQL 服务器是否仍然存在于 perl 脚本中。我打算为此使用pg_ping,但在我的测试中,pg_ping 总是返回 1,与数据库服务器状态无关。

这是我尝试过的代码:

#!/usr/bin/perl
use strict;
use warnings;
use DBD::Pg;

my $dbh=DBI->connect("DBI:Pg:dbname=healthcheck;host=vm0484","healthcheck","areyoustillthere");
for (my $i=1;$i<100;$i++) {
print "$i. pg_ping: ".$dbh->pg_ping."\n";
sleep(1);
}

然后我kill -9在另一个窗口中使用手动终止 PGSQL-server,但结果仍然是1. 我做错什么了吗?

如果没有,我如何最好地检查数据库服务器是否还活着?

提前致谢。

4

1 回答 1

2

您可以手动执行查询,例如

select 1 as is_alive

ping()声称做类似的事情,

ping 方法发出一个空查询并检查结果状态。

于 2014-01-09T12:16:45.513 回答