Docs Menu
Docs Home
/
MongoDB ๋งค๋‰ด์–ผ
/

๋ณต์ œ ์„ธํŠธ ๋ฌธ์ œ ํ•ด๊ฒฐ

์ด ํŽ˜์ด์ง€์˜ ๋‚ด์šฉ

  • ๋ณต์ œ๋ณธ ์„ธํŠธ ์ƒํƒœ ํ™•์ธ
  • ๋ณต์ œ ์ง€์—ฐ ํ™•์ธ
  • Oplog ํ•ญ๋ชฉ ์ง€์—ฐ ์ ์šฉ
  • ๋ชจ๋“  ๋ฉค๋ฒ„ ๊ฐ„ ์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธ
  • ๋‘˜ ์ด์ƒ์˜ ์„ธ์ปจ๋”๋ฆฌ ๋ณต์ œ๋ณธ์„ ์žฌ๋ถ€ํŒ…ํ•  ๋•Œ ์†Œ์ผ“ ์˜ˆ์™ธ
  • Oplog์˜ ํฌ๊ธฐ ํ™•์ธ

์ด ์„น์…˜์—์„œ๋Š” ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฐฐํฌ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•œ ์ผ๋ฐ˜์ ์ธ ์ „๋žต์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ํ˜„์žฌ ์ƒํƒœ์™€ ๊ฐ ๋ฉค๋ฒ„์˜ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ํ‘œ์‹œํ•˜๋ ค๋ฉด ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ํ”„๋ผ์ด๋จธ๋ฆฌ์— ์—ฐ๊ฒฐ๋œ mongosh ์„ธ์…˜์—์„œ rs.status() ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. rs.status()๊ฐ€ ํ‘œ์‹œํ•˜๋Š” ์ •๋ณด์— ๋Œ€ํ•œ ์„ค๋ช…์€ replSetGetStatus๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ฐธ๊ณ 

rs.status() ๋ฉ”์„œ๋“œ๋Š” replSetGetStatus ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋Š” ๋ž˜ํผ(wrapper)์ž…๋‹ˆ๋‹ค.

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

