日本好好热aⅴ|国产99视频精品免费观看|日本成人aV在线|久热香蕉国产在线

  • <cite id="ikgdy"><table id="ikgdy"></table></cite>
    1. 西西軟件下載最安全的下載網(wǎng)站、值得信賴的軟件下載站!

      首頁西西教程數(shù)據(jù)庫教程 → MongoDB啟動與停止以及Mongodump備份數(shù)據(jù)文件

      MongoDB啟動與停止以及Mongodump備份數(shù)據(jù)文件

      相關(guān)軟件相關(guān)文章發(fā)表評論 來源:西西整理時間:2013/2/2 20:42:49字體大。A-A+

      作者:西西點擊:2次評論:0次標(biāo)簽: MongoDB

      • 類型:編程控件大小:191KB語言:中文 評分:6.6
      • 標(biāo)簽:
      立即下載

      MongoDB是一個基于分布式文件存儲的數(shù)據(jù)庫。由C++語言編寫。旨在為WEB應(yīng)用提供可護(hù)展的高性能數(shù)據(jù)存儲解決方案。MongoDB是一款分布式文檔數(shù)據(jù)庫,支持類似關(guān)型數(shù)據(jù)庫的主從結(jié)構(gòu),文檔以二進(jìn)制Json形式存儲,無鎖,無事務(wù),有索引。

      1.  MongoDB的啟動與停止

      MongoDB的啟動之前已經(jīng)談過,但是需要注意的MongoDB在啟動時有很多可配置的啟動選項。在命令行運行mongod –help可以查看所有選項。

      其中有一項是--config,可以支持從文件中獲取配置項信息。例如:

      1 D:\> mongod --config mongodb.conf

      配置文件中的內(nèi)容如下:

      1 port = 5586
      2 
      3 logpath = mongodb.log
      4 
      5 …

      注意:文件中以#開頭的行是注釋;指定選項的語法就是這種“選項=值”的形式,其中選項是區(qū)分大小寫的;命令行中那些如--fork的開關(guān)選項,其值要設(shè)為true。

      一種穩(wěn)妥的停止MongoDB服務(wù)的方式就是使用shutdown命令,即{“shutdown” : 1},這是管理命令,要在admin數(shù)據(jù)庫下使用。shell提供了輔助函數(shù),如下:

      1 >use admin
      2 
      3 switched to db admin
      4 
      5 >db.shutdownServer();
      6 
      7 server should be down…

      若MongoDB服務(wù)器是最為前臺進(jìn)程運行在終端,那么可以直接關(guān)閉命令行窗口即可。

      2. 安全和認(rèn)證

      每個MongoDB實例中的數(shù)據(jù)庫可以有許多用戶,如果開啟了安全性檢查,則只有數(shù)據(jù)庫認(rèn)證用戶才能執(zhí)行讀或者寫操作。在數(shù)據(jù)庫中添加用戶,如下所示:

      1 >use test
      2 
      3 >db.addUser(“test_user”, “efgh”)

      addUser()函數(shù)中的第三個參數(shù)為可選項true或者false,表示該用戶是否為只讀用戶。

      注意:addUser不僅能添加用戶,還能修改用戶口令或者只讀狀態(tài)。

      要開啟安全性檢查,重啟服務(wù)器,同時加--auth命令行選項。然后通過shell重新連接數(shù)據(jù)庫,操作如下:

      1 >use test
      2 >db.auth(“test_user”, “efgh”)

      之后用戶就可以在自己的權(quán)限范圍內(nèi)進(jìn)行操作了。

      數(shù)據(jù)庫的用戶賬戶以文檔的形式存儲在system.users集合里面。文檔的結(jié)構(gòu)如下:

      1 {“user” : username, “readOnly” : true, “pwd” : password hash}

      其中password hash是根據(jù)用戶名和密碼生成的散列。

      用戶認(rèn)證時,服務(wù)器將認(rèn)證和連接綁定來跟蹤認(rèn)證。所以如果驅(qū)動程序或是工具使用了連接池或是因故障切換到另一個節(jié)點,所有認(rèn)證用戶必須對每個新連接重新認(rèn)證。有的驅(qū)動程序能夠?qū)⑦@步透明化,但要是沒有,就得手動完成了。

      除了認(rèn)證還有許多選項值得考慮來鎖定MongoDB實例。建議將MongoDB服務(wù)器布置在防火墻后或者布置在只有應(yīng)用服務(wù)器能訪問的網(wǎng)絡(luò)中。但要是MongoDB必須能被外面訪問到的話,建議使用—bindip選項,可以指定mongod綁定到的本地IP地址。例如,只能從本機應(yīng)用服務(wù)器訪問,可以運行“mongod –bindip localhost”。

      3. 數(shù)據(jù)文件備份

      MongoDB的所有數(shù)據(jù)都在數(shù)據(jù)目錄(/data/db/)下,備份MongoDB就是創(chuàng)建數(shù)據(jù)目錄中所有文件的副本。但是在運行MongoDB時復(fù)制數(shù)據(jù)目錄是不安全的。

      Mongodump是MongoDB自帶的工具,它能在運行MongoDB時備份數(shù)據(jù)。用法如下:

      1 D:\> mongodump -d test -o backup

      -d指定了要備份的數(shù)據(jù)庫,-o指定了備份文件所在的目錄,這里會自動創(chuàng)建該目錄。

      MongoDB還提供了從備份中恢復(fù)數(shù)據(jù)的工具mongorestore。用法如下:

      1 D:\> mongorestore -d foo --drop backup/test/

      -d指定了要恢復(fù)的數(shù)據(jù)庫,--drop代表在恢復(fù)前刪除集合(若存在)。否則數(shù)據(jù)就會與現(xiàn)有集合數(shù)據(jù)合并,可能會覆蓋一些文檔。

      雖然使用mongodump和mongorestore能不停機備份,但有兩個問題。

      (1)       mongodump使用普通的查詢機制,所以產(chǎn)生的備份不一定是服務(wù)器數(shù)據(jù)的實時快照。

      (2)       mongodump備份時的查詢會對其他客戶端的性能產(chǎn)生不利影響。

      所以還有MongoDB的fsync命令能在MongoDB運行時復(fù)制數(shù)據(jù)目錄還不會損毀數(shù)據(jù)。用法如下:

      1 >use admin
      2 >db.runCommand({“fsync” : 1, “l(fā)ock” : 1});

      至此,數(shù)據(jù)目錄的數(shù)據(jù)就是一致的,且為數(shù)據(jù)的實時快照,因為上了寫入鎖,可以安全地將數(shù)據(jù)目錄副本用做備份。備份好了,就要解鎖,如下:

      1 >db.$cmd.sys.unlock.findOne();
      2 >db.currentOp();

      運行fsync命令是為了確保已經(jīng)解鎖了。

      唯一不耽誤讀寫還能保證實時快照的備份方式就是通過從服務(wù)器備份。

        相關(guān)評論

        閱讀本文后您有什么感想? 已有人給出評價!

        • 8 喜歡喜歡
        • 3 頂
        • 1 難過難過
        • 5 囧
        • 3 圍觀圍觀
        • 2 無聊無聊

        熱門評論

        最新評論

        發(fā)表評論 查看所有評論(0)

        昵稱:
        表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
        字?jǐn)?shù): 0/500 (您的評論需要經(jīng)過審核才能顯示)