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

์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ ๋ฌธ์ œ ํ•ด๊ฒฐ

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

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

MongoDB 8.0 ๋ถ€ํ„ฐ๋Š” directShardOperations ์—ญํ•  ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ƒค๋“œ ์— ๋Œ€ํ•ด ์ง์ ‘ ๋ช…๋ น์„ ์‹คํ–‰ํ•ด์•ผ ํ•˜๋Š” ์œ ์ง€ ๊ด€๋ฆฌ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ 

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

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

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

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

[1] ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ์„ธ์ปจ๋”๋ฆฌ๊ฐ€ ํ˜„์žฌ oplog ํ•ญ๋ชฉ์ด ๋‚จ์•„ ์žˆ๋Š” ์ƒํƒœ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ด์ง€๋ฉด ์ผ๋ฐ˜ ๋ณต์ œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ธํŠธ์˜ ์ตœ์‹  ์ƒํƒœ๋ฅผ ๋”ฐ๋ผ์žก์„ ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ดˆ๊ธฐ ๋™๊ธฐํ™”๋ฅผ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ mongod ๋ฐ mongos ์ธ์Šคํ„ด์Šค๋Š” ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ณต์ œ๋ณธ ์„ธํŠธ๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค (์˜ˆ: ์ƒค๋“œ ๋ณต์ œ๋ณธ ์„ธํŠธ, ๊ตฌ์„ฑ ์„œ๋ฒ„ ๋ณต์ œ๋ณธ ์„ธํŠธ).

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

๋ณต์ œ๋ณธ ์„ธํŠธ๋Š” ๊ตฌ์„ฑ ์„œ๋ฒ„์— ๊ณ ๊ฐ€์šฉ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๊ตฌ์„ฑ ์„œ๋ฒ„๊ฐ€ ํ”„๋ผ์ด๋จธ๋ฆฌ์ธ ๊ฒฝ์šฐ ๋ณต์ œ๋ณธ ์„ธํŠธ๊ฐ€ ์ƒˆ ํ”„๋ผ์ด๋จธ๋ฆฌ๋ฅผ ์„ ์ถœํ•ฉ๋‹ˆ๋‹ค.

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

์ฐธ๊ณ 

๋‘ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์— ๋ณต์ œ๋ณธ ์„ธํŠธ ๊ตฌ์„ฑ์›์„ ๋ถ„์‚ฐํ•˜๋ฉด ๋‹จ์ผ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ์— ๋น„ํ•ด ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‘ ๊ฐœ์˜ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๋กœ ๋ถ„์‚ฐ๋œ ๊ฒฝ์šฐ,

  • ๋ฐ์ดํ„ฐ ์„ผํ„ฐ ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋‹ค์šด๋˜๋”๋ผ๋„ ๋‹จ์ผ ๋ฐ์ดํ„ฐ ์„ผํ„ฐ ๋ฐฐํฌํŒ๊ณผ ๋‹ฌ๋ฆฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์†Œ์ˆ˜์˜ ๊ตฌ์„ฑ์›์ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๊ฐ€ ๋‹ค์šด๋˜๋”๋ผ๋„ ๋ณต์ œ๋ณธ ์„ธํŠธ๋Š” ์ฝ๊ธฐ ์ž‘์—…๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์“ฐ๊ธฐ ์ž‘์—…๋„ ๊ณ„์† ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ทธ๋Ÿฌ๋‚˜ ๋Œ€๋‹ค์ˆ˜์˜ ๊ตฌ์„ฑ์›์ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์„ผํ„ฐ๊ฐ€ ๋‹ค์šด๋˜๋ฉด ๋ณต์ œ๋ณธ ์„ธํŠธ๋Š” ์ฝ๊ธฐ ์ „์šฉ์ด ๋ฉ๋‹ˆ๋‹ค.

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

์ฐธ๊ณ 

์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์ฒ˜์Œ ์‹œ์ž‘ํ•  ๋•Œ ๋ชจ๋“  ๊ตฌ์„ฑ ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰ ์ค‘์ด๊ณ  ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

mongos ์ธ์Šคํ„ด์Šค ์ค‘ ํ•˜๋‚˜ ์ด์ƒ์ด ๊ตฌ์„ฑ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์บ์‹œ๋ฅผ ์•„์ง ์—…๋ฐ์ดํŠธํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ฟผ๋ฆฌ์—์„œ ๋‹ค์Œ ๊ฒฝ๊ณ ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค:

