๋ฌธ์„œ ๋ฉ”๋‰ด
๋ฌธ์„œ ํ™ˆ
/
MongoDB ๋งค๋‰ด์–ผ
/ / /

์„ค์ • ๊ธฐ๋Šฅ ํ˜ธํ™˜์„ฑ ๋ฒ„์ „

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

setFeatureCompatibilityVersion

์ด์ „ ๋ฒ„์ „์˜ MongoDB์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•˜๊ฑฐ๋‚˜ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค. admin ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด์„œ๋งŒ setFeatureCompatibilityVersion์„ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ 

์ด์ „ ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•˜๋ฉด ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ ์ „์— ์ง€์†๋˜๋Š” ์ด์ „ ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ฑฐํ•ด์•ผ ํ•˜๋ฏ€๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์—…๊ทธ๋ ˆ์ด๋“œ ํ›„์—๋Š” ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ ๊ฐ€๋Šฅ์„ฑ์„ ์ตœ์†Œํ™”ํ•˜๊ธฐ ์œ„ํ•ด ๋ฒˆ์ธ ๊ธฐ๊ฐ„ ๋™์•ˆ ์ด์ „ ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•˜์ง€ ์•Š๊ณ  ๋ฐฐํฌ๋ฅผ ์‹คํ–‰ํ•˜๋„๋ก ํ—ˆ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ ๊ฐ€๋Šฅ์„ฑ์ด ๋งค์šฐ ๋‚ฎ๋‹ค๊ณ  ํ™•์‹ ํ•˜๋Š” ๊ฒฝ์šฐ ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์ด ๋ช…๋ น์€ ๋‹ค์Œ ํ™˜๊ฒฝ์—์„œ ํ˜ธ์ŠคํŒ…๋˜๋Š” ๋ฐฐํฌ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • MongoDB Atlas: ํด๋ผ์šฐ๋“œ์—์„œ์˜ MongoDB ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ ์™„์ „ ๊ด€๋ฆฌํ˜• ์„œ๋น„์Šค

์ฐธ๊ณ 

์ด ๋ช…๋ น์€ M0, M2, M5 ๋ฐ M10 ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ์ œํ•œ์ ์œผ๋กœ ์ง€์› ๋ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ง€์›๋˜์ง€ ์•Š๋Š” ๋ช…๋ น์„ ์ฐธ์กฐํ•˜์„ธ์š”.

  • MongoDB Enterprise: MongoDB์˜ ๊ตฌ๋… ๊ธฐ๋ฐ˜ ์ž์ฒด ๊ด€๋ฆฌ ๋ฒ„์ „

  • MongoDB Community: MongoDB์˜ ์†Œ์Šค ์‚ฌ์šฉ ๊ฐ€๋Šฅ ๋ฌด๋ฃŒ ์ž์ฒด ๊ด€๋ฆฌ ๋ฒ„์ „

๋ฒ„์ „ 7.0์—์„œ ๋ณ€๊ฒฝ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๋ช…๋ น์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ตฌ๋ฌธ์„ ๊ฐ€์ง‘๋‹ˆ๋‹ค:

db.adminCommand(
{
setFeatureCompatibilityVersion: <version>,
confirm: true
writeConcern: { wtimeout: <timeout> }
}
)

setFeatureCompatibilityVersion ๋ช…๋ น์€ ๋‹ค์Œ ํ•„๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

ํ•„์ˆ˜ ์‚ฌํ•ญ

version์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

๋ฒ„์ „
์„ค๋ช…
"7.0"

MongoDB 7.0 ๋ฐฐํฌ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

MongoDB 6.0๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์กดํ•˜๋Š” 7.0 ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

"6.0"

MongoDB 6.0 ๋ฐ 7.0 ๋ฐฐํฌ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

MongoDB 5.0๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์กดํ•˜๋Š” 6.0 ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

"5.0"

MongoDB 5.0 ๋ฐ 6.0 ๋ฐฐํฌ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅ

MongoDB 4.4์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์กดํ•˜๋Š” 5.0 ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

ํ•„์ˆ˜ ์‚ฌํ•ญ

๋ฒ„์ „ 7.0์— ์ถ”๊ฐ€.

๊ธฐ๋Šฅ ํ˜ธํ™˜์„ฑ ๋ณ€๊ฒฝ์„ ํ™•์ธํ•˜๊ณ  ์ž‘์—…์„ ๊ณ„์†ํ•˜๋ ค๋ฉด true๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

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

์˜ต์…˜

