mongodbDatabase Backup與恢複詳解

來源:互聯網
上載者:User

只遷移一個 cm庫,目標庫是2.4.8版本,原庫是2.4.6版本,所以採用了熱備的方式來遷移。
官方文檔上寫得非常簡單的說:

 代碼如下 複製代碼
mongodump –host mongodb.example.net –port 27017

mongorestore –port但是真做起來各種坑,主要還是使用者權限的問題。

最開始,cm庫裡面只有一個使用者cm, 它的許可權是readWrite和dbAdmin,
所以匯出時,還要指定另外一個參數: –authenticationDatabase cm 表示此使用者在cm庫中,不在admin庫中。。。

此使用者有資料的讀寫權限,但是卻沒有db.system.users表的讀取許可權,所以在匯出users表時提示沒有許可權。

gg了一下,原來需要userAdmin許可權。。這個許可權未免太高了點吧。

於是添加一個dump使用者:

 代碼如下 複製代碼
use cm;
db.addUser( { user: “dump”,pwd: “123456″,roles: [ "readWrite", "userAdmin" ]} )

用以下命令很快就完成了匯出:

 代碼如下 複製代碼
./bin/mongodump -u dump -p –authenticationDatabase cm –db cm –out /data/dump

匯入的時候呢?
目標庫只在admin庫中有一個root使用者,許可權是userAdminAnyDatabase,

嘗試用root使用者匯入,失敗。。。
難道也要在cm庫中建立一個具有readWrite和userAdmin的dump使用者?
那在匯入的時候,會不會覆蓋目標庫的system.users表?值得一測。
於是在目標庫建立了使用者dump,密碼是111111,與原庫的dump密碼不同。
匯入:

 代碼如下 複製代碼
./bin/mongorestore -u dump -p –authenticationDatabase cm –db cm /home/zhaokunyao/dump/cm

會有提示:
Tue Nov 19 20:03:10.213 warning: Restoring to cm.system.users without dropping. Restored data will be inserted without raising errors; check your server log
server log木有和user表有關的資訊…

最終的結果是:
目標庫的users表和源庫的users表合并了。
源庫的使用者都匯入到了users表,除了dump使用者。 目標庫的dump使用者密碼仍舊是111111。
註:db.system.users表上有unique key(user)

最後把二個庫的dump使用者刪除,收工,共7分鐘。

在遷移的過程中還發現一個小問題:
按照正常方式安裝mongdb,串連之後報以下Warning:

Mon Nov 18 17:36:26.641 [initandlisten] ** WARNING: You are running on a NUMA machine.
Mon Nov 18 17:36:26.641 [initandlisten] ** We suggest launching mongod like this to avoid performance problems:
Mon Nov 18 17:36:26.641 [initandlisten] ** numactl –interleave=all mongod [other options]

要求用 numactl –interleave=all mongod的方式來啟動mongod.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.