could not initialize cursor across all shards because : stale config detected

์ด ๊ฒฝ๊ณ ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋‹ค์‹œ ์ „ํŒŒ๋˜์–ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๊ฒฝ๊ณ ๋Š” ๋ชจ๋“  mongos ์ธ์Šคํ„ด์Šค๊ฐ€ ์บ์‹œ๋ฅผ ์ƒˆ๋กœ ๊ณ ์น  ๋•Œ๊นŒ์ง€ ๋ฐ˜๋ณต๋ฉ๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค๊ฐ€ ์บ์‹œ๋ฅผ ๊ฐ•์ œ๋กœ ์ƒˆ๋กœ ๊ณ ์น˜๋„๋ก ํ•˜๋ ค๋ฉด flushRouterConfig ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ƒค๋“œ ํ‚ค ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋ ค๋ฉด ์ƒค๋“œ ํ‚ค ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

ํด๋Ÿฌ์Šคํ„ฐ ๊ฐ€์šฉ์„ฑ์„ ๋ณด์žฅํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค:

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

  • ์ƒค๋“œ ํ‚ค๋Š” mongos๊ฐ€ ๋Œ€๋ถ€๋ถ„์˜ ์ž‘์—…์„ ๋‹จ์ผ ์ƒค๋“œ๋กœ ๊ฒฉ๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ—ˆ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ผ ์ƒค๋“œ์—์„œ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ๋‹จ์ผ ์ƒค๋“œ์— ์žฅ์• ๊ฐ€ ๋ฐœ์ƒํ•ด๋„ ์ผ๋ถ€ ๋ฐ์ดํ„ฐ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. ์ž‘์—…์—์„œ ์ฟผ๋ฆฌ๋ฅผ ์œ„ํ•ด ๋ชจ๋“  ์ƒค๋“œ์— ์•ก์„ธ์Šคํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์ƒค๋“œ ํ•˜๋‚˜๊ฐ€ ์‹คํŒจํ•˜๋ฉด ์ „์ฒด ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

config ์„œ๋ฒ„๋Š” ๋ณต์ œ๋ณธ ์„ธํŠธ๋กœ ๋ฐฐํฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์˜ mongos ์ธ์Šคํ„ด์Šค๋Š” ๋™์ผํ•œ config ์„œ๋ฒ„ ๋ณต์ œ๋ณธ ์„ธํŠธ ์ด๋ฆ„์„ ์ง€์ •ํ•ด์•ผ ํ•˜์ง€๋งŒ, ๋ณต์ œ๋ณธ ์„ธํŠธ์— ๋Œ€ํ•œ ๋‹ค๋ฅธ ๋…ธ๋“œ์˜ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„๊ณผ ํฌํŠธ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ์„ฑ ์„œ๋ฒ„์— ๋Œ€ํ•ด 3๊ฐœ์˜ ๋ฏธ๋Ÿฌ๋ง๋œ mongod ์ธ์Šคํ„ด์Šค์˜ ํ† ํด๋กœ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์ „ ๋ฒ„์ „์˜ MongoDB ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์˜ mongos ์ธ์Šคํ„ด์Šค๋Š” ๋™์ผํ•œ configDB ๋ฌธ์ž์—ด์„ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

CNAME์„ ์‚ฌ์šฉํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•œ config ์„œ๋ฒ„๋ฅผ ์‹๋ณ„ํ•˜๋ฉด ๊ฐ€๋™ ์ค‘์ง€ ์‹œ๊ฐ„ ์—†์ด ๊ตฌ์„ฑ ์„œ๋ฒ„์˜ ์ด๋ฆ„์„ ๋ฐ”๊พธ๊ณ  ๋ฒˆํ˜ธ๋ฅผ ๋‹ค์‹œ ์ง€์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ฒญํฌ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ๋๋‚˜๋ฉด ์ƒค๋“œ๋Š” ๊ตฌ์„ฑ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•˜์—ฌ ํด๋Ÿฌ์Šคํ„ฐ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์—์„œ ์ฒญํฌ์˜ ๊ธฐ๋ก์„ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ƒค๋“œ๊ฐ€ ๊ตฌ์„ฑ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์—ฐ๊ฒฐํ•˜์ง€ ๋ชปํ•˜๋ฉด MongoDB๋Š” ๋‹ค์Œ ์˜ค๋ฅ˜๋ฅผ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค:

