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

ํ…Œ์ŠคํŠธ ๋ฐ ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ์ž์ฒด ๊ด€๋ฆฌํ˜• ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฐฐํฌ

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

  • ๊ฐœ์š”
  • ์š”๊ตฌ ์‚ฌํ•ญ:
  • ๊ณ ๋ ค ์‚ฌํ•ญ
  • ์ ˆ์ฐจ

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

์ด ํŠœํ† ๋ฆฌ์–ผ์—์„œ๋Š” ์•ก์„ธ์Šค ์ œ์–ด mongod ๊ฐ€ ๋น„ํ™œ์„ฑํ™”๋œ ์ƒํƒœ์—์„œ ์‹คํ–‰ ์ค‘์ธ 3๊ฐœ์˜ ๊ธฐ์กด ์ธ์Šคํ„ด์Šค์—์„œ 3๋ช…์˜ ๋ฉค๋ฒ„๋กœ ๊ตฌ์„ฑ๋œ ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์•ก์„ธ์Šค ์ œ์–ด๊ฐ€ ํ™œ์„ฑํ™”๋œ ๋ณต์ œ๋ณธ ์„ธํŠธ๋ฅผ ๋ฐฐํฌํ•˜๋ ค๋ฉด ํ‚ค ํŒŒ์ผ ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ž์ฒด ๊ด€๋ฆฌํ˜• ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฐฐํฌ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ๋‹จ์ผ MongoDB ์ธ์Šคํ„ด์Šค์—์„œ ๋ณต์ œ๋ณธ ์„ธํŠธ๋ฅผ ๋ฐฐํฌํ•˜๋ ค๋ฉด ๋…๋ฆฝํ˜• ์ž์ฒด ๊ด€๋ฆฌ mongod๋ฅผ ๋ณต์ œ๋ณธ ์„ธํŠธ๋กœ ๋ณ€ํ™˜์„ ์ฐธ์กฐํ•˜์„ธ์š”. ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฐฐํฌ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ณต์ œ ๋ฐ ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฐฐํฌ ์•„ํ‚คํ…์ฒ˜ ๋ฌธ์„œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

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

ํ…Œ์ŠคํŠธ ๋ฐ ๊ฐœ๋ฐœ ์‹œ์Šคํ…œ์˜ ๊ฒฝ์šฐ ๋กœ์ปฌ ์‹œ์Šคํ…œ ๋˜๋Š” ๊ฐ€์ƒ ์ธ์Šคํ„ด์Šค ๋‚ด์—์„œ mongod ์ธ์Šคํ„ด์Šค๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ณต์ œ๋ณธ ์„ธํŠธ๋ฅผ ๋ฐฐํฌํ•˜๋ ค๋ฉด ๋จผ์ € ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ์ผ๋ถ€๊ฐ€ ๋  ๊ฐ ์‹œ์Šคํ…œ์— MongoDB๋ฅผ ์„ค์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. MongoDB๋ฅผ ์•„์ง ์„ค์น˜ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์„ค์น˜ ํŠœํ† ๋ฆฌ์–ผ์„ ์ฐธ์กฐํ•˜์„ธ์š”.

๊ฐ ๋ฉค๋ฒ„๋Š” ๋‹ค๋ฅธ ๋ชจ๋“  ๋ฉค๋ฒ„์™€ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์—ฐ๊ฒฐ์„ ํ™•์ธํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ง€์นจ์€ ๋ชจ๋“  ๊ตฌ์„ฑ์› ๊ฐ„์˜ ์—ฐ๊ฒฐ ํ…Œ์ŠคํŠธ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ค‘์š”

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

IP ์ฃผ์†Œ ๋Œ€์‹  ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์—ฌ ์Šคํ”Œ๋ฆฟ ๋„คํŠธ์›Œํฌ ํ˜ธ๋ผ์ด์ฆŒ ์ „๋ฐ˜์— ๊ฑธ์ณ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์„ฑํ•˜์„ธ์š”. MongoDB 5.0๋ถ€ํ„ฐ IP ์ฃผ์†Œ๋กœ๋งŒ ๊ตฌ์„ฑ๋œ ๋…ธ๋“œ๋Š” ์Šคํƒ€ํŠธ์—… ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์— ์‹คํŒจํ•˜๋ฉฐ ์‹œ์ž‘๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฒฝ๊ณ 

