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

5.0 ์ƒค๋“œ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ 4.4๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ

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

  • ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ ๊ฒฝ๋กœ
  • ๋ฐฑ์—… ์ƒ์„ฑ
  • ์ „์ œ ์กฐ๊ฑด
  • ์ ˆ์ฐจ

๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๋ฅผ ์‹œ๋„ํ•˜๊ธฐ ์ „์— ์ด ๋ฌธ์„œ์˜ ๋‚ด์šฉ์„ ์ˆ™์ง€ํ•˜์„ธ์š”.

์ค‘์š”

๋ณต์ œ๋ณธ ์„ธํŠธ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ฑฐ๋‚˜ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ ์ „์— ๋ชจ๋“  ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„๊ฐ€ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•˜์„ธ์š”. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ชจ๋“  ๊ตฌ์„ฑ์›์ด ์‹œ์ž‘๋  ๋•Œ๊นŒ์ง€ ์—…๊ทธ๋ ˆ์ด๋“œ ๋˜๋Š” ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์™„๋ฃŒ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

5.0์—์„œ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์ตœ์‹  ํŒจ์น˜ ๋ฆด๋ฆฌ์Šค์ธ 4.4๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.

MongoDB๋Š” ๋‹จ์ผ ๋ฒ„์ „ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๋งŒ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ๋ฆด๋ฆฌ์Šค๋ณด๋‹ค ์ด์ „ ๋ฒ„์ „์ธ ๋ฆด๋ฆฌ์Šค๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, 5.0 ์‹œ๋ฆฌ์ฆˆ๋ฅผ 4.4 ์‹œ๋ฆฌ์ฆˆ ๋ฐฐํฌ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ 4.4 ์‹œ๋ฆฌ์ฆˆ ๋ฐฐํฌ๋ฅผ 4.2 ์‹œ๋ฆฌ์ฆˆ ๋ฐฐํฌ๋กœ ํ•œ ๋‹จ๊ณ„ ๋” ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๊ฒƒ์€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์„ ํƒ ์‚ฌํ•ญ์ด์ง€๋งŒ ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๋ฐฑ์—…์„ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

5.0์—์„œ 4.4๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋ฉด ์ง€์†๋˜๊ณ  ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ฑฐํ•˜๊ฑฐ๋‚˜ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๊ตฌ์„ฑ ์„ค์ •์„ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

MongoDB 5.0์—์„œ๋Š” ํด๋Ÿฌ์Šคํ„ฐ ์ „์ฒด ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ ๊ณ ๋ ค ๊ธฐ๋ณธ๊ฐ’์ด ๋ณ€๊ฒฝ๋˜์—ˆ์œผ๋ฉฐ, MongoDB 4.4๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ์ด๋Ÿฌํ•œ ๊ธฐ๋ณธ๊ฐ’์ด ๋‹ค์‹œ ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ ์ „์— ํด๋Ÿฌ์Šคํ„ฐ์˜ ๊ธฐ๋ณธ ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ ๊ณ ๋ ค๋ฅผ ์ˆ˜๋™์œผ๋กœ ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

MongoDB 5.0์€ ๋ฌธ์„œ ํ•„๋“œ ์ด๋ฆ„์— . ๋˜๋Š” $ ๋ฌธ์ž๋ฅผ ํฌํ•จํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. MongoDB 4.4๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ ์ „์— . ๋˜๋Š” $ ๋ฌธ์ž๊ฐ€ ํฌํ•จ๋œ ํ•„๋“œ ์ด๋ฆ„์ด ํฌํ•จ๋œ ๋ฌธ์„œ๋ฅผ ๋ชจ๋‘ ์‚ญ์ œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