writeConcern์€ ์“ฐ๊ธฐ ๊ณ ๋ ค wtimeout ๊ฐ’์„ ๋ฐ€๋ฆฌ์ดˆ ๋‹จ์œ„๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

  • ํ”„๋ผ์ด๋จธ๋ฆฌ๊ฐ€ ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„ ๊ณผ๋ฐ˜์ˆ˜์˜ ์Šน์ธ์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ธฐ๊ฐ„์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ๊ธฐ๊ฐ„ ๋‚ด์— ์Šน์ธ์„ ๋ฐ›์ง€ ๋ชปํ•˜๋ฉด ์ž‘์—…์ด ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค.

  • ๊ธฐ๋ณธ๊ฐ’์€ 60000๋ฐ€๋ฆฌ์ดˆ์ž…๋‹ˆ๋‹ค. ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ์„ธ์ปจ๋”๋ฆฌ ๋ฉค๋ฒ„์— wtimeout ๊ธฐ๋ณธ๊ฐ’์„ ์ดˆ๊ณผํ•˜๋Š” ์ง€์—ฐ์ด ์žˆ๋Š” ๊ฒฝ์šฐ ๋” ๊ธด ๊ธฐ๊ฐ„์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

  • ๋…๋ฆฝํ˜•์˜ ๊ฒฝ์šฐ, ๋…๋ฆฝํ˜• mongod ์ธ์Šคํ„ด์Šค์—์„œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

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

  • ์ƒค๋“œ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฒฝ์šฐ mongos ์ธ์Šคํ„ด์Šค์—์„œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์šด๋กœ๋“œํ•œ ๋ฒ„์ „์—์„œ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ํฌํ•จ๋œ ํด๋Ÿฌ์Šคํ„ฐ์˜ fCV๋ฅผ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๊ณ  ํ•˜๋ฉด CannotDowngrade ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ํด๋Ÿฌ์Šคํ„ฐ๋Š” ๊ณผ๋„๊ธฐ์  downgrading ์ƒํƒœ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ downgrading ์ƒํƒœ์—์„œ ๋ฒ—์–ด๋‚˜๊ฒŒ ํ•˜๋ ค๋ฉด ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • ํด๋Ÿฌ์Šคํ„ฐ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ ์ด์ „ ๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ฑฐํ•œ ๋‹ค์Œ, ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๋œ ๋ฒ„์ „์œผ๋กœ setFeatureCompatibilityVersion ๋ช…๋ น์„ ๋‹ค์‹œ ์‹คํ–‰ํ•˜์—ฌ fCV๋ฅผ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๋œ ๋ฒ„์ „์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

  • ์—…๊ทธ๋ ˆ์ด๋“œ๋œ ์›๋ณธ ๋ฒ„์ „๊ณผ ํ•จ๊ป˜ setFeatureCompatibilityVersion ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ fCV๋ฅผ ์›๋ž˜ ๋ฒ„์ „์œผ๋กœ ๋˜๋Œ๋ฆฌ๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    ์ค‘์š”

    fCV๋ฅผ ์›๋ž˜ ๋ฒ„์ „์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ ์ ˆ์ฐจ๊ฐ€ ์ค‘์ง€๋˜๊ณ  fCV๊ฐ€ ์—…๊ทธ๋ ˆ์ด๋“œ๋œ ๋ฒ„์ „์œผ๋กœ ๋‹ค์‹œ ๋ณ€๊ฒฝ๋ฉ๋‹ˆ๋‹ค. ์ด ์ ˆ์ฐจ์—์„œ๋Š” ํด๋Ÿฌ์Šคํ„ฐ fCV ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์‹œ์ž‘๋˜๊ธฐ ์ „์˜ ์ƒํƒœ๋กœ ๋‹ค์‹œ ์„ค์ •ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

    ์‹คํŒจํ•œ fCV ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ์˜ ๋‚ด๋ถ€ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๊ฐ€ ์ •๋ฆฌ๋˜์ง€ ์•Š์œผ๋ฉด ์ดํ›„์˜ ๋ชจ๋“  FCV ์—…๊ทธ๋ ˆ์ด๋“œ ์‹œ๋„๊ฐ€ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ์‹คํŒจํ•ฉ๋‹ˆ๋‹ค. fCV ์—…๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์‹œ๋„ํ•˜๊ธฐ ์ „์— fCV ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์™„๋ฃŒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

