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

์ž์ฒด ๊ด€๋ฆฌํ˜• ๋ณต์ œ๋ณธ ์„ธํŠธ ๊ตฌ์„ฑ

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

  • ๋ณต์ œ๋ณธ ์„ธํŠธ ๊ตฌ์„ฑ ๋ฌธ์„œ ์˜ˆ์‹œ
  • ๋ณต์ œ๋ณธ ์„ธํŠธ ๊ตฌ์„ฑ ํ•„๋“œ

๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ๊ตฌ์„ฑ์„ rs.conf() ๋ฉ”์„œ๋“œ ๋˜๋Š” replSetGetConfig ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ๊ตฌ์„ฑ์„ ์ˆ˜์ •ํ•˜๋ ค๋ฉด rs.reconfig() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์„ฑ ๋ฌธ์„œ๋ฅผ ๋ฉ”์„œ๋“œ์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ rs.reconfig()๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๊ฒฝ๊ณ 

์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ๊ทœ์น™์€ MongoDB ๋ฒ„์ „๋งˆ๋‹ค ๋‹ค๋ฅผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋‹ค๋ฅธ MongoDB ๋ฒ„์ „์˜ ๋ฉค๋ฒ„๋ฅผ ํฌํ•จํ•˜๋Š” ๋ณต์ œ๋ณธ ์„ธํŠธ๋ฅผ ๋‹ค์‹œ ๊ตฌ์„ฑํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค.

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

{
_id: <string>,
version: <int>,
term: <int>,
protocolVersion: <number>,
writeConcernMajorityJournalDefault: <boolean>,
configsvr: <boolean>,
members: [
{
_id: <int>,
host: <string>,
arbiterOnly: <boolean>,
buildIndexes: <boolean>,
hidden: <boolean>,
priority: <number>,
tags: <document>,
secondaryDelaySecs: <int>,
votes: <number>
},
...
],
settings: {
chainingAllowed : <boolean>,
heartbeatIntervalMillis : <int>,
heartbeatTimeoutSecs: <int>,
electionTimeoutMillis : <int>,
catchUpTimeoutMillis : <int>,
getLastErrorModes : <document>,
getLastErrorDefaults : <document>,
replicaSetId: <ObjectId>
}
}
_id

์œ ํ˜•: ๋ฌธ์ž์—ด

๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ์ด๋ฆ„์ž…๋‹ˆ๋‹ค.

_id ๋Š” ๋ช…๋ น์ค„์—์„œ replication.replSetName ๋˜๋Š” mongod์— ์ง€์ •๋œ --replSet์˜ ๊ฐ’๊ณผ ๋™์ผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํŒ

์ฐธ์กฐ:

replSetName ๋˜๋Š” --replSet๋กœ ๋ณต์ œ๋ณธ ์„ธํŠธ ์ด๋ฆ„ ์„ค์ •์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

version

ํ˜•์‹: int

๊ตฌ์„ฑ์˜ ์ด์ „ ๋ฒ„์ „๊ณผ ๋ณต์ œ๋ณธ ์„ธํŠธ ๊ตฌ์„ฑ ๋ฌธ์„œ์˜ ๊ฐœ์ •ํŒ์„ ๊ตฌ๋ณ„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ฆ๋ถ„ ๋ฒˆํ˜ธ์ž…๋‹ˆ๋‹ค.

๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„๋Š” term๊ณผ version์„ ์‚ฌ์šฉํ•˜์—ฌ '์ตœ์‹ ' ๋ณต์ œ๋ณธ ๊ตฌ์„ฑ์— ๊ด€ํ•œ ํ•ฉ์˜๋ฅผ ๋„์ถœํ•ฉ๋‹ˆ๋‹ค. ๋ฉค๋ฒ„๊ฐ€ ๋ณต์ œ๋ณธ ๊ตฌ์„ฑ ๋ฌธ์„œ๋ฅผ ๋น„๊ตํ•  ๋•Œ term ๊ฐ’์ด ๋” ํฐ ๊ตฌ์„ฑ ๋ฌธ์„œ๊ฐ€ '์ตœ์‹ ' ๋ฌธ์„œ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค. term์ด ๊ฐ™๊ฑฐ๋‚˜ ์—†๋Š” ๊ฒฝ์šฐ, version ๊ฐ’์ด ๋” ํฐ ๊ตฌ์„ฑ ๋ฌธ์„œ๊ฐ€ '์ตœ์‹ '์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

term

ํ˜•์‹: int

featureCompatibilityVersion(fCV) '4.4' ์ด์ƒ์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

๊ฐ•์ œ ์žฌ๊ตฌ์„ฑ์„ ์‹คํ–‰ํ•˜๋ฉด term ํ•„๋“œ๊ฐ€ ์ œ๊ฑฐ๋ฉ๋‹ˆ๋‹ค. ์ดํ›„์— ํ”„๋ผ์ด๋จธ๋ฆฌ๊ฐ€ replSetReconfig๋ฅผ ๊ฐ•์ œ์„ฑ ์—†์ด ์‹คํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ, ์ž์ฒด ํ…€์— term์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„๋Š” term๊ณผ version์„ ์‚ฌ์šฉํ•˜์—ฌ '์ตœ์‹ ' ๋ณต์ œ๋ณธ ๊ตฌ์„ฑ์— ๊ด€ํ•œ ํ•ฉ์˜๋ฅผ ๋„์ถœํ•ฉ๋‹ˆ๋‹ค. ๋ฉค๋ฒ„๊ฐ€ ๋ณต์ œ๋ณธ ๊ตฌ์„ฑ ๋ฌธ์„œ๋ฅผ ๋น„๊ตํ•  ๋•Œ term ๊ฐ’์ด ๋” ํฐ ๊ตฌ์„ฑ ๋ฌธ์„œ๊ฐ€ '์ตœ์‹ ' ๋ฌธ์„œ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค. term์ด ๊ฐ™๊ฑฐ๋‚˜ ์—†๋Š” ๊ฒฝ์šฐ, version ๊ฐ’์ด ๋” ํฐ ๊ตฌ์„ฑ ๋ฌธ์„œ๊ฐ€ '์ตœ์‹ '์œผ๋กœ ๊ฐ„์ฃผ๋ฉ๋‹ˆ๋‹ค.