MongoDB 5.0์€ ์Šฌ๋ฆผํ˜• ์‹œ๊ฐ„๋Œ€ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. --timeZoneInfo ๋ช…๋ น์ค„ ์˜ต์…˜ ๋˜๋Š” processManagement.timeZoneInfo ๊ตฌ์„ฑ ํŒŒ์ผ ์„ค์ •์œผ๋กœ MongoDB์— ์ œ๊ณต๋œ ๋Œ€๋กœ ๋ฐฐํฌ์—์„œ ์Šฌ๋ฆผํ˜• ์‹œ๊ฐ„๋Œ€ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ, MongoDB 4.4.7 ์ด์ƒ์œผ๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๊ฑฐ๋‚˜, ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ด์ „์˜ ๋น„์Šฌ๋ฆผํ˜• ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ์‚ฌ์šฉํ•˜๋„๋ก ์‹œ๊ฐ„๋Œ€ ๋ฐ์ดํ„ฐ ํŒŒ์ผ์„ ๋˜๋Œ๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ ์ ˆ์ฐจ๋ฅผ ์‹œ๋„ํ•˜๊ธฐ ์ „์— ๋ฆฌ์ƒค๋”ฉ ์ž‘์—… ์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ํ”„๋ผ์ด๋จธ๋ฆฌ ํŽ˜์ผ์˜ค๋ฒ„๋กœ ์ธํ•ด ์ตœ๊ทผ์˜ ๋ฆฌ์ƒค๋”ฉ ์ž‘์—…์ด ์‹คํŒจํ•œ ๊ฒฝ์šฐ ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์˜ featureCompatibilityVersion ๋ฅผ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ ์ „์— ๋จผ์ € cleanupReshardCollection ๋ช…๋ น์„ ์‹คํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ƒค๋“œ cluster์˜ featureCompatibilityVersion ๋ฅผ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋Š” ๋™์•ˆ ๋ฆฌ์ƒค๋”ฉ ์ž‘์—…์ด ์—ฌ์ „ํžˆ ์‹คํ–‰ ์ค‘์ด๋ฉด ๋ฆฌ์ƒค๋”ฉ ์ž‘์—…์ด ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค.

๋จผ์ € ๋‹ค์Œ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

  • ์ดˆ๊ธฐ ๋™๊ธฐํ™”๊ฐ€ ์ง„ํ–‰ ์ค‘์ด ์•„๋‹Œ์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ดˆ๊ธฐ ๋™๊ธฐํ™”๊ฐ€ ์ง„ํ–‰ ์ค‘์ผ ๋•Œ setFeatureCompatibilityVersion ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋ฉด ์ดˆ๊ธฐ ๋™๊ธฐํ™”๊ฐ€ ๋‹ค์‹œ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

  • ๋ณต์ œ๋ณธ ์„ธํŠธ ๊ตฌ์„ฑ ์— newlyAdded ํ•„๋“œ๊ฐ€ ์žˆ๋Š” ๋…ธ๋“œ๊ฐ€ ์—†๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ƒค๋“œ cluster์˜ ๊ฐ ๋…ธ๋“œ์—์„œ ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ์ด๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    use local
    db.system.replset.find( { "members.newlyAdded" : { $exists : true } } );

    newlyAdded ํ•„๋“œ๋Š” ์ดˆ๊ธฐ ๋™๊ธฐํ™” ์ค‘๊ณผ ์ดˆ๊ธฐ ๋™๊ธฐํ™” ์งํ›„ ๋…ธ๋“œ์˜ ๋ณต์ œ๋ณธ ์„ธํŠธ ๊ตฌ์„ฑ ๋ฌธ์„œ์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

  • 2} ๋˜๋Š” ์ƒํƒœ์˜ ROLLBACK RECOVERING ๋ณต์ œ๋ณธ ์ง‘ํ•ฉ ๊ตฌ์„ฑ์›์ด ์—†๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ์œผ๋กœ ์ƒค๋“œ ํด๋Ÿฌ์Šคํ„ฐ์˜ featureCompatibilityVersion ๋ฅผ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.

  1. mongo ์…ธ์„ mongos ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

  2. featureCompatibilityVersion์„ "4.4"๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.

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

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

    ์ฐธ๊ณ 

    • ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์—์„œ setFeatureCompatibilityVersion๊ฐ€ ์‹คํ–‰๋˜๋Š” ๋™์•ˆ ์ฒญํฌ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜, ๋ถ„ํ•  ๋ฐ ๋ณ‘ํ•ฉ์€ ConflictingOperationInProgress๋กœ ์ธํ•ด ์‹คํŒจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    • setFeatureCompatibilityVersion ๊ฐ€ ManualInterventionRequired ์˜ค๋ฅ˜์™€ ํ•จ๊ป˜ ์‹คํŒจํ•˜๊ณ  cluster๊ฐ€ ์ตœ๊ทผ์— election๋กœ ์ธํ•ด ์‹คํŒจํ•œ ๋ฆฌ์ƒค๋”ฉ ์ž‘์—…์„ ๊ฑฐ์นœ ๊ฒฝ์šฐ cleanupReshardCollection ๋ช…๋ น์„ ์‹คํ–‰ํ•œ ํ›„ setFeatureCompatibilityVersion ๋ฅผ ๋‹ค์‹œ ์‹œ๋„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  3. ์ƒค๋”ฉ๋œ cluster์˜ ๋ชจ๋“  ๋ฉค๋ฒ„๊ฐ€ ์—…๋ฐ์ดํŠธ๋œ featureCompatibilityVersion ์„ ๋ฐ˜์˜ํ•˜๋„๋ก ํ•˜๋ ค๋ฉด ๊ฐ shard ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„์™€ ๊ฐ config ์„œ๋ฒ„ ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„์— ์—ฐ๊ฒฐํ•˜์—ฌ featureCompatibilityVersion ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

    ํŒ

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

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

    ๋ชจ๋“  ๋ฉค๋ฒ„๋Š” ๋‹ค์Œ์„ ํฌํ•จํ•˜๋Š” ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

    "featureCompatibilityVersion" : { "version" : "4.4" }

    ๋ฉค๋ฒ„๊ฐ€ "5.0" ์˜ featureCompatibilityVersion ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๊ฒฝ์šฐ ๊ณ„์†ํ•˜๊ธฐ ์ „์— ๋ฉค๋ฒ„๊ฐ€ ๋ฒ„์ „ "4.4" ๋ฅผ ๋ฐ˜์˜ํ•  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

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

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