MongoDB 7.0๋ถ€ํ„ฐ๋Š” ๋ฐฐํฌ์˜ fCV๋ฅผ MongoDB์˜ ๋น ๋ฅธ ๋ฆด๋ฆฌ์Šค ๋ฒ„์ „์œผ๋กœ ๋˜๋Š” ๊ทธ ๋ฐ˜๋Œ€๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋ฐฐํฌ์˜ fCV๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ฑฐ๋‚˜ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒฝ์šฐ ์ง€์›ํŒ€์˜ ๋„์›€ ์—†์ด๋Š” ๋ฐฐํฌ์˜ ๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฒ„์ „์„ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ž์„ธํ•œ ๋‚ด์šฉ์€ 7.0์—์„œ 6.0์œผ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

ํŠน์ • ๋ฐฑ๊ทธ๋ผ์šด๋“œ ์ž‘์—…์œผ๋กœ ์ธํ•ด setFeatureCompatibilityVersion์ด ์‹คํ–‰๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. currentOp๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ง„ํ–‰ ์ค‘์ธ ์ž‘์—…์„ ์‹๋ณ„ํ•˜์„ธ์š”.

์ดˆ๊ธฐ ๋™๊ธฐํ™” ์ค‘์— setFeatureCompatibilityVersion ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํŠธ๋ฆฌ๊ฑฐํ•˜๋ฉด oplog ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‹จ๊ณ„์—์„œ ํ•ญ๋ชฉ์„ ์žฌ์ƒํ•  ๋•Œ OplogOperationUnsupported ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ๋™๊ธฐํ™”๊ฐ€ ์‹คํŒจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์‹œ๋„ ์ดํ›„์˜ ๋™๊ธฐํ™”๋Š” ์ž‘์—… ๋‹จ๊ณ„์—์„œ ๋” ์ด์ƒ ์ž‘์—…์„ ์žฌ์ƒํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์„ฑ๊ณตํ•ฉ๋‹ˆ๋‹ค.

๋ฐฐํฌ
featureCompatibilityVersion
์ƒˆ๋กœ์šด 7.0 ๋ฐฐํฌ์˜ ๊ฒฝ์šฐ
"7.0"
6.0์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œ๋œ 7.0 ๋ฐฐํฌ์˜ ๊ฒฝ์šฐ
setFeatureCompatibilityVersion์„ "7.0"์œผ๋กœ ์„ค์ •ํ•˜๊ธฐ ์ „๊นŒ์ง€๋Š” "6.0"์ž…๋‹ˆ๋‹ค.
์ƒˆ๋กœ์šด 6.0 ๋ฐฐํฌ์˜ ๊ฒฝ์šฐ
"6.0"
5.0์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œ๋œ 6.0 ๋ฐฐํฌ์˜ ๊ฒฝ์šฐ
setFeatureCompatibilityVersion์„ "6.0"์œผ๋กœ ์„ค์ •ํ•˜๊ธฐ ์ „๊นŒ์ง€๋Š” "5.0"์ž…๋‹ˆ๋‹ค.
์ƒˆ๋กœ์šด 5.0 ๋ฐฐํฌ์˜ ๊ฒฝ์šฐ
"5.0"
4.4์—์„œ ์—…๊ทธ๋ ˆ์ด๋“œ๋œ 5.0 ๋ฐฐํฌ์˜ ๊ฒฝ์šฐ
setFeatureCompatibilityVersion์„ "5.0"์œผ๋กœ ์„ค์ •ํ•˜๊ธฐ ์ „๊นŒ์ง€๋Š” "4.4"์ž…๋‹ˆ๋‹ค.

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

MongoDB 6.0๋ถ€ํ„ฐ๋Š” ๊ธฐ๋Šฅ ํ˜ธํ™˜์„ฑ ๋ฒ„์ „์„ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ cluster ๊ฐ„ ๋ณต์ œ ๋ฐ ์‚ฌ์šฉ์ž ์“ฐ๊ธฐ ์ฐจ๋‹จ์„ ๋น„ํ™œ์„ฑํ™”ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  1. ํด๋Ÿฌ์Šคํ„ฐ ๊ฐ„ ๋ณต์ œ๋ฅผ ํ™œ์„ฑํ™”ํ•œ ๊ฒฝ์šฐ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

  2. ์‚ฌ์šฉ์ž ์“ฐ๊ธฐ ์ฐจ๋‹จ์„ ํ™œ์„ฑํ™”ํ•œ ๊ฒฝ์šฐ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค:

    db.runCommand( { setUserWriteBlockMode: 1, global: false } )
  3. ์ด์ „ ๋ช…๋ น์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.

  4. setFeatureCompatibilityVersion์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ๋Šฅ ํ˜ธํ™˜์„ฑ ๋ฒ„์ „์„ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.

MongoDB Cluster-to-Cluster Sync์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์ค‘์žฌ์ž๋Š” admin.system.version ์ปฌ๋ ‰์…˜์„ ๋ณต์ œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์ค‘์žฌ์ž๋Š” ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ FCV ๊ฐ’์— ๊ด€๊ณ„์—†์ด ๋ฐ”์ด๋„ˆ๋ฆฌ์˜ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ ๋ฒ„์ „๊ณผ ๋™์ผํ•œ ๊ธฐ๋Šฅ ํ˜ธํ™˜์„ฑ ๋ฒ„์ „์„ ํ•ญ์ƒ ๊ฐ–๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๊ทธ ์˜ˆ๋กœ MongoDB 5.0 ํด๋Ÿฌ์Šคํ„ฐ์— ์†ํ•œ ์ค‘์žฌ์ž์˜ FCV ๊ฐ’์€ 4.4์ž…๋‹ˆ๋‹ค.

mongod ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ featureCompatibilityVersion์„ ๋ณด๋ ค๋ฉด mongod ์ธ์Šคํ„ด์Šค์—์„œ getParameter ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

db.adminCommand(
{
getParameter: 1,
featureCompatibilityVersion: 1
}
)

์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

{
featureCompatibilityVersion: { version: '5.0' },
ok: 1,
'$clusterTime': {
clusterTime: Timestamp({ t: 1660318752, i: 5 }),
signature: {
hash: Binary(Buffer.from("ce0cff3621e9b089fa6d8e9a1e1efc1a1ff15dab", "hex"), 0),
keyId: Long("7129893797260951557")
}
},
operationTime: Timestamp({ t: 1660318752, i: 5 })
}

์ฐธ๊ณ 

์ž‘์—…์ด mongos ์ธ์Šคํ„ด์Šค์—์„œ ์ •์˜๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์•ก์„ธ์Šค ์ œ์–ด๊ฐ€ ํ™œ์„ฑํ™”๋œ ์ƒค๋“œ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ ค๋ฉด ์ƒค๋“œ ๋กœ์ปฌ ์‚ฌ์šฉ์ž๋กœ ์ƒค๋“œ์— ์—ฐ๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

MongoDB 6.0๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•˜๋Š” 7.0 ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด MongoDB 7.0 ๋ฐฐํฌ์—์„œ ๊ธฐ๋Šฅ ํ˜ธํ™˜์„ฑ์„ "7.0"์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

admin ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด setFeatureCompatibilityVersion ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • ๋…๋ฆฝํ˜•์˜ ๊ฒฝ์šฐ, ๋…๋ฆฝํ˜• mongod ์ธ์Šคํ„ด์Šค์—์„œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

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

  • ์ƒค๋“œ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฒฝ์šฐ mongos ์ธ์Šคํ„ด์Šค์—์„œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

db.adminCommand(
{
setFeatureCompatibilityVersion: "7.0",
confirm: true
}
)

MongoDB 6.0๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•˜๋Š” 7.0 ๊ธฐ๋Šฅ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด MongoDB 7.0 ๋ฐฐํฌ์—์„œ ๊ธฐ๋Šฅ ํ˜ธํ™˜์„ฑ์„ "6.0"์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

admin ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด setFeatureCompatibilityVersion ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • ๋…๋ฆฝํ˜•์˜ ๊ฒฝ์šฐ, ๋…๋ฆฝํ˜• mongod ์ธ์Šคํ„ด์Šค์—์„œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

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

  • ์ƒค๋“œ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฒฝ์šฐ mongos ์ธ์Šคํ„ด์Šค์—์„œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • "6.0" featureCompatibilityVersion์€ MongoDB 6.0 ๋ฐ MongoDB 7.0 ๋ฐฐํฌ์—์„œ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

db.adminCommand(
{
setFeatureCompatibilityVersion: "6.0",
confirm: true
}
)

MongoDB 7.0์—์„œ 6.0์œผ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์˜ ๊ฒฝ์šฐ, 6.0๊ณผ์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ œ๊ฑฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ ์ ˆ์ฐจ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

MongoDB 45.0์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•˜๋Š” 6.0 ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด MongoDB 6.0 ๋ฐฐํฌ์—์„œ ๊ธฐ๋Šฅ ํ˜ธํ™˜์„ฑ์„ "6.0"์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

admin ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด setFeatureCompatibilityVersion ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • ๋…๋ฆฝํ˜•์˜ ๊ฒฝ์šฐ, ๋…๋ฆฝํ˜• mongod ์ธ์Šคํ„ด์Šค์—์„œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

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

  • ์ƒค๋“œ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฒฝ์šฐ mongos ์ธ์Šคํ„ด์Šค์—์„œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