๋กœ์ปฌ ํ˜ธ์ŠคํŠธ๊ฐ€ ์•„๋‹Œ ์— ๋ฐ”์ธ๋”ฉํ•˜๊ธฐ ์ „์—(์˜ˆ: ๊ณต๊ฐœ์ ์œผ๋กœ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š”) IP ์ฃผ์†Œ ์ธ ๊ฒฝ์šฐ ๋ฌด๋‹จ ์•ก์„ธ์Šค ๋กœ๋ถ€ํ„ฐ ํด๋Ÿฌ์Šคํ„ฐ ๋ฅผ ๋ณดํ˜ธํ–ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋ณด์•ˆ ๊ถŒ์žฅ ์‚ฌํ•ญ์˜ ์ „์ฒด ๋ชฉ๋ก์€ ์ž์ฒด ๊ด€๋ฆฌ ๋ฐฐํฌ์„œ๋ฒ„๋ฅผ ์œ„ํ•œ ๋ณด์•ˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ์ตœ์†Œํ•œ ์ธ์ฆ ์„ ํ™œ์„ฑํ™” ํ•˜๊ณ  ๋„คํŠธ์›Œํฌ ์ธํ”„๋ผ๋ฅผ ๊ฐ•ํ™”ํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜์„ธ์š”.

2} ๋ฐmongod MongoDB mongos ๋ฐ”์ด๋„ˆ๋ฆฌ๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ์— ๋ฐ”์ธ๋”ฉ๋ฉ๋‹ˆ๋‹ค. ๋ฐ”์ด๋„ˆ๋ฆฌ์— ๋Œ€ํ•ด net.ipv6 ๊ตฌ์„ฑ ํŒŒ์ผ ์„ค์ • ๋˜๋Š” --ipv6 ๋ช…๋ น์ค„ ์˜ต์…˜์ด ์„ค์ •๋˜์–ด ์žˆ์œผ๋ฉด ๋ฐ”์ด๋„ˆ๋ฆฌ๊ฐ€ ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ IPv6 ์ฃผ์†Œ์— ์ถ”๊ฐ€์ ์œผ๋กœ ๋ฐ”์ธ๋”ฉ๋ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ์— ๋ฐ”์ธ๋”ฉ๋œ mongod ๋ฐ mongos๋Š” ๋™์ผํ•œ ์ปดํ“จํ„ฐ์—์„œ ์‹คํ–‰ ์ค‘์ธ ํด๋ผ์ด์–ธํŠธ์˜ ์—ฐ๊ฒฐ๋งŒ ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐ”์ธ๋”ฉ ๋™์ž‘์—๋Š” mongosh ๋ฐ ๋ณต์ œ๋ณธ ์ง‘ํ•ฉ ๋˜๋Š” ์ƒค๋”ฉ๋œ ํด๋Ÿฌ์Šคํ„ฐ์˜ ๋‹ค๋ฅธ ๋ฉค๋ฒ„๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ์›๊ฒฉ ํด๋ผ์ด์–ธํŠธ๋Š” ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ์—๋งŒ ๋ฐ”์ธ๋”ฉ๋œ ๋ฐ”์ด๋„ˆ๋ฆฌ์—๋Š” ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๊ธฐ๋ณธ ๋ฐ”์ธ๋”ฉ์„ ์žฌ์ •์˜ํ•˜๊ณ  ๋‹ค๋ฅธ IP ์ฃผ์†Œ์— ๋ฐ”์ธ๋”ฉํ•˜๋ ค๋ฉด net.bindIp ๊ตฌ์„ฑ ํŒŒ์ผ ์„ค์ • ๋˜๋Š” --bind_ip ๋ช…๋ น์ค„ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ๋˜๋Š” IP ์ฃผ์†Œ ๋ชฉ๋ก์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

๊ฒฝ๊ณ 

MongDB ๋ถ€ํ„ฐ 5.0 ์‹œ์ž‘, ๋ถ„ํ•  ์ˆ˜ํ‰ DNS IP ์ฃผ์†Œ๋กœ๋งŒ ๊ตฌ์„ฑ๋œ ๋…ธ๋“œ๋Š” ์‹œ์ž‘ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์— ์‹คํŒจํ•˜๊ณ  ์˜ค๋ฅ˜๋ฅผ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค. disableSplitHorizonIPCheck ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

์˜ˆ๋ฅผ ๋“ค์–ด ๋‹ค์Œ mongod ์ธ์Šคํ„ด์Šค๋Š” ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ์™€ IP ์ฃผ์†Œ 198.51.100.1 ์™€ ์—ฐ๊ฒฐ๋œ ํ˜ธ์ŠคํŠธ๋ช… My-Example-Associated-Hostname์— ๋ชจ๋‘ ๋ฐ”์ธ๋”ฉ๋ฉ๋‹ˆ๋‹ค.

