Auto Fail-over๋?
โข
failover์ pgpool-II์์ ์ก์ธ์คํ ์ ์๋ PostgreSQL ๋ฐฑ์๋ ๋
ธ๋๋ฅผ ์๋์ผ๋ก ๋ถ๋ฆฌํ๋ ๊ฒ์
๋๋ค.
Auto Fail-over & VIP change Test
โข
๊ธฐ์กด VIP๊ฐ node 0์ ์๋ ์ํ์์ node 0 ์๋ฒ๊ฐ ์ข
๋ฃ๋๋ฉด, VIP๋ node 1 ์ผ๋ก ์ ํ๋ฉ๋๋ค.
โฆ
node 0 ์์ ์กฐํ
$ psql -p 9999 -c 'show pool_nodes;โ # ๊ฐ node ์ํ ํ์ธ
node_id | hostname | port | status | pg_status | lb_weight | role | pg_role | select_cnt | load_balance_node
---------+-----------------+------+--------+-----------+-----------+---------+---------+------------+------------
0 | 192.168.200.141 | 5432 | up | up | 0.500000 | primary | primary | 0 | true
1 | 192.168.200.142 | 5432 | up | up | 0.500000 | standby | standby | 0 | false
(2 rows)
$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.200.141 netmask 255.255.255.0 broadcast 192.168.200.255
ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.200.200 netmask 255.255.255.0 broadcast 0.0.0.0
ether 00:0c:29:37:1a:2d txqueuelen 1000 (Ethernet)
PowerShell
๋ณต์ฌ
โฆ
node 0 ์๋ฒ ์ฌ๋ถํ
(node0) reboot # reboot ์ ์๋ฒ,OS ์ข
๋ฃ ๋์ด node 0์ด primary๋ก ์น๊ฒฉ ํ๋ฉฐ VIP๋ฅผ ๊ฐ์ ธ์ด
PowerShell
๋ณต์ฌ
โฆ
node 1์์ ์กฐํ
$ psql -p 9999 -c 'show pool_nodes;โ # ๊ฐ node ์ํ ํ์ธ
node_id | hostname | port | status | pg_status | lb_weight | role | pg_role | select_cnt | load_balance_node |
---------+-----------------+------+--------+-----------+-----------+---------+---------+------------+------------
0 | 192.168.200.141 | 5432 | down | down | 0.500000 | standby | unknown | 0 | false
1 | 192.168.200.142 | 5432 | up | up | 0.500000 | primary | primary | 0 | true
$ ifconfig
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.200.142 netmask 255.255.255.0 broadcast 192.168.200.255
ens33:0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.200.200 netmask 255.255.255.0 broadcast 0.0.0.0
ether 00:0c:29:e4:a1:13 txqueuelen 1000 (Ethernet)
PowerShell
๋ณต์ฌ
Online Recovery๋?
โข
pgpool-II์ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋
ธ๋๋ฅผ ๋๊ธฐํํ๊ณ ์๋น์ค๋ฅผ ์ค์งํ์ง ์๊ณ ๋
ธ๋๋ฅผ ์ฐ๊ฒฐํฉ๋๋ค.
โข
pcp_recovery_node ๋ช
๋ น์ด๋ฅผ ํตํด ์คํํ ์ ์์ต๋๋ค.
โข
pgpool_recovery extension์ ๋ฐ๋์ ์ค์นํด์ผ ํฉ๋๋ค.
Online Recovery Test
โข
๋
ธ๋๋ฅผ ์กฐํํ์ฌ 0๋ฒ ๋
ธ๋๊ฐ down๋ ์ํ์์ ํ์ธํฉ๋๋ค.
$ psql -p 9999 -c 'show pool_nodes';
node_id | hostname | port | status | pg_status | lb_weight | role | pg_role | select_cnt | load_balance_node |
---------+-----------------+------+--------+-----------+-----------+---------+---------+------------+------------
0 | 192.168.200.141 | 5432 | down | down | 0.500000 | standby | unknown | 0 | false
1 | 192.168.200.142 | 5432 | up | up | 0.500000 | primary | primary | 0 | true
PowerShell
๋ณต์ฌ
โข
pcp_recovery_node ์ปค๋งจ๋๋ฅผ ์ด์ฉํด 0๋ฒ ๋
ธ๋๋ฅผ ๋ณต๊ตฌํฉ๋๋ค.
$ pcp_recovery_node -n 0 -h /var/run/opensql โw
pcp_recovery_node -- Command Successful
PowerShell
๋ณต์ฌ
โข
๋
ธ๋๋ฅผ ์กฐํํ์ฌ ๋
ธ๋๊ฐ ๋ณต๊ตฌ๊ฐ ์ ๋์๋์ง ํ์ธํฉ๋๋ค.
$ psql -p 9999 -c 'show pool_nodes';
node_id | hostname | port | status | pg_status | lb_weight | role | pg_role | select_cnt | load_balance
---------+-----------------+------+--------+-----------+-----------+---------+---------+------------+------------
0 | 192.168.200.141 | 5432 | up | up | 0.500000 | standby | standby | 0 | true
1 | 192.168.200.142 | 5432 | up | up | 0.500000 | primary | primary | 0 | false
(2 rows)
PowerShell
๋ณต์ฌ
Switch over๋?
โข
pcp_promote_node ๋ช
๋ น์ด๋ฅผ ํตํด pgpool-II์ ์ง์ ๋ ๋
ธ๋๋ฅผ ์๋ก์ด Primary๋ก ์น๊ฒฉ์ํฌ ์ ์์ต๋๋ค.
โข
ํ์ฌ primary ๋
ธ๋๋ฅผ down์ผ๋ก ๋ณ๊ฒฝํ๊ณ , ๊ทธ๋ฌ๋ฉด failover_comman๊ฐ ์คํ๋์ด ์ง์ ๋ ๋
ธ๋๊ฐ ์ primary ๋
ธ๋๋ก ์น๊ฒฉ๋ฉ๋๋ค.
โข
switch over๋ฅผ ์คํ ํ๋ ค๋ฉด ์ด์ primary๋
ธ๋๊ฐ standby๋
ธ๋๋ก ์ ํ๋์ด์ผ ํ๊ธฐ ๋๋ฌธ์ follow_primary_command๊ฐ ๋ฐ๋์ ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ ๋์ด ์์ด์ผ ํฉ๋๋ค.
Switch over Test
โข
๋
ธ๋๋ฅผ ์กฐํํ์ฌ ํ์ฌ ๋
ธ๋ ์ํ๋ฅผ ํ์ธํฉ๋๋ค.
$ psql -p 9999 -c 'show pool_nodes';
node_id | hostname | port | status | pg_status | lb_weight | role | pg_role | select_cnt | load_balance
---------+-----------------+------+--------+-----------+-----------+---------+---------+------------+------------
0 | 192.168.200.141 | 5432 | up | up | 0.500000 | standby | standby | 0 | true
1 | 192.168.200.142 | 5432 | up | up | 0.500000 | primary | primary | 0 | false
(2 rows)
PowerShell
๋ณต์ฌ
โข
0๋ฒ ๋
ธ๋๋ฅผ ์๋ก์ด primary ๋
ธ๋๋ก ์ง์ ํ๊ณ switch over๋ฅผ ์งํํฉ๋๋ค.
$ pcp_promote_node -n 0 -h /var/run/opensql -s -w
pcp_promote_node -- Command Successful
PowerShell
๋ณต์ฌ
โข
๋
ธ๋๋ฅผ ์กฐํํ์ฌ 1๋ฒ ๋
ธ๋๊ฐ primary๋
ธ๋๋ก ๋ณ๊ฒฝ๋์๋์ง ํ์ธํฉ๋๋ค.
$ psql -p 9999 -c 'show pool_nodes';
node_id | hostname | port | status | pg_status | lb_weight | role | pg_role | select_cnt | load_balance_node | ---------+-----------------+------+--------+-----------+-----------+---------+---------+------------+------------
0 | 192.168.200.141 | 5432 | up | up | 0.500000 | primary | primary | 0 | true
1 | 192.168.200.142 | 5432 | down | up | 0.500000 | standby | standby | 0 | false
PowerShell
๋ณต์ฌ
์ง๊ธ๊น์ง PostgreSQL์ pgpool-II (2)์ ๊ดํด ์์๋ณด์์ต๋๋ค
PostgreSQL์ ์ฝ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ์ ์ฉํ ํ์ ๊ฐ์ง๊ณ ๋์์ค๊ฒ ์ต๋๋ค.
๋ค์ ์ปจํ
์ธ ๋ ๊ธฐ๋ํด์ฃผ์ธ์! (์ปจํ
์ธ ๋ ๋งค์ฃผ ์
๋ฐ์ดํธ ๋ฉ๋๋ค.)
PostgreSQL ์ Technical Guide ํฌ์คํ
์ ์ฒ์๋ถํฐ ๋ณด์๋ ค๋ฉด ์๋ ๋งํฌ๋ฅผ ํด๋ฆญํด์ฃผ์ธ์!