configsvr

์œ ํ˜•: ๋ถ€์šธ

๊ธฐ๋ณธ๊ฐ’: false

์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์˜ config ์„œ๋ฒ„์— ๋ณต์ œ๋ณธ ์„ธํŠธ๋ฅผ ์‚ฌ์šฉํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ๋ณต์ œ๋ณธ ์„ธํŠธ๊ฐ€ ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์˜ config ์„œ๋ฒ„์šฉ์ธ ๊ฒฝ์šฐ true๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

protocolVersion

์œ ํ˜•: ์ˆซ์ž

๊ธฐ๋ณธ๊ฐ’: 1

MongoDB๋Š” protocolVersion: 1๋งŒ ์ง€์›ํ•˜๋ฉฐ ๋” ์ด์ƒ protocolVersion: 0์„ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

writeConcernMajorityJournalDefault

์œ ํ˜•: ๋ถ€์šธ

๊ธฐ๋ณธ๊ฐ’: true

์“ฐ๊ธฐ ๊ณ ๋ ค๊ฐ€ ์ €๋„ ์˜ต์…˜ j๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ { w: "majority" } ์“ฐ๊ธฐ ๊ณ ๋ ค์˜ ๋™์ž‘์„ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ํ‘œ์—๋Š” writeConcernMajorityJournalDefault ๊ฐ’๊ณผ ๊ด€๋ จ { w: "majority" } ๋™์ž‘์ด ๋‚˜์—ด๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ’
{ w: "majority" } ํ–‰๋™
true

MongoDB๋Š” ๋Œ€๋‹ค์ˆ˜์˜ ํˆฌํ‘œ ๋ฉค๋ฒ„๊ฐ€ ์˜จ๋””์Šคํฌ ์ €๋„์— ์“ฐ๊ธฐ๋ฅผ ์ˆ˜ํ–‰ํ•œ ํ›„์— ์“ฐ๊ธฐ ์ž‘์—…์„ ์Šน์ธํ•ฉ๋‹ˆ๋‹ค.

์ค‘์š”: ๋ณต์ œ๋ณธ ์„ธํŠธ ์˜ ๋ชจ๋“  ํˆฌํ‘œ ๋ฉค๋ฒ„๋Š” writeConcernMajorityJournalDefault ์ด true ์ผ ๋•Œ ์ €๋„๋ง๊ณผ ํ•จ๊ป˜ ์‹คํ–‰ ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ํˆฌํ‘œ ๋ฉค๋ฒ„๊ฐ€ ์ธ๋ฉ”๋ชจ๋ฆฌ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ writeConcernMajorityJournalDefault๋ฅผ false๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ํˆฌํ‘œ ๋…ธ๋“œ๊ฐ€ ์ธ๋ฉ”๋ชจ๋ฆฌ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์„ ์‚ฌ์šฉํ•˜๋ฉฐ writeConcernMajorityJournalDefault๊ฐ€ true์ธ ๊ฒฝ์šฐ, "majority" ์“ฐ๊ธฐ (write) ์ž‘์—…์€ ์‹คํŒจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” replSetStepDown๋ช…๋ น ๋“ฑ ๋ณธ์งˆ์ ์œผ๋กœ "majority" ์“ฐ๊ธฐ ๊ณ ๋ ค (write concern)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ž‘์—…์ด๋‚˜ ์‚ฌ์šฉ์ž ๊ด€๋ฆฌ ๋ฉ”์„œ๋“œ ๋ฐ ์—ญํ•  ๊ด€๋ฆฌ ๋ฉ”์„œ๋“œ ๋“ฑ ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ "majority"๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋‹ค์–‘ํ•œ mongosh ๋ฉ”์„œ๋“œ๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

๋ฒ„์ „ 4.2(4.0.13 ๋ฐ 3.6.14 ํฌํ•จ)๋ถ€ํ„ฐ, ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„๊ฐ€ ์ธ๋ฉ”๋ชจ๋ฆฌ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„(ํˆฌํ‘œ ๋˜๋Š” ๋น„ํˆฌํ‘œ)์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ writeConcernMajorityJournalDefault๊ฐ€ 'true'๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ, ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„๋Š” ์‹œ์ž‘ ๊ฒฝ๊ณ ๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

๊ฑฐ์ง“

MongoDB๋Š” ๋Œ€๋‹ค์ˆ˜์˜ ํˆฌํ‘œ ๋ฉค๋ฒ„๊ฐ€ ๋ฉ”๋ชจ๋ฆฌ์— ์ž‘์—…์„ ์ ์šฉํ•œ ํ›„์— ์“ฐ๊ธฐ ์ž‘์—…์„ ์Šน์ธํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ๊ณ :

๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ํˆฌํ‘œ ๋ฉค๋ฒ„๊ฐ€ ์ธ๋ฉ”๋ชจ๋ฆฌ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ writeConcernMajorityJournalDefault๋ฅผ false๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ฒ„์ „ 4.2(4.0.13 ๋ฐ 3.6.14 ํฌํ•จ)๋ถ€ํ„ฐ, ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„๊ฐ€ ์ธ๋ฉ”๋ชจ๋ฆฌ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„(ํˆฌํ‘œ ๋˜๋Š” ๋น„ํˆฌํ‘œ)์„ ์‚ฌ์šฉํ•˜์ง€๋งŒ ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ writeConcernMajorityJournalDefault๊ฐ€ 'true'๋กœ ์„ค์ •๋œ ๊ฒฝ์šฐ, ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„๋Š” ์‹œ์ž‘ ๊ฒฝ๊ณ ๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