ํ˜„์žฌ ๋ณต์ œ ์ง€์—ฐ ์‹œ๊ฐ„์„ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • ํ”„๋ผ์ด๋จธ๋ฆฌ์— ์—ฐ๊ฒฐ๋œ mongosh ์„ธ์…˜์—์„œ rs.printSecondaryReplicationInfo() ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค.

    ๊ฐ ๋ฉค๋ฒ„์— ๋Œ€ํ•œ syncedTo ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฐ’์€ ๋‹ค์Œ ์˜ˆ์ œ์™€ ๊ฐ™์ด ๋งˆ์ง€๋ง‰ oplog ํ•ญ๋ชฉ์ด ์„ธ์ปจ๋”๋ฆฌ ๋ฉค๋ฒ„์— ๊ธฐ๋ก๋œ ์‹œ๊ฐ„์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

    source: m1.example.net:27017
    syncedTo: Thu Apr 10 2014 10:27:47 GMT-0400 (EDT)
    0 secs (0 hrs) behind the primary
    source: m2.example.net:27017
    syncedTo: Thu Apr 10 2014 10:27:47 GMT-0400 (EDT)
    0 secs (0 hrs) behind the primary

    ํ”„๋ผ์ด๋จธ๋ฆฌ ๋ฉค๋ฒ„์˜ ๋น„ํ™œ์„ฑ ๊ธฐ๊ฐ„์ด members[n].secondaryDelaySecs ๊ฐ’๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ ์ง€์—ฐ๋œ ๋ฉค๋ฒ„๋Š” ํ”„๋ผ์ด๋จธ๋ฆฌ ๋ฉค๋ฒ„๋ณด๋‹ค 0์ดˆ ๋’ค์ฒ˜์ง„ ๊ฒƒ์œผ๋กœ ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ฐธ๊ณ 

    rs.status() ๋ฉ”์„œ๋“œ๋Š” replSetGetStatus ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ช…๋ น์„ ๊ฐ์‹ธ๋Š” ๋ž˜ํผ(wrapper)์ž…๋‹ˆ๋‹ค.

    MongoDB 6.0.13 ๋ถ€ํ„ฐ ์‹œ์ž‘ ( 5.0.24), ๋Š๋ฆฐ ์ฟผ๋ฆฌ ๋กœ๊ทธ ๋ฉ”์‹œ์ง€์˜ totalOplogSlotDurationMicros ๋Š” ์“ฐ๊ธฐ ์ž‘์—…์—์„œ ์ปค๋ฐ‹ ํƒ€์ž„์Šคํƒฌํ”„๋ฅผ ๊ฐ€์ ธ์™€ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„ ์“ฐ๊ธฐ๋ฅผ ์ปค๋ฐ‹ํ•œ ํ›„ ์‹ค์ œ๋กœ ์ปค๋ฐ‹ํ•˜๊ธฐ๊นŒ์ง€์˜ ์‹œ๊ฐ„์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. mongod ๋Š” ๋ณ‘๋ ฌ ์“ฐ๊ธฐ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ปค๋ฐ‹ ํƒ€์ž„์Šคํƒฌํ”„๊ฐ€ ์žˆ๋Š” ์“ฐ๊ธฐ ์ž‘์—…์€ ์ˆœ์„œ์— ๊ด€๊ณ„์—†์ด ์ปค๋ฐ‹ํ•ฉ๋‹ˆ๋‹ค.

    ์˜ˆ์‹œ

    ์ปค๋ฐ‹ ํƒ€์ž„์Šคํƒฌํ”„๊ฐ€ ์žˆ๋Š” ๋‹ค์Œ ์“ฐ๊ธฐ๋ฅผ ์ƒ๊ฐํ•ด ๋ณด์„ธ์š”.

    • ํƒ€์ž„์Šคํƒฌํ”„1์ด ์žˆ๋Š” writeA

    • ํƒ€์ž„์Šคํƒฌํ”„2๋ฅผ ์‚ฌ์šฉํ•œ writeB

    • ํƒ€์ž„์Šคํƒฌํ”„3์„ ์‚ฌ์šฉํ•œ writeC

    writeB๊ฐ€ Timestamp2์—์„œ ์ฒ˜์Œ์œผ๋กœ ์ปค๋ฐ‹ํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ณต์ œ์—์„œ oplog๋ฅผ ๋ณด์กฐ ๋ณต์ œ ์„ธํŠธ ๋ฉค๋ฒ„๋กœ ๋ณต์ œํ•˜๋ ค๋ฉด Timestamp1์ด ํฌํ•จ๋œ WriteA์˜ oplog ํ•ญ๋ชฉ์ด ํ•„์š”ํ•˜๊ธฐ ๋•Œ๋ฌธ์— WriteA๊ฐ€ ์ปค๋ฐ‹ํ•  ๋•Œ๊นŒ์ง€ ๋ณต์ œ๊ฐ€ ์ผ์‹œ ์ค‘์ง€๋ฉ๋‹ˆ๋‹ค.

  • Cloud Manager ๋ฐ Ops Manager์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” Replication Lag ๊ทธ๋ž˜ํ”„์—์„œ 0์ด ์•„๋‹ˆ๊ฑฐ๋‚˜ ์ฆ๊ฐ€ํ•˜๋Š” oplog ์‹œ๊ฐ„ ๊ฐ’์„ ํ™•์ธํ•˜์—ฌ ๋ณต์ œ ์†๋„๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค.

