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 keepalived2. 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 keepalived3. DB ์๋ฒ Failover ํ ์คํธ
	 1) workbench์์ ์ ์ ํ
์คํธ
	hostname : [keepalived์์ VIP]
	username : [์์ฑํ ๊ณ์ ]
	์ ์ ํ 
	show variables LIKE '%server_id%'; ์คํํด์ server-id๋ฅผ ํ์ธ, Active ์๋ฒ๋ฅผ ๋๊ณ  ์ ์ด ํ ๋ค์ ์ ์