๋ฐ˜ํ™˜๋œ featureCompatibilityVersion ๊ฐ’์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ FeatureCompatibilityVersion ๊ฐ€์ ธ์˜ค๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋‹ค์Œ ๋‹จ๊ณ„๋Š” fCV๊ฐ€ "5.0"๋กœ ์„ค์ •๋œ ์ ์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

4.4์™€ ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ์˜๊ตฌ์ ์ธ 5.0 ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

time series ์ปฌ๋ ‰์…˜
๋ชจ๋“  time series ์ปฌ๋ ‰์…˜์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.
๋Ÿฐํƒ€์ž„ ๊ฐ์‚ฌ ํ•„ํ„ฐ ๊ด€๋ฆฌ
  • ๋…ธ๋“œ ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ auditLog.runtimeConfiguration์„ false๋กœ ์„ค์ •ํ•˜์—ฌ ๋Ÿฐํƒ€์ž„ ๊ฐ์‚ฌ ํ•„ํ„ฐ ๊ด€๋ฆฌ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

  • ๋กœ์ปฌ ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ ์ด mongod ๋˜๋Š” mongos ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ ๊ฐ์‚ฌ ํ•„ํ„ฐ๋ฅผ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค.

5.0 ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋“  ์˜๊ตฌ ๊ธฐ๋Šฅ์„ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ๋‹ค์Œ์ด ํฌํ•จ๋˜์ง€๋งŒ ์ด์— ๊ตญํ•œ๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ 

๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ ์ ˆ์ฐจ๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ ์ „์— cluster์˜ ์ง€์—ฐ๋œ ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„๋ฅผ ํฌํ•จํ•œ ๋ชจ๋“  ๋ฉค๋ฒ„๊ฐ€ ํ•„์ˆ˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ ์ „์— featureCompatibilityVersion ๋ฐ ๊ฐ ๋…ธ๋“œ์— ๋Œ€ํ•ด ํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๊ธฐ๋Šฅ ์ œ๊ฑฐ๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

1

ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋‚˜ ์ˆ˜๋™ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ 4.4 ์‹œ๋ฆฌ์ฆˆ์˜ ์ตœ์‹  ๋ฆด๋ฆฌ์Šค๋ฅผ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ 4.4 ๋ฐ”์ด๋„ˆ๋ฆฌ์— ๋Œ€ํ•œ ์ƒˆ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•œ ๋‹ค์Œ ์‹ค์ œ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์ค‘์š”