mongod --bind_ip localhost,My-Example-Associated-Hostname

์ด ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ์›๊ฒฉ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„ ๋˜๋Š” ๊ด€๋ จ IP ์ฃผ์†Œ 198.51.100.1๋ฅผ ์ง€์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

mongosh --host My-Example-Associated-Hostname
mongosh --host 198.51.100.1

์ด ํ…Œ์ŠคํŠธ ๋ฐฐํฌ์—์„œ๋Š” ์„ธ ๋ฉค๋ฒ„๊ฐ€ ๋™์ผํ•œ ๋จธ์‹ ์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

์ค‘์š”

์ด ์ง€์นจ์€ ํ…Œ์ŠคํŠธ ๋˜๋Š” ๊ฐœ๋ฐœ ๋ฐฐํฌ์—๋งŒ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ด ์ ˆ์ฐจ์˜ ์˜ˆ์—์„œ๋Š” rs0์ด๋ผ๋Š” ์ƒˆ ๋ณต์ œ๋ณธ ์„ธํŠธ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด 2๊ฐœ ์ด์ƒ์˜ ๋ณต์ œ๋ณธ ์„ธํŠธ์— ์—ฐ๊ฒฐ๋œ ๊ฒฝ์šฐ ๊ฐ ์„ธํŠธ์˜ ์ด๋ฆ„์ด ๋‹ฌ๋ผ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ถ€ ๋“œ๋ผ์ด๋ฒ„๋Š” ๋ณต์ œ๋ณธ ์„ธํŠธ ์ด๋ฆ„์œผ๋กœ ๋ณต์ œ๋ณธ ์„ธํŠธ ์—ฐ๊ฒฐ์„ ๊ทธ๋ฃนํ™”ํ•ฉ๋‹ˆ๋‹ค.

์ค‘์š”

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