writeConcernMajorityJournalDefault๊ฐ€ false๋กœ ์„ค์ •๋œ ์ƒค๋“œ๊ฐ€ ์žˆ๋Š” ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ(์˜ˆ: ์ธ๋ฉ”๋ชจ๋ฆฌ ์Šคํ† ๋ฆฌ์ง€ ์—”์ง„์„ ์‚ฌ์šฉํ•˜๋Š” ํˆฌํ‘œ ๋ฉค๋ฒ„๊ฐ€ ์žˆ๋Š” ์ƒค๋“œ)์—์„œ๋Š” ํŠธ๋žœ์žญ์…˜์„ ์‹คํ–‰ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

ํŒ

๋‹ค์Œ๋„ ์ฐธ์กฐํ•˜์„ธ์š”.

members

์œ ํ˜•: ๋ฐฐ์—ด

๋…ธ๋“œ ๊ตฌ์„ฑ ๋ฌธ์„œ์˜ ๋ฐฐ์—ด์ด๋ฉฐ, ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ๋…ธ๋“œ๋งˆ๋‹ค ํ•œ ๊ฐœ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. members ๋ฐฐ์—ด์€ ์ธ๋ฑ์Šค๊ฐ€ 0์ธ ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.

๊ฐ ๋ฉค๋ฒ„๋ณ„ ๊ตฌ์„ฑ ๋ฌธ์„œ์—๋Š” ๋‹ค์Œ ํ•„๋“œ๊ฐ€ ํฌํ•จ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

members[n]._id

์œ ํ˜•: integer

๋ณต์ œ๋ณธ ์„ธํŠธ์— ์žˆ๋Š” ๋ฉค๋ฒ„์˜ ์ •์ˆ˜ ์‹๋ณ„์ž์ด๋ฉฐ, ๋ชจ๋“  ๋ฉค๋ฒ„ ๊ฐ„์— ๊ณ ์œ ํ•ฉ๋‹ˆ๋‹ค.

MongoDB 5.0๋ถ€ํ„ฐ ๊ฐ’์€ 0 ์ด์ƒ์˜ ์ •์ˆ˜ ๊ฐ’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์ „์—๋Š” ์ด ๊ฐ’์ด 0 ๋ถ€ํ„ฐ 255๊นŒ์ง€์˜ ์ •์ˆ˜๋กœ ์ œํ•œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ฐ ๋ณต์ œ๋ณธ ์„ธํŠธ ๋…ธ๋“œ์—๋Š” ๋ฐ˜๋“œ์‹œ ๊ณ ์œ ํ•œ _id๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ๊ตฌ์„ฑ์—์„œ ํ•ด๋‹น _id๋ฅผ ์‚ฌ์šฉํ•˜๋Š” members[n] ํ•ญ๋ชฉ์ด ์—†๋”๋ผ๋„ _id ๊ฐ’์„ ๋‹ค์‹œ ์‚ฌ์šฉํ•˜์ง€ ๋งˆ์„ธ์š”.

ํ•œ ๋ฒˆ ์„ค์ •ํ•œ ๋ฉค๋ฒ„์˜ _id๋Š” ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ 

๋ณต์ œ๋ณธ ๊ตฌ์„ฑ ๊ฐ์ฒด๋ฅผ ์—…๋ฐ์ดํŠธํ•  ๋•Œ๋Š” ๋ฐฐ์—ด ์ธ๋ฑ์Šค๊ฐ€ ์žˆ๋Š” members ๋ฐฐ์—ด์—์„œ ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„์— ์•ก์„ธ์Šคํ•ฉ๋‹ˆ๋‹ค. ๋ฐฐ์—ด ์ธ๋ฑ์Šค๋Š” 0์œผ๋กœ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ธ๋ฑ์Šค ๊ฐ’์„ members ๋ฐฐ์—ด์— ์žˆ๋Š” members[n]._id ํ•„๋“œ ๊ฐ’์œผ๋กœ ํ˜ผ๋™ํ•˜์ง€ ๋งˆ์„ธ์š”.

members[n].host

์œ ํ˜•: ๋ฌธ์ž์—ด

์„ธํŠธ ๋ฉค๋ฒ„์˜ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ๋ฐ ํฌํŠธ ๋ฒˆํ˜ธ(์ง€์ •๋œ ๊ฒฝ์šฐ)์ž…๋‹ˆ๋‹ค.

ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์€ ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ๋ชจ๋“  ํ˜ธ์ŠคํŠธ์—์„œ ํ•ด์„ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ๊ณ 

members[n].host๋Š” ์„ธํŠธ์˜ ๋ชจ๋“  ๋ฉค๋ฒ„๊ฐ€ localhost๋กœ ํ•ด์„๋˜๋Š” ํ˜ธ์ŠคํŠธ์— ์žˆ์ง€ ์•Š์€ ์ด์ƒ, localhost ๋˜๋Š” ๋กœ์ปฌ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ํ•ด์„๋˜๋Š” ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

members[n].arbiterOnly

์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

์œ ํ˜•: ๋ถ€์šธ

๊ธฐ๋ณธ๊ฐ’: false

์ค‘์žฌ์ž๋ฅผ ์‹๋ณ„ํ•˜๋Š” ๋ถ€์šธ์ž…๋‹ˆ๋‹ค. ๊ฐ’์ด true์ด๋ฉด ๋ฉค๋ฒ„๊ฐ€ ์ค‘์žฌ์ž์ž„์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

rs.addArb() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ค‘์žฌ์ž๋ฅผ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒฝ์šฐ, ์ด ๋ฉ”์„œ๋“œ๋Š” ์ถ”๊ฐ€๋œ ๋ฉค๋ฒ„์— ๋Œ€ํ•ด members[n].arbiterOnly๋ฅผ true๋กœ ์ž๋™ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

members[n].buildIndexes