ERROR: moveChunk commit failed: version is at <n>|<nn> instead of
<N>|<NN>" and "ERROR: TERMINATING"

์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜๋ฉด ๋ฐ์ดํ„ฐ ์ผ๊ด€์„ฑ์„ ๋ณดํ˜ธํ•˜๊ธฐ ์œ„ํ•ด ์ƒค๋“œ ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ํ”„๋ผ์ด๋จธ๋ฆฌ ๋ฉค๋ฒ„๊ฐ€ ์ข…๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ์„ธ์ปจ๋”๋ฆฌ ๋ฉค๋ฒ„๊ฐ€ ๊ตฌ์„ฑ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ, ํˆฌํ‘œ ํ›„ ์ƒค๋“œ์˜ ๋ฐ์ดํ„ฐ์— ๋‹ค์‹œ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

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

MongoDB 7.0๋ถ€ํ„ฐ๋Š” checkMetadataConsistency ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์ด์ „ ๋ฒ„์ „์˜ MongoDB์—์„œ ๋ฐœ์ƒํ•œ ๋ฒ„๊ทธ๋กœ ์ธํ•ด ์ƒค๋”ฉ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์— ๋ถˆ์ผ์น˜ ๋ฐ ์†์ƒ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒค๋”ฉ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์˜ ๋ถˆ์ผ์น˜๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์— ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • MongoDB 5.0 ์ด์ „ ๋ฆด๋ฆฌ์Šค์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œ๋œ ํด๋Ÿฌ์Šคํ„ฐ๋กœ, ๊ณผ๊ฑฐ DDL ์ž‘์—…์œผ๋กœ ์ธํ•ด ๋ฐ์ดํ„ฐ๊ฐ€ ์†์ƒ๋˜์—ˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๊ตฌ์„ฑ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์กฐ์ž‘ํ•˜๊ฑฐ๋‚˜ mongos๋ฅผ ์šฐํšŒํ•˜์—ฌ ์ƒค๋“œ์— ์ง์ ‘ ์“ฐ๋Š” ๋“ฑ์˜ ์ˆ˜๋™ ๊ฐœ์ž…์ž…๋‹ˆ๋‹ค.

  • ์—…๊ทธ๋ ˆ์ด๋“œ ๋˜๋Š” ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ ์ ˆ์ฐจ์™€ ๊ฐ™์€ ์œ ์ง€ ๊ด€๋ฆฌ ์ž‘์—…์ž…๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ๋ถˆ์ผ์น˜๋กœ ์ธํ•ด ์ž˜๋ชป๋œ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ ๋˜๋Š” ๋ฐ์ดํ„ฐ ์†์‹ค์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒค๋”ฉ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์— ๋ถˆ์ผ์น˜๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด checkMetadataConsistency ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

db.runCommand( { checkMetadataConsistency: 1 } )
{
cursor: {
id: Long("0"),
ns: "test.$cmd.aggregate",
firstBatch: [
{
type: "MisplacedCollection",
description: "Unsharded collection found on shard different from database primary shard",
details: {
namespace: "test.authors",
shard: "shard02",
localUUID: new UUID("1ad56770-61e2-48e9-83c6-8ecefe73cfc4")
}
}
],
},
ok: 1
}

checkMetadataConsistency ๋ช…๋ น์ด ๋ฐ˜ํ™˜ํ•œ ๋ฌธ์„œ๋Š” ํด๋Ÿฌ์Šคํ„ฐ์˜ ์ƒค๋”ฉ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์—์„œ MongoDB๊ฐ€ ์‹๋ณ„ํ•œ ๋ถˆ์ผ์น˜๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

checkMetadataConsistency ๋ช…๋ น์ด ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ถˆ์ผ์น˜ ๋ฌธ์„œ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ถˆ์ผ์น˜ ์œ ํ˜•์„ ์ฐธ์กฐํ•˜์„ธ์š”.

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

์šด์˜ ์ œํ•œ ์‚ฌํ•ญ