IP ์ฃผ์†Œ ๋Œ€์‹  ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์—ฌ ์Šคํ”Œ๋ฆฟ ๋„คํŠธ์›Œํฌ ํ˜ธ๋ผ์ด์ฆŒ ์ „๋ฐ˜์— ๊ฑธ์ณ ํด๋Ÿฌ์Šคํ„ฐ๋ฅผ ๊ตฌ์„ฑํ•˜์„ธ์š”. MongoDB 5.0๋ถ€ํ„ฐ IP ์ฃผ์†Œ๋กœ๋งŒ ๊ตฌ์„ฑ๋œ ๋…ธ๋“œ๋Š” ์Šคํƒ€ํŠธ์—… ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์— ์‹คํŒจํ•˜๋ฉฐ ์‹œ์ž‘๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

  1. ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ๊ฐ ๋ฉค๋ฒ„์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.

    mkdir -p /srv/mongodb/rs0-0 /srv/mongodb/rs0-1 /srv/mongodb/rs0-2

    ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ธ์Šคํ„ด์Šค์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํŒŒ์ผ์ด ๋“ค์–ด ์žˆ๋Š” 'rs0-0', 'rs0-1', 'rs0-2'๋ผ๋Š” ๋””๋ ‰ํ† ๋ฆฌ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

  2. ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ์ž์ฒด ์…ธ ์ฐฝ์—์„œ mongod ์ธ์Šคํ„ด์Šค๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

    ๊ฒฝ๊ณ 

    ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ๊ฐ€ ์•„๋‹Œ ์— ๋ฐ”์ธ๋”ฉํ•˜๊ธฐ ์ „์—(์˜ˆ: ๊ณต๊ฐœ์ ์œผ๋กœ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š”) IP ์ฃผ์†Œ ์ธ ๊ฒฝ์šฐ ๋ฌด๋‹จ ์•ก์„ธ์Šค ๋กœ๋ถ€ํ„ฐ ํด๋Ÿฌ์Šคํ„ฐ ๋ฅผ ๋ณดํ˜ธํ–ˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋ณด์•ˆ ๊ถŒ์žฅ ์‚ฌํ•ญ์˜ ์ „์ฒด ๋ชฉ๋ก์€ ์ž์ฒด ๊ด€๋ฆฌ ๋ฐฐํฌ์„œ๋ฒ„๋ฅผ ์œ„ํ•œ ๋ณด์•ˆ ์ฒดํฌ๋ฆฌ์ŠคํŠธ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ์ตœ์†Œํ•œ ์ธ์ฆ ์„ ํ™œ์„ฑํ™” ํ•˜๊ณ  ๋„คํŠธ์›Œํฌ ์ธํ”„๋ผ๋ฅผ ๊ฐ•ํ™”ํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜์„ธ์š”.

    ์ฒซ ๋ฒˆ์งธ ๋ฉค๋ฒ„:

    mongod --replSet rs0 --port 27017 --bind_ip localhost,<hostname(s)|ip address(es)> --dbpath /srv/mongodb/rs0-0 --oplogSize 128

    ๋‘ ๋ฒˆ์งธ ๋ฉค๋ฒ„:

    mongod --replSet rs0 --port 27018 --bind_ip localhost,<hostname(s)|ip address(es)> --dbpath /srv/mongodb/rs0-1 --oplogSize 128

    ์„ธ ๋ฒˆ์งธ ๋ฉค๋ฒ„:

    mongod --replSet rs0 --port 27019 --bind_ip localhost,<hostname(s)|ip address(es)> --dbpath /srv/mongodb/rs0-2 --oplogSize 128

    ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๊ฐ ์ธ์Šคํ„ด์Šค๊ฐ€ rs0์ด๋ผ๋Š” ์ด๋ฆ„์˜ ๋ณต์ œ๋ณธ ์„ธํŠธ ๋ฉค๋ฒ„๋กœ ์‹œ์ž‘๋˜๋ฉฐ, ๊ฐ๊ฐ ๊ณ ์œ ํ•œ ํฌํŠธ์—์„œ ์‹คํ–‰๋˜๊ณ  --dbpath ์„ค์ •์œผ๋กœ ๋ฐ์ดํ„ฐ ๋””๋ ‰ํ† ๋ฆฌ ๊ฒฝ๋กœ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์ œ์•ˆ๋œ ํฌํŠธ๋ฅผ ์ด๋ฏธ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ๊ฒฝ์šฐ ๋‹ค๋ฅธ ํฌํŠธ๋ฅผ ์„ ํƒํ•˜์„ธ์š”.

    ์ธ์Šคํ„ด์Šค๋Š” ๋กœ์ปฌ ํ˜ธ์ŠคํŠธ์™€ ํ˜ธ์ŠคํŠธ์˜ IP ์ฃผ์†Œ ๋ชจ๋‘์— ๋ฐ”์ธ๋”ฉ๋ฉ๋‹ˆ๋‹ค.

    --oplogSize ์„ค์ •์€ ๊ฐ mongod ์ธ์Šคํ„ด์Šค๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋””์Šคํฌ ๊ณต๊ฐ„์„ ์ค„์ž…๋‹ˆ๋‹ค. [1] ์ด๋Š” ๋จธ์‹ ์˜ ๊ณผ๋ถ€ํ•˜๋ฅผ ๋ฐฉ์ง€ํ•˜๋ฏ€๋กœ ํ…Œ์ŠคํŠธ ๋ฐ ๊ฐœ๋ฐœ ๋ฐฐํฌ์— ์ด์ƒ์ ์ž…๋‹ˆ๋‹ค. ์ด ๊ตฌ์„ฑ ์˜ต์…˜๊ณผ ๋‹ค๋ฅธ ๊ตฌ์„ฑ ์˜ต์…˜์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์ž์ฒด ๊ด€๋ฆฌํ˜• ๊ตฌ์„ฑ ํŒŒ์ผ ์˜ต์…˜์„ ์ฐธ์กฐํ•˜์„ธ์š”.

  3. mongosh๋ฅผ ํ†ตํ•ด mongod ์ธ์Šคํ„ด์Šค ์ค‘ ํ•˜๋‚˜์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ํฌํŠธ ๋ฒˆํ˜ธ๋ฅผ ์ง€์ •ํ•˜์—ฌ ์–ด๋–ค ์ธ์Šคํ„ด์Šค์ธ์ง€ ํ‘œ์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹จ์ˆœ์„ฑ๊ณผ ๋ช…ํ™•์„ฑ์„ ์œ„ํ•ด ๋‹ค์Œ ๋ช…๋ น๊ณผ ๊ฐ™์ด ์ฒซ ๋ฒˆ์งธ ํ•ญ๋ชฉ์„ ์„ ํƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    mongosh --port 27017
  4. mongosh์—์„œ rs.initiate()๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ณต์ œ๋ณธ ์„ธํŠธ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์˜ˆ์‹œ์™€ ๊ฐ™์ด mongosh ํ™˜๊ฒฝ์—์„œ ๋ณต์ œ๋ณธ ์„ธํŠธ ๊ตฌ์„ฑ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    rsconf = {
    _id: "rs0",
    members: [
    {
    _id: 0,
    host: "<hostname>:27017"
    },
    {
    _id: 1,
    host: "<hostname>:27018"
    },
    {
    _id: 2,
    host: "<hostname>:27019"
    }
    ]
    }

    <hostname>์„ ์‹œ์Šคํ…œ์˜ ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์œผ๋กœ ๋ฐ”๊พผ ๋‹ค์Œ, ๋‹ค์Œ๊ณผ ๊ฐ™์ด rsconf ํŒŒ์ผ์„ rs.initiate()์— ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค.

    rs.initiate( rsconf )
  5. ๋‹ค์Œ ๋ช…๋ น์„ ์‹คํ–‰ํ•˜์—ฌ ํ˜„์žฌ ๋ณต์ œ๋ณธ ๊ตฌ์„ฑ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

    rs.conf()

    ๋ณต์ œ๋ณธ ์„ธํŠธ ๊ตฌ์„ฑ ๊ฐ์ฒด๋Š” ๋‹ค์Œ๊ณผ ์œ ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

    {
    "_id" : "rs0",
    "version" : 1,
    "protocolVersion" : NumberLong(1),
    "members" : [
    {
    "_id" : 0,
    "host" : "<hostname>:27017",
    "arbiterOnly" : false,
    "buildIndexes" : true,
    "hidden" : false,
    "priority" : 1,
    "tags" : {
    },
    "secondaryDelaySecs" : NumberLong(0),
    "votes" : 1
    },
    {
    "_id" : 1,
    "host" : "<hostname>:27018",
    "arbiterOnly" : false,
    "buildIndexes" : true,
    "hidden" : false,
    "priority" : 1,
    "tags" : {
    },
    "secondaryDelaySecs" : NumberLong(0),
    "votes" : 1
    },
    {
    "_id" : 2,
    "host" : "<hostname>:27019",
    "arbiterOnly" : false,
    "buildIndexes" : true,
    "hidden" : false,
    "priority" : 1,
    "tags" : {
    },
    "secondaryDelaySecs" : NumberLong(0),
    "votes" : 1
    }
    ],
    "settings" : {
    "chainingAllowed" : true,
    "heartbeatIntervalMillis" : 2000,
    "heartbeatTimeoutSecs" : 10,
    "electionTimeoutMillis" : 10000,
    "catchUpTimeoutMillis" : -1,
    "getLastErrorModes" : {
    },
    "getLastErrorDefaults" : {
    "w" : 1,
    "wtimeout" : 0
    },
    "replicaSetId" : ObjectId("598f630adc9053c6ee6d5f38")
    }
    }