๋ณต์ œ ์ง€์—ฐ์˜ ์›์ธ์œผ๋กœ๋Š” ์›์ธ์€ ๋‹ค์Œ์ด ํ•ด๋‹นํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋„คํŠธ์›Œํฌ ์ง€์—ฐ ์‹œ๊ฐ„

    ์„ธํŠธ ๋ฉค๋ฒ„ ๊ฐ„์˜ ๋„คํŠธ์›Œํฌ ๊ฒฝ๋กœ๋ฅผ ํ™•์ธํ•˜์—ฌ ํŒจํ‚ท ์†์‹ค์ด๋‚˜ ๋„คํŠธ์›Œํฌ ๋ผ์šฐํŒ… ๋ฌธ์ œ๊ฐ€ ์—†๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    ping ๋“ฑ์˜ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ง‘ํ•ฉ ๋ฉค๋ฒ„ ๊ฐ„์˜ ์ง€์—ฐ ์‹œ๊ฐ„์„ ํ…Œ์ŠคํŠธํ•˜๊ณ  traceroute์„ ์‚ฌ์šฉํ•˜์—ฌ ํŒจํ‚ท ๋„คํŠธ์›Œํฌ ์—”๋“œํฌ์ธํŠธ์˜ ๋ผ์šฐํŒ…์„ ๋…ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋””์Šคํฌ ์ฒ˜๋ฆฌ๋Ÿ‰

    ์„ธ์ปจ๋”๋ฆฌ์˜ ํŒŒ์ผ ์‹œ์Šคํ…œ๊ณผ ๋””์Šคํฌ ์žฅ์น˜๊ฐ€ ํ”„๋ผ์ด๋จธ๋ฆฌ์ฒ˜๋Ÿผ ๋ฐ์ดํ„ฐ๋ฅผ ๋””์Šคํฌ๋กœ ๋น ๋ฅด๊ฒŒ ํ”Œ๋Ÿฌ์‹œํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์–ด๋ ต์Šต๋‹ˆ๋‹ค. ๋””์Šคํฌ ๊ด€๋ จ ๋ฌธ์ œ๋Š” ๊ฐ€์ƒํ™”๋œ ์ธ์Šคํ„ด์Šค๋ฅผ ํฌํ•จํ•œ ๋ฉ€ํ‹ฐํ…Œ๋„ŒํŠธ ์‹œ์Šคํ…œ์— ๋งค์šฐ ๋นˆ๋ฒˆํ•˜๊ฒŒ ๋ฐœ์ƒํ•˜๋ฉฐ ์‹œ์Šคํ…œ์ด IP ๋„คํŠธ์›Œํฌ๋ฅผ ํ†ตํ•ด ๋””์Šคํฌ ์žฅ์น˜์— ์•ก์„ธ์Šคํ•˜๋Š” ๊ฒฝ์šฐ(์˜ˆ: Amazon์˜ EBS ์‹œ์Šคํ…œ) ์ผ์‹œ์ ์œผ๋กœ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    iostat ๋˜๋Š” vmstat์„ ํฌํ•จํ•œ ์‹œ์Šคํ…œ ์ˆ˜์ค€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋””์Šคํฌ ์ƒํƒœ๋ฅผ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

  • ๋™์‹œ์„ฑ

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

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

  • ์ ์ ˆํ•œ ์“ฐ๊ธฐ ๊ณ ๋ ค

    ํŠนํžˆ unacknowledged write concern์™€ ๊ฐ™์ด ํ”„๋ผ์ด๋จธ๋ฆฌ์— ๋งŽ์€ ์ˆ˜์˜ ์“ฐ๊ธฐ๊ฐ€ ํ•„์š”ํ•œ ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ๋˜๋Š” ๋Œ€๋Ÿ‰ ๋กœ๋“œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋ฉด ์„ธ์ปจ๋”๋ฆฌ์—์„œ๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋”ฐ๋ผ์žก์„ ์ˆ˜ ์žˆ์„ ๋งŒํผ ์ถฉ๋ถ„ํžˆ ๋น ๋ฅด๊ฒŒ oplog๋ฅผ ์ฝ์„ ์ˆ˜ ์—†๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

    ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด 100ํšŒ, 1,000ํšŒ ๋˜๋Š” ๋‹ค๋ฅธ ๊ฐ„๊ฒฉ๋งˆ๋‹ค ์“ฐ๊ธฐ ๊ณ ๋ ค ์Šน์ธ ์ž‘์„ฑ์„ ์š”์ฒญํ•˜์—ฌ ์„ธ์ปจ๋”๋ฆฌ๊ฐ€ ํ”„๋ผ์ด๋จธ๋ฆฌ๋ฅผ ๋”ฐ๋ผ์žก์„ ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

