芒果知識補充(1)mongodb 單機的備份與恢複

來源:互聯網
上載者:User

 備份與恢複是資料儲存的重要技術。本次只是學習記錄單機的操作。
    mongodb的備份和恢複提供了兩種方式。備份為bson格式和和備份為json和csv格式。

a)匯出bson格式
    主要用於單機小資料量的備份、快照等。儲存被bson格式,bson(Binary JSON ),
是輕量級的位元據格式。

    備份命令mongodump
    參數
              --help                   協助資訊
              -v [ --verbose ]         be more verbose (include multiple times for more
                                       verbosity e.g. -vvvvv)
              -h [ --host ] arg        指定要備份的伺服器ip
              --port arg               指定要備份的伺服器連接埠,需要與伺服器ip一起使用,格式為ip:port
              --ipv6                   開啟ipv6的支援,預設是關閉的
              -u [ --username ] arg    使用者名稱
              -p [ --password ] arg    密碼
              --dbpath arg             指定串連資料庫後訪問資料的位置,但是不能是當前使用的目錄
              --directoryperdb         為每一個庫建立一個目錄。
              -d [ --db ] arg          指定要備份的庫名
              -c [ --collection ] arg  指定要匯出的collection
              -o [ --out ] arg (=dump) 輸出的目錄,預設目錄為執行命令的路徑下建立dump目錄
              -q [ --query ] arg       可以json查詢,有選擇性的匯出資料
              --oplog                  使用oplog
              --repair                 嘗試修複損壞的資料庫
             
        恢複命令mongorestore
        參數
              --help                  協助資訊
              -v [ --verbose ]         be more verbose (include multiple times for more
                                       verbosity e.g. -vvvvv)
              -h [ --host ] arg        指定要匯入的伺服器ip
              --port arg               指定要匯入的伺服器連接埠,需要與伺服器ip一起使用,格式為ip:port
              --ipv6                   開啟ipv6的支援,預設是關閉的
              -u [ --username ] arg    使用者名稱
              -p [ --password ] arg    密碼
              --dbpath arg             指定串連資料庫後訪問資料的位置,但是不能是當前使用的目錄
              --directoryperdb         為每一個庫建立一個目錄。
              -d [ --db ] arg          指定要備份的庫名
              -c [ --collection ] arg  指定要匯出的collection
              --objcheck              插入前檢測對象的合法性
              --filter arg            插入前的過濾器
              --drop                  在匯入前刪除要匯入的集合
              --oplogReplay           恢複日誌時間點

        測試,首先查看要測試的資料庫(mytest)檔案大寫
        > show dbs
        admin    (empty)
        mytest    1.953125GB
        開始備份,將本地mytest庫匯出到tmp目錄下
        # mongodump  -d mytest -o /tmp
        匯出結束耗時如下
        real    0m5.412s
        user    0m0.007s
        sys    0m2.039s
        匯出後資料存為bson格式體積為577M。mytest庫裡存的是MP3所以匯出資料庫壓縮的不多。

        開始做恢複測試,首先刪除mytest庫,在匯入
        # mongorestore --directoryperdb -d mytest  /tmp/mytest
        匯入結束耗時如下:
        real    0m52.587s
        user    0m0.514s
        sys    0m1.732s
       
        總結:匯入時間大約是匯出時間的10倍。

b)匯出json格式
        雖然匯出速度快,但是匯出為json,csv可能對某些資料類型不相容,並且不保證資料可以完整匯入。
    所以只簡單記錄一下,就不是實驗了。
    匯出命令mongoexport
        參數
              -q [ --query ] arg      query filter, as a JSON string
              --csv                   export to csv instead of json
              --jsonArray             output to a json array rather than one object per
                                      line
       
       
    恢複命令mongoimport
    參數
              --ignoreBlanks          在csv,tsv檔案中忽略空域
              --type arg              指定匯入檔案的類型,預設為json,也可以是csv,tsv
              --drop                  匯入前先刪除原collection
              --headerline            僅匯入CSV,TSV檔案的第一行作為標頭檔
              --upsert                插入或更新已存在的對象
              --upsertFields arg      comma-separated fields for the query part of the
                                      upsert. You should make sure this is indexed
              --stopOnError           當匯入出現錯誤時停止
              --jsonArray             匯入json array,目前每個array的限制是4M

聯繫我們

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