Re: [ClusterLabs] 答复: Postgres PAF setup - Mailing list pgsql-general

From Adrien Nayrat
Subject Re: [ClusterLabs] 答复: Postgres PAF setup
Date
Msg-id ed645a9c-1706-f512-46cd-ce61d9c9927d@anayrat.info
Whole thread Raw
In response to 答复: [ClusterLabs] Postgres PAF setup  (范国腾 <fanguoteng@highgo.com>)
Responses 答复: [ClusterLabs] 答复: Postgres PAF setup
List pgsql-general
On 04/25/2018 02:31 AM, 范国腾 wrote:
> I have meet the similar issue when the postgres is not stopped normally.
>
> You could run pg_controldata to check if your postgres status is shutdown/shutdown in recovery.
>
> I change the /usr/lib/ocf/resource.d/heartbeat/pgsqlms to avoid this problem:
>
> elsif ( $pgisready_rc == 2 ) {
> # The instance is not listening.
> # We check the process status using pg_ctl status and check
> # if it was propertly shut down using pg_controldata.
> ocf_log( 'debug', 'pgsql_monitor: instance "%s" is not listening',
> $OCF_RESOURCE_INSTANCE );
> # return _confirm_stopped();       # remove this line
> return $OCF_NOT_RUNNING;
> }

Hello,

It is a bad idea. The goal of _confirm_stopped is to check if the instance was
properly stopped. If it wasn't you could corrupt your instance.

_confirm_stopped  return $OCF_NOT_RUNNING only if the instance was properly
shutdown :
    elsif ( $controldata_rc == $OCF_NOT_RUNNING ) {
        # The controldata state is consistent, the instance was probably
        # propertly shut down.
        ocf_log( 'debug',
            '_confirm_stopped: instance "%s" controldata indicates that the
instance was propertly shut down',
            $OCF_RESOURCE_INSTANCE );
        return $OCF_NOT_RUNNING;
}

Regards,


--
Adrien NAYRAT



Attachment

pgsql-general by date:

Previous
From: "a"
Date:
Subject: Questions on input function of TOAST enabled user defined types
Next
From: 范国腾
Date:
Subject: 答复: [ClusterLabs] 答复: Postgres PAF setup