MongoDB 4.2๋ถ€ํ„ฐ ๊ด€๋ฆฌ์ž๋Š” majority committed ์ง€์—ฐ์„ ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ์ตœ๋Œ€๊ฐ’ flowControlTargetLagSeconds์ดํ•˜๋กœ ์œ ์ง€ํ•˜๋Š” ๊ฒƒ์„ ๋ชฉํ‘œ๋กœ ๊ธฐ๋ณธ์ด ์“ฐ๊ธฐ๋ฅผ ์ ์šฉํ•˜๋Š” ์†๋„๋ฅผ ์ œํ•œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ ํ๋ฆ„ ์ œ์–ด๋Š” enabled ์ž…๋‹ˆ๋‹ค.

์ฐธ๊ณ 

ํ๋ฆ„ ์ œ์–ด๊ฐ€ ์ž‘๋™ํ•˜๋ ค๋ฉด ๋ณต์ œ๋ณธ ์„ธํŠธ/ ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ ์— ์˜featureCompatibilityVersion (FCV) ๋ฐ ์ฝ๊ธฐ ๊ณ ๋ ค (read concern) 4.2 majority enabled๊ณ ๋ ค ๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, FCV ๊ฐ€ ์ด 4.2 ์•„๋‹ˆ๊ฑฐ๋‚˜ ์ฝ๊ธฐ ๊ณ ๋ ค (read concern) ๋Œ€๋‹ค์ˆ˜๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ ํ™œ์„ฑํ™”๋œ ํ๋ฆ„ ์ œ์–ด๋Š” ํšจ๊ณผ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

ํ๋ฆ„ ์ œ์–ด๊ฐ€ ํ™œ์„ฑํ™”๋˜๋ฉด ์ง€์—ฐ์ด flowControlTargetLagSeconds ์— ๊ฐ€๊นŒ์›Œ์ง์— ๋”ฐ๋ผ ๊ธฐ๋ณธ์— ๋Œ€ํ•œ ์“ฐ๊ธฐ๋Š” ์“ฐ๊ธฐ๋ฅผ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ์ž ๊ธˆ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์ „์— ํ‹ฐ์ผ“์„ ์–ป์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ดˆ๋‹น ๋ฐœํ–‰๋˜๋Š” ํ‹ฐ์ผ“ ์ˆ˜๋ฅผ ์ œํ•œํ•จ์œผ๋กœ์จ ํ๋ฆ„ ์ œ์–ด ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ์ง€์—ฐ์„ ๋ชฉํ‘œ ๋ฏธ๋งŒ์œผ๋กœ ์œ ์ง€ํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

๋ณต์ œ๋ณธ ์„ธํŠธ๊ฐ€ ํ๋ฆ„ ์ œ์–ด๋ฅผ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์„ ๋งŒํผ ์ถฉ๋ถ„ํ•œ ๋กœ๋“œ๋ฅผ ๋ฐ›์ง€ ๋ชปํ•˜๋ฉด ๋ณต์ œ ์ง€์—ฐ์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: ์‘๋‹ตํ•˜์ง€ ์•Š๋Š” ์„ธ์ปจ๋”๋ฆฌ ๋ณต์ œ๋ณธ์˜ ๊ฒฝ์šฐ).

