MongoDB學習整理之管理

來源:互聯網
上載者:User

1、複製collection
        1)複製遠程colletion,使用cloneCollection命令完成將遠端collection複製到本地。
           命令格式:db.runCommand({cloneCollection:"集合",from:"原機器",copyIndexes:false}),copyIndexes:是否複製索引
           例子:132.42.33.175上test庫t1表上有一條資料
                > db.t1.find()
                        { "_id" : ObjectId("4fd9a4bf186cb1b6ac95907d"), "name" : "liangzhangping", "addr" : "beijing" }
                132.42.33.190上test庫上t1表有兩條條資料
                > db.t1.find()
                { "_id" : ObjectId("4fd9c517dcde2d0e33d08c76"), "name" : "liangzhangping", "age" : 28 }
                { "_id" : ObjectId("4fda1795a3d56c6a40f2bc26"), "name" : "liangzhangping", "addr" : "jiangxi" }
                
                現在將132.42.33.175上test庫t1表的資料複製到132.42.33.190上test庫上t1表上,操作如下:
                a、登入132.42.33.190機器上執行:
                        > db.runCommand({cloneCollection:"test.t1",from:"132.42.33.175:28010"})
                        { "ok" : 1 }
                b、查看驗證
                        > db.t1.find()
                        { "_id" : ObjectId("4fd9c517dcde2d0e33d08c76"), "name" : "liangzhangping", "age" : 28 }
                        { "_id" : ObjectId("4fda1795a3d56c6a40f2bc26"), "name" : "liangzhangping", "addr" : "jiangxi" }
                        { "_id" : ObjectId("4fd9a4bf186cb1b6ac95907d"), "name" : "liangzhangping", "addr" : "beijing" }

        2)複製本地collection,mongodb沒有提供命令進行本地複製,但我們可以寫一個迴圈插入的方法完成,
           例如:將source_collection中的資料複製一份到target_collection,代碼如下:
           db.source_collection.find().forEach(function(x){db.target_collection.insert(x)})

2、複製資料庫,使用copyDatabase命令完成複製資料庫,
   格式:copyDatabase(fromdb,todb,fromhost[,username,password])
        fromdb:來源資料庫名稱
        todb:目標資料庫名稱
        fromhost:來源資料庫地址,本地和遠程都可以
        username:遠端資料庫使用者名稱
        password:遠端資料密碼
    例子:將本地db2庫複製本地,並重新命名db1
        > db.copyDatabase("db2","db1","localhost")

3、重新整理磁碟:將記憶體中尚未寫入磁碟的資訊寫入磁碟,並鎖住對資料庫更新的操作,但讀操作可以使用,使用runCommand命令,這個命令只能在admin庫上執行
   格式:db.runCommand({fsync:1,async:true})
        async:是否非同步執行
        lock:1 鎖定資料庫

4、資料壓縮:mongodb的儲存結構採用了預分配的機制,長期不斷的操作,會留下太多的的片段,從而導致資料庫系統越來越慢。
   repairDatabase命令是mongodb內建的一個方法,它會掃描資料庫中的所有資料,並將通過匯入/匯出來重新整理資料集合,將片段清理乾淨
   現在看壓縮前和壓縮後的對比資料,如下所示:
        PRIMARY> db.t1.storageSize()
                65232896
        PRIMARY> db.t1.totalSize()
                81470432
        PRIMARY> db.repairDatabase()
                { "ok" : 1 }
        PRIMARY> db.t1.storageSize()
                65232896
        PRIMARY> db.t1.totalSize()
                79851584

 

       

相關文章

聯繫我們

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