๋ฌธ์„œ ๋ฉ”๋‰ด
๋ฌธ์„œ ํ™ˆ
/
MongoDB Atlas
/ /

์ฟผ๋ฆฌ ๊ฐ€๋Šฅํ•œ ๋ ˆ๊ฑฐ์‹œ ๋ฐฑ์—…์—์„œ ์ปฌ๋ ‰์…˜ ๋ณต์›ํ•˜๊ธฐ

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

  • ์ „์ œ ์กฐ๊ฑด
  • ์ ˆ์ฐจ

์ค‘์š”

๋ ˆ๊ฑฐ์‹œ ๋ฐฑ์—… ์‚ฌ์šฉ ์ค‘๋‹จ

2020๋…„ 3์›” 23์ผ๋ถ€ํ„ฐ ๋ชจ๋“  ์ƒˆ ํด๋Ÿฌ์Šคํ„ฐ๋Š” Cloud Backup ๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

5.0์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œํ•˜๋ฉด ํ˜„์žฌ ๋ ˆ๊ฑฐ์‹œ ๋ฐฑ์—…์œผ๋กœ ์„ค์ •๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ ๋ฐฑ์—… ์‹œ์Šคํ…œ์ด ํด๋ผ์šฐ๋“œ ๋ฐฑ์—…์œผ๋กœ ์—…๊ทธ๋ ˆ์ด๋“œ๋ฉ๋‹ˆ๋‹ค. ์ด ์—…๊ทธ๋ ˆ์ด๋“œ ํ›„ ๋‹ค์Œ ์‚ฌํ•ญ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Atlas๋Š” ๋ ˆ๊ฑฐ์‹œ ๋ฐฑ์—… ์Šค๋ƒ…์ƒท์„ ์ฟผ๋ฆฌํ•˜์—ฌ collection ๋ณต์›์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

์ฟผ๋ฆฌ ๊ฐ€๋Šฅ ๋ฐฑ์—… ์Šค๋ƒ…์ƒท ์„ ์‚ฌ์šฉํ•˜์—ฌ collection์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด๋ณด๋‚ด๊ณ  ๋Œ€์ƒ ๋ฐฐํฌ๋กœ ๋ณต์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ ์ ˆ์ฐจ๋Š” Atlas์—์„œ ์ œ๊ณตํ•˜๋Š” ํ„ฐ๋„์„ ํ†ตํ•ด ์ฟผ๋ฆฌ ๊ฐ€๋Šฅ ๋ฐฑ์—… ์ธ์Šคํ„ด์Šค์— ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

์ฐธ๊ณ 

๋ณต์› ์ค‘์—๋Š” ๋Œ€์ƒ Atlas cluster๊ฐ€ ํด๋ผ์ด์–ธํŠธ ์š”์ฒญ์„ ์ˆ˜์‹ ํ•˜์ง€ ์•Š๋Š”์ง€ ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • ๋™์ผํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ๋ณต์›ํ•˜๋ ค๋ฉด ๋ณต์› ์ค‘์— ํด๋ผ์ด์–ธํŠธ ์ž‘์—…์„ ์ค‘์ง€ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

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

1
  1. ์ด๋ฏธ ํ‘œ์‹œ๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ ํƒ์ƒ‰ ๋ชจ์Œ์˜ Organizations ๋ฉ”๋‰ด์—์„œ ์›ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๊ฐ€ ํฌํ•จ๋œ ์กฐ์ง์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  2. ์ด๋ฏธ ํ‘œ์‹œ๋˜์–ด ์žˆ์ง€ ์•Š์€ ๊ฒฝ์šฐ Project ํƒ์ƒ‰ ๋ชจ์Œ์˜ ํ”„๋กœ์ ํŠธ ๋ฉ”๋‰ด์—์„œ ์›ํ•˜๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  3. ์‚ฌ์ด๋“œ๋ฐ”์—์„œ Legacy Backup๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

2

