๊ด€๋ฆฌ ๋ฉ”๋‰ด

Binary Journey

[๋งค์ผ๋ฉ”์ผ] DB Replication์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”. ๋ณธ๋ฌธ

daily/maeil-mail challenge

[๋งค์ผ๋ฉ”์ผ] DB Replication์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

binaryJournalist 2025. 1. 3. 14:41
๋ฐ˜์‘ํ˜•

๐Ÿ’ก ๋งค์ผ๋ฉ”์ผ์€ ๊ธฐ์ˆ ๋ฉด์ ‘ ๊ด€๋ จ ์งˆ๋ฌธ์„ ๋ฉ”์ผ๋กœ ๋งค์ผ ๋ณด๋‚ด์ฃผ๋Š” ๊ตฌ๋… ์„œ๋น„์Šค์ž…๋‹ˆ๋‹ค.

๐Ÿ’ก๋งค์ผ๋ฉ”์ผ ์ฑŒ๋ฆฐ์ง€๋Š” ์ œ ๊ฐœ์ธ์ ์ธ ์ฑŒ๋ฆฐ์ง€๋กœ ๋งค์ผ๋ฉ”์ผ์—์„œ ๋ณด๋‚ด์ฃผ๋Š” ํ•˜๋ฃจ์น˜ ๋ฉ”์ผ์— ๋Œ€ํ•œ ๋‹ต๋ณ€์„ ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŠธ๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

 

DB Replication์— ๋Œ€ํ•ด์„œ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.

(2025.01.02)

 

 

DB Replication์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์ œํ•˜์—ฌ ์—ฌ๋Ÿฌ ์„œ๋ฒ„์— ๋ถ„์‚ฐ ์ €์žฅํ•˜๋Š” ๊ธฐ์ˆ ์ž…๋‹ˆ๋‹ค. DB Replication์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์•ˆ์ •์„ฑ๊ณผ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ์ค‘์š”ํ•œ ๊ธฐ์ˆ ๋กœ, ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ์—์„œ ํŠนํžˆ ์œ ์šฉํ•˜๊ฒŒ ํ™œ์šฉ๋ฉ๋‹ˆ๋‹ค

๋ณดํ†ต ๋งˆ์Šคํ„ฐ-์Šฌ๋ ˆ์ด๋ธŒ ๊ตฌ์กฐ๋กœ, ํ•˜๋‚˜์˜ ๋งˆ์Šคํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ํ•˜๋‚˜ ์ด์ƒ์˜ ์Šฌ๋ ˆ์ด๋ธŒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.

๋งˆ์Šคํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ฃผ๋กœ ์“ฐ๊ธฐ ์ž‘์—…์„ ๋งก๊ณ  ์Šฌ๋ ˆ์ด๋ธŒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ฝ๊ธฐ ์ž‘์—…์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.

๋ณต์ œ๋Š” ์ฃผ๋กœ ๋น„๋™๊ธฐ ๋ฐฉ์‹์œผ๋กœ ์ด๋ฃจ์–ด์ง€๋ฉฐ ๋งˆ์Šคํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ์Šฌ๋ ˆ์ด๋ธŒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ๋ณต์ œ๋˜์–ด ๋™๊ธฐํ™”๋ฉ๋‹ˆ๋‹ค.

๋งˆ์Šคํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์€ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋กœ๊ทธ์— ๊ธฐ๋ก๋˜์–ด ์Šฌ๋ ˆ์ด๋ธŒ๋กœ ์ „์†ก๋ฉ๋‹ˆ๋‹ค.

์ด๋ฅผ ํ†ตํ•ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ธ์Šคํ„ด์Šค๊ฐ€ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•˜๋„๋ก ํ•˜๋ฉฐ, ๋ฐ์ดํ„ฐ ๊ฐ€์šฉ์„ฑ๊ณผ ์„ฑ๋Šฅ, ์•ˆ์ •์„ฑ์„ ๋†’์ด๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

