DB Replication
DB Replication ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ณ ๊ฐ์ฉ์ฑ๊ณผ ๋ฐ์ดํฐ ์์ ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ๋๋ฆฌ ํ์ฉ๋๋ ํต์ฌ ๊ธฐ์ ์.
ํนํ, ๋๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ํ๊ฒฝ์์๋ ๋ฐ์ดํฐ์ ์ง์์ ์ธ ๊ฐ์ฉ์ฑ๊ณผ ์ ๋ขฐ์ฑ์ด ๋งค์ฐ ์ค์ํ๊ธฐ ๋๋ฌธ์, ์๋ณธ(Source) ์๋ฒ์ ๋ณต์ (Replica) ์๋ฒ ๊ฐ์ ๋ฐ์ดํฐ ๋๊ธฐํ๋ ํ์์.
MySQL ๊ธฐ์ค
1. ๋ฐ์ด๋๋ฆฌ ๋ก๊ทธ(Binary Log)๋ฅผ ์ ์ฅํ๋ ๋ฐฉ์
Replication ์ Source ์๋ฒ์์ ๋ฐ์ํ๋ ๋ชจ๋ ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ฌํญ์ Replica ์๋ฒ๋ก ๋ณต์ ํ์ฌ ๋ ์๋ฒ ๊ฐ์ ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ ์ ์งํ๋ ๋ฉ์ปค๋์ฆ์.
์ด๋ฌํ ๊ณผ์ ์ ์ฃผ๋ก Binary Log ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ด๋ฃจ์ด์ง๋ฉฐ, Binary Log ๋ Source ์๋ฒ์์ ์คํ๋ ๋ชจ๋ ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ฟผ๋ฆฌ๋ฅผ ๊ธฐ๋กํ๋ ์ญํ ์ ํจ.
MySQL ์์๋ ์ด Binary Log ๋ฅผ ์ ์ฅํ๋ ๋ฐฉ์์ผ๋ก Row, Statement, Mixed ์ ์ธ ๊ฐ์ง ๋ฐฉ์์ ์ ๊ณตํ๋ฉฐ, ๊ฐ ๋ฐฉ์์ ๊ณ ์ ์ ์ฅ๋จ์ ์ ๊ฐ์ง๊ณ ์์.
Row
Row ๋ฐฉ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฐ ํ๋ณ๋ก ๋ณ๊ฒฝ๋ ๋ด์ฉ์ ์ ํํ ๊ธฐ๋กํจ. ์ด ๋ฐฉ์์ ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ ๋งค์ฐ ๋๊ฒ ์ ์งํ ์ ์๋ค๋ ํฐ ์ฅ์ ์ด ์์.
์๋ฅผ ๋ค์ด, ํน์ ํ์ด ์์ ๋์์ ๋ ๊ทธ ํ์ ์ด์ ์ํ์ ๋ณ๊ฒฝ๋ ์ํ๋ฅผ ๋ชจ๋ ๊ธฐ๋กํ๋ฏ๋ก, ๋ณต์ ์๋ฒ์์๋ ์๋ณธ ์๋ฒ์ ๋์ผํ ๋ฐ์ดํฐ ์ํ๋ฅผ ์ ์งํ ์ ์์.
๊ทธ๋ฌ๋ ๋ชจ๋ ํ์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ Binary Log ํ์ผ์ ํฌ๊ธฐ๊ฐ ๊ธ๊ฒฉํ ์ฆ๊ฐํ ์ ์์ด ์ ์ฅ ๊ณต๊ฐ์ ๋ถ๋ด์ ์ค ์ ์๋ ๋จ์ ์ด ์์.
Statement
๋ฐ๋ฉด์ Statement ๋ฐฉ์์ ๋ฐ์ดํฐ ๋ณ๊ฒฝ์ ์ผ์ผํจ SQL ๋ฌธ ์์ฒด๋ฅผ Binary Log ์ ๊ธฐ๋กํจ.
์ด ๋ฐฉ์์ ๋ก๊ทธ ํ์ผ์ ํฌ๊ธฐ๋ฅผ ์๋์ ์ผ๋ก ์๊ฒ ์ ์งํ ์ ์์ด ์ ์ฅ ๊ณต๊ฐ์ ์ ์ฝํ ์ ์๋ ์ฅ์ ์ด ์์.
ํ์ง๋ง ์คํํ ๋๋ง๋ค ๋ค๋ฅธ ๊ฐ์ ๋ฐํํ๋ ํจ์์ ๊ฐ์ด ๋นํ์ ์ (non-deterministic) SQL ์ฟผ๋ฆฌ๊ฐ ์คํ๋ ๊ฒฝ์ฐ, ๋์ผํ ์ฟผ๋ฆฌ๊ฐ Source ์ Replica ์๋ฒ์์ ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ ์ ์์ด ๋ฐ์ดํฐ ๋ถ์ผ์น ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์์.
์๋ฅผ ๋ค์ด, SELECT NOW()์ ๊ฐ์ ํจ์๋ ์คํ ์์ ์ ๋ฐ๋ผ ๋ค๋ฅธ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ ์ ์๊ธฐ ๋๋ฌธ์, ์ด๋ฅผ ํฌํจํ ์ฟผ๋ฆฌ๋ ๋ณต์ ์ ๋ฌธ์ ๊ฐ ๋ ์ ์์.
Mixed
์ด๋ฌํ ๋ฌธ์ ๋ฅผ ๋ณด์ํ๊ธฐ ์ํด MySQL ์ Mixed ๋ฐฉ์์ ์ ๊ณตํจ. Mixed ๋ฐฉ์์ ์ํฉ์ ๋ฐ๋ผ row ๊ธฐ๋ฐ๊ณผ statement ๊ธฐ๋ฐ์ ํผํฉํ์ฌ ๋ก๊ทธ๋ฅผ ๊ธฐ๋กํจ.
๋นํ์ ์ SQL ์ด ์๋ ๊ฒฝ์ฐ์๋ Statement ๋ฐฉ์์ ์ฌ์ฉํ์ฌ ์ ์ฅ ๊ณต๊ฐ์ ์ ์ฝํ๊ณ , ๋นํ์ ์ SQL ์ด ์คํ๋๋ ๊ฒฝ์ฐ์๋ row ๋ฐฉ์์ ์ฌ์ฉํ์ฌ ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ ์ ์งํจ.
์ด๋ฅผ ํตํด ๋ ๋ฐฉ์์ ์ฅ์ ์ ๋ชจ๋ ํ์ฉํ ์ ์์ผ๋ฉฐ, ๋ฐ์ดํฐ ๋ถ์ผ์น ๋ฌธ์ ๋ฅผ ์ต์ํ ํ ์ ์์. ๋ค๋ง , ๊ตฌํ์ด ๋ค์ ๋ณต์กํ ์ ์๋ค๋ ๋จ์ ์ด ์กด์ฌํจ.
๋ณต์ ๊ณผ์
Source ์๋ฒ์์ ๋ฐ์ดํฐ ๋ณ๊ฒฝ ์ฟผ๋ฆฌ๊ฐ ์คํ๋๊ณ , ์ ํ๋ ๋ก๊ทธ ์ ์ฅ ๋ฐฉ์์ ๋ฐ๋ผ Binary Log ์ ๊ธฐ๋ก๋ ํ, Replica ์๋ฒ์ IO Thread ๊ฐ Binary Log ๋ฅผ ์ฝ์ด์ Replica ์๋ฒ์ Relay Log ๋ก ์ ์กํจ.
Relay Log ๋ Replica ์๋ฒ์์ Source ์๋ฒ์ Binary Log ๋ฅผ ์ ์ฅํ๋ ์์ ์ ์ฅ์ ์ญํ ์ ํ๋ฉฐ, ์ด๊ณณ์ ์ ์ฅ๋ ๋ก๊ทธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Replica ์๋ฒ์ SQL ์ค๋ ๋๊ฐ ์ค์ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ณ๊ฒฝ ์ฌํญ์ ์ ์ฉํจ.
์ด ๊ณผ์ ์ ๋งค์ฐ ํจ์จ์ ์ผ๋ก ์ค๊ณ๋์ด ์ผ๋ฐ์ ์ผ๋ก ์ฝ 100๋ฐ๋ฆฌ์ด ์ด๋ด์ ๋ฐ์ดํฐ ๋๊ธฐํ๊ฐ ์๋ฃ๋จ. ์ด๋ฌํ ๋น ๋ฅธ ๋๊ธฐํ ์๋ ๋๋ถ์ ์๋ณธ๊ณผ ๋ณต์ ์๋ฒ ๊ฐ์ ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ด ์ค์๊ฐ์ ๊ฐ๊น๊ฒ ์ ์ง๋ ์ ์์.
Last updated
Was this helpful?