0

私は、PGSQL サーバーがまだ生きているかどうかを perl スクリプト内から定期的に確認する簡単な方法を必死に見つけようとしています。私はこれを使用するつもりでしpg_pingたが、私のテストでは pg_ping は DB サーバーのステータスに関係なく常に 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. 私は何か間違ったことをしましたか?

そうでない場合、DBサーバーがまだ稼働しているかどうかを確認するにはどうすればよいですか?

前もって感謝します。

4

1 に答える 1

2

次のようなクエリを手動で実行できます

select 1 as is_alive

また、ping()同様のことを行うと主張しているように、

ping メソッドは空のクエリを発行し、結果のステータスを確認します。

于 2014-01-09T12:16:45.513 に答える