์„ธ๋ถ€์ ์œผ๋กœ ์„ค๋ช…ํ•˜์ž๋ฉด

  • ๋ถ€ํ•˜ ๋ถ„์‚ฐ
    ์ฝ๊ธฐ ์ž‘์—…์„ ์—ฌ๋Ÿฌ ์Šฌ๋ ˆ์ด๋ธŒ ์„œ๋ฒ„๋กœ ๋ถ„์‚ฐ์‹œ์ผœ ์ „์ฒด ์‹œ์Šคํ…œ์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค.
  • ๊ณ ๊ฐ€์šฉ์„ฑ
    ๋งˆ์Šคํ„ฐ ์„œ๋ฒ„์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•ด๋„ ์Šฌ๋ ˆ์ด๋ธŒ ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ์„œ๋น„์Šค๋ฅผ ๊ณ„์†ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ๋ฐฑ์—…
    ์‹ค์‹œ๊ฐ„์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์ œํ•˜์—ฌ ๋ฐฑ์—… ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.
  • ํ™•์žฅ์„ฑ
    ํ•„์š”์— ๋”ฐ๋ผ ์Šฌ๋ ˆ์ด๋ธŒ ์„œ๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์‰ฝ๊ฒŒ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค๋งŒ ์‹œ์Šคํ…œ ์„ค๊ณ„์™€ ์šด์˜์˜ ๋ณต์žก์„ฑ์„ ์ฆ๊ฐ€์‹œํ‚ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์—ฌ๋Ÿฌ ์ œํ•œ์‚ฌํ•ญ๊ณผ ๋ฌธ์ œ๋ฅผ ๋™๋ฐ˜ํ•  ์ˆ˜ ์žˆ์–ด ์ฃผ์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ๋ณต์žก์„ฑ ์ฆ๊ฐ€
    ์„ค์ •๊ณผ ๊ด€๋ฆฌ๊ฐ€ ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์—ฌ๋Ÿฌ ๋ณต์ œ๋ณธ์„ ๋™๊ธฐํ™”ํ•˜๋Š” ๊ฒƒ์ด ์–ด๋ ค์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋น„์šฉ ์ฆ๊ฐ€
    ์ถ”๊ฐ€์ ์ธ ํ•˜๋“œ์›จ์–ด, ์†Œํ”„ํŠธ์›จ์–ด, ์ €์žฅ ๊ณต๊ฐ„์ด ํ•„์š”ํ•˜์—ฌ ๋น„์šฉ์ด ์ฆ๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ ๋ฌธ์ œ
    ๋ณต์ œ ์ง€์—ฐ์œผ๋กœ ์ธํ•ด ๋ณต์ œ๋ณธ ๊ฐ„์˜ ๋ฐ์ดํ„ฐ ๋ถˆ์ผ์น˜๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๊ณ  ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์ถ”๊ฐ€์ ์ธ ๋…ธ๋ ฅ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • ์„ฑ๋Šฅ ์ €ํ•˜ ๊ฐ€๋Šฅ์„ฑ
    ์“ฐ๊ธฐ ์ž‘์—…์˜ ๊ฒฝ์šฐ ๋ชจ๋“  ๋ณต์ œ๋ณธ์— ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ ์šฉํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์„ฑ๋Šฅ์ด ์ €ํ•˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋„คํŠธ์›Œํฌ ๋ถ€ํ•˜ ์ฆ๊ฐ€
    ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”๋ฅผ ์œ„ํ•ด ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ์ด ์ฆ๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค

DB ๋ฆฌํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๊ณ ๊ฐ€์šฉ์„ฑ, ์„ฑ๋Šฅ ํ–ฅ์ƒ, ๋ฐ์ดํ„ฐ ๋ณด์•ˆ ๊ฐ•ํ™” ๋“ฑ ๋งŽ์€ ์ด์ ์„ ์ œ๊ณตํ•˜์ง€๋งŒ ๋ณต์žก์„ฑ๊ณผ ๋น„์šฉ ์ฆ๊ฐ€, ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ ๊ด€๋ฆฌ ๋“ฑ์˜ ๊ณผ์ œ๋„ ํ•จ๊ป˜ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

 


 