๋ณต์ œ๋ณธ ์„ธํŠธ๋ฅผ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๊ฑฐ๋‚˜ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ ์ „์— ๋ชจ๋“  ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„๊ฐ€ ์‹คํ–‰ ์ค‘์ธ์ง€ ํ™•์ธํ•˜์„ธ์š”. ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ๋ชจ๋“  ๊ตฌ์„ฑ์›์ด ์‹œ์ž‘๋  ๋•Œ๊นŒ์ง€ ์—…๊ทธ๋ ˆ์ด๋“œ ๋˜๋Š” ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์™„๋ฃŒ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

5.0์—์„œ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์ตœ์‹  ํŒจ์น˜ ๋ฆด๋ฆฌ์Šค์ธ 4.4๋กœ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.

2

mongosh ๋ฅผ ์ƒค๋“œ ํด๋Ÿฌ์Šคํ„ฐ์˜ mongos ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐํ•˜๊ณ  sh.stopBalancer() ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋ฐธ๋Ÿฐ์„œ๋ฅผ ๋น„ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

sh.stopBalancer()

์ฐธ๊ณ 

๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ด ์ง„ํ–‰ ์ค‘์ธ ๊ฒฝ์šฐ ์‹œ์Šคํ…œ์€ ๋ฐธ๋Ÿฐ์„œ๋ฅผ ์ค‘์ง€ํ•˜๊ธฐ ์ „์— ์ง„ํ–‰ ์ค‘์ธ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์„ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค. sh.isBalancerRunning()์„ ์‹คํ–‰ํ•˜์—ฌ ๋ฐธ๋Ÿฐ์„œ์˜ ํ˜„์žฌ ์ƒํƒœ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฐธ๋Ÿฐ์„œ๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋ ค๋ฉด sh.getBalancerState()๋ฅผ ์‹คํ–‰ํ•˜๋ฉด ๋ฐธ๋Ÿฐ์„œ๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ false๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

sh.getBalancerState()

๋ฐธ๋Ÿฐ์„œ ๋น„ํ™œ์„ฑํ™”์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฐธ๋Ÿฐ์„œ ๋น„ํ™œ์„ฑํ™”๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

3

๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๊ณ  ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

4