์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

์œ ํ˜•: ๋ถ€์šธ

๊ธฐ๋ณธ๊ฐ’: true

mongod๊ฐ€ ์ด ๋ฉค๋ฒ„์— ๋Œ€ํ•ด ์ธ๋ฑ์Šค๋ฅผ ๋นŒ๋“œํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” ๋ถ€์šธ์ž…๋‹ˆ๋‹ค. ๋ณต์ œ๋ณธ ์„ธํŠธ์— ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•  ๋•Œ๋งŒ ์ด ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋…ธ๋“œ๋ฅผ ์„ธํŠธ์— ์ถ”๊ฐ€ํ•œ ํ›„์—๋Š” members[n].buildIndexes ํ•„๋“œ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด rs.add() ๋ฐ rs.reconfig()๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์ฟผ๋ฆฌ๋ฅผ ๋ฐ›๋Š” mongod ์ธ์Šคํ„ด์Šค์˜ ๊ฒฝ์šฐ false๋กœ ์„ค์ •ํ•˜์ง€ ๋งˆ์„ธ์š”.

๋‹ค์Œ ์กฐ๊ฑด์— ๋ชจ๋‘ ํ•ด๋‹นํ•˜๋Š” ๊ฒฝ์šฐ, buildIndexes๋ฅผ false๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ด ์ธ์Šคํ„ด์Šค๋Š” mongodump๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฑ์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ๋งŒ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๊ณ 

  • ์ด ๋ฉค๋ฒ„๋Š” ์ฟผ๋ฆฌ๋ฅผ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  • ์ธ๋ฑ์Šค ์ƒ์„ฑ ๋ฐ ์œ ์ง€ ๊ด€๋ฆฌ๋กœ ์ธํ•ด ํ˜ธ์ŠคํŠธ ์‹œ์Šคํ…œ์— ๊ณผ๋ถ€ํ•˜๊ฐ€ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค.

์„ธ์ปจ๋”๋ฆฌ๋Š” false๋กœ ์„ค์ •๋˜๋”๋ผ๋„, ๋ณต์ œ์— ํ•„์š”ํ•œ ์ž‘์—…์„ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๊ธฐ ์œ„ํ•ด _id ํ•„๋“œ์— ์ธ๋ฑ์Šค๋ฅผ ๋นŒ๋“œํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ฒฝ๊ณ 

members[n].buildIndexes๋ฅผ false๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒฝ์šฐ members[n].priority๋„ ๋ฐ˜๋“œ์‹œ 0์œผ๋กœ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. members[n].priority๊ฐ€ 0์ด ์•„๋‹Œ ๊ฒฝ์šฐ, false์™€ ๋™์ผํ•œ members[n].buildIndexes๊ฐ€ ์žˆ๋Š” ๋…ธ๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๊ณ  ํ•˜๋ฉด MongoDB๋Š” ์˜ค๋ฅ˜๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

๋ฉค๋ฒ„๊ฐ€ ์ฟผ๋ฆฌ๋ฅผ ๋ฐ›์ง€ ์•Š๋„๋ก ํ•˜๋ ค๋ฉด ์ธ๋ฑ์Šค๋ฅผ ๋นŒ๋“œํ•˜์ง€ ์•Š๋Š” ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๋ฅผ ์ˆจ๊ฒจ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค๋ฅธ ์„ธ์ปจ๋”๋ฆฌ๋Š” members[n].buildIndexes๊ฐ€ false์ธ ๋…ธ๋“œ๋กœ๋ถ€ํ„ฐ ๋ณต์ œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

members[n].hidden

์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

์œ ํ˜•: ๋ถ€์šธ

๊ธฐ๋ณธ๊ฐ’: false

์ด ๊ฐ’์ด true์ด๋ฉด ๋ณต์ œ๋ณธ ์„ธํŠธ๋Š” ์ด ์ธ์Šคํ„ด์Šค๋ฅผ ์ˆจ๊ธฐ๊ณ  ํ•ด๋‹น ๋ฉค๋ฒ„๋ฅผ db.hello() ๋˜๋Š” hello์˜ ์ถœ๋ ฅ์— ํฌํ•จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ฝ๊ธฐ ์ž‘์—…(์ฟผ๋ฆฌ)์ด ์„ธ์ปจ๋”๋ฆฌ ์ฝ๊ธฐ ์„ค์ •์„ ํ†ตํ•ด ์ด ํ˜ธ์ŠคํŠธ์— ๋„๋‹ฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ˆจ๊ฒจ์ง„ ๋ฉค๋ฒ„๋Š” ์“ฐ๊ธฐ ๊ณ ๋ ค (write concern)๋กœ ์‹คํ–‰๋œ ์“ฐ๊ธฐ (write) ์ž‘์—…์„ ์Šน์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "majority" ์“ฐ๊ธฐ ๊ณ ๋ ค (write concern)๋กœ ์‹คํ–‰๋œ ์“ฐ๊ธฐ (write) ์ž‘์—…์˜ ๊ฒฝ์šฐ, ๋ฐ˜๋“œ์‹œ ํ•ด๋‹น ๋…ธ๋“œ๋„ ํˆฌํ‘œ๊ถŒ์ด ์žˆ๋Š” ๋…ธ๋“œ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ฆ‰, votes๊ฐ€ 0๋ณด๋‹ค ํผ).

members[n].priority

์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

์œ ํ˜•: ํ”„๋ผ์ด๋จธ๋ฆฌ/์„ธ์ปจ๋”๋ฆฌ์˜ ๊ฒฝ์šฐ 0์—์„œ 1,000 ์‚ฌ์ด์˜ ์ˆซ์ž์ž…๋‹ˆ๋‹ค. ์ค‘์žฌ์ž์˜ ๊ฒฝ์šฐ 0 ๋˜๋Š” 1์ž…๋‹ˆ๋‹ค.