๋ชจ๋ฒ”๋‹ต์•ˆ

 

 

 


 

 


 

์งˆ๋ฌธ์˜ ๋ชฉ์ 

 

DB Replication์— ๋Œ€ํ•œ ์ดํ•ด๋Š” ์‹œ์Šคํ…œ ์•„ํ‚คํ…ํŠธ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์ž, ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ์ค‘์š”ํ•˜๋ฉฐ ํšจ์œจ์ ์ด๊ณ  ์•ˆ์ •์ ์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ์„ ๊ตฌ์ถ•ํ•˜๊ณ  ์šด์˜ํ•˜๋Š” ๋ฐ ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

 

 


 

๊ฐœ๋…

 

Master(Primary)

DB๋งˆ์Šคํ„ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ, ๋ฐ์ดํ„ฐ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ์ฃผ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค.
๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์ž‘์—…(INSERT, UPDATE, DELETE)์€ ์ฃผ๋กœ ์—ฌ๊ธฐ์—์„œ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.

 

Replica(Secondary, Slave) DB

์Šฌ๋ ˆ์ด๋ธŒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ, Master DB์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์ œ๋ฐ›์•„ ์ฝ๊ธฐ ์ „์šฉ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.
Replica๋Š” Master์˜ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ์ฃผ๊ธฐ์ ์œผ๋กœ ๋™๊ธฐํ™”ํ•ฉ๋‹ˆ๋‹ค.

 

Binary Log ์ €์žฅ ๋ฐฉ์‹

Binary log๋Š” Source ์„œ๋ฒ„์—์„œ ์‹คํ–‰๋œ ๋ชจ๋“  ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์ฟผ๋ฆฌ๋ฅผ ๊ธฐ๋กํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

MySQL์˜ ๊ฒฝ์šฐ Binary log๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ Row, Statement, Mixed์˜ ์„ธ ๊ฐ€์ง€ ๋ฐฉ์‹์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

 

 

Row

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ฐ ํ–‰ ๋ณ„๋กœ ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์„ ๊ธฐ๋ก
    • ํŠน์ • ํ–‰ ์ˆ˜์ • ์‹œ ๊ทธ ํ–‰์˜ ์ด์ „ ์ƒํƒœ์™€ ๋ณ€๊ฒฝ๋œ ์ƒํƒœ ๋ชจ๋‘ ๊ธฐ๋ก
  • ์žฅ์ : ๋†’์€ ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ
  • ๋‹จ์ : ๋ชจ๋“  ํ–‰์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— Binary log ํŒŒ์ผ ํฌ๊ธฐ๊ฐ€ ์ฆ๊ฐ€ํ•˜๊ณ  ์ €์žฅ ๊ณต๊ฐ„์— ๋ถ€๋‹ด์„ ์ค„ ์ˆ˜ ์žˆ์Œ

Statement

  • ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์„ ์ผ์œผํ‚จ SQL ๋ฌธ์„ ๊ธฐ๋ก
  • ์žฅ์ : ๋กœ๊ทธ ํŒŒ์ผ์˜ ํฌ๊ธฐ๊ฐ€ ์ƒ๋Œ€์ ์œผ๋กœ ์ž‘์•„ ์ €์žฅ ๊ณต๊ฐ„ ์ ˆ์•ฝ ๊ฐ€๋Šฅ
  • ๋‹จ์ : ์‹คํ–‰๋งˆ๋‹ค ๋‹ค๋ฅธ ๊ฐ’ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜๋‚˜ ๋น„ํ™•์ •์ (non-deterministic) SQL ์ฟผ๋ฆฌ ์‹คํ–‰ ์‹œ Master์™€ Replica์„œ๋ฒ„์—์„œ ๋‹ค๋ฅธ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™€ ๋ฐ์ดํ„ฐ ๋ถˆ์ผ์น˜ ๋ฌธ์ œ ๋ฐœ์ƒ ๊ฐ€๋Šฅ (์˜ˆ: NOW())

