Repmgr configuration and commands

repmgr single and multi server configuration:

step 1:  normal physical streaming replication for two servers and add postgresql.conf "wal_log_hints = on"
        master data path =/var/lib/pgsql/10/data    port=5432
        slave data path = /var/lib/pgsql/10/tada    port=5433
       
step 2: install repmgr (yum install repmgr10-conrib)

        repmgr bin dir=/usr/pgsql-10/bin/ -->   repmgr and repmgrd
        repmgr configuration dir=/etc/repmgr/10/repmgr.conf
       
    both postgresql.conf changes parameter for shared_preload_library='repmgr'  //restart both server
       
step 3: copy repmgr.conf file

        cp -rf repmgr.conf repmgr_data.conf        // repmgr_data.conf is a current master repmgr configuration file
        cp -rf repmgr.conf repmgr_tada.conf        // repmgr_tada.conf is a current slave repmgr configuration file
       
step 4: edit master repmgr configuration file

        vi repmgr_data.conf
             node-id=1
             node_name = 'data'
             conninfo = 'host=current_host_IP user=postgres dbname=postgres port=5432'
             data_directory=/usr/local/pgsql/10/data/
             pg_bindir=/usr/pgsql-10/bin/
             use_replication_slots = yes
             monitoring_history=yes
             failover=automatic
             promote_command='/usr/pgsql-10/bin/repmgr standby promote -f /etc/repmgr/10/repmgr_data.conf'
             follow_command='/usr/pgsql-10/bin/repmgr standby follow -f /etc/repmgr/10/repmgr_data.conf -W --upstream-node-id=%n'
           
step 5: edit slave repmgr configuration file

        vi repmgr_tada.conf
             node-id=2
             node_name = 'tada'
             conninfo = 'host=current_host_IP user=postgres dbname=postgres port=5433'
             data_directory=/usr/local/pgsql/10/tada/
             pg_bindir=/usr/pgsql-10/bin/
             use_replication_slots = yes
             monitoring_history=yes
             failover=automatic
             promote_command='/usr/pgsql-10/bin/repmgr standby promote -f /etc/repmgr/10/repmgr_tada.conf'
             follow_command='/usr/pgsql-10/bin/repmgr standby follow -f /etc/repmgr/10/repmgr_tada.conf -W --upstream-node-id=%n'
           
        change owner for both repmgr.conf file
       
step 6: add nodes in repmgr

        su - postgres
        . .bash_profile            //run .bash_profile
       
        repmgr -f /etc/repmgr/10/repmgr_data.conf primary register
        repmgr -f /etc/repmgr/10/repmgr_tada.conf standby register -F
       
        repmgr -f /etc/repmgr/10/repmgr_tada.conf standby follow

        ============================================================================================================================
        repmgr -f /etc/repmgr/10/repmgr_data.conf cluster show
       
            ID | Name | Role    | Status    | Upstream | Location | Priority | Timeline | Connection string                                        
            ----+------+---------+-----------+----------+----------+----------+----------+------------------------------------------------------------
            1  | data | primary | * running |          | default  | 100      | 3        | host=192.168.1.162 user=postgres port=5432 dbname=postgres
            2  | tada | standby |   running | data     | default  | 100      | 3        | host=192.168.1.162 user=postgres port=5433 dbname=postgres

        repmgr -f /etc/repmgr/10/repmgr_tada.conf cluster show
            ID | Name | Role    | Status    | Upstream | Location | Priority | Timeline | Connection string                                        
            ----+------+---------+-----------+----------+----------+----------+----------+------------------------------------------------------------
            1  | data | primary | * running |          | default  | 100      | 3        | host=192.168.1.162 user=postgres port=5432 dbname=postgres
            2  | tada | standby |   running | data     | default  | 100      | 3        | host=192.168.1.162 user=postgres port=5433 dbname=postgres
           
step 7: monitoring for slave node repmgr

            repmgrd -f /etc/repmgr/10/repmgr_tada.conf --monitoring-history --verbose
                [2019-12-19 13:18:49] [NOTICE] using provided configuration file "/etc/repmgr/10/repmgr_data.conf"
                [2019-12-19 13:18:49] [NOTICE] repmgrd (repmgrd 5.0.0) starting up
                [2019-12-19 13:18:49] [INFO] connecting to database "host=192.168.1.162 user=postgres port=5432 dbname=postgres"
                -bash-4.1$ INFO:  set_repmgrd_pid(): provided pidfile is /tmp/repmgrd.pid
                [2019-12-19 13:18:49] [NOTICE] starting monitoring of node "data" (ID: 1)
                [2019-12-19 13:18:49] [INFO] "connection_check_type" set to "ping"
                [2019-12-19 13:18:49] [NOTICE] monitoring cluster primary "data" (ID: 1)
                [2019-12-19 13:18:49] [INFO] child node "tada" (ID: 2) is attached

step 8: stop current master

            pg_ctl -D /var/lib/pgsql/10/data/ stop
           
        watch monitoring for slave node repmgr

            repmgrd -f /etc/repmgr/10/repmgr_data.conf --monitoring-history --verbose
           
           
                PROMOTE SUCESSFULLY
               
step 9: node rejoin for old master

        start old master -->    pg_ctl -D /var/lib/pgsql/10/data/ start
       
        repmgr -f /etc/repmgr/10/repmgr_data.conf node service --action=stop --checkpoint
       
-------------------->(check port number for /var/lib/pgsql/10/data/)<------------------------
   
        repmgr -f /etc/repmgr/10/repmgr_data.conf node rejoin -d 'host=192.168.1.162 user=postgres port=5433 dbname=postgres' --force-rewind

failover complete...

Comments

Post a Comment

Popular posts from this blog

PostgreSQL pg_pool-II Installation and Configuration

PostgreSQL Migration Using MTK

PostgreSQL Pages and Tuples