[ Mongodb ] dump and restore and auth
資料來源:
https://blog.toright.com/posts/4069/mongodb-%E6%95%99%E5%AD%B8-%E5%A6%82%E4%BD%95%E5%82%99%E4%BB%BD%E8%88%87%E9%82%84%E5%8E%9F-mongodb.html
// 備份
mongodump 常用參數說明如下:
-h: 要備份的 MongoDB 連線位置
https://blog.toright.com/posts/4069/mongodb-%E6%95%99%E5%AD%B8-%E5%A6%82%E4%BD%95%E5%82%99%E4%BB%BD%E8%88%87%E9%82%84%E5%8E%9F-mongodb.html
// 備份
mongodump 常用參數說明如下:
-h: 要備份的 MongoDB 連線位置
-o: 目的地目錄
-d: 要備份的 Database 名稱
-u: 資料庫使用者名稱
-p: 資料庫密碼
-d: 要備份的 Database 名稱
-u: 資料庫使用者名稱
-p: 資料庫密碼
- mongodump -h 127.0.0.1 -d Mongodb_Name -o ./mongo-backup
備完份後會使用
- tar -zcvf mongo-backup.tar.gz 要被壓縮與打包的目錄
打成一包
之後使用scp複製到遠端要還原的主機
scp ubuntu@主機位置或ip:壓縮檔放置位置 下載到哪個目錄
- scp ubuntu@aws主機:/home/ubuntu/db.tar ~
接著使用解壓縮
- tar -zxvf mongo-backup.tar.gz
在新主機使用
mongod --dbpath /home/ubuntu/db --port 27017
啟動mongodb
若無法啟動出現的訊息為Fail to unlink socket file
切換目錄至/tmp, 並且移除/tmp/mongodb-27017.sock
就可以啟動囉
當出現mongodb waiting for connections on port 27017就是成功啟動囉
換到另一個console, 使用mongo指令連接資料庫!
最後要將資料還原
使用mongorestore
mongorestore -d 要還原的資料庫名稱 解壓縮出來的資料庫目錄
- mongorestore -d maper /home/ubuntu/mongo-backup/maper
就會看到還原成功囉!
接下來要啟用authentication
先用mongod --dbpath /home/ubuntu/db --port 27017啟動mongodb
接著使用下列指令
再重新啟動mongodb時使用
先用mongod --dbpath /home/ubuntu/db --port 27017啟動mongodb
接著使用下列指令
- use admin
- db.createuser({user: 'admin',pwd: 'admin',roles: [ { role:"userAdminAnyDatabase",db: "admin" } ]})
- exit
再重新啟動mongodb時使用
- mongod --auth --dbpath /home/ubuntu/db --port 27017
接著使用
- mongo --port 27017 -u "admin" -p "admin" --authenticationDatabase "admin"
再接著幫備份的db產生一組讀寫用的user
- db.createuser({user: 'api',pwd: 'api',roles: [ { role:"readWrite",db: "targetDb" } ]})
然後使用這組user認證就可以囉
- use admin
- db.auth('api','api')
- use targerDb
- show collections // 成功取得資料庫內所有collection清單!
留言
張貼留言