์ƒค๋“œ๋ฅผ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์”ฉ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.

  1. ์ƒค๋“œ์˜ ์„ธ์ปจ๋”๋ฆฌ ๋ฉค๋ฒ„๋ฅผ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์”ฉ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.

    1. mongosh์—์„œ ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ์™„์ „ํžˆ ์ข…๋ฃŒํ•˜๊ฑฐ๋‚˜ mongod ํ”„๋กœ์„ธ์Šค๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ข…๋ฃŒํ•˜๋Š” ์ถ”๊ฐ€ ๋ฐฉ๋ฒ•์„ ๋ณด๋ ค๋ฉด mongod ํ”„๋กœ์„ธ์Šค ์ค‘์ง€๋ฅผ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค.

      db.adminCommand( { shutdown: 1 } )
    2. 5.0 ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ 4.4 ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ ๋ฐ”๊พธ๊ณ  ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

    3. ๋‹ค์Œ ์„ธ์ปจ๋”๋ฆฌ ๋ฉค๋ฒ„๋ฅผ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ ์ „์— ๋ฉค๋ฒ„๊ฐ€ SECONDARY ์ƒํƒœ๋กœ ๋ณต๊ตฌ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค. ๋ฉค๋ฒ„์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด mongosh ๋ฅผ ์ƒค๋“œ์— ์—ฐ๊ฒฐํ•˜๊ณ  rs.status() ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

      ๊ฐ ์„ธ์ปจ๋”๋ฆฌ ๋ฉค๋ฒ„์— ๋Œ€ํ•ด ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋ฉด ์ด ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.

  2. ์ƒค๋“œ ์ค‘์žฌ์ž(์žˆ๋Š” ๊ฒฝ์šฐ)๋ฅผ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.

    ๋ณต์ œ๋ณธ ์„ธํŠธ์— ์ค‘์žฌ์ž๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์œผ๋ฉด ์ด ๋‹จ๊ณ„๋ฅผ ๊ฑด๋„ˆ๋›ฐ์„ธ์š”.

    1. mongosh์—์„œ ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ์™„์ „ํžˆ ์ข…๋ฃŒํ•˜๊ฑฐ๋‚˜ mongod ํ”„๋กœ์„ธ์Šค๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ข…๋ฃŒํ•˜๋Š” ์ถ”๊ฐ€ ๋ฐฉ๋ฒ•์„ ๋ณด๋ ค๋ฉด mongod ํ”„๋กœ์„ธ์Šค ์ค‘์ง€๋ฅผ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค.

      db.adminCommand( { shutdown: 1 } )
    2. ์ค‘์žฌ์ž ๋ฐ์ดํ„ฐ ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋‚ด์šฉ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค. storage.dbPath ๊ตฌ์„ฑ ์„ค์ • ๋˜๋Š” --dbpath ๋ช…๋ น์ค„ ์˜ต์…˜์ด ์ค‘์žฌ์ž mongod ์˜ ๋ฐ์ดํ„ฐ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

      rm -rf /path/to/mongodb/datafiles/*
    3. 5.0 ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ 4.4 ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ ๋ฐ”๊พธ๊ณ  ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

    4. ๋ฉค๋ฒ„๊ฐ€ ARBITER ์ƒํƒœ๋กœ ๋ณต๊ตฌ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค. ๋ฉค๋ฒ„์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด mongosh ๋ฅผ ๋ฉค๋ฒ„์— ์—ฐ๊ฒฐํ•˜๊ณ  rs.status() ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  3. ์ƒค๋“œ์˜ ํ”„๋ผ์ด๋จธ๋ฆฌ๋ฅผ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.

    1. ๋ณต์ œ๋ณธ ์„ธํŠธ ํ”„๋ผ์ด๋จธ๋ฆฌ๋ฅผ ๋‹จ๊ณ„์ ์œผ๋กœ ๋‚ฎ์ถฅ๋‹ˆ๋‹ค. mongosh ๋ฅผ ํ”„๋ผ์ด๋จธ๋ฆฌ์— ์—ฐ๊ฒฐํ•˜๊ณ  rs.stepDown() ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋ผ์ด๋จธ๋ฆฌ๋ฅผ ๋ฌผ๋Ÿฌ๋‚˜๊ณ  ์ƒˆ ํ”„๋ผ์ด๋จธ๋ฆฌ๋ฅผ ๊ฐ•์ œ๋กœ ์„ ์ถœํ•ฉ๋‹ˆ๋‹ค.

      rs.stepDown()
    2. rs.status() ์„(๋ฅผ) ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

      rs.status()

      ์ƒํƒœ๊ฐ€ ํ”„๋ผ์ด๋จธ๋ฆฌ๊ฐ€ ๋ฌผ๋Ÿฌ๋‚˜๊ณ  ๋‹ค๋ฅธ ๋ฉค๋ฒ„๊ฐ€ PRIMARY ์ƒํƒœ๋ฅผ ์ทจํ–ˆ๋‹ค๊ณ  ํ‘œ์‹œ๋˜๋ฉด ๊ณ„์† ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    3. mongosh ์—์„œ ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ๊ฐ•๋“ฑ๋œ ํ”„๋ผ์ด๋จธ๋ฆฌ๋ฅผ ์™„์ „ํžˆ ์ข…๋ฃŒํ•˜๊ฑฐ๋‚˜ mongod ํ”„๋กœ์„ธ์Šค ์ค‘์ง€ ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ mongod ํ”„๋กœ์„ธ์Šค๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

      db.adminCommand( { shutdown: 1 } )
    4. 5.0 ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ 4.4 ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ ๋ฐ”๊พธ๊ณ  ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋จธ์ง€ ์ƒค๋“œ์— ๋Œ€ํ•ด์„œ๋„ ์ด ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.

5
  1. config ์„œ๋ฒ„์˜ ๋ณต์ œ๋ณธ ์„ธํŠธ(CSRS)์˜ ์„ธ์ปจ๋”๋ฆฌ ๋ฉค๋ฒ„๋ฅผ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜์”ฉ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•ฉ๋‹ˆ๋‹ค.

    1. mongosh์—์„œ ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ์™„์ „ํžˆ ์ข…๋ฃŒํ•˜๊ฑฐ๋‚˜ mongod ํ”„๋กœ์„ธ์Šค๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ข…๋ฃŒํ•˜๋Š” ์ถ”๊ฐ€ ๋ฐฉ๋ฒ•์„ ๋ณด๋ ค๋ฉด mongod ํ”„๋กœ์„ธ์Šค ์ค‘์ง€๋ฅผ ์ฐธ์กฐํ•ฉ๋‹ˆ๋‹ค.

      db.adminCommand( { shutdown: 1 } )
    2. 5.0 ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ 4.4 ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ ๋ฐ”๊พธ๊ณ  ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

    3. ๋‹ค์Œ ์„ธ์ปจ๋”๋ฆฌ ๋ฉค๋ฒ„๋ฅผ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๊ธฐ ์ „์— ๋ฉค๋ฒ„๊ฐ€ SECONDARY ์ƒํƒœ๋กœ ๋ณต๊ตฌ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฝ๋‹ˆ๋‹ค. ๋ฉค๋ฒ„์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด mongosh ๋ฅผ ์ƒค๋“œ์— ์—ฐ๊ฒฐํ•˜๊ณ  rs.status() ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

      ๊ฐ ์„ธ์ปจ๋”๋ฆฌ ๋ฉค๋ฒ„์— ๋Œ€ํ•ด ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œํ•˜๋ ค๋ฉด ์ด ๊ณผ์ •์„ ๋ฐ˜๋ณตํ•ฉ๋‹ˆ๋‹ค.

  2. config ์„œ๋ฒ„ ํ”„๋ผ์ด๋จธ๋ฆฌ๋ฅผ ๋‹จ๊ณ„์ ์œผ๋กœ ๋‚ฎ์ถฅ๋‹ˆ๋‹ค.

    1. ํ”„๋ผ์ด๋จธ๋ฆฌ์— mongosh๋ฅผ ์—ฐ๊ฒฐํ•˜๊ณ  rs.stepDown()์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ์กด ํ”„๋ผ์ด๋จธ๋ฆฌ๋ฅผ ์šฐ์„  ์ˆœ์œ„์—์„œ ๋‚ด๋ ค์˜ค๊ฒŒ ํ•˜๊ณ  ๊ฐ•์ œ๋กœ ์ƒˆ ํ”„๋ผ์ด๋จธ๋ฆฌ์— ๋Œ€ํ•œ ํˆฌํ‘œ๋ฅผ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

      rs.stepDown()
    2. rs.status() ์„(๋ฅผ) ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

      rs.status()

      ์ƒํƒœ๊ฐ€ ํ”„๋ผ์ด๋จธ๋ฆฌ๊ฐ€ ๋ฌผ๋Ÿฌ๋‚˜๊ณ  ๋‹ค๋ฅธ ๋ฉค๋ฒ„๊ฐ€ PRIMARY ์ƒํƒœ๋ฅผ ์ทจํ–ˆ๋‹ค๊ณ  ํ‘œ์‹œ๋˜๋ฉด ๊ณ„์† ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    3. mongosh ์—์„œ ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ๊ฐ•๋“ฑ๋œ ํ”„๋ผ์ด๋จธ๋ฆฌ๋ฅผ ์™„์ „ํžˆ ์ข…๋ฃŒํ•˜๊ฑฐ๋‚˜ mongod ํ”„๋กœ์„ธ์Šค ์ค‘์ง€ ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ mongod ํ”„๋กœ์„ธ์Šค๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

      db.adminCommand( { shutdown: 1 } )
    4. 5.0 ๋ฐ”์ด๋„ˆ๋ฆฌ๋ฅผ 4.4 ๋ฐ”์ด๋„ˆ๋ฆฌ๋กœ ๋ฐ”๊พธ๊ณ  ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

6

์ƒค๋“œ ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ์š”์†Œ์˜ ๋‹ค์šด๊ทธ๋ ˆ์ด๋“œ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด mongosh ๋ฅผ mongos ์— ์—ฐ๊ฒฐ ํ•˜๊ณ  ๋ฐธ๋Ÿฐ์„œ๋ฅผ ๋‹ค์‹œ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

sh.startBalancer()

mongosh ๋ฉ”์„œ๋“œ sh.startBalancer() ๋„ ์ƒค๋“œ ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•œ ์ž๋™ ๋ถ„ํ• ์„ ํ™œ์„ฑํ™”ํ•ฉ๋‹ˆ๋‹ค.

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

๋ณต์ œ๋ณธ ์„ธํŠธ