๊ธฐ๋ณธ๊ฐ’: ํ”„๋ผ์ด๋จธ๋ฆฌ/์„ธ์ปจ๋”๋ฆฌ๋Š” 1.0, ์ค‘์žฌ์ž๋Š” 0์ž…๋‹ˆ๋‹ค.

๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„๊ฐ€ ํ”„๋ผ์ด๋จธ๋ฆฌ๊ฐ€ ๋  ์ƒ๋Œ€์ ์ธ ๊ฐ€๋Šฅ์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ˆซ์ž์ž…๋‹ˆ๋‹ค.

  • ๋ฉค๋ฒ„๊ฐ€ ํ”„๋ผ์ด๋จธ๋ฆฌ๊ฐ€ ๋  ๊ฐ€๋Šฅ์„ฑ์„ ๋†’์ด๋ ค๋ฉด ํ•ด๋‹น ๋ฉค๋ฒ„์— ๋Œ€ํ•ด ๋” ๋†’์€ priority ๊ฐ’์„ ์ง€์ •ํ•˜์„ธ์š”.

  • ๋ฉค๋ฒ„๊ฐ€ ํ”„๋ผ์ด๋จธ๋ฆฌ๊ฐ€ ๋  ๊ฐ€๋Šฅ์„ฑ์„ ๋‚ฎ์ถ”๋ ค๋ฉด ํ•ด๋‹น ๋ฉค๋ฒ„์— ๋Œ€ํ•ด ๋” ๋‚ฎ์€ priority ๊ฐ’์„ ์ง€์ •ํ•˜์„ธ์š”.

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

๋งŒ์•ฝ ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋” ๋‚ฎ์€ ๋ฉค๋ฒ„๊ฐ€ ํ”„๋ผ์ด๋จธ๋ฆฌ๊ฐ€ ๋˜๋ฉด, ์„œ๋ฒ„๋Š” ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋†’์€ ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„๊ฐ€ ํ”„๋ผ์ด๋จธ๋ฆฌ๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ ์ฃผ๊ธฐ์ ์œผ๋กœ ํˆฌํ‘œ๋ฅผ ๊ณ„์† ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค. ํˆฌํ‘œ ๋นˆ๋„๋Š” ์„ ์ถœ๋œ ๋ฉค๋ฒ„์™€ ์ตœ์šฐ์„  ์ˆœ์œ„ ๋ฉค๋ฒ„ ๊ฐ„์˜ ์šฐ์„  ์ˆœ์œ„ ์ฐจ์ด์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์ง‘๋‹ˆ๋‹ค.

์šฐ์„  ์ˆœ์œ„๊ฐ€ 0์ธ ๋ฉค๋ฒ„๋Š” ํ”„๋ผ์ด๋จธ๋ฆฌ๊ฐ€ ๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

ํˆฌํ‘œ๊ถŒ์ด ์—†๋Š” ๋…ธ๋“œ(votes๊ฐ€ 0์œผ๋กœ ์„ค์ •๋œ ๋…ธ๋“œ)๋Š” ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋ฐ˜๋“œ์‹œ 0์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํŒ

๋‹ค์Œ๋„ ์ฐธ์กฐํ•˜์„ธ์š”.

members[n].tags

์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

์œ ํ˜•: ๋ฌธ์„œ

๊ธฐ๋ณธ๊ฐ’: ์—†์Œ

tags ๋ฌธ์„œ์—๋Š” ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„๋ฅผ ์œ„ํ•œ ์‚ฌ์šฉ์ž ์ •์˜ ํƒœ๊ทธ ํ•„๋“œ์™€ ๊ฐ’ ์Œ์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

{ "<tag1>": "<string1>", "<tag2>": "<string2>",... }

์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ณต์ œ๋ณธ ์„ธํŠธ ํƒœ๊ทธ ์„ธํŠธ ๊ตฌ์„ฑ์—์„œ ํ™•์ธํ•˜์„ธ์š”.

members[n].secondaryDelaySecs

์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

์œ ํ˜•: integer

๊ธฐ๋ณธ๊ฐ’: 0

์ด ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„๊ฐ€ '์ง€์—ฐ'ํ•ด์•ผ ํ•˜๋Š” ํ”„๋ผ์ด๋จธ๋ฆฌ๋ณด๋‹ค '๋’ค์ฒ˜์ง€๋Š”' ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค.

์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ง€์—ฐ ๋ฉค๋ฒ„๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ง€์—ฐ ๋ฉค๋ฒ„๋Š” ๊ณผ๊ฑฐ ํŠน์ • ์‹œ์ ์˜ ๋ฐ์ดํ„ฐ ์ƒํƒœ๋ฅผ ๋ฐ˜์˜ํ•˜๋Š” ๋ฐ์ดํ„ฐ ์‚ฌ๋ณธ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์ง€์—ฐ ๋ฉค๋ฒ„๋Š” ์“ฐ๊ธฐ ๊ณ ๋ ค (write concern)๋กœ ์‹คํ–‰๋œ ์“ฐ๊ธฐ (write) ์ž‘์—…์„ ์Šน์ธํ•˜๋Š” ๋ฐ ๊ธฐ์—ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ๊ตฌ์„ฑ๋œ ์ง€์—ฐ ๊ฐ’ ์ด์ „์—๋Š” ์“ฐ๊ธฐ (write) ์Šน์ธ์„ ๋ฐ˜ํ™˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. "majority" ์“ฐ๊ธฐ ๊ณ ๋ ค (write concern)๋กœ ์‹คํ–‰๋œ ์“ฐ๊ธฐ (write) ์ž‘์—…์˜ ๊ฒฝ์šฐ, ํ•ด๋‹น ๋…ธ๋“œ๋„ ํˆฌํ‘œ๊ถŒ์ด ์žˆ๋Š” ๋…ธ๋“œ์—ฌ์•ผ ํ•ฉ๋‹ˆ๋‹ค(์ฆ‰, votes๊ฐ€ 0๋ณด๋‹ค ํผ).

