https://xoxoxoxox.tistory.com/111
[SQL] A-A / Master-Server, Server-Master Replication ์๋ฒ ๊ตฌ์ถ ์ค์ต
ํ๋๋ master, ๋๋จธ์ง ํ๋๋ slave์ ์๋ฒ์์ ๋์์ master์ด์ slave, slave์ด์ master์ธ replication ์๋ฒ ๊ตฌ์ถ์ ๊ตฌํํด๋ณผ ๊ฒ์ด๋ค. ์ ์ ํ๋ Master-Slave ์ค์ต์ Master์์๋ง CAUD๊ฐ ์ผ์ด๋ ์ ์์๊ณ , Slave
xoxoxoxox.tistory.com
๋ณธ ์ค์ต์ ์ ๋งํฌ์ ์ค์ต ํ๊ฒฝ์ ์ด์ด์ ์งํํ๋ค.
์ ์ค์ต์์๋ A-A (Active-Active) ๊ตฌ์กฐ์ ์๋ฒ๋ก, ๋ ์๋ฒ๊ฐ ๋์์ ์๋ํ๋ฉด์ ์ ๋ฌด๋ฅผ ๋ถ๋ดํ๋ค.
์ด๋ ๊ฒ ๊ตฌ์ถํ ๊ฒฝ์ฐ, ์ ๋ฌด ๋ถ๋ด์ ์ค์ง๋ง ์ฌ๋ ์ํฉ์ด ์ผ์ด๋ฌ์ ๋, ๋ฐ์ดํฐ์ ๋ณต๊ตฌ์ ์๊ฐ์ด ๊ฑธ๋ฆฐ๋ค.
์ฌ๋ ๋ณต๊ตฌ (DR, Disaster Recovery)๋ฅผ ํ๊ธฐ ์ํด์๋ ์๋ํ๋ ์๋ฒ์ ์๋ํ์ง ์๊ณ Standby๋ฅผ ํ๋ ๋ฐฑ์ ์๋ฒ๋ฅผ ๋๋ค.
์ด๋ฒ ์ค์ต์ ์ด๋ฌํ A-S ์๋ฒ ๊ตฌ์กฐ๋ฅผ ๊ตฌ์ถํด๋ณผ ๊ฒ์ด๋ค.
๊ธฐ์กด ์ค์ต ํ๊ฒฝ์ Master๋ฅผ Active ์๋ฒ๋ก, Slave๋ฅผ Standby ์๋ฒ๋ก ๋ณ๊ฒฝํ ๊ฒ์ด๋ค.
1. Active
1) keepalived ์ค์น ๋ฐ ์ค์
yum install -y keepalived
vi /etc/keepalived/keepalived.conf
14๋ฒ ๋ผ์ธ ์ฃผ์์ฒ๋ฆฌ
18๋ฒ ๋ผ์ธ ๋ฐ์ผ๋ก ์ ๋ถ ์ญ์
๋ฐ์ ๋ด์ฉ์ ๋ค์ ์ถ๊ฐ
vrrp_script chk_mysql {
script "pidof mysqld"
interval 2 # every 2 seconds
weight 2
}
vrrp_instance VI_1 {
interface ens160
state MASTER
virtual_router_id 123 # Standby๋ ๋ง์ถฐ์ค์ผ ํ๋ ๊ฐ (์์๋ก)
unicast_src_ip 192.168.100.20 # Active IP
unicast_peer {
192.168.100.30 # Standby IP
}
priority 102 # Standby๋ณด๋ค Active๊ฐ ๋์์ผ ํ๋ ๊ฐ
track_script {
chk_mysql
}
virtual_ipaddress {
192.168.100.100/24 dev ens160 # Standby๋ ๋ง์ถฐ์ค์ผ ํ๋ ๊ฐ (์์๋ก)
}
}
2) keepalived ์ค์ ํ์ผ์ ๋ฐ๊ฟจ์ผ๋, ์ฌ์์
systemctl restart keepalived
2. Standby
2. Standy
1) keepalived ์ค์น ๋ฐ ์ค์
yum install -y keepalived
vi /etc/keepalived/keepalived.conf
14๋ฒ ๋ผ์ธ ์ฃผ์์ฒ๋ฆฌ
18๋ฒ ๋ผ์ธ ๋ฐ์ผ๋ก ์ ๋ถ ์ญ์
vrrp_script chk_mysql {
script "pidof mysqld"
interval 2 # every 2 seconds
weight 2
}
vrrp_instance VI_1 {
interface ens160
state BACKUP
virtual_router_id 123 # Standby๋ ๋ง์ถฐ์ค์ผ ํ๋ ๊ฐ
unicast_src_ip 192.168.100.30 # Standby IP
unicast_peer {
192.168.100.20 # Active IP
}
priority 101 # Standby๋ณด๋ค Active๊ฐ ๋์์ผ ํ๋ ๊ฐ
track_script {
chk_mysql
}
virtual_ipaddress {
192.168.100.100/24 dev ens160
}
}
2) ์ฌ์์
systemctl restart keepalived
3. DB ์๋ฒ Failover ํ ์คํธ
1) workbench์์ ์ ์ ํ
์คํธ
hostname : [keepalived์์ VIP]
username : [์์ฑํ ๊ณ์ ]
์ ์ ํ
show variables LIKE '%server_id%'; ์คํํด์ server-id๋ฅผ ํ์ธ, Active ์๋ฒ๋ฅผ ๋๊ณ ์ ์ด ํ ๋ค์ ์ ์