Docs Menu

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

๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ๋…ธ๋“œ๋Š” ๋‹ค์Œ ์ ˆ์ฐจ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ œ๊ฑฐ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  1. ์ œ๊ฑฐํ•˜๋ ค๋Š” ๋ฉค๋ฒ„์˜ mongod ์ธ์Šคํ„ด์Šค๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค๋ฅผ ์ข…๋ฃŒํ•˜๋ ค๋ฉด https://www.mongodb.com/ko-kr/docs/mongodb-shell/#mongodb-binary-bin.mongosh๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ๊ฒฐํ•˜๊ณ  db.shutdownServer() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  2. ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ํ˜„์žฌ ํ”„๋ผ์ด๋จธ๋ฆฌ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ํ”„๋ผ์ด๋จธ๋ฆฌ๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ๋ฌด์ž‘์œ„ ๋ฉค๋ฒ„์— ์—ฐ๊ฒฐ๋œ ์ƒํƒœ์—์„œ db.hello()๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  3. ๋‹ค์Œ ์–‘์‹ ์ค‘ rs.remove()๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉค๋ฒ„๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

    rs.remove("mongod3.example.net:27017")
    rs.remove("mongod3.example.net")

    ๋ณต์ œ๋ณธ ์„ธํŠธ์—์„œ ์ƒˆ ํ”„๋ผ์ด๋จธ๋ฆฌ๋ฅผ ์„ ํƒํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ MongoDB๋Š” ์…ธ ์—ฐ๊ฒฐ์„ ์ž ์‹œ ํ•ด์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ ์…ธ์ด ์ž๋™์œผ๋กœ ๋‹ค์‹œ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค. ๋ช…๋ น์ด ์„ฑ๊ณตํ•˜๋”๋ผ๋„ ์…ธ์— DBClientCursor::init call() failed ์˜ค๋ฅ˜๊ฐ€ ํ‘œ์‹œ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

rs.reconfig()๋Š” ํ•œ ๋ฒˆ์— ์ตœ๋Œ€ 1 voting๊ฐœ ์ดํ•˜์˜ ๋ฉค๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณต์ œ๋ณธ ์„ธํŠธ์—์„œ ์—ฌ๋Ÿฌ ํˆฌํ‘œ ๋ฉค๋ฒ„๋ฅผ ์ œ๊ฑฐํ•˜๋ ค๋ฉด rs.reconfig() ์ž‘์—…์„ ์‹คํ–‰ํ•˜์—ฌ ํ•œ ๋ฒˆ์— ๋ฉค๋ฒ„๋ฅผ ํ•˜๋‚˜์”ฉ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ์žฌ๊ตฌ์„ฑ ์‹œ ํ•œ ๋ฒˆ์— ํ•˜๋‚˜ ์ดํ•˜์˜ ํˆฌํ‘œ ๋ฉค๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ•˜๊ฑฐ๋‚˜ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Œ์—์„œ ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

  1. ์ œ๊ฑฐํ•˜๋ ค๋Š” ๋ฉค๋ฒ„์˜ mongod ์ธ์Šคํ„ด์Šค๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค. ์ธ์Šคํ„ด์Šค๋ฅผ ์ข…๋ฃŒํ•˜๋ ค๋ฉด mongosh๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์—ฐ๊ฒฐํ•˜๊ณ  db.shutdownServer() ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  2. ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ํ˜„์žฌ ํ”„๋ผ์ด๋จธ๋ฆฌ์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ํ˜„์žฌ ํ”„๋ผ์ด๋จธ๋ฆฌ๋ฅผ ํ™•์ธํ•˜๋ ค๋ฉด ๋ณต์ œ๋ณธ ์„ธํŠธ์˜ ๋ฌด์ž‘์œ„ ๋ฉค๋ฒ„์— ์—ฐ๊ฒฐ๋œ ์ƒํƒœ์—์„œ db.hello()๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  3. rs.conf() ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํ˜„์žฌ ๊ตฌ์„ฑ ๋ฌธ์„œ๋ฅผ ํ™•์ธํ•˜๊ณ  members ๋ฐฐ์—ด์—์„œ ์ œ๊ฑฐํ•  ๋ฉค๋ฒ„์˜ ์œ„์น˜๋ฅผ ๊ฒฐ์ •ํ•ฉ๋‹ˆ๋‹ค.

    ์˜ˆ์‹œ

    mongod_C.example.net ์€ ์•„๋ž˜ ๊ตฌ์„ฑ ํŒŒ์ผ์˜ 2 ์œ„์น˜์— ์žˆ์Šต๋‹ˆ๋‹ค.

    {
    "_id" : "rs",
    "version" : 7,
    "members" : [
    {
    "_id" : 0,
    "host" : "mongod_A.example.net:27017"
    },
    {
    "_id" : 1,
    "host" : "mongod_B.example.net:27017"
    },
    {
    "_id" : 2,
    "host" : "mongod_C.example.net:27017"
    }
    ]
    }
  4. ํ˜„์žฌ ๊ตฌ์„ฑ ๋ฌธ์„œ๋ฅผ cfg ๋ณ€์ˆ˜์— ํ• ๋‹นํ•ฉ๋‹ˆ๋‹ค.

    cfg = rs.conf()
  5. cfg ๊ฐ์ฒด๋ฅผ ์ˆ˜์ •ํ•˜์—ฌ ๋ฉค๋ฒ„๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค.

    ์˜ˆ์‹œ

    mongod_C.example.net:27017๋ฅผ ์ œ๊ฑฐํ•˜๋ ค๋ฉด ๋‹ค์Œ JavaScript ์ž‘์—…์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    cfg.members.splice(2,1)
  6. ๋‹ค์Œ์„ ์‹คํ–‰ํ•˜์—ฌ ๋ณต์ œ๋ณธ ์„ธํŠธ ๊ตฌ์„ฑ ๋ฌธ์„œ๋ฅผ ์ƒˆ ๊ตฌ์„ฑ์œผ๋กœ ๋ฎ์–ด์”๋‹ˆ๋‹ค.

    rs.reconfig(cfg)
  7. ์ƒˆ ๊ตฌ์„ฑ์„ ํ™•์ธํ•˜๋ ค๋ฉด rs.conf() ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

    ์œ„์˜ ์˜ˆ์—์„œ ์ถœ๋ ฅ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค:

    {
    "_id" : "rs",
    "version" : 8,
    "members" : [
    {
    "_id" : 0,
    "host" : "mongod_A.example.net:27017"
    },
    {
    "_id" : 1,
    "host" : "mongod_B.example.net:27017"
    }
    ]
    }