db.adminCommand( { setFeatureCompatibilityVersion: "6.0" } )

MongoDB 5.0๊ณผ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•˜๋Š” 6.0 ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด MongoDB 6.0 ๋ฐฐํฌ์—์„œ ๊ธฐ๋Šฅ ํ˜ธํ™˜์„ฑ์„ "5.0"์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

admin ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด setFeatureCompatibilityVersion ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • ๋…๋ฆฝํ˜•์˜ ๊ฒฝ์šฐ, ๋…๋ฆฝํ˜• mongod ์ธ์Šคํ„ด์Šค์—์„œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

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

  • ์ƒค๋“œ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฒฝ์šฐ mongos ์ธ์Šคํ„ด์Šค์—์„œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • "5.0" featureCompatibilityVersion์€ MongoDB 5.0 ๋ฐ MongoDB 6.0 ๋ฐฐํฌ์—์„œ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

db.adminCommand( { setFeatureCompatibilityVersion: "5.0" } )

MongoDB 6.0์—์„œ 5.0์œผ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์˜ ๊ฒฝ์šฐ, 5.0์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ชจ๋“  ๊ธฐ๋Šฅ์„ ์ œ๊ฑฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ ์ ˆ์ฐจ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

MongoDB 4.4์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•˜๋Š” 5.0 ๊ธฐ๋Šฅ์„ ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด MongoDB 5.0 ๋ฐฐํฌ์—์„œ ๊ธฐ๋Šฅ ํ˜ธํ™˜์„ฑ์„ "5.0"์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

admin ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด setFeatureCompatibilityVersion ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • ๋…๋ฆฝํ˜•์˜ ๊ฒฝ์šฐ, ๋…๋ฆฝํ˜• mongod ์ธ์Šคํ„ด์Šค์—์„œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

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

  • ์ƒค๋“œ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฒฝ์šฐ mongos ์ธ์Šคํ„ด์Šค์—์„œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

db.adminCommand( { setFeatureCompatibilityVersion: "5.0" } )

MongoDB 4.4์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•˜๋Š” 5.0 ๊ธฐ๋Šฅ์„ ๋น„ํ™œ์„ฑํ™”ํ•˜๋ ค๋ฉด MongoDB 5.0 ๋ฐฐํฌ์—์„œ ๊ธฐ๋Šฅ ํ˜ธํ™˜์„ฑ์„ "4.4"์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

admin ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด setFeatureCompatibilityVersion ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • ๋…๋ฆฝํ˜•์˜ ๊ฒฝ์šฐ, ๋…๋ฆฝํ˜• mongod ์ธ์Šคํ„ด์Šค์—์„œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

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

  • ์ƒค๋“œ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฒฝ์šฐ mongos ์ธ์Šคํ„ด์Šค์—์„œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • "4.4" featureCompatibilityVersion์€ MongoDB 4.4 ๋ฐ MongoDB 5.0 ๋ฐฐํฌ์—์„œ๋งŒ ์ง€์›๋ฉ๋‹ˆ๋‹ค.

db.adminCommand( { setFeatureCompatibilityVersion: "4.4" } )

MongoDB 5.0์—์„œ 4.4๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” downgrade ํ”„๋กœ์„ธ์Šค์˜ ์ผ๋ถ€๋กœ ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ, 4.4์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋ชจ๋“  ์˜๊ตฌ ๊ธฐ๋Šฅ๋„ ์ œ๊ฑฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ ์ ˆ์ฐจ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค์Œ ์˜ˆ์‹œ์—์„œ๋Š” ์„ ํƒ์  ์“ฐ๊ธฐ ๊ณ ๋ ค wtimeout ํ•„๋“œ๋ฅผ 5000(5์ดˆ)์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

admin ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด setFeatureCompatibilityVersion ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  • ๋…๋ฆฝํ˜•์˜ ๊ฒฝ์šฐ, ๋…๋ฆฝํ˜• mongod ์ธ์Šคํ„ด์Šค์—์„œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

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

  • ์ƒค๋“œ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ฒฝ์šฐ mongos ์ธ์Šคํ„ด์Šค์—์„œ ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

db.adminCommand( {
setFeatureCompatibilityVersion: "5.0",
writeConcern: { wtimeout: 5000 }
} )

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

setClusterParameter

๋‹ค์Œ

setIndexCommitQuorum