Thread: DB Switchover using repmgr--Error

DB Switchover using repmgr--Error

From
jayakumar s
Date:
Hi Team,

I have tried to configure DB switch over using repmgr. Post updated repmgr file then tried to register in primary db but getting the below error.

Kindly check and let me know to fix the issue.

Error:

[postgres@post1 bin]$ ./repmgr -f /var/lib/pgsql/repmgr.conf primary register
ERROR: following errors were found in the configuration file:
  syntax error in file "/var/lib/pgsql/repmgr.conf" line 3, near token "data_directory"
  syntax error in file "/var/lib/pgsql/repmgr.conf" line 6, near token "log_file"
[postgres@post1 bin]$

Conf file:

[postgres@post1 data]$ cat /var/lib/pgsql/repmgr.conf
node_id=1
node_name=primary
conninfo='host=192.168.29.193 user=repmgr dbname=repmgr connect_timeout=2' data_directory='/application/pgsql/data' failover=automatic
promote_command='/usr/pgsql-16/bin/repmgr standby promote -f /var/lib/pgsql/repmgr.conf --log-to-file'
follow_command='/usr/pgsql-16/bin/repmgr standby follow -f /var/lib/pgsql/repmgr.conf --log-to-file --upstream-node-id=%n'
pg_bindir='/usr/pgsql-16/bin' log_file='/usr/pgsql-16/repmgr.log'
[postgres@post1 data]$

Re: DB Switchover using repmgr--Error

From
Paul Foerster
Date:
Hi,

> [postgres@post1 bin]$ ./repmgr -f /var/lib/pgsql/repmgr.conf primary register
> ERROR: following errors were found in the configuration file:
>   syntax error in file "/var/lib/pgsql/repmgr.conf" line 3, near token "data_directory"
>   syntax error in file "/var/lib/pgsql/repmgr.conf" line 6, near token "log_file"
> [postgres@post1 bin]$
>
> Conf file:
>
> [postgres@post1 data]$ cat /var/lib/pgsql/repmgr.conf
> node_id=1
> node_name=primary
> conninfo='host=192.168.29.193 user=repmgr dbname=repmgr connect_timeout=2' data_directory='/application/pgsql/data'
failover=automatic
> promote_command='/usr/pgsql-16/bin/repmgr standby promote -f /var/lib/pgsql/repmgr.conf --log-to-file'
> follow_command='/usr/pgsql-16/bin/repmgr standby follow -f /var/lib/pgsql/repmgr.conf --log-to-file
--upstream-node-id=%n'
> pg_bindir='/usr/pgsql-16/bin' log_file='/usr/pgsql-16/repmgr.log'
> [postgres@post1 data]$

I'm not a repmgr guru but at first glance I would say that your config lacks two line breaks. It should probably look
likethis: 

node_id=1
node_name=primary
conninfo='host=192.168.29.193 user=repmgr dbname=repmgr connect_timeout=2'
data_directory='/application/pgsql/data'
failover=automatic
promote_command='/usr/pgsql-16/bin/repmgr standby promote -f /var/lib/pgsql/repmgr.conf --log-to-file'
follow_command='/usr/pgsql-16/bin/repmgr standby follow -f /var/lib/pgsql/repmgr.conf --log-to-file
--upstream-node-id=%n'
pg_bindir='/usr/pgsql-16/bin' log_file='/usr/pgsql-16/repmgr.log'

Cheers
Paul


Re: DB Switchover using repmgr--Error

From
jayakumar s
Date:
Hi Paul,

Thanks for your help. I have fixed that issue. Now I am getting one more issue. Can you help to fix the below error?

[postgres@post1 bin]$ /usr/pgsql-16/bin/repmgr -f /var/lib/pgsql/repmgr.conf cluster show
WARNING: node "standby" not found in "pg_stat_replication"
 ID | Name    | Role    | Status    | Upstream  | Location | Priority | Timeline | Connection string
----+---------+---------+-----------+-----------+----------+----------+----------+-----------------------------------------------------------------
 1  | primary | primary | * running |           | default  | 100      | 8        | host=192.168.29.193 user=repmgr dbname=repmgr connect_timeout=2
 2  | standby | standby |   running | ! primary | default  | 100      | 8        | host=192.168.29.9 user=repmgr dbname=repmgr connect_timeout=2

WARNING: following issues were detected
  - node "standby" (ID: 2) is not attached to its upstream node "primary" (ID: 1)


[postgres@post1 bin]$

On Tue, Nov 26, 2024 at 3:41 PM Paul Foerster <paul.foerster@gmail.com> wrote:
Hi,

> [postgres@post1 bin]$ ./repmgr -f /var/lib/pgsql/repmgr.conf primary register
> ERROR: following errors were found in the configuration file:
>   syntax error in file "/var/lib/pgsql/repmgr.conf" line 3, near token "data_directory"
>   syntax error in file "/var/lib/pgsql/repmgr.conf" line 6, near token "log_file"
> [postgres@post1 bin]$
>
> Conf file:
>
> [postgres@post1 data]$ cat /var/lib/pgsql/repmgr.conf
> node_id=1
> node_name=primary
> conninfo='host=192.168.29.193 user=repmgr dbname=repmgr connect_timeout=2' data_directory='/application/pgsql/data' failover=automatic
> promote_command='/usr/pgsql-16/bin/repmgr standby promote -f /var/lib/pgsql/repmgr.conf --log-to-file'
> follow_command='/usr/pgsql-16/bin/repmgr standby follow -f /var/lib/pgsql/repmgr.conf --log-to-file --upstream-node-id=%n'
> pg_bindir='/usr/pgsql-16/bin' log_file='/usr/pgsql-16/repmgr.log'
> [postgres@post1 data]$

I'm not a repmgr guru but at first glance I would say that your config lacks two line breaks. It should probably look like this:

node_id=1
node_name=primary
conninfo='host=192.168.29.193 user=repmgr dbname=repmgr connect_timeout=2'
data_directory='/application/pgsql/data'
failover=automatic
promote_command='/usr/pgsql-16/bin/repmgr standby promote -f /var/lib/pgsql/repmgr.conf --log-to-file'
follow_command='/usr/pgsql-16/bin/repmgr standby follow -f /var/lib/pgsql/repmgr.conf --log-to-file --upstream-node-id=%n'
pg_bindir='/usr/pgsql-16/bin' log_file='/usr/pgsql-16/repmgr.log'

Cheers
Paul