ํ๋ฆ„ ์ œ์–ด ์ƒํƒœ๋ฅผ ๋ณด๋ ค๋ฉด ํ”„๋ผ์ด๋จธ๋ฆฌ์—์„œ ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. rs.printSecondaryReplicationInfo() ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ์ง€์—ฐ๋˜๊ณ  ์žˆ๋Š” ๋…ธ๋“œ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    rs.printSecondaryReplicationInfo()

    ์ถœ๋ ฅ ์˜ˆ์‹œ:

    source: 192.0.2.2:27017
    {
    syncedTo: 'Mon Jan 31 2022 18:58:50 GMT+0000 (Coordinated Universal Time)',
    replLag: '0 secs (0 hrs) behind the primary '
    }
    ---
    source: 192.0.2.3:27017
    {
    syncedTo: 'Mon Jan 31 2022 18:58:05 GMT+0000 (Coordinated Universal Time)',
    replLag: '45 secs (0 hrs) behind the primary '
    }
  2. serverStatus ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ณ  flowControl.isLagged ๊ฐ’์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋ณต์ œ๋ณธ ์„ธํŠธ์— ํ๋ฆ„ ์ œ์–ด๊ฐ€ ์ ์šฉ๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    db.runCommand( { serverStatus: 1 } ).flowControl.isLagged

    ์ถœ๋ ฅ ์˜ˆ์‹œ:

    false

    ํ๋ฆ„ ์ œ์–ด๊ฐ€ ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์„ธ์ปจ๋”๋ฆฌ๋ฅผ ์กฐ์‚ฌํ•˜์—ฌ ํ•˜๋“œ์›จ์–ด, ๋„คํŠธ์›Œํฌ ๋˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ƒ์˜ ์ œ์•ฝ๊ณผ ๊ฐ™์€ ๋ณต์ œ ์ง€์—ฐ์˜ ์›์ธ์„ ํŒŒ์•…ํ•˜์„ธ์š”.

ํ”Œ๋กœ์šฐ ์ œ์–ด ํ†ต๊ณ„์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์ด์ œ ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ์„ธ์ปจ๋”๋ฆฌ ๋ฉค๋ฒ„๊ฐ€ ๋Š๋ฆฐ ์ž‘์—… ์ž„๊ณ—๊ฐ’๋ณด๋‹ค ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” oplog ํ•ญ๋ชฉ์„ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋Š๋ฆฐ oplog ๋ฉ”์‹œ์ง€์˜ ํŠน์„ฑ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • diagnostic log์— ์„ธ์ปจ๋”๋ฆฌ ๋ฉค๋ฒ„์— ๋Œ€ํ•ด ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

  • applied op: <oplog entry> took <num>ms ํ…์ŠคํŠธ์™€ ํ•จ๊ป˜ REPL ๊ตฌ์„ฑ ์š”์†Œ ์•„๋ž˜์— ๊ธฐ๋ก๋ฉ๋‹ˆ๋‹ค.

  • ๋กœ๊ทธ ์ˆ˜์ค€(์‹œ์Šคํ…œ ๋˜๋Š” ๊ตฌ์„ฑ ์š”์†Œ ์ˆ˜์ค€)์— ์˜์กดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ํ”„๋กœํŒŒ์ผ๋ง ์ˆ˜์ค€์— ์˜์กดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • slowOpSampleRate์˜ ์˜ํ–ฅ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.

ํ”„๋กœํŒŒ์ผ๋Ÿฌ๋Š” ๋Š๋ฆฐ oplog ํ•ญ๋ชฉ์„ ์บก์ฒ˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

๊ฒฝ๊ณ 

๋กœ์ปฌ ํ˜ธ์ŠคํŠธ๊ฐ€ ์•„๋‹Œ ์— ๋ฐ”์ธ๋”ฉํ•˜๊ธฐ ์ „์—(์˜ˆ: ๊ณต๊ฐœ์ ์œผ๋กœ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š”) IP ์ฃผ์†Œ ์ธ ๊ฒฝ์šฐ ๋ฌด๋‹จ ์•ก์„ธ์Šค ๋กœ๋ถ€ํ„ฐ ํด๋Ÿฌ์Šคํ„ฐ ๋ฅผ ๋ณดํ˜ธํ–ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋ณด์•ˆ ๊ถŒ์žฅ ์‚ฌํ•ญ์˜ ์ „์ฒด ๋ชฉ๋ก์€ ์ž์ฒด ๊ด€๋ฆฌ ๋ฐฐํฌ์„œ๋ฒ„๋ฅผ ์œ„ํ•œ ๋ณด์•ˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ์ตœ์†Œํ•œ ์ธ์ฆ ์„ ํ™œ์„ฑํ™” ํ•˜๊ณ  ๋„คํŠธ์›Œํฌ ์ธํ”„๋ผ๋ฅผ ๊ฐ•ํ™”ํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜์„ธ์š”.

