備份與還原MongoDB分區叢集資料

來源:互聯網
上載者:User

標籤:mongodb

1.使用mongodump備份小量分區叢集資料

如果一個分區叢集的資料集比較小,可以直接使用mongodump串連到mongos執行個體進行資料備份。預設情況下,mongodump到非primary的節點進行資料查詢。

如:

mongodump --host 192.168.100.200 --port 28018 -d taiwan_game1 -o .mongorestore --host 192.168.100.200 --port 28018 taiwan_game1


需要注意的是如果使用mongodump的時候不指定庫名或者集合名稱,mongodump將直接從config server中擷取集合資料和分區叢集的中繼資料

mongodump --host 192.168.100.200 --port 28018mongodump --host 192.168.100.200 --port 28018 -o .

不能使用--oplog參數從mongos擷取資料,否則會報錯。

can‘t use ‘local‘ database through mongos

如果要擷取叢集某一時刻的備份資料,需要停掉整個叢集的寫操作。


mongodump備份出來的資料不能反映叢集中的集合的資料快和資料的分布情況。可以將資料恢複到任何MongoDB執行個體,或者是單個MongoDB執行個體,MongoDB Replica Set或者一個新的分區叢集。



2.從檔案系統快照中備份分區叢集資料

如果要備份point-in-time即時叢集資料,必須要停止叢集中的所有寫操作,在生產環境中,只能擷取接近即時的資料備份。

1)停掉balancer進程,停止各個shard間資料的均勻分配。

在進行備份之前停掉balancer進程是基本操作,如果在備份的時候沒有停掉balancer進程,那麼備份出來的資料可能會有重複的或者丟失的情況發生,因為在備份的時候可能會有資料區塊遷移。

mongos> use config;switched to db configmongos> sh.stopBalancer();Waiting for active hosts...Waiting for the balancer lock...Waiting again for active hosts after balancer is off...




2)鎖定每個分區中的每個replica set中的一個Secondary成員。所以這時備份的資料可以最接近某一個的即時資料。使用db.fsyncLock()將所有掛起的寫操作資料重新整理到磁碟然後鎖定mongodb執行個體。


3)備份其中一個config server資料。備份config server的資料就是備份整個叢集的中繼資料。只需要備份其中一個的資料就行,因為每個config server的資料都是一樣的。

可以使用以下兩種方式備份:

A.建立一個檔案系統快照。參見 Backup and Restore with Filesystem Snapshots

B.使用mongodump備份config server資料。

串連到其中一台config server

mongodump --host 192.168.100.65 --port 28018 --oplog  -o .


4)備份鎖定的Replica Set成員資料。 Backup and Restore with Filesystem Snapshots.

5)解鎖被鎖定的Replica Set成員。使用db.fsyncUnlock()


6)重新啟動balancer進程

mongos> use config;switched to db configmongos> sh.setBalancerState(true);



3.

本文出自 “Linux SA John” 部落格,請務必保留此出處http://john88wang.blog.51cto.com/2165294/1621654

備份與還原MongoDB分區叢集資料

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.