members[n].votes

์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

์œ ํ˜•: integer

๊ธฐ๋ณธ๊ฐ’: 1

์„œ๋ฒ„๊ฐ€ ๋ณต์ œ๋ณธ ์„ธํŠธ ํˆฌํ‘œ์—์„œ ํˆฌํ‘œํ•  ํˆฌํ‘œ๊ถŒ ์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ฐ ๋ฉค๋ฒ„๊ฐ€ ๊ฐ€์ง„ ํˆฌํ‘œ๊ถŒ ์ˆ˜๋Š” 1 ๋˜๋Š” 0์ด๋ฉฐ, ์ค‘์žฌ์ž๋Š” ํ•ญ์ƒ ์ •ํ™•ํžˆ 1๊ฐœ์˜ ํˆฌํ‘œ๊ถŒ์„ ๊ฐ–์Šต๋‹ˆ๋‹ค.

priority๊ฐ€ 0๋ณด๋‹ค ํฐ ๋…ธ๋“œ๋Š” votes 0๊ฐœ๋ฅผ ๊ฐ€์งˆ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋ณต์ œ๋ณธ ์„ธํŠธ๋Š” ์ตœ๋Œ€ ๋…ธ๋“œ 50๊ฐœ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ํˆฌํ‘œ๊ถŒ์„ ๊ฐ€์ง„ ๋…ธ๋“œ๋Š” 7๊ฐœ๋ฟ์ž…๋‹ˆ๋‹ค. ๋ณต์ œ๋ณธ ์„ธํŠธ ํ•œ ๊ฐœ์— 7๊ฐœ๊ฐ€ ๋„˜๋Š” ๋…ธ๋“œ๊ฐ€ ํ•„์š”ํ•œ ๊ฒฝ์šฐ, ํˆฌํ‘œ๊ถŒ์ด ์—†๋Š” ์ถ”๊ฐ€ ๋…ธ๋“œ์— ๋Œ€ํ•ด members[n].votes๋ฅผ 0์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

ํˆฌํ‘œ๊ถŒ์ด ์—†๋Š”(์ฆ‰, votes๊ฐ€ 0์ž„) ๋…ธ๋“œ๋Š” ๋ฐ˜๋“œ์‹œ 0์ธ priority๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

MongoDB 5.0๋ถ€ํ„ฐ ์ƒˆ๋กœ ์ถ”๊ฐ€๋œ ์„ธ์ปจ๋”๋ฆฌ๋Š” ํˆฌํ‘œ ๋ฉค๋ฒ„๋กœ ๊ฐ„์ฃผ๋˜์ง€ ์•Š์œผ๋ฉฐ, SECONDARY ์ƒํƒœ์— ๋„๋‹ฌํ•  ๋•Œ๊นŒ์ง€ ์„ ์ถœ๋  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

ํˆฌํ‘œ๊ถŒ์ด ์—†๋Š” ๋ฉค๋ฒ„๋Š” "majority" ์“ฐ๊ธฐ ๊ณ ๋ ค๋กœ ์‹คํ–‰๋œ ์“ฐ๊ธฐ ์ž‘์—…์„ ์Šน์ธํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

ํŒ

๋‹ค์Œ๋„ ์ฐธ์กฐํ•˜์„ธ์š”.

settings

์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

์œ ํ˜•: ๋ฌธ์„œ

์ „์ฒด ๋ณต์ œ๋ณธ ์„ธํŠธ์— ์ ์šฉ๋˜๋Š” ๊ตฌ์„ฑ ์˜ต์…˜์ด ํฌํ•จ๋œ ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค.

settings ๋ฌธ์„œ์—๋Š” ๋‹ค์Œ ํ•„๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

settings.chainingAllowed

์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

์œ ํ˜•: ๋ถ€์šธ

๊ธฐ๋ณธ๊ฐ’: true

MongoDB 5.0.1 ์ด์ „ ๋ฒ„์ „์—์„œ๋Š” settings.chainingAllowed๊ฐ€ ๋‹ค์Œ์ธ ๊ฒฝ์šฐ,

  • true๋กœ ์„ค์ •ํ•˜๋ฉด ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ์„ธ์ปจ๋”๋ฆฌ ๋ฉค๋ฒ„๊ฐ€ ๋‹ค๋ฅธ ์„ธ์ปจ๋”๋ฆฌ ๋ฉค๋ฒ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋ณต์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • false(์œผ)๋กœ ์„ค์ •ํ•˜๋ฉด ์„ธ์ปจ๋”๋ฆฌ ๋ฉค๋ฒ„๋Š” ํ”„๋ผ์ด๋จธ๋ฆฌ์˜ ๋ฐ์ดํ„ฐ๋งŒ ๋ณต์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

MongoDB 5.0.2๋ถ€ํ„ฐ๋Š”

ํŒ

๋‹ค์Œ๋„ ์ฐธ์กฐํ•˜์„ธ์š”.

settings.getLastErrorDefaults

์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

์œ ํ˜•: ๋ฌธ์„œ

MongoDB 5.0๋ถ€ํ„ฐ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ค‘์š”

MongoDB 5.0๋ถ€ํ„ฐ ๊ธฐ๋ณธ๊ฐ’์ด { w: 1, wtimeout: 0 }์ธ ๊ฒฝ์šฐ ์™ธ์—๋Š” settings.getLastErrorDefaults ๊ธฐ๋ณธ ์“ฐ๊ธฐ ๊ณ ๋ ค (write concern)๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ๋Œ€์‹  setDefaultRWConcern ๋ช…๋ น์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณต์ œ๋ณธ ์„ธํŠธ ๋˜๋Š” ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ์ฝ๊ธฐ ๋˜๋Š” ์“ฐ๊ธฐ ๊ณ ๋ ค (write concern) ๊ตฌ์„ฑ์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

