IT Japan

Master,Slave의 전환 수순 본문

IT/PostgreSQL

Master,Slave의 전환 수순

swhwang 2016. 5. 30. 14:58
반응형

■환경정보
atgames01                        :gp_db36(M) → gp_db31(S)   → gp_toydb2(S)
atgames0203                     :gp_db32(M) → gp_db37(S)   → gp_db14(S)
atgames09selfydb     :gp_db39(M) → gp_db34(S)   → gp_db3(S)

31,37,34가 마스터에 승격한 때는、
atgames01                        :gp_db31(M)    → gp_toydb2(S)       → gp_db36(S로써 구축중)
atgames0203                     :gp_db37(M)    → gp_db14(S)   → gp_db32(S로써 구축중)
atgames09selfydb     :gp_db34(M)    → gp_db3(S)            → gp_db39(S로써 구축중)

【atgames01】
eth0:0    Link encap:Ethernet  HWaddr 00:26:B9:29:DB:34
          inet addr:172.19.1.101  Bcast:172.19.255.255  Mask:255.255.0.0

【atgames02,03】
eth0:0    Link encap:Ethernet  HWaddr 00:26:B9:29:DF:B9
          inet addr:172.19.1.102  Bcast:172.19.255.255  Mask:255.255.0.0

【atgames09,selfydb】
eth0:0    Link encap:Ethernet  HWaddr 00:26:B9:29:EF:3D
          inet addr:172.19.1.109  Bcast:172.19.255.255  Mask:255.255.0.0

--------------------------------------------------
□□□[atmaes01]클라이언트 목록□□□
@gp_db36 (atgames01)
------------------------------
172.16.1.10     gp_webap10
172.16.1.11     gp_webap11
172.16.1.12     gp_webap12
172.16.1.13     gp_webap13
172.16.1.14     gp_webap14
172.16.1.15     gp_webap15

172.16.1.16     gp_webap16
172.16.1.17     gp_webap17
172.16.1.18     gp_webap18
172.16.1.19     gp_webap19

172.16.10.1     gp_gifap1
172.16.10.2     gp_gifap2
172.16.10.3     gp_coin1
172.16.10.4     gp_coin2

172.16.11.1     gp_mngap1

172.16.11.3     gpnas

172.16.3.3      gp_toyap3
172.16.3.4      gp_toyap4
172.16.3.5      gp_toyap5
172.16.3.6      gp_toyap6
172.16.3.7      gp_toyap7
172.16.3.8      gp_toyap8

172.16.5.1      gp_ap1
172.16.5.2      gp_ap2
172.16.5.3      gp_ap3
172.16.6.16     gp_db16

172.16.6.6      gp_gdap1
172.16.6.12     gp_gdap2

172.16.8.11     gpillust01
172.16.8.12     gpillust02

172.19.1.1      gp_amct1
172.19.1.36     gp_db36(local)
172.19.1.39     gp_db39
172.19.100.1   gp_jamweb1
172.19.100.2   gp_jamweb2
172.19.100.3   gp_jamweb3
172.19.2.1      gp_pamweb1
172.19.2.2      gp_pamweb2
172.19.2.3      gp_pamweb3

172.16.4.1      gp_test1
172.16.6.8      gp_db8


□□□[atmaes02,atgames03]클라이언트 목록□□□
@gp_db32 (atgames02,03)
------------------------------
172.16.1.10     gp_webap10
172.16.1.11     gp_webap11
172.16.1.12     gp_webap12
172.16.1.13     gp_webap13
172.16.1.14     gp_webap14
172.16.1.15     gp_webap15

172.16.1.16     gp_webap16
172.16.1.17     gp_webap17
172.16.1.18     gp_webap18
172.16.1.19     gp_webap19

172.16.10.1     gp_gifap1
172.16.10.2     gp_gifap2
172.16.10.3     gp_coin1
172.16.10.4     gp_coin2

172.16.11.1     gp_mngap1
172.16.11.3     gpnas

172.16.2.3      gp_webdl3
172.16.2.4      gp_webdl4
172.16.2.5      gp_webdl5

172.16.3.4      gp_toyap4
172.16.3.5      gp_toyap5
172.16.3.6      gp_toyap6
172.16.3.8

172.16.5.1      gp_ap1
172.16.5.2      gp_ap2
172.16.5.3      gp_ap3
172.16.6.16     gp_db16

172.16.6.6      gp_gdap1
172.16.6.12     gp_gdap2
172.16.8.6      gp_gddb4
172.16.11.4     gp_gdmg1

172.19.1.32     gp_db32
172.19.1.33     gp_db33
172.19.1.39     gp_db39
172.19.100.1   gp_jamweb1
172.19.100.2   gp_jamweb2
172.19.100.3   gp_jamweb3
172.19.100.4   gp_jamweb4
172.19.2.1      gp_pamweb1
172.19.2.2      gp_pamweb2
172.19.2.3      gp_pamweb3

