Docs Menu

๊ตฌ์„ฑ ์ƒค๋“œ

MongoDB 8.0 ๋ถ€ํ„ฐ๋Š” ์ผ๋ฐ˜์ ์ธ ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ ์™ธ์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ ํ•˜๋„๋ก config ์„œ๋ฒ„ ๋ฅผ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. config ์„œ๋ฒ„ ์™€ ์ƒค๋“œ ์„œ๋ฒ„ ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ์ œ๊ณตํ•˜๋Š” mongod ๋…ธ๋“œ ๋ฅผ config ์ƒค๋“œ ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ƒค๋“œ ์„œ๋ฒ„ ๊ธฐ๋Šฅ ์—†์ด ๋…๋ฆฝํ˜• --configsvr ๋กœ ์‹คํ–‰๋˜๋Š” mongod ๋…ธ๋“œ ๋ฅผ ์ „์šฉ config ์„œ๋ฒ„ ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

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

ํด๋Ÿฌ์Šคํ„ฐ ์— 3๊ฐœ ์ดํ•˜์˜ ์ƒค๋“œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ config ์ƒค๋“œ ์‚ฌ์šฉ์„ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๋‹ค์Œ ์กฐ๊ฑด ์ค‘ ํ•˜๋‚˜ ์ด์ƒ์„ ์ถฉ์กฑํ•˜๋Š” ๊ฒฝ์šฐ ์ „์šฉ config ์„œ๋ฒ„ ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

์ƒค๋”ฉ๋œ ์ปฌ๋ ‰์…˜ ๋ฐ์ดํ„ฐ์™€ ์ƒค๋”ฉ๋œ ๋˜์ง€ ์•Š์€ ์ปฌ๋ ‰์…˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์„ฑ ์ƒค๋“œ ์— ์ €์žฅ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. config ์„œ๋ฒ„ ์—ญํ• ์„ ํ•  ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์ƒค๋“œ ์˜ ๋ชจ๋“  ์†์„ฑ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ config ์ƒค๋“œ ์‚ฌ์šฉํ•˜๋Š”์ง€ listShards ํ™•์ธํ•˜๋ ค๋ฉด ์— ์—ฐ๊ฒฐ๋œ ์ƒํƒœ์—์„œ admin ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋Œ€ํ•ด ๋ช…๋ น์„ mongos ์‹คํ–‰ _id ๊ฐ€ "config" ๋กœ ์„ค์ •ํ•˜๋‹ค ๋ฌธ์„œ ์˜ ์ถœ๋ ฅ์„ ๊ฒ€์‚ฌํ•ฉ๋‹ˆ๋‹ค. listShards ์ถœ๋ ฅ์— _id ๊ฐ€ "config" ๋กœ ์„ค์ •ํ•˜๋‹ค ๋ฌธ์„œ ํฌํ•จ๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ, ํด๋Ÿฌ์Šคํ„ฐ ๋Š” ๊ตฌ์„ฑ ์ƒค๋“œ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ ์˜ˆ์‹œ listShards ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๊ณ  _id ๊ฐ€ "config"๋กœ ์„ค์ •ํ•˜๋‹ค ๋ฌธ์„œ ์ฐพ์œผ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

db.adminCommand({ listShards: 1 })["shards"].find(element => element._id === "config")

์ด ์˜ˆ์‹œ ์—์„œ ๋ฐ˜ํ™˜๋œ ๋ฌธ์„œ ์—๋Š” _id ์ด(๊ฐ€) "config"(์œผ)๋กœ ์„ค์ •ํ•˜๋‹ค ์žˆ์–ด ์ด ํด๋Ÿฌ์Šคํ„ฐ ๊ตฌ์„ฑ ์ƒค๋“œ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Œ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

{
_id: "config",
host: "configRepl/localhost:27018",
state: 1,
topologyTime: Timestamp({ t: 1732218671, i: 13 }),
replSetConfigVersion: Long('-1')
}

์ „์šฉ config ์„œ๋ฒ„ ๋ฅผ config ์ƒค๋“œ ๋กœ ์‹คํ–‰ ํ•˜๋„๋ก ๊ตฌ์„ฑํ•˜๋ ค๋ฉด transitionFromDedicatedConfigServer ๋ช…๋ น์„ ์‹คํ–‰ ํ•ฉ๋‹ˆ๋‹ค.

์ „์šฉ config ์„œ๋ฒ„ ๋กœ ์‹คํ–‰ config ์ƒค๋“œ ๋ฅผ ๊ตฌ์„ฑํ•˜๋ ค๋ฉด transitionToDedicatedConfigServer ๋ช…๋ น์„ ์‹คํ–‰ ํ•ฉ๋‹ˆ๋‹ค.