Mixed

  • Row์™€ Statement ๋ฐฉ์‹ ์ ˆ์ถฉ์•ˆ
  • ๋น„ํ™•์ •์  SQL์ธ ๊ฒฝ์šฐ Row ๋ฐฉ์‹, ์•„๋‹Œ ๊ฒฝ์šฐ Statement ๋ฐฉ์‹ ์‚ฌ์šฉ
  • ์žฅ์ : ์ €์žฅ ๊ณต๊ฐ„ ์ ˆ์•ฝ ๋ฐ ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ ์œ ์ง€ ๊ฐ€๋Šฅ
  • ๋‹จ์ : ๊ตฌํ˜„์ด ๋‹ค์†Œ ๋ณต์žกํ•จ

 

๋ณต์ œ ๊ณผ์ •

  1. Master ์„œ๋ฒ„์—์„œ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ ์ฟผ๋ฆฌ ์‹คํ–‰
  2. ๋กœ๊ทธ ์ €์žฅ ๋ฐฉ์‹์— ๋”ฐ๋ผ Binary log ๊ธฐ๋ก
  3. Replica ์„œ๋ฒ„์˜ IO Thread๊ฐ€ Binary log๋ฅผ ์ฝ์–ด์™€ Replica ์„œ๋ฒ„์˜ Relay log๋กœ ์ „์†ก
    • Relay log๋Š” Replica ์„œ๋ฒ„์—์„œ Source ์„œ๋ฒ„์˜ Binary log๋ฅผ ์ž„์‹œ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  4. ์ €์žฅ๋œ ๋กœ๊ทธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ Replica ์„œ๋ฒ„์˜ SQL ์Šค๋ ˆ๋“œ๊ฐ€ ์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ณ€๊ฒฝ ์‚ฌํ•ญ ์ ์šฉ
    • ์•ฝ 100๋ฐ€๋ฆฌ์ดˆ ์ด๋‚ด ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™” ์™„๋ฃŒ

 

 

DB Replication์˜ ์žฅ์ 

  • ๊ณ ๊ฐ€์šฉ์„ฑ(High Availability)
    • ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ Master ๋Œ€์‹  Slave ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด ๋‹ค์šดํƒ€์ž„์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ถ€ํ•˜ ๋ถ„์‚ฐ(Load Balancing)
    • ์ฝ๊ธฐ ์š”์ฒญ(SELECT)์„ Slave๋กœ ๋ถ„์‚ฐํ•˜์—ฌ Master์˜ ๋ถ€ํ•˜๋ฅผ ์ค„์ž…๋‹ˆ๋‹ค.
  • ๋ฐฑ์—… ๋ฐ ๋ณต๊ตฌ ์šฉ์ด์„ฑ
    • Slave๋ฅผ ๋ฐฑ์—… ๋ชฉ์ ์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ์ง€์—ญํ™”(Localization)
    • ์—ฌ๋Ÿฌ ์ง€์—ญ์— ๊ฑธ์ณ Slave๋ฅผ ๋ฐฐ์น˜ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ์†๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

DB Replication์˜ ์œ ํ˜•

  • Synchronous Replication
    • Master์™€ Slave ์‚ฌ์ด์˜ ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”๊ฐ€ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.
    • ๋ฐ์ดํ„ฐ๊ฐ€ Master์— ์ปค๋ฐ‹๋˜๊ธฐ ์ „์— ๋ชจ๋“  Slave์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ ์šฉ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ์žฅ์ : ๋†’์€ ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ
    • ๋‹จ์ : ๋„คํŠธ์›Œํฌ ์ง€์—ฐ์ด๋‚˜ ์žฅ์• ๋กœ ์ธํ•ด ์„ฑ๋Šฅ ์ €ํ•˜ ๊ฐ€๋Šฅ
  • Asynchronous Replication:
    • Master์—์„œ ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ์ด ์ด๋ฃจ์–ด์ง„ ํ›„ ์ผ์ • ์‹œ๊ฐ„ ์ดํ›„์— Slave๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณต์ œ๋ฉ๋‹ˆ๋‹ค.
    • ์žฅ์ : ์„ฑ๋Šฅ์— ์˜ํ–ฅ์„ ๋œ ๋ฏธ์นจ
    • ๋‹จ์ : ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™” ์ง€์—ฐ์œผ๋กœ ์ธํ•ด Slave์— ์ตœ์‹  ๋ฐ์ดํ„ฐ๊ฐ€ ๋ฐ˜์˜๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Œ
  • Semi-Synchronous Replication:
    • Master์—์„œ ๋ฐ์ดํ„ฐ ์ปค๋ฐ‹ ์‹œ ์ตœ์†Œํ•œ ํ•˜๋‚˜์˜ Slave๊ฐ€ ๋ณ€๊ฒฝ ๋‚ด์šฉ์„ ์ˆ˜์‹ ํ•  ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐํ•ฉ๋‹ˆ๋‹ค.
    • Synchronous์™€ Asynchronous ๋ฐฉ์‹์˜ ์ ˆ์ถฉ

 

 

