mongodb數據遷移的兩種方式


環境說明:bbs數據采集的數據越來越多,目前是50G,每天大概以200W的數據量增長。而當前服務器1.2上面的空間不足,需要把數據遷移到空間足夠大的1.3上面去

嘗試了2種方式對數據進行遷移,一種是rsync,直接拉取數據;另一種是使用mongodump/mongorestore

1.rsync
操作步驟:
1.2:
[mongodb]
path = /data1/mongodb/data
hosts allow = 192.168.1.0/24
read only = no
write only = no
1.3:
rsync -avz root@192.168.1.2::mongodb/dbname /data/mongodb-linux-x86_64-1.8.1/data/
chown -R mongodb:mongodb /data/mongodb-linux-x86_64-1.8.1/data/

使用時間:50分鍾
到目標服務器數據:50G
優點:使用時間短
缺點:需要配置rsync,數據占用的空間大(數據原封不動的拉取過來,包括碎片)

2.mongodump/mongorestore
操作步驟:
mongodump:
/data/PRG/mongodb/bin/mongodump --host 192.168.1.2:27017 -d dbname -uuername -ppasswd -o /data/mongodb-linux-x86_64-1.8.1/data/ --directoryperdb
mongorestore:
/data/mongodb-linux-x86_64-1.8.1/bin/mongorestore --dbpath /data/mongodb-linux-x86_64-1.8.1/data/ --directoryperdb /data/dbname/
chown -R mongodb:mongodb /data/mongodb-linux-x86_64-1.8.1/data/

使用時間:35(mongodump)+90(mongorestore)
到目標服務器數據:20G(需要的空間大大減小,拉取過程中相當於做了一次碎片整理)
優點:遷移到新服務器的數據經過了整理,需要空間大大減小
缺點:需要時間長

數據遷移時需要停mongo進行操作,而2種方式各有優缺點,如果可以忽略操作時間內的數據的話,那么使用第2種方式會比較好(已經有不少例子因為碎片帶來嚴重的后果)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM