๊ฐ์
์ด์ ๊ฒ์๊ธ [Docker MySQL] Master-Slave Replication(๋ณต์ ) ๊ตฌ์ถํ๊ธฐ์์ MySQL์ Master-Slave ๋ณต์ ๊ตฌ์ฑ ๋ฐฉ๋ฒ์ ๋ํด ์ดํด๋ณด์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋ง์คํฐ ์๋ฒ์ ๋ชจ๋ ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ฌํญ์ด ์๋์ผ๋ก ์ฌ๋ ์ด๋ธ ์๋ฒ์ ๋๊ธฐํ๋๊ฒ ๋๋ฉฐ, ์ด๋ฅผ ํตํด ๋ฐ์ดํฐ์ ์ผ๊ด์ฑ์ ์ ์งํ๊ณ ๋ง์คํฐ ์๋ฒ์ ๋ถํ๋ฅผ ํจ์จ์ ์ผ๋ก ๋ถ์ฐ์ํฌ ์ ์์ต๋๋ค.
ํ์ง๋ง, ๋ง์คํฐ ์๋ฒ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ฌ ์ค๋จ๋๋ฉด, ์ฌ๋ ์ด๋ธ ์๋ฒ๊ฐ ์์์๋ ๋ถ๊ตฌํ๊ณ ์ด์์๊ฐ ์ง์ ์กฐ์น๋ฅผ ์ทจํ๊ธฐ ์ ๊น์ง๋ ์ฌ๋ ์ด๋ธ ์๋ฒ๋ฅผ ๋ง์คํฐ ์๋ฒ๋ก ๋์ฒดํ์ฌ ์ฌ์ฉํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ๋ค๋ ๋ฌธ์ ๊ฐ ๋ํ ์กด์ฌํ์์ต๋๋ค.
์ด๋ฒ ๊ฒ์๊ธ์์๋ ์ด๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ง์คํฐ ์๋ฒ์ ์ฅ์ ๊ฐ ๋ฐ์ํ์ ๋ ์ฌ๋ ์ด๋ธ ์๋ฒ๋ฅผ ๋ง์คํฐ ์๋ฒ๋ก ์น๊ฒฉ์ํค๋ ๊ณผ์ ์ ์๋ํํ๋ Orchestrator๋ฅผ ํ์ฉํ ๊ณ ๊ฐ์ฉ์ฑ(High Availability, HA) ๊ตฌ์ฑ์ ๋ํด ์ค๋ช ํ๋๋ก ํ๊ฒ ์ต๋๋ค. ๊ณผ์ ์ ํฌ๊ฒ ์๋ ๋ ๊ฐ์ง์ ๋๋ค.
- HA ์๋ ์ค์
- HA ์๋ํ(Auto Failover)
1. HA ์๋ ์ค์ ํ๊ธฐ
1.1 Orchestator ์ปจํ ์ด๋ ์์ฑ
๋จผ์ , Orchestator ์ปจํ ์ด๋๋ฅผ ์์ฑํฉ๋๋ค. Orchestrator๋ MySQL ๋ณต์ ํ ํด๋ก์ง ๊ด๋ฆฌ๋ฅผ ์ํ ์คํ์์ค์ ๋๋ค. ๋๊ตฌ์ ๋๋ค. ์ด๋ฅผ ํตํด MySQL ๋ณต์ ๊ตฌ์ฑ์ ์ํ๋ฅผ ๋ชจ๋ํฐ๋งํ๊ณ , ์๋ ๋ณต๊ตฌ, ๋ณต์ ํ ํด๋ก์ง ๋ณ๊ฒฝ ๋ฑ์ ์์ ์ ์ํํ ์ ์์ต๋๋ค.
docker run -i -t --name orchestrator -h orchestrator \
--net mybridge --net-alias=orchestrator \
-p 3000:3000 \
-d openarkcode/orchestrator:latest
1.2 dbcontainer์ ip๋์ญ ํ์ธ
๋ค์์ผ๋ก, db001 ์ปจํ ์ด๋์ IP ๋์ญ์ ํ์ธํฉ๋๋ค. ์ด๋ Orchestator๋ฅผ ์ํ MySQL ์ฌ์ฉ์๋ฅผ ์์ฑํ ๋ ํ์ํ๋ฐ, docker์ inspect ๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์๋์ ๊ฐ์ด ์ปจํ ์ด๋์ IP ์ฃผ์๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
docker inspect --format '{{.NetworkSettings.Networks.mybridge.IPAddress}}' db001
1.3 Orchestrator๋ฅผ ์ํ MySQL ์ฌ์ฉ์ ์์ฑ
db001 ์ปจํ ์ด๋์์ Orchestrator๋ฅผ ์ํ MySQL ์ฌ์ฉ์๋ฅผ ์์ฑํฉ๋๋ค. ์ด ์ฌ์ฉ์๋ Orchestrator๊ฐ MySQL ์๋ฒ์ ์ ์ํ์ฌ ํ์ํ ์์ ์ ์ํํ๊ธฐ ์ํด ์ฌ์ฉ๋ฉ๋๋ค.
docker exec -it -uroot db001 /bin/bash
mysql -uroot -p
CREATE USER orc_client_user@'172.%' IDENTIFIED BY 'orc_client_password';
# SUPER, PROCESS, REPLICATION SLAVE, RELOAD ๊ถํ์ Orchestator๊ฐ MySQL ์๋ฒ์ ์ ์ํ์ฌ ๋ณต์ ๊ตฌ์ฑ์ ์ํ๋ฅผ ํ์ธํ๊ฑฐ๋ ๋ณ๊ฒฝํ๋ ๋ฐ ํ์
GRANT SUPER, PROCESS, REPLICATION SLAVE, RELOAD ON *.* TO orc_client_user@'172.%';
# Orchestrator๊ฐ ๋ณต์ ์ํ๋ฅผ ํ์ธํ๋ ๋ฐ ํ์
GRANT SELECT ON mysql.slave_master_info TO orc_client_user@'172.%';
1.4 Orchestrator ์ ์ํ์ธ
์ด์ Orchestrator์ ์ ์ํ์ฌ ์ค์ ์ด ์ ์์ ์ผ๋ก ์๋ฃ๋์๋์ง ํ์ธํฉ๋๋ค. Orchestrator๋ ์น ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ๋ฏ๋ก ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์ ์ํ ์ ์์ต๋๋ค.
http://{docker_host:ip}:3000/web/clusters
์ฌ๊ธฐ์ {docker_host:ip} ๋ถ๋ถ์๋ Docker ํธ์คํธ์ IP ์ฃผ์๋ฅผ ์ ๋ ฅํฉ๋๋ค. ๋ง์ฝ AWS EC2 ์ธ์คํด์ค๋ฅผ ์ฌ์ฉํ๋ค๋ฉด, ์ด ๋ถ๋ถ์ EC2 ์ธ์คํด์ค์ ํผ๋ธ๋ฆญ IP ์ฃผ์๋ฅผ ์ ๋ ฅํด์ผ ํ๋ฉฐ EC2 ๋ณด์ ๊ทธ๋ฃน ์ค์ ์์ 3000๋ฒ ํฌํธ๋ก ๋ค์ด์ค๋ ํธ๋ํฝ์ ํ์ฉํ๋๋ก ์ธ๋ฐ์ด๋ ์ค์ ์ ํด์ผ ํฉ๋๋ค.
์น ์ฌ์ดํธ์ ์ ์ํ ํ, ์๋จ ๋ฉ๋ด์์ 'Cluster' > 'Discover'๋ฅผ ์ ํํ์ฌ ์๋ก์ด DB๋ฅผ ๋ฑ๋กํฉ๋๋ค. 'Host:'๋์ ํธ์คํธ๋ช ์ด๋ IP ์ฃผ์๋ฅผ ์ ๋ ฅํ๊ณ 'Submit' ๋ฒํผ์ ํด๋ฆญํ๋ฉด Orchestrator๊ฐ ํด๋น DB๋ฅผ ์๋์ผ๋ก ์ฐพ์์ ๋ฑ๋กํฉ๋๋ค.
'Cluster' > 'Dashboard'๋ก ์ด๋ํด์ ๋ณด๋ฉด db001์ ํฌํจํ์ฌ ์ด 3๋์ ์๋ฒ๊ฐ ์ ์์ ์ผ๋ก ๋์ํ๊ณ ์์์ ์ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์์ ์ค์ ํ ๋ด์ฉ์ด ์ ๋๋ก ์ ์ฉ๋์์ผ๋ฉฐ, Orchestrator๊ฐ ๊ฐ ์๋ฒ์ ์ ์์ ์ผ๋ก ์ ์ํ์ฌ ์ํ ์ ๋ณด๋ฅผ ๊ฐ์ ธ์ค๊ณ ์๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
1.5 HA ํ ์คํธ
์์ ์ค์ ํ High Availability(HA) ์ค์ ์ด ์ ์์ ์ผ๋ก ์๋ํ๋์ง ํ ์คํธํด ๋ณด๊ฒ ์ต๋๋ค. ์ด๋ฅผ ์ํด db001 ์ปจํ ์ด๋๋ฅผ ๊ณ ์๋ก ์ ์ง์์ผ ๋ด ๋๋ค.
docker stop db001
db001 ์ปจํ ์ด๋๊ฐ ์ ์ง๋จ์ ๋ฐ๋ผ Orchestrator์ 'Dashboard'์์ db001์ ์ํ๊ฐ 'Recovery needed'๋ก ํ์๋ ๊ฒ์ ํ์ธํ ์ ์์ผ๋ฉฐ, db001์ ์ฐ๊ฒฐ๋์ด ์๋ db002์ db003์ ์ํ๊ฐ 'Disconnected'๋ก ๋ณ๊ฒฝ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
์ด ์ํ์์ 'Recovery' ๋ฒํผ์ ํด๋ฆญํ์ฌ db002๋ฅผ ์๋ก์ด Master๋ก ์น๊ฒฉ์์ผ ๋ณด๊ฒ ์ต๋๋ค.
์ด ์์ ์ดํ, db001๊ณผ db002๊ณผ ๋ถ๋ฆฌ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. ๋ํ db002๊ฐ ์๋ก์ด Master๊ฐ ๋์๊ณ , db003์ db002์ Slave๋ก ๋ณ๊ฒฝ๋์์ต๋๋ค. ๋ํ db001์ ์ฌ์ ํ 'Recovery needed' ์ํ๋ก ๋จ์์์ต๋๋ค.
1.6 Container db002์ db003 db ์ํ ํ์ธ
db002์ db003์ ์ ์ํ์ฌ DB์ ์ํ๋ฅผ ํ์ธํด ๋ด ์๋ค.
# Docker ์ปจํ
์ด๋ ์ ์
docker exec -it -uroot db002 /bin/bash
# MySQL ์ ์
mysql -uroot -p
# Slave ์ ๋ณด ํ์ธ
show slave status\G
์ ๋ช ๋ น์ ์คํํ๋ฉด db002์ Slave ์ ๋ณด๊ฐ ์ ๋ถ ์ฌ๋ผ์ง ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. ๋ํ, read_only๊ฐ 0์ผ๋ก ์ค์ ๋์ด ์์ด ์ฐ๊ธฐ๊ฐ ๊ฐ๋ฅํ ์ํ๋ก ๋ณ๊ฒฝ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. ์ด๋ db002๊ฐ ์๋ก์ด Master๋ก ์ ์์ ์ผ๋ก ์น๊ฒฉ๋์์์ ์๋ฏธํฉ๋๋ค. ์ด์ด์ db003์ Slave ์ ๋ณด๋ฅผ ํ์ธํ์ฌ Master๊ฐ db002๋ก ๋ณ๊ฒฝ๋์๋์ง ํ์ธํฉ๋๋ค.
# Docker ์ปจํ
์ด๋ ์ ์
docker exec -it -uroot db003 /bin/bash
# MySQL ์ ์
mysql -uroot -p
# Slave ์ ๋ณด ํ์ธ
show slave status\G
db003์ Slave ์ ๋ณด์์ Master๊ฐ db002๋ก ๋ณ๊ฒฝ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค. ์ด๋ HA ์ค์ ์ ๋ฐ๋ผ db002๊ฐ ์ Master๋ก ์น๊ฒฉ๋์๊ณ , db003๊ฐ db002์ Slave๋ก ์ ์์ ์ผ๋ก ๋ณ๊ฒฝ๋์์์ ๋ํ๋ ๋๋ค.
1.7 db001 ๋ณต๊ตฌ ๋ฐ db002์ slave๋ก ์ค์
์ด์ db001 ์ปจํ ์ด๋๋ฅผ ๋ค์ ์์ํ๊ณ db002์ Slave๋ก ์ค์ ํด ๋ณด๊ฒ ์ต๋๋ค. ๋จผ์ , db001์ ์์ํฉ๋๋ค.
docker start db001
๊ทธ๋ค์, db001์ ์ ์ํฉ๋๋ค.
docker exec -it -uroot db001 /bin/bash
mysql -uroot -p
# ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฝ๊ธฐ ์ ์ฉ ๋ชจ๋๋ก ์ค์
SET GLOBAL read_only = 1;
# MySQL ๋ณต์ ๋ฅผ ์ํด ์ ๋ง์คํฐ ์๋ฒ์ ์์ธ ์ ๋ณด๋ฅผ ์ค์
CHANGE MASTER TO MASTER_HOST='db002', MASTER_USER='repl', MASTER_PASSWORD='repl', MASTER_AUTO_POSITION=1;
# ๋ณต์ ์์
START SLAVE;
# ๋ณต์ ์ค์ ํ์ธ
show slave status\G
์ ๋ช ๋ น์ ์์๋๋ก ์คํํ๋ฉด db001์ด db002์ Slave๋ก ์ค์ ๋๋ฉฐ, db002์์ ๋ฐ์ํ๋ ๋ชจ๋ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ฌํญ์ด db001์๋ ๋์ผํ๊ฒ ์ ์ฉ๋ฉ๋๋ค.
๋ง์ง๋ง์ผ๋ก, Orchestrator์์ db002 cluster๋ฅผ ํ์ธํ๋ฉด db001์ด Slave๋ก ์ถ๊ฐ๋ ๊ฒ์ ํ์ธํ ์ ์์ต๋๋ค.
2. HA ์๋ํ(Auto Failover)
์์์๋ Master DB์ ์ฅ์ ํ์ ์๋์ผ๋ก Failover๋ฅผ ์ํจ ๊ฒฝ์ฐ๋ฅผ ์ดํด๋ณด์์ต๋๋ค. ์ด๋ฒ์๋ ์ฌ๋์ ๊ฐ์ ์์ด ์๋์ผ๋ก Failover๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐฉ๋ฒ, ์ฆ Auto Failover์ ๋ํด ์์๋ณด๊ฒ ์ต๋๋ค.
2.1 Auto Failover๋ฅผ ์ํ Orchestrator์ ์ค์ ๋ณ๊ฒฝ
๋จผ์ , Auto Failover๋ฅผ ์ํด Orchestrator์ ์ค์ ์ ๋ณ๊ฒฝํด์ผ ํฉ๋๋ค. ์๋์ ๋ช ๋ น์ด๋ค์ ์คํํ์ฌ ์ค์ ์ ๋ณ๊ฒฝํ๊ณ Orchestrator๋ฅผ ์ฌ์์ํฉ๋๋ค.
# Orchestrator๊ฐ ์คํ๋๊ณ ์๋ Docker ์ปจํ
์ด๋์ ์ ์
docker exec -it orchestrator /bin/bash
# /etc/ ๋๋ ํ ๋ฆฌ๋ก ์ด๋ํ์ฌ orchestrator.conf.json ํ์ผ์ ์ฐ๋ค.
cd /etc/
vi orchestrator.conf.json
# ์๋์ ์ค์ ๋ค์ ์ถ๊ฐ
"RecoverMasterClusterFilters":[
"*"
],
"PromotionIgnoreHostnameFilters": ["db003"],
# Orchestrator๋ฅผ ์ฌ์์
docker restart orchestrator
๊ฐ ์ค์ ์ ๋ํ ์ค๋ช ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- "RecoverMasterClusterFilters": ["*"]: ์ด ์ค์ ์ ๋ชจ๋ ํด๋ฌ์คํฐ์์ Master ์๋ฒ ์ฅ์ ๋ณต๊ตฌ๋ฅผ ์๋ํ๋๋ก ํฉ๋๋ค.
- "PromotionIgnoreHostnameFilters":["db003"]: ์ด ์ค์ ์ db003 ์๋ฒ๋ฅผ Master๋ก ์น๊ฒฉํ๋ ๊ฒ์ ๋ฌด์ํ๋๋ก ํฉ๋๋ค. ์ฆ, db003๋ ํญ์ Slave์ ์ญํ ๋ง ์ํํ๊ฒ ๋ฉ๋๋ค.
์ด๋ ๊ฒ ์ค์ ์ ๋ณ๊ฒฝํ๋ฉด, ์ดํ๋ถํฐ๋ Master ์๋ฒ์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋ฉด Orchestrator๊ฐ ์๋์ผ๋ก ๋ค๋ฅธ ์๋ฒ๋ฅผ Master๋ก ์น๊ฒฉ์ํค๊ณ ์ฅ์ ๊ฐ ๋ฐ์ํ ์๋ฒ๋ฅผ ๋ณต๊ตฌํ๋ ์์ ์ ์ํํ๊ฒ ๋ฉ๋๋ค.
Orchestrator์ ์ค์ ์ ๋ณ๊ฒฝํ๊ณ ์ฌ์์ํ ํ์, Orchestrator ์น ์ธํฐํ์ด์ค์ ์ข์ธก ์๋จ์ ์์นํ ํํธ ํ์๋ฅผ ๋ณด๋ฉด ๋ถ์ด ๋ค์ด์ค๊ฒ ๋ฉ๋๋ค. ์ด๋ Orchestror๊ฐ ์๋์ผ๋ก Master Recovery๋ฅผ ์ํํ ์ ์๋ ์ํ์์ ์๋ฏธํฉ๋๋ค. ๋ฐ๋ผ์, ์ดํ์๋ Master ์๋ฒ์ ์ฅ์ ๊ฐ ๋ฐ์ํ๋๋ผ๋ Orchestrator๊ฐ ์๋์ผ๋ก Failover๋ฅผ ์ฒ๋ฆฌํ๊ณ , ์ฅ์ ๊ฐ ๋ฐ์ํ Master ์๋ฒ๋ฅผ ๋ณต๊ตฌํ ์ ์์ต๋๋ค.
2.3 ์ฅ์ ์ํฉ ์์ฑ
๋ง์ฐฌ๊ฐ์ง๋ก ์ฅ์ ์ํฉ์ ๋ง๋ค๊ธฐ ์ํด Master DB์ธ db002 ์ปจํ ์ด๋๋ฅผ ์ ์ง์์ผ ๋ณด๊ฒ ์ต๋๋ค.
docker stop db002
์ ๋ช ๋ น์ ์คํํ๋ฉด db002 ์ปจํ ์ด๋๊ฐ ์ ์ง๋์ด ์ฅ์ ์ํฉ์ด ๋ฐ์ํฉ๋๋ค. ์ด๋, Orchestrator๋ ์ค์ ์ ๋ฐ๋ผ ์๋์ผ๋ก Failover๋ฅผ ์ํํ๊ฒ ๋ฉ๋๋ค.
Failover๊ฐ ์ ์์ ์ผ๋ก ์ํ๋๋ฉด, Cluster๋ db002์ db001๋ก ๋ถ๋ฆฌ๋๋ฉฐ, db003์ด db001์ Slave๋ก ์ค์ ๋ณ๊ฒฝ๋๋ ๋ชจ์ต์ ๋ณผ ์ ์์ต๋๋ค. ์ด๋ Orchestrator๊ฐ ์ฅ์ ์ํฉ์ ์ ์์ ์ผ๋ก ๊ฐ์งํ๊ณ , ์๋ก์ด Master๋ก db001์ ์น๊ฒฉ์ํจ ํ, db003์ db001์ Slave๋ก ์ฌ๋ฐฐ์นํ ๊ฒ์ ์๋ฏธํฉ๋๋ค.
์ ๋ฆฌ
์ด๋ฒ ๋ด์ฉ์์๋ ๋ง์คํฐ ์๋ฒ์ ์ฅ์ ๊ฐ ๋ฐ์ํ์ ๋ ์ฌ๋ ์ด๋ธ ์๋ฒ๋ฅผ ๋ง์คํฐ ์๋ฒ๋ก ์น๊ฒฉ์ํค๋ ๊ณผ์ ์ ์๋ํํ๋ Orchestrator๋ฅผ ํ์ฉํ ๊ณ ๊ฐ์ฉ์ฑ(High Availability, HA) ๊ตฌ์ฑ์ ๋ํด ์์๋ณด์์ต๋๋ค.
ํ์ง๋ง, ์ด๋ ๊ฒ HA ๊ตฌ์ฑ์ ํตํด DB ์๋ฒ์ ์ฅ์ ๋ฅผ ์ฒ๋ฆฌํ๋๋ผ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ DB ์ ์ ์ ๋ณด๊ฐ ์ ๋ฐ์ดํธ๋์ง ์์ผ๋ฉด ์ฌ์ ํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์ ์ ๋ณด์๋ ์ฅ์ ๊ฐ ๋ฐ์ํ db001์ด master DB๋ก ์ค์ ๋์ด ์๋ค๋ฉด, db001์ ๋ฌธ์ ๊ฐ ์๊ฒจ db002๊ฐ ์๋ก์ด master๊ฐ ๋์์ ๋์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ณ์ db001์ ๋ฐ๋ผ๋ณด๋๋ก ์ค์ ๋์ด ์๊ณ , db001์ ์ ์ํ๋ ค๊ณ ๊ณ์ ์๋ํ ๊ฒ์ ๋๋ค.
์ฆ, ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ ๋ฒจ์์๋ db001์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ฌ Failover๊ฐ ์ด๋ฃจ์ด์ ธ ์๋น์ค๋ฅผ ์ง์ํ ์ค๋น๊ฐ ๋์์ง๋ง, ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ์์ง๋ ๊ณ์ ์ฅ์ ์ํฉ์ธ ๊ฒ์ ๋๋ค. ๋ฐ๋ผ์, ์ด๋ฐ ์ํฉ์์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ DB ์ ์ ์ ๋ณด๋ฅผ ์ค๋ฅ๊ฐ ๋ฐ์ํ db001์์ ์๋ก์ด master์ธ db002๋ก ๋ณ๊ฒฝํ๋ ์์ ์ด ํ์ํ๊ณ , ์ด๋ฐ ๊ฒฝ์ฐ์๋ ๋๋ถ๋ถ ์ ์ฒด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์์ํด์ผ ํ๋ ์ํฉ์ด ๋ฐ์ํฉ๋๋ค.
์ด๋ฐ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ๋ค์ ๋ด์ฉ์์๋ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ DB ์๋ฒ ์ฌ์ด์ proxy ์ญํ ์ ํด์ฃผ๋ ๋ ์ด์ด๋ฅผ ํ๋ ๋ง๋ค์ด์, ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์ ๋ณ๊ฒฝ์ด๋ ์ฌ์์ ์์ด ์๋์ผ๋ก ๋ณ๊ฒฝ๋ master DB๋ก ์ฐ๊ฒฐํ๋๋ก ํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
'BackEnd๐ฑ > DB & SQL' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
select .. for update ๋์ ์ ๋ฌด์ ๋ฐ๋ฅธ ์ ๊ธ ์ํ (0) | 2024.04.11 |
---|---|
[Docker MySQL] Proxy Layer ๊ตฌ์ถํ๊ธฐ (0) | 2023.11.12 |
[Docker MySQL] Master-Slave Replication(๋ณต์ ) ๊ตฌ์ถํ๊ธฐ (0) | 2023.11.01 |
[MySQL] MVCC๋ฅผ ํตํ ์ ๊ธ์๋ ์ฝ๊ธฐ (7) | 2023.10.07 |
[MySQL] ์ฌ์ฉ์ ์์ฑ ๋ฐ ๊ถํ ๋ถ์ฌ ๋ฐฉ๋ฒ (0) | 2023.10.06 |
MySQL์์ VARCHAR์ TEXT์ ์ฐจ์ด (1) | 2023.09.17 |
๋๊ธ