Legacy Backup ํŽ˜์ด์ง€์˜ Overview ํƒญ์—๋Š” ํ”„๋กœ์ ํŠธ์˜ cluster๊ฐ€ ๋‚˜์—ด๋ฉ๋‹ˆ๋‹ค.

  • cluster์— ๋Œ€ํ•ด ๋ฐฑ์—…์ด ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ Status ์€ Active ์ž…๋‹ˆ๋‹ค.

  • cluster์— ๋Œ€ํ•œ ๋ฐฑ์—…์ด ๋น„ํ™œ์„ฑํ™”๋œ ๊ฒฝ์šฐ Status ์€ Inactive ์ž…๋‹ˆ๋‹ค.

๋ฐฑ์—…์„ ์ฟผ๋ฆฌํ•˜๋ ค๋Š” ๋ฐฐํฌ์„œ๋ฒ„์˜ ๊ฒฝ์šฐ Options ์—ด์˜ ์ค„์ž„ํ‘œ๋ฅผ ํด๋ฆญํ•˜๊ณ  Query ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

View All Snapshots ์„ ํด๋ฆญํ•˜์—ฌ ์Šค๋ƒ…์ƒท์„ ๋ณด๊ณ  ์›ํ•˜๋Š” ์Šค๋ƒ…์ƒท์˜ Actions ์—ด ์•„๋ž˜์—์„œ Query ์„ ํด๋ฆญํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

3
  1. ์ฟผ๋ฆฌํ•  ์Šค๋ƒ…์ƒท์„ ์„ ํƒํ•˜๊ณ  Next์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  2. Start ์Šค๋ƒ…์ƒท์„ ์ฟผ๋ฆฌํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์ž…๋‹ˆ๋‹ค. Atlas ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ์ž…๋ ฅํ•˜๋ผ๋Š” ๋ฉ”์‹œ์ง€๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.

  3. ์ฟผ๋ฆฌ ๊ฐ€๋Šฅ ์Šค๋ƒ…์ƒท์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ ๋ฉ”์„œ๋“œ๋กœ Backup Tunnel์„(๋ฅผ) ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  4. Platform ์„(๋ฅผ) ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  5. Download Backup Tunnel๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  6. ๋‹ค์šด๋กœ๋“œํ•œ ํŒŒ์ผ์˜ ์••์ถ•์„ ํ’‰๋‹ˆ๋‹ค.

  7. ํ„ฐ๋ฏธ๋„ ๋˜๋Š” ๋ช…๋ น ํ”„๋กฌํ”„ํŠธ๋ฅผ ์—ด๊ณ  ์••์ถ•๋˜์ง€ ์•Š์€ <tunnel> ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค. ์‹คํ–‰ ํŒŒ์ผ์„ ์‹คํ–‰ํ•˜์—ฌ ํ„ฐ๋„์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

    ํ„ฐ๋„์˜ ๊ธฐ๋ณธ ํฌํŠธ๋Š” 27017์ž…๋‹ˆ๋‹ค. ํฌํŠธ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ ค๋ฉด ๋‹ค์Œ ์˜ˆ์™€ ๊ฐ™์ด --local ํ”Œ๋ž˜๊ทธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    ./<tunnel executable> --local localhost:27020

    ์ฐธ๊ณ 

    ํฌํŠธ๋ฅผ ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒฝ์šฐ์—๋Š” ์—ฐ๊ฒฐ ์‹œ ํฌํŠธ ์ •๋ณด๋ฅผ ๋ฐ˜๋“œ์‹œ ํฌํ•จ์‹œ์ผœ์•ผ ํ•ฉ๋‹ˆ๋‹ค.

4
collection์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚ด๋ณด๋‚ด๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

ํ„ฐ๋„์— ์—ฐ๊ฒฐํ•˜๋ ค๋ฉด ๋‹ค์Œ ์˜ต์…˜์„ ํฌํ•จํ•˜์„ธ์š”.

  • --port ํ„ฐ๋„์˜ ํฌํŠธ๋กœ ์„ค์ •

  • --db ๋‚ด๋ณด๋‚ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ด๋ฆ„์œผ๋กœ ์„ค์ •

  • --collection ๋‚ด๋ณด๋‚ผ collection์˜ ์ด๋ฆ„์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

  • --out ๋ฅผ ๋นˆ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ์„ค์ •ํ•˜์—ฌ ๋ฐ์ดํ„ฐ ๋คํ”„๋ฅผ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

    ์ค‘์š”

    mongodump ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ง€์ •๋œ ๋””๋ ‰ํ† ๋ฆฌ์— ์“ธ ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