2} ๋ฐmongod MongoDB mongos ๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ์— ๋ฐ”์ธ๋”ฉ๋ฉ๋‹ˆ๋‹ค. ๋ฐ”์ด๋„ˆ๋ฆฌ์— ๋Œ€ํ•ด net.ipv6 ๊ตฌ์„ฑ ํŒŒ์ผ ์„ค์ • ๋˜๋Š” --ipv6 ๋ช…๋ น์ค„ ์˜ต์…˜์ด ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฉด ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ IPv6 ์ฃผ์†Œ์— ์ถ”๊ฐ€์ ์œผ๋กœ ๋ฐ”์ธ๋”ฉ๋ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ์— ๋ฐ”์ธ๋”ฉ๋œ mongod ๋ฐ mongos๋Š” ๋™์ผํ•œ ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰ ์ค‘์ธ ํด๋ผ์ด์–ธํŠธ์˜ ์—ฐ๊ฒฐ๋งŒ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐ”์ธ๋”ฉ ๋™์ž‘์—๋Š” mongosh ๋ฐ ๋ณต์ œ๋ณธ ์ง‘ํ•ฉ ๋˜๋Š” ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋‹ค๋ฅธ ๋ฉค๋ฒ„๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์›๊ฒฉ ํด๋ผ์ด์–ธํŠธ๋Š” ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ์—๋งŒ ๋ฐ”์ธ๋”ฉ๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ์—๋Š” ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ๋ฐ”์ธ๋”ฉ์„ ์žฌ์ •์˜ํ•˜๊ณ  ๋‹ค๋ฅธ IP ์ฃผ์†Œ์— ๋ฐ”์ธ๋”ฉํ•˜๋ ค๋ฉด net.bindIp ๊ตฌ์„ฑ ํŒŒ์ผ ์„ค์ • ๋˜๋Š” --bind_ip ๋ช…๋ น์ค„ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ๋˜๋Š” IP ์ฃผ์†Œ ๋ชฉ๋ก์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ๊ณ 

MongDB ๋ถ€ํ„ฐ 5.0 ์‹œ์ž‘, ๋ถ„ํ•  ์ˆ˜ํ‰ DNS IP ์ฃผ์†Œ๋กœ๋งŒ ๊ตฌ์„ฑ๋œ ๋…ธ๋“œ๋Š” ์‹œ์ž‘ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์— ์‹คํŒจํ•˜๊ณ  ์˜ค๋ฅ˜๋ฅผ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค. disableSplitHorizonIPCheck ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ mongod ์ธ์Šคํ„ด์Šค๋Š” ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ์™€ IP ์ฃผ์†Œ 198.51.100.1 ์™€ ์—ฐ๊ฒฐ๋œ ํ˜ธ์ŠคํŠธ๋ช… My-Example-Associated-Hostname์— ๋ชจ๋‘ ๋ฐ”์ธ๋”ฉ๋ฉ๋‹ˆ๋‹ค.

mongod --bind_ip localhost,My-Example-Associated-Hostname

์ด ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ์›๊ฒฉ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ๋˜๋Š” ๊ด€๋ จ IP ์ฃผ์†Œ 198.51.100.1๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1

๋„คํŠธ์›Œํ‚น์˜ ์–‘๋ฐฉํ–ฅ ํ…Œ์ŠคํŠธ์— ๋Œ€ํ•œ ๋‹ค์Œ ์˜ˆ์‹œ๋ฅผ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์˜ˆ์‹œ

์„ธ ๊ฐœ์˜ ํ˜ธ์ŠคํŠธ์—์„œ ์‹คํ–‰๋˜๋Š” ์„ธ ๋ช…์˜ ๋ฉค๋ฒ„๋กœ ๊ตฌ์„ฑ๋œ ๋ณต์ œ๋ณธ ์„ธํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

  • m1.example.net

  • m2.example.net

  • m3.example.net

