[Linux-ha-jp] PostgreSQL 9.1 同期レプリケーション対応RA

アーカイブの一覧に戻る

Tomohito Koseki kosek****@sraos*****
2011年 9月 22日 (木) 18:16:01 JST


松尾さん
古跡です

盛からお話ししていた psql からの接続について、
私の方から修正パッチを送ります。
$OCF_RESKEY_pghost と $OCF_RESKEY_socketdir を使っています。


--- pgsql.orig  2011-09-22 17:39:22.000000000 +0900
+++ pgsql       2011-09-22 17:38:55.000000000 +0900
@@ -956,8 +956,19 @@
     local all_data_status
     local node_number
     local node_name
+    local psql_options

-    if all_data_status=`$OCF_RESKEY_psql -U $OCF_RESKEY_pgdba $OCF_RESKEY_pgdb -h localhost -p $OCF_RESKEY_pgport -Atc
"$CHECK_REPLICATION_STATE_SQL;" 2>&1`;then
+    psql_options="-p $OCF_RESKEY_pgport -U $OCF_RESKEY_pgdba $OCF_RESKEY_pgdb"
+
+    if [ -n "$OCF_RESKEY_pghost" ]; then
+        psql_options="$psql_options -h $OCF_RESKEY_pghost"
+    else
+       if [ -n "$OCF_RESKEY_socketdir" ]; then
+           psql_options="$psql_options -h $OCF_RESKEY_socketdir"
+       fi
+    fi
+
+    if all_data_status=`$OCF_RESKEY_psql $psql_options -Atc "$CHECK_REPLICATION_STATE_SQL;" 2>&1`;then
         if [ -n "$all_data_status" ]; then
             node_number=`echo -e "$all_data_status" | wc -l`
             all_data_status=`echo $all_data_status | sed "s/\n/ /g"`
@@ -1131,8 +1142,20 @@
     local output2
     local log1
     local log2
+    local psql_options
+
+    psql_options="-p $OCF_RESKEY_pgport -U $OCF_RESKEY_pgdba $OCF_RESKEY_pgdb"
+
+    if [ -n "$OCF_RESKEY_pghost" ]; then
+        psql_options="$psql_options -h $OCF_RESKEY_pghost"
+    else
+       if [ -n "$OCF_RESKEY_socketdir" ]; then
+           psql_options="$psql_options -h $OCF_RESKEY_socketdir"
+       fi
+    fi
+
+    output=`su $OCF_RESKEY_pgdba -c "cd $OCF_RESKEY_pgdata; $OCF_RESKEY_psql $psql_options -Atc \"${CHECK_XLOG_REPLAY_LOC_SQL}\""`

-    output=`su $OCF_RESKEY_pgdba -c "cd $OCF_RESKEY_pgdata; $OCF_RESKEY_psql -U $OCF_RESKEY_pgdba $OCF_RESKEY_pgdb -p $OCF_RESKEY_pgport -Atc
\"${CHECK_XLOG_REPLAY_LOC_SQL}\""`
     rc=$?
     if [ "$rc" != "0" ]; then
         ocf_log err "Cannot get my xlog replay location."



(2011年09月21日 15:14), Yoshiharu Mori wrote:
> 松尾さん
> 
> 盛です。
> 
> たびたび申し訳ありません。
> 
> 本件のパッチ前後は修正した方が良さそうです。
> と言いますのは、
> CHECK_REPLICATION_STATE_SQLを発行するpsqlはlocalhost接続
> ですが、CHECK_XLOG_REPLAY_LOC_SQLを発行するpsqlはUnixドメイン
> ソケット接続になっています。
> (pg_hba.confの調整が余計に必要になってしまう。。)
> 
> オリジナルを尊重して、$OCF_RESKEY_pghostと$OCF_RESKEY_socketdir
> を使う方が無難そうですね。
> 
> #後日パッチを送ります。本日は台風直撃ぽいので帰ります~

-- 
--------------------------------------
Tomohito Koseki <kosek****@sraos*****>
SRA OSS, Inc. Japan
http://www.sraoss.co.jp/
--------------------------------------





Linux-ha-japan メーリングリストの案内
アーカイブの一覧に戻る