172.16.4.1


□□□[atmaes09,selfydb]클라이언트 목록□□□
172.16.1.10     gp_webap10
172.16.1.11     gp_webap11
172.16.1.12     gp_webap12
172.16.1.13     gp_webap13
172.16.1.14     gp_webap14
172.16.1.15     gp_webap15
172.16.1.16     gp_webap16
172.16.1.17     gp_webap17
172.16.1.18     gp_webap18
172.16.1.19     gp_webap19

172.16.10.1     gp_gifap1
172.16.10.2     gp_gifap2

172.16.11.1     gp_mngap1

172.16.14.8     qzmana

172.16.2.3      gp_webdl3
172.16.2.4      gp_webdl4
172.16.2.5      gp_webdl5

172.16.3.1      gp_toyap1
172.16.3.3      gp_toyap3
172.16.3.4      gp_toyap4
172.16.3.5      gp_toyap5
172.16.3.6      gp_toyap6
172.16.3.7      gp_toyap7


172.16.5.1      gp_ap1
172.16.5.2      gp_ap2
172.16.5.3      gp_ap3
172.16.6.16     gp_db16

172.16.6.6      gp_gdap1
172.16.6.12     gp_gdap2
172.16.3.8      gp_gdap3

172.19.100.1   gp_jamweb1
172.19.100.2   gp_jamweb2
172.19.2.1      gp_pamweb1
172.19.2.2      gp_pamweb2
172.19.2.3      gp_pamweb3

172.19.1.109   gp_db39
172.16.4.1      gp_test1

---------------------<Master,Slave의 전환 작업>--------------------------------

■■■[atmaes01]■■■

#접속되는지 확인
#@gp_ap1
/usr/local/postgresql/bin/psql -h 172.19.1.101 -p 5432 -U interdev atgames01

#@gp_db36상에서 실행
/etc/ha.d/resource.d/IPaddr 172.19.1.101/16 stop

#각 서버에 IP어드레스를 확인
/sbin/ifconfig

#eth0:0에 상기 어드레스가 삭제되었는지를 확인

@gp_db31상에서 실행
#/etc/ha.d/resource.d/IPaddr 172.19.1.101/16 start

# IP어드레스를 확인
/sbin/ifconfig

#eth0:0에 상기 어드레스가 부여되어있는것을 확인

#접속되는것을 확인
#@gp_ap1
/usr/local/postgresql/bin/psql -h 172.19.1.101 -p 5432 -U interdev atgames01

#전환한것을 확인해서, Standby 모드를 해제
su - postgres
touch /var/atgames/db/pg_standby/pgsql.trigger.6432

recover.conf안에 있는 이하의 설정파일이 있는것을 체크해서 복구하기 위해
trigger_file = '/var/atgames/db/pg_standby/pgsql.trigger.6432'

postgresql의 로그파일을 체크해서, 이하의 기술이 있으면 OK
2011-02-01 12:13:48.162 JST [][][] LOG:  recovery stopping before commit of transaction 1516181626, time 2011-02-01 11:05:02 JST
2011-02-01 12:13:48.162 JST [][][] LOG:  redo done at 5FC/AC03A238
2011-02-01 12:14:18.175 JST [][][] LOG:  selected new timeline ID: 5
2011-02-01 12:14:48.444 JST [][][] LOG:  archive recovery complete
2011-02-01 12:14:55.558 JST [][][] LOG:  database system is ready

#다시 한번 접속되는지를 확인
#@gp_ap1
/usr/local/postgresql/bin/psql -h 172.19.1.101 -p 5432 -U interdev atgames01


#클라이언트 목록으로부터 접속해서 문제가 없는지를 확인

---------------------<Master,Slave의 전환작업>--------------------------------


---------------------<Master,Slave의 전환작업>--------------------------------

■■■[atmaes02,atgames03]■■■

#접속확인
#@gp_ap1
/usr/local/postgresql/bin/psql -h 172.19.1.102 -p 5432 -U interdev atgames02

#@gp_db32상에서 실행(현재의 태스크)
/etc/ha.d/resource.d/IPaddr 172.19.1.102/16 stop

#각 서버별로 IP 어드레스를 확인
/sbin/ifconfig

#eth0:0에 상기 어드레스가 삭제되었는지를 확인


@gp_db37상에서 실행(현재의 태스크)
#/etc/ha.d/resource.d/IPaddr 172.19.1.102/16 start

#IP어드레스를 확인한다.
/sbin/ifconfig

#eth0:0에 상기 어드레스가 부여되어있는지를 확인

#접속확인
#@gp_ap1
/usr/local/postgresql/bin/psql -h 172.19.1.102 -p 5432 -U interdev atgames02