rs.status() ์ž‘์—…์„ ์‚ฌ์šฉํ•˜์—ฌ ์–ธ์ œ๋“ ์ง€ ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ์ƒํƒœ๋ฅผ ํ™•์ธํ•˜์„ธ์š”.

ํŒ

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

์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์Œ ์…ธ ํ•จ์ˆ˜์— ๋Œ€ํ•œ ์„ค๋ช…์„œ์—์„œ ํ™•์ธํ•˜์„ธ์š”.

์ž๋™ ๊ตฌ์„ฑ๋˜๋Š” ๊ธฐ๋ณธ ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ์˜ˆ๋กœ ๊ฐ„๋‹จํ•œ ์„ค์ • ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ณ ๋ คํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

MongoDB์˜ ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ ์‹œ๋งจํ‹ฑ์— ๊ด€ํ•œ ์ž์„ธํ•œ ์„ค๋ช…์€ ๋ณต์ œ๋ณธ ์„ธํŠธ ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ ์‹œ๋งจํ‹ฑ์—์„œ ํ™•์ธํ•˜์„ธ์š”.

[1] 2}๊ฐ€ ์‚ญ์ œ๋˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด oplog๊ฐ€ ๊ตฌ์„ฑ๋œ ํฌ๊ธฐ ์ œํ•œ์„ ์ดˆ๊ณผํ•˜์—ฌ ์ปค์งˆ ์ˆ˜ majority commit point ์žˆ์Šต๋‹ˆ๋‹ค.

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

๋ฉค๋ฒ„ ๊ต์ฒด