์„ธ ๊ฐœ ๋ชจ๋‘ ๊ธฐ๋ณธ ํฌํŠธ 27017์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  1. ๋‹ค์Œ m1.example.net ์ž‘์—… ์ง‘ํ•ฉ์„ ์‚ฌ์šฉํ•˜์—ฌ m1.example.net์—์„œ ๋‹ค๋ฅธ ํ˜ธ์ŠคํŠธ๋กœ์˜ ์—ฐ๊ฒฐ์„ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค.

    mongosh --host m2.example.net --port 27017
    mongosh --host m3.example.net --port 27017
  2. ๋‹ค์Œ๊ณผ ๊ฐ™์ด m2.example.net์˜ ์ž‘์—… ์„ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ m2.example.net์—์„œ ๋‹ค๋ฅธ ๋‘ ํ˜ธ์ŠคํŠธ๋กœ์˜ ์—ฐ๊ฒฐ์„ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค.

    mongosh --host m1.example.net --port 27017
    mongosh --host m3.example.net --port 27017

    m2.example.net์™€ m1.example.net ๊ฐ„ ์–‘๋ฐฉํ–ฅ ์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธ๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

  3. ๋‹ค์Œ๊ณผ ๊ฐ™์ด m3.example.net์˜ ์ž‘์—… ์„ธํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ m3.example.net ํ˜ธ์ŠคํŠธ์—์„œ ๋‹ค๋ฅธ ๋‘ ํ˜ธ์ŠคํŠธ๋กœ์˜ ์—ฐ๊ฒฐ์„ ํ…Œ์ŠคํŠธํ•ฉ๋‹ˆ๋‹ค.

    mongosh --host m1.example.net --port 27017
    mongosh --host m2.example.net --port 27017

์–ด๋–ค ๋ฐฉํ–ฅ์œผ๋กœ๋“  ์—ฐ๊ฒฐ์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ๋„คํŠธ์›Œํ‚น ๋ฐ ๋ฐฉํ™”๋ฒฝ ๊ตฌ์„ฑ์„ ํ™•์ธํ•˜๊ณ  ์ด๋Ÿฌํ•œ ์—ฐ๊ฒฐ์„ ํ—ˆ์šฉํ•˜๋„๋ก ํ™˜๊ฒฝ์„ ์žฌ๊ตฌ์„ฑํ•˜์„ธ์š”.

๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„๋ฅผ ์žฌ๋ถ€ํŒ…ํ•  ๋•Œ๋Š” ์œ ์ง€ ๊ด€๋ฆฌ ์ค‘์— ํ•ด๋‹น ์„ธํŠธ๊ฐ€ ํ”„๋ผ์ด๋จธ๋ฆฌ๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์„ธ์š”. ์ฆ‰, ์„ธํŠธ์˜ members[n].votes ๋Œ€๋ถ€๋ถ„์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์„ธํŠธ์˜ ํ™œ์„ฑ ๋ฉค๋ฒ„๊ฐ€ ๋” ์ด์ƒ ๊ณผ๋ฐ˜์ˆ˜๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์—†๊ฒŒ ๋˜๋ฉด ์„ธํŠธ์˜ ํ”„๋ผ์ด๋จธ๋ฆฌ ๋ฉค๋ฒ„๊ฐ€ ์„ธ์ปจ๋”๋ฆฌ ๋ฉค๋ฒ„๋กœ ๊ฐ•๋“ฑ๋ฉ๋‹ˆ๋‹ค. ํ”„๋ผ์ด๋จธ๋ฆฌ๋Š” ๊ฐ•๋“ฑ ์‹œ ํด๋ผ์ด์–ธํŠธ ์—ฐ๊ฒฐ์„ ์ข…๋ฃŒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

ํด๋ผ์ด์–ธํŠธ๋Š” ๋ฉค๋ฒ„๊ฐ€ ์ƒˆ ํ”„๋ผ์ด๋จธ๋ฆฌ๋ฅผ ์„ ์ถœํ•  ๋•Œ๊นŒ์ง€ ๋ณต์ œ๋ณธ ์„ธํŠธ์— ์“ธ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์˜ˆ์‹œ

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

ํˆฌํ‘œ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ณต์ œ๋ณธ ์„ธํŠธ ์„ ๊ฑฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ์—ฐ๊ฒฐ ์˜ค๋ฅ˜์— ๋Œ€ํ•œ ๊ด€๋ จ ์ •๋ณด๋Š” TCP keepalive ์‹œ๊ฐ„์ด MongoDB ๋ฐฐํฌ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋‚˜์š”?๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