#전환된 것을 확인해서, Standby모드를 해제
su - postgres
touch /var/atgames/db/pg_standby/pgsql.trigger.6432->마스터가 되는 gp_db37에서 실행

recover.conf중에 있는 이하의 설정파일이 있는지를 체크해서 복구하기 위해
trigger_file = '/var/atgames/db/pg_standby/pgsql.trigger.6432'

postgresql의 로그파일을 체크해서, 이하의 기술이 있으면 OK
2011-02-01 12:13:48.162 JST [][][] LOG:  recovery stopping before commit of transaction 1516181626, time 2011-02-01 11:05:02 JST
2011-02-01 12:13:48.162 JST [][][] LOG:  redo done at 5FC/AC03A238
2011-02-01 12:14:18.175 JST [][][] LOG:  selected new timeline ID: 5
2011-02-01 12:14:48.444 JST [][][] LOG:  archive recovery complete
2011-02-01 12:14:55.558 JST [][][] LOG:  database system is ready

#다시한번 접속확인
#@gp_ap1
/usr/local/postgresql/bin/psql -h 172.19.1.102 -p 5432 -U interdev atgames02


---------------------<Master,Slave의 전환작업>--------------------------------

■■[atmaes09,selfydb]■■■

#접속확인
#@gp_ap1
/usr/local/postgresql/bin/psql -h 172.19.1.109 -p 5432 -U interdev atgames09

#@gp_db39상에서 실행
/etc/ha.d/resource.d/IPaddr 172.19.1.109/16 stop

#각 서버별로 IP어드레스를 확인
/sbin/ifconfig

#eth0:0에 상기어드레스가 삭제되었는지를 확인


@gp_db34상에서 실행
#/etc/ha.d/resource.d/IPaddr 172.19.1.109/16 start

#IP어드레스를 확인
/sbin/ifconfig

#eth0:0에 상기 어드레스가 부여되었는지를 확인

#접속확인
#@gp_ap1
/usr/local/postgresql/bin/psql -h 172.19.1.109 -p 5432 -U interdev atgames09

#전환된 것을 확인해서, Standby모드를 해제
su - postgres
touch /var/atgames/db/pg_standby/pgsql.trigger.6432

recover.conf중에 있는 이하의 설정파일이 있는지를 체크해서 복구하기 위해
trigger_file = '/var/atgames/db/pg_standby/pgsql.trigger.6432'

postgresql의 로그파일을 체크해서, 이하의 기술이 있으면 OK
2011-02-01 12:13:48.162 JST [][][] LOG:  recovery stopping before commit of transaction 1516181626, time 2011-02-01 11:05:02 JST
2011-02-01 12:13:48.162 JST [][][] LOG:  redo done at 5FC/AC03A238
2011-02-01 12:14:18.175 JST [][][] LOG:  selected new timeline ID: 5
2011-02-01 12:14:48.444 JST [][][] LOG:  archive recovery complete
2011-02-01 12:14:55.558 JST [][][] LOG:  database system is ready

#다시한번 접속되는지를 확인
#@gp_ap1
/usr/local/postgresql/bin/psql -h 172.19.1.109 -p 5432 -U interdev atgames09


#클라이언트 목록으로부터 접속해서 문제가 없는지를 확인

###(gp_db34만) Port Forward를 설정
☆이것으로 혼방에 적용예정

#실행전의 확인
iptables -L0
# Forwading on
echo 1 > /proc/sys/net/ipv4/ip_forward
/bin/sed -i 's/net.ipv4.ip_forward=0/net.ipv4.ip_forward=1/g' /etc/sysctl.conf

# 룰의 삭제
iptables -F
iptables -t nat -F


iptables -t nat -A PREROUTING  -p tcp -d 172.19.1.109 --dport 6432 -j DNAT --to-destination 172.19.1.109:5432
iptables -t nat -A POSTROUTING -p tcp -s 172.19.1.109 --sport 5432 -j SNAT --to-source 172.19.1.109:6432

iptables -t nat -A OUTPUT -p tcp -d 172.19.1.109 --dport 6432 -j DNAT --to-destination 172.19.1.109:5432


#실행후의 확인
iptables -L

#↓확인작업
/usr/local/postgresql9/bin/psql -h 172.19.1.109 -p 6432 -U interdev -l

/usr/local/postgresql9/bin/psql -h 172.19.1.109 -p 5432 -U interdev -l



  

반응형

'IT > PostgreSQL' 카테고리의 다른 글

PostgreSQL의 기본적인 명령어  (0) 2019.03.07
메인티넌스 작업 수순서  (0) 2016.05.30
백업  (0) 2016.05.30
Archive Log의 보존 방법  (0) 2016.05.30
슬레이브에서 마스터로 승격  (0) 2016.05.30
Comments