mongodump --port <port for tunnel> --db <single-database> --collection <collection-name> --out <data-dump-path>

์˜ˆ๋ฅผ ๋“ค์–ด, 27020 ํฌํŠธ์—์„œ ์‹คํ–‰ ์ค‘์ธ ํ„ฐ๋„์— ์—ฐ๊ฒฐํ•˜์—ฌ restaurants collection์˜ ๋ฐ์ดํ„ฐ๋ฅผ test ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ /mydata/restoredata/ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋คํ”„ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

mongodump --port 27020 --db test --collection restaurants --out /mydata/restoredata/

mongodump ์€ restaurants ์ปฌ๋ ‰์…˜ ๋ฐ์ดํ„ฐ๋ฅผ /mydata/restoredata/test/restaurants.bson ํŒŒ์ผ๋กœ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค.

5
๋‹จ์ผ collection์„ ๋ณต์›ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ mongorestore ์˜ต์…˜์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค:

์ฐธ๊ณ 

Atlas cluster๋กœ ๋ณต์›ํ•˜๋ ค๋ฉด --uri ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ DNS ์‹œ๋“œ ๋ชฉ๋ก์— ์—ฐ๊ฒฐํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

  • --uri ๋Œ€์ƒ cluster์— ๋Œ€ํ•œ ์—ฐ๊ฒฐ ๋ฌธ์ž์—ด๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

  • --db ๋ฅผ ๋Œ€์ƒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ด๋ฆ„์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

  • --collection ๋Œ€์ƒ collection์˜ ์ด๋ฆ„์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

์„ ํƒ์ ์œผ๋กœ, collection์ด ์ด๋ฏธ ์กด์žฌํ•˜๋Š” ๊ฒฝ์šฐ ๋Œ€์ƒ cluster์—์„œ collection์„ ์‚ญ์ œํ•˜๋Š” --drop ์˜ต์…˜์„ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

mongorestore --uri "mongodb+srv://username:password@cluster0.example.mongodb.net" --db <destination-database> --collection <destination-collection> <data-dump-path/dbname/collection.bson> --drop

์˜ˆ๋ฅผ ๋“ค์–ด /mydata/restoredata/test/restaurants.bson ๋ฐ์ดํ„ฐ ํŒŒ์ผ์—์„œ test2 ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒˆ ์ปฌ๋ ‰์…˜ rest2 ๋กœ ๋ณต์›ํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ํ•˜์„ธ์š”:

mongorestore --uri "mongodb+srv://username:password@cluster0.example.mongodb.net" --db test2 --collection rest2 /mydata/restoredata/test/restaurants.bson --drop
6

์ž‘์—…์„ ์™„๋ฃŒํ•˜๋ฉด ์ฟผ๋ฆฌ ๊ฐ€๋Šฅํ•œ ์ธ์Šคํ„ด์Šค๋ฅผ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ์™ผ์ชฝ ํƒ์ƒ‰ ์ฐฝ์—์„œ Backup ์„ ํด๋ฆญํ•˜๊ณ  Restores & Downloads ํƒญ์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  2. ๋Œ€์ƒ ๋ฐฐํฌ์„œ๋ฒ„ ํ•ญ๋ชฉ์˜ Status ์—ด ์œ„๋กœ ๋งˆ์šฐ์Šค๋ฅผ ๊ฐ€์ ธ๊ฐ„ ๋‹ค์Œ Cancel ์„(๋ฅผ) ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  3. Cancel Restore Job๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

7

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋‹ค์‹œ ์‹œ์ž‘ํ•˜๊ณ  ์ƒˆ ๋Œ€์ƒ cluster๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

โ†ย ์ฟผ๋ฆฌ ๊ฐ€๋Šฅ ๋ ˆ๊ฑฐ์‹œ ๋ฐฑ์—…์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ณต์›

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