oplog๊ฐ€ ํด์ˆ˜๋ก ๋ ˆํ”Œ๋ฆฌ์นด ์„ธํŠธ์˜ ์ง€์—ฐ์— ๋Œ€ํ•œ ํ—ˆ์šฉ ์˜ค์ฐจ๊ฐ€ ์ปค์ง€๊ณ  ์„ธํŠธ์˜ ๋ณต์›๋ ฅ์ด ํ–ฅ์ƒ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฃผ์–ด์ง„ ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„์— ๋Œ€ํ•œ oplog์˜ ํฌ๊ธฐ๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด mongosh์—์„œ ๋ฉค๋ฒ„์— ์—ฐ๊ฒฐํ•˜์—ฌ rs.printReplicationInfo() ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ถœ๋ ฅ์—๋Š” oplog์˜ ํฌ๊ธฐ์™€ oplog์— ํฌํ•จ๋œ ์ž‘์—…์˜ ๋‚ ์งœ ๋ฒ”์œ„๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์˜ˆ์‹œ์˜ oplog๋Š” ์•ฝ 10MB์ด๋ฉฐ ์•ฝ 26์‹œ๊ฐ„(94400์ดˆ)์˜ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

configured oplog size: 10.10546875MB
log length start to end: 94400 (26.22hrs)
oplog first event time: Mon Mar 19 2012 13:50:38 GMT-0400 (EDT)
oplog last event time: Wed Oct 03 2012 14:59:10 GMT-0400 (EDT)
now: Wed Oct 03 2012 15:00:21 GMT-0400 (EDT)

oplog๋Š” ๋ณด์กฐ ์„œ๋ฒ„์—์„œ ์˜ˆ์ƒํ•˜๋Š” ๊ฐ€์žฅ ๊ธด ๊ฐ€๋™ ์ค‘์ง€ ์‹œ๊ฐ„ ๋™์•ˆ ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜์„ ๋ณด๊ด€ํ•  ์ˆ˜ ์žˆ์„ ๋งŒํผ ๊ธธ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. [1] oplog๋Š” ์ตœ์†Œ 24์‹œ๊ฐ„ ๋™์•ˆ ์šด์˜ํ•  ์ˆ˜ ์žˆ์œผ๋‚˜ 72์‹œ๊ฐ„ ๋˜๋Š” ์ผ์ฃผ์ผ ๋™์•ˆ ์šด์˜ํ•˜๊ธฐ๋ฅผ ์›ํ•˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

oplog ํฌ๊ธฐ๊ฐ€ ์ž‘์—…์— ๋ฏธ์น˜๋Š” ์˜ํ–ฅ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์Œ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

์ฐธ๊ณ 

์ผ๋ฐ˜์ ์œผ๋กœ oplog๋Š” ๋ชจ๋“  ๋ฉค๋ฒ„์—์„œ ๋™์ผํ•œ ํฌ๊ธฐ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค. oplog์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜๋Š” ๊ฒฝ์šฐ ๋ชจ๋“  ๋ฉค๋ฒ„์—์„œ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜์„ธ์š”.

Oplog ํฌ๊ธฐ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ์ž์ฒด ๊ด€๋ฆฌํ˜• ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„์˜ Oplog ํฌ๊ธฐ ๋ณ€๊ฒฝ ํŠœํ† ๋ฆฌ์–ผ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

[1] 2}๊ฐ€ ์‚ญ์ œ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด oplog๊ฐ€ ๊ตฌ์„ฑ๋œ ํฌ๊ธฐ ์ œํ•œ์„ ์ดˆ๊ณผํ•˜์—ฌ ์ปค์งˆ ์ˆ˜ majority commit point ์žˆ์Šต๋‹ˆ๋‹ค.

๋Œ์•„๊ฐ€๊ธฐ

์„œ๋ฒ„ ์„ ํƒ ์•Œ๊ณ ๋ฆฌ์ฆ˜