我拼命地试图找到一种简单的方法来定期检查 perl 脚本中的 PGSQL 服务器是否还活着。我打算为此使用 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 服务器,但结果仍然1
。我做错了什么吗?
如果不是,如何最好地检查数据库服务器是否还处于活动状态?
提前谢谢。
您可以
手动执行查询,例如
select 1 as is_alive
正如ping()
也声称要做类似的事情一样,
ping 方法发出空查询并检查结果状态。