์ฟผ๋ฆฌ ๊ฐ๋ฅํ ๋ ๊ฑฐ์ ๋ฐฑ์ ์์ ์ปฌ๋ ์ ๋ณต์ํ๊ธฐ
์ด ํ์ด์ง์ ๋ด์ฉ
์ค์
๋ ๊ฑฐ์ ๋ฐฑ์ ์ฌ์ฉ ์ค๋จ
2020๋ 3์ 23์ผ๋ถํฐ ๋ชจ๋ ์ ํด๋ฌ์คํฐ๋ Cloud Backup ๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.
5.0์ผ๋ก ์ ๊ทธ๋ ์ด๋ํ๋ฉด ํ์ฌ ๋ ๊ฑฐ์ ๋ฐฑ์ ์ผ๋ก ์ค์ ๋์ด ์๋ ๊ฒฝ์ฐ ๋ฐฑ์ ์์คํ ์ด ํด๋ผ์ฐ๋ ๋ฐฑ์ ์ผ๋ก ์ ๊ทธ๋ ์ด๋๋ฉ๋๋ค. ์ด ์ ๊ทธ๋ ์ด๋ ํ ๋ค์ ์ฌํญ์ ํ์ธํ ์ ์์ต๋๋ค.
๊ธฐ์กด์ ๋ชจ๋ ๋ ๊ฑฐ์ ๋ฐฑ์ ์ค๋ ์ท์ ๊ณ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ฌ์ฉ์์ ๋ณด์ ์ ์ฑ ์ ๋ฐ๋ผ ์๊ฐ์ด ์ง๋๋ฉด ๋ง๋ฃ๋ฉ๋๋ค.
๋ฐฑ์ ์ ์ฑ ์ด ๊ธฐ๋ณธ ์ผ์ ์ผ๋ก ์ฌ์ค์ ๋ฉ๋๋ค. ๋ ๊ฑฐ์ ๋ฐฑ์ ์ ์ฌ์ฉ์ ์ง์ ๋ฐฑ์ ์ ์ฑ ์ ์ ์ฉํ ๊ฒฝ์ฐ Cloud Backup ์ค๋ช ์์ ์ค๋ช ๋ ์ ์ฐจ์ ๋ฐ๋ผ ๋ฐฑ์ ์ ์ฑ ์ ๋ค์ ์์ฑํด์ผ ํฉ๋๋ค.
Atlas๋ ๋ ๊ฑฐ์ ๋ฐฑ์ ์ค๋ ์ท์ ์ฟผ๋ฆฌํ์ฌ collection ๋ณต์์ ์ง์ํฉ๋๋ค.
์ค์
์ฟผ๋ฆฌ ๊ฐ๋ฅ ๋ฐฑ์ ์ค๋ ์ท ์ ์ฌ์ฉํ์ฌ collection์ ๋ฐ์ดํฐ๋ฅผ ๋ด๋ณด๋ด๊ณ ๋์ ๋ฐฐํฌ๋ก ๋ณต์ํ ์ ์์ต๋๋ค. ๋ค์ ์ ์ฐจ๋ Atlas์์ ์ ๊ณตํ๋ ํฐ๋์ ํตํด ์ฟผ๋ฆฌ ๊ฐ๋ฅ ๋ฐฑ์ ์ธ์คํด์ค์ ์ฐ๊ฒฐํฉ๋๋ค.
์ฐธ๊ณ
ํ Atlas cluster์์ ๋ค๋ฅธ Atlas cluster๋ก ๋ฐ์ดํฐ๋ฅผ ๋ณต์ํ๋ ค๋ฉด ์์ค ๋ฐ ๋์ cluster๊ฐ ํฌํจ๋ Atlas ํ๋ก์ ํธ์ ๋ํ Project Owner
์ญํ ์ด ์์ด์ผ ํฉ๋๋ค.
์ ์ ์กฐ๊ฑด
๋ณต์ ์ค ํด๋ผ์ด์ธํธ ์์
๋ณต์ ์ค์๋ ๋์ Atlas cluster๊ฐ ํด๋ผ์ด์ธํธ ์์ฒญ์ ์์ ํ์ง ์๋์ง ํ์ธํด์ผ ํฉ๋๋ค. ๋ค์ ์ฌ์ฉ ์ฌ๋ก๊ฐ ์ ์ฉ๋ฉ๋๋ค.
๋์ผํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ๋ณต์ํ๋ ค๋ฉด ๋ณต์ ์ค์ ํด๋ผ์ด์ธํธ ์์ ์ ์ค์งํด์ผ ํฉ๋๋ค.
๋ค๋ฅธ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ๋ณต์ํ๋ ค๋ ๊ฒฝ์ฐ ํด๋ผ์ด์ธํธ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์งํ ํ์๊ฐ ์์ต๋๋ค. ์ด ๊ฒฝ์ฐ ์ Atlas cluster๋ก ๋ณต์ํ๊ณ ์ ๋ฐฐํฌ๊ฐ ์คํ๋๋ฉด ํด๋น ์ cluster๋ฅผ ์ฌ์ฉํ๋๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
์ ์ฐจ
ํ๋ก์ ํธ์ Legacy Backup ํ์ด์ง๋ก .
์ด๋ฏธ ํ์๋์ด ์์ง ์์ ๊ฒฝ์ฐ ํ์ ๋ชจ์์ Organizations ๋ฉ๋ด์์ ์ํ๋ ํ๋ก์ ํธ๊ฐ ํฌํจ๋ ์กฐ์ง์ ์ ํํฉ๋๋ค.
์ด๋ฏธ ํ์๋์ด ์์ง ์์ ๊ฒฝ์ฐ Project ํ์ ๋ชจ์์ ํ๋ก์ ํธ ๋ฉ๋ด์์ ์ํ๋ ํ๋ก์ ํธ๋ฅผ ์ ํํฉ๋๋ค.
์ฌ์ด๋๋ฐ์์ Legacy Backup๋ฅผ ํด๋ฆญํฉ๋๋ค.
์ฟผ๋ฆฌํ ์ค๋ ์ท์ ์ ํํฉ๋๋ค.
Legacy Backup ํ์ด์ง์ Overview ํญ์๋ ํ๋ก์ ํธ์ cluster๊ฐ ๋์ด๋ฉ๋๋ค.
cluster์ ๋ํด ๋ฐฑ์ ์ด ํ์ฑํ๋ ๊ฒฝ์ฐ Status ์ Active ์ ๋๋ค.
cluster์ ๋ํ ๋ฐฑ์ ์ด ๋นํ์ฑํ๋ ๊ฒฝ์ฐ Status ์ Inactive ์ ๋๋ค.
๋ฐฑ์ ์ ์ฟผ๋ฆฌํ๋ ค๋ ๋ฐฐํฌ์๋ฒ์ ๊ฒฝ์ฐ Options ์ด์ ์ค์ํ๋ฅผ ํด๋ฆญํ๊ณ Query ์ ์ ํํฉ๋๋ค.
View All Snapshots ์ ํด๋ฆญํ์ฌ ์ค๋ ์ท์ ๋ณด๊ณ ์ํ๋ ์ค๋ ์ท์ Actions ์ด ์๋์์ Query ์ ํด๋ฆญํ ์๋ ์์ต๋๋ค.
์ฟผ๋ฆฌ ๊ฐ๋ฅํ ์ค๋ ์ท์ ๋ํ ๋ฐฑ์ ํฐ๋์ ์ฝ๋๋ค.
์ฟผ๋ฆฌํ ์ค๋ ์ท์ ์ ํํ๊ณ Next์ ํด๋ฆญํฉ๋๋ค.
Start ์ค๋ ์ท์ ์ฟผ๋ฆฌํ๋ ํ๋ก์ธ์ค์ ๋๋ค. Atlas ๋น๋ฐ๋ฒํธ๋ฅผ ์ ๋ ฅํ๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋ฉ๋๋ค.
์ฟผ๋ฆฌ ๊ฐ๋ฅ ์ค๋ ์ท์ ๋ํ ์ฐ๊ฒฐ ๋ฉ์๋๋ก Backup Tunnel์(๋ฅผ) ์ ํํฉ๋๋ค.
Platform ์(๋ฅผ) ์ ํํฉ๋๋ค.
Download Backup Tunnel๋ฅผ ํด๋ฆญํฉ๋๋ค.
๋ค์ด๋ก๋ํ ํ์ผ์ ์์ถ์ ํ๋๋ค.
ํฐ๋ฏธ๋ ๋๋ ๋ช ๋ น ํ๋กฌํํธ๋ฅผ ์ด๊ณ ์์ถ๋์ง ์์ <tunnel> ๋๋ ํ ๋ฆฌ๋ก ์ด๋ํฉ๋๋ค. ์คํ ํ์ผ์ ์คํํ์ฌ ํฐ๋์ ์์ํฉ๋๋ค.
ํฐ๋์ ๊ธฐ๋ณธ ํฌํธ๋
27017
์ ๋๋ค. ํฌํธ๋ฅผ ๋ณ๊ฒฝํ๋ ค๋ฉด ๋ค์ ์์ ๊ฐ์ด--local
ํ๋๊ทธ๋ฅผ ์ฌ์ฉํฉ๋๋ค../<tunnel executable> --local localhost:27020 ์ฐธ๊ณ
ํฌํธ๋ฅผ ๋ณ๊ฒฝํ๋ ๊ฒฝ์ฐ์๋ ์ฐ๊ฒฐ ์ ํฌํธ ์ ๋ณด๋ฅผ ๋ฐ๋์ ํฌํจ์์ผ์ผ ํฉ๋๋ค.
์ฟผ๋ฆฌ ๊ฐ๋ฅ ๋ฐฑ์
์์ ๋จ์ผ ์ปฌ๋ ์
์ ๋ด๋ณด๋ด๋ ค๋ฉด mongodump
๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- 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
ํ์ผ๋ก ์ถ๋ ฅํฉ๋๋ค.
๋จ์ผ ์ปฌ๋ ์
์ ๋ณต์ํ๋ ค๋ฉด mongorestore
๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ๋จ์ผ 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
์ฟผ๋ฆฌ ๊ฐ๋ฅํ ์ธ์คํด์ค๋ฅผ ์ข ๋ฃํฉ๋๋ค.
์์ ์ ์๋ฃํ๋ฉด ์ฟผ๋ฆฌ ๊ฐ๋ฅํ ์ธ์คํด์ค๋ฅผ ์ข ๋ฃํ ์ ์์ต๋๋ค.
์ผ์ชฝ ํ์ ์ฐฝ์์ Backup ์ ํด๋ฆญํ๊ณ Restores & Downloads ํญ์ ํด๋ฆญํฉ๋๋ค.
๋์ ๋ฐฐํฌ์๋ฒ ํญ๋ชฉ์ Status ์ด ์๋ก ๋ง์ฐ์ค๋ฅผ ๊ฐ์ ธ๊ฐ ๋ค์ Cancel ์(๋ฅผ) ํด๋ฆญํฉ๋๋ค.
Cancel Restore Job๋ฅผ ํด๋ฆญํฉ๋๋ค.