DB Replication ์‚ฌ์šฉ ์‚ฌ๋ก€

  • ์ฝ๊ธฐ ํŠธ๋ž˜ํ”ฝ ๋ถ„์‚ฐ
    • ๋Œ€๊ทœ๋ชจ ์ฝ๊ธฐ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ Slave๋ฅผ ์„ค์ •
  • ์žฅ์•  ๋ณต๊ตฌ
    • Master DB๊ฐ€ ๋‹ค์šด๋˜์—ˆ์„ ๋•Œ Slave๋ฅผ ์ด์šฉํ•œ ๋น ๋ฅธ ๋ณต๊ตฌ
  • ๋ฐ์ดํ„ฐ ๋ถ„์„
    • Slave๋ฅผ ๋ถ„์„์šฉ์œผ๋กœ ์‚ฌ์šฉํ•ด Master DB์— ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š์Œ
  • ๋ฐ์ดํ„ฐ ์ด๋™ ๋ฐ ๋ณต์ œ
    • ์‹œ์Šคํ…œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด๋‚˜ ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ

 

 

๊ตฌํ˜„ ์˜ˆ์‹œ

 

MySQL

  • MySQL์˜ Replication์€ Master-Slave ๊ตฌ์กฐ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • CHANGE MASTER TO ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ Master์™€ Slave๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

 

PostgreSQL

  • PostgreSQL์˜ Streaming Replication์€ WAL(Write Ahead Log)์„ ์ด์šฉํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์ œํ•ฉ๋‹ˆ๋‹ค.
    • WAL(Write Ahead Log)๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ์ ์šฉํ•˜๊ธฐ ์ „์— ๋จผ์ € ๋กœ๊ทธ์— ๊ธฐ๋กํ•˜๋Š” ๋ฐฉ์‹์„ ๋งํ•ฉ๋‹ˆ๋‹ค.
    • ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณ€๊ฒฝ์‚ฌํ•ญ์€ ๋จผ์ € WAL์— ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค.

 

MongoDB

  • MongoDB๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ Replication์„ ์ง€์›ํ•˜๋ฉฐ Replica Set์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • Replica Set์€ ๋™์ผํ•œ ๋ฐ์ดํ„ฐ ์„ธํŠธ๋ฅผ ์œ ์ง€ํ•˜๋Š” ์—ฌ๋Ÿฌ mongod ํ”„๋กœ์„ธ์Šค์˜ ๊ทธ๋ฃน์ž…๋‹ˆ๋‹ค.

 

Oracle

  • Oracle์˜ Data Guard๋Š” Synchronous์™€ Asynchronous ๋ณต์ œ๋ฅผ ๋ชจ๋‘ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    • Oracle Data Guard๋Š” Oracle Database์˜ ๊ณ ๊ฐ€์šฉ์„ฑ, ๋ฐ์ดํ„ฐ ๋ณดํ˜ธ ๋ฐ ์žฌํ•ด ๋ณต๊ตฌ๋ฅผ ์œ„ํ•œ ํฌ๊ด„์ ์ธ ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค.

 

๋ฐ˜์‘ํ˜•