settings.getLastErrorModes

์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

์œ ํ˜•: ๋ฌธ์„œ

members[n].tags๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ง€์ • ์“ฐ๊ธฐ ๊ณ ๋ ค (write concern)๋ฅผ ์ •์˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๋ฌธ์„œ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž ์ง€์ • ์“ฐ๊ธฐ ๊ณ ๋ ค (write concern)๋Š” ๋ฐ์ดํ„ฐ ์„ผํ„ฐ ์ธ์‹์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

{ getLastErrorModes: {
<name of write concern> : { <tag1>: <number>, .... },
...
} }

<number>๋Š” ์“ฐ๊ธฐ ๊ณ ๋ ค (write concern)๋ฅผ ์ถฉ์กฑํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ๋‹ค์–‘ํ•œ ํƒœ๊ทธ ๊ฐ’์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ์˜ settings.getLastErrorModes๋Š” dc ํƒœ๊ทธ ๊ฐ’์ด ๋‹ค๋ฅธ ๋…ธ๋“œ ๋‘ ๊ฐœ์— ์“ฐ๊ธฐ (write)๋ฅผ ์ „ํŒŒํ•ด์•ผ ํ•˜๋Š”, datacenter๋ผ๋Š” ์ด๋ฆ„์˜ ์“ฐ๊ธฐ ๊ณ ๋ ค (write concern)๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

{ getLastErrorModes: { datacenter: { "dc": 2 } } }

์‚ฌ์šฉ์ž ์ง€์ • ์“ฐ๊ธฐ ๊ณ ๋ ค๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ์“ฐ๊ธฐ ๊ณ ๋ ค ์ด๋ฆ„์„ w ์˜ต์…˜์œผ๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ์˜ˆ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

{ w: "datacenter" }

์ž์„ธํ•œ ๋‚ด์šฉ๊ณผ ์˜ˆ์‹œ๋Š” ๋ณต์ œ๋ณธ ์„ธํŠธ ํƒœ๊ทธ ์„ธํŠธ ๊ตฌ์„ฑ์—์„œ ํ™•์ธํ•˜์„ธ์š”.

settings.heartbeatTimeoutSecs

์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

ํ˜•์‹: int

๊ธฐ๋ณธ๊ฐ’: 10

๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„๊ฐ€ ์„œ๋กœ์—๊ฒŒ์„œ ์„ฑ๊ณต์ ์ธ ํ•˜ํŠธ๋น„ํŠธ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‹œ๊ฐ„(์ดˆ)์ž…๋‹ˆ๋‹ค. ๋ฉค๋ฒ„๊ฐ€ ์‹œ๊ฐ„ ๋‚ด์— ์‘๋‹ตํ•˜์ง€ ์•Š์œผ๋ฉด ๋‹ค๋ฅธ ๋ฉค๋ฒ„๋Š” ์ง€์—ฐ๋˜๋Š” ํ•ด๋‹น ๋ฉค๋ฒ„๋ฅผ ์•ก์„ธ์Šค ๋ถˆ๊ฐ€๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

settings.electionTimeoutMillis

์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

ํ˜•์‹: int

๊ธฐ๋ณธ๊ฐ’: 10000(10์ดˆ)

๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ํ”„๋ผ์ด๋จธ๋ฆฌ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๋ฅผ ๊ฐ์ง€ํ•˜๋Š” ๋ฐ ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„ ์ œํ•œ(๋ฐ€๋ฆฌ์ดˆ)์ž…๋‹ˆ๋‹ค. ์ด ์„ค์ •์€ protocolVersion: 1 ์‚ฌ์šฉ ์‹œ ํŽ˜์ผ์˜ค๋ฒ„ ๋ฏผ๊ฐ๋„๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ํŽ˜์ผ์˜ค๋ฒ„๊ฐ€ electionTimeoutMillis ๊ฐ’์„ ์ดˆ๊ณผํ•˜์ง€ ์•Š์„ ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ’์„ ์„ ํƒํ•  ๋•Œ ๋‹ค์Œ ์‚ฌํ•ญ์„ ๊ณ ๋ คํ•˜์„ธ์š”.

  • ๊ฐ’์ด ๋†’์„์ˆ˜๋ก ํŽ˜์ผ์˜ค๋ฒ„๋Š” ๋Š๋ ค์ง€์ง€๋งŒ, ํ”„๋ผ์ด๋จธ๋ฆฌ ๋…ธ๋“œ๋‚˜ ๋„คํŠธ์›Œํฌ์˜ ์†๋„ ์ €ํ•˜ ๋˜๋Š” ์žฅ์• ์— ๋Œ€ํ•œ ๋ฏผ๊ฐ๋„๊ฐ€ ๋‚ฎ์•„์ง‘๋‹ˆ๋‹ค.

  • ๊ฐ’์ด ๋‚ฎ์„์ˆ˜๋ก ํŽ˜์ผ์˜ค๋ฒ„๋Š” ๋นจ๋ผ์ง€์ง€๋งŒ, ํ”„๋ผ์ด๋จธ๋ฆฌ ๋…ธ๋“œ๋‚˜ ๋„คํŠธ์›Œํฌ์˜ ์†๋„ ์ €ํ•˜ ๋˜๋Š” ์žฅ์• ์— ๋Œ€ํ•œ ๋ฏผ๊ฐ๋„๊ฐ€ ๋†’์•„์ง‘๋‹ˆ๋‹ค.

์ด ์„ค์ •์€ protocolVersion: 1์„ ์‚ฌ์šฉํ•  ๋•Œ๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

force ํ•„๋“œ๋ฅผ true๋กœ ์„ค์ •ํ•˜์ง€ ์•Š๊ณ  rs.stepDown() ๋˜๋Š” replSetStepDown์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋ผ์ด๋จธ๋ฆฌ๋ฅผ ๊ฐ•๋“ฑํ•˜๋Š” ๊ฒฝ์šฐ, ๊ฐ•๋“ฑ๋œ ํ”„๋ผ์ด๋จธ๋ฆฌ๋Š” ์ฆ‰์‹œ ํˆฌํ‘œ๋ฅผ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ์ ๊ฒฉ ์„ธ์ปจ๋”๋ฆฌ๋ฅผ ์ง€๋ช…ํ•ฉ๋‹ˆ๋‹ค.

settings.catchUpTimeoutMillis

์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

ํ˜•์‹: int

๊ธฐ๋ณธ๊ฐ’: -1, ์บ์น˜์—… ์‹œ๊ฐ„ ๋ฌดํ•œ๋Œ€

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

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

์ด ์„ค์ •์€ protocolVersion: 1์„ ์‚ฌ์šฉํ•  ๋•Œ๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

settings.catchUpTakeoverDelayMillis

์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

ํ˜•์‹: int

๊ธฐ๋ณธ๊ฐ’: 30000(30์ดˆ)

๋…ธ๋“œ๊ฐ€ ํ˜„์žฌ ํ”„๋ผ์ด๋จธ๋ฆฌ๋ณด๋‹ค ์•ž์„œ ์žˆ๋‹ค๊ณ  ํŒ๋‹จํ•œ ํ›„ ์บ์น˜์—… ํ…Œ์ดํฌ์˜ค๋ฒ„๋ฅผ ์‹œ์ž‘ํ•˜๊ธฐ ์œ„ํ•ด ๋Œ€๊ธฐํ•˜๋Š” ์‹œ๊ฐ„(๋ฐ€๋ฆฌ์ดˆ)์ž…๋‹ˆ๋‹ค. ์บ์น˜์—… ํ…Œ์ดํฌ์˜ค๋ฒ„ ์ค‘์— ํ˜„์žฌ ํ”„๋ผ์ด๋จธ๋ฆฌ๋ณด๋‹ค ์•ž์„  ๋…ธ๋“œ๊ฐ€ ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ์ƒˆ๋กœ์šด ํ”„๋ผ์ด๋จธ๋ฆฌ๊ฐ€ ๋˜๊ธฐ ์œ„ํ•œ ํˆฌํ‘œ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

ํ…Œ์ดํฌ์˜ค๋ฒ„๋ฅผ ์‹œ์ž‘ํ•œ ๋…ธ๋“œ๊ฐ€ ํ˜„์žฌ ํ”„๋ผ์ด๋จธ๋ฆฌ๋ณด๋‹ค ์•ž์„œ ์žˆ๋‹ค๊ณ  ํŒ๋‹จํ•œ ํ›„, ์ง€์ •๋œ ์‹œ๊ฐ„(๋ฐ€๋ฆฌ์ดˆ) ๋™์•ˆ ๊ธฐ๋‹ค๋ฆฐ ํ›„ ๋‹ค์Œ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

  1. ์—ฌ์ „ํžˆ ํ˜„์žฌ ํ”„๋ผ์ด๋จธ๋ฆฌ๋ณด๋‹ค ์•ž์„œ ์žˆ์Šต๋‹ˆ๋‹ค.

  2. ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๋…ธ๋“œ ์ค‘ ๊ฐ€์žฅ ์ตœ์‹  ๋…ธ๋“œ์ž…๋‹ˆ๋‹ค.

  3. ํ˜„์žฌ ํ”„๋ผ์ด๋จธ๋ฆฌ๊ฐ€ ์ด๋ฅผ ๋”ฐ๋ผ์žก๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์กฐ๊ฑด์ด ๋ชจ๋‘ ์ถฉ์กฑ๋œ๋‹ค๊ณ  ํŒ๋‹จ๋˜๋ฉด ํ…Œ์ดํฌ์˜ค๋ฒ„๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ๋…ธ๋“œ๊ฐ€ ์ฆ‰์‹œ ํˆฌํ‘œ ํ›„๋ณด์— ์˜ค๋ฆ…๋‹ˆ๋‹ค.

๋ณต์ œ๋ณธ ์„ธํŠธ ํˆฌํ‘œ์— ๊ด€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ณต์ œ๋ณธ ์„ธํŠธ ํˆฌํ‘œ์—์„œ ํ™•์ธํ•˜์„ธ์š”.

์ฐธ๊ณ 

catchUpTakeoverDelayMillis๋ฅผ -1๋กœ ์„ค์ •ํ•˜๋ฉด ์บ์น˜์—… ํ…Œ์ดํฌ์˜ค๋ฒ„๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค. catchUpTimeoutMillis๋ฅผ 0์œผ๋กœ ์„ค์ •ํ•˜๋ฉด ํ”„๋ผ์ด๋จธ๋ฆฌ ์บ์น˜์—…์ด ๋น„ํ™œ์„ฑํ™”๋˜๊ณ  ๊ฒฐ๊ณผ์ ์œผ๋กœ ์บ์น˜์—… ํ…Œ์ดํฌ์˜ค๋ฒ„๋„ ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.

settings.heartbeatIntervalMillis

๋‚ด๋ถ€์šฉ์œผ๋กœ๋งŒ ์‚ฌ์šฉํ•˜์„ธ์š”.

ํ•˜ํŠธ๋น„ํŠธ์˜ ๋ฐ€๋ฆฌ์ดˆ ๋‹จ์œ„ ์ฃผํŒŒ์ˆ˜์ž…๋‹ˆ๋‹ค.

settings.replicaSetId

์œ ํ˜•: ObjectId

๋ณต์ œ๋ณธ ์„ธํŠธ์™€ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ณ  rs.initiate() ๋˜๋Š” replSetInitiate ๋™์•ˆ ์ž๋™์œผ๋กœ ์ƒ์„ฑ๋œ ObjectId์ž…๋‹ˆ๋‹ค. replicaSetId๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

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

์ฐธ์กฐ