• <td id="ae6ms"><li id="ae6ms"></li></td>
  • <xmp id="ae6ms"><td id="ae6ms"></td><table id="ae6ms"></table>
  • <table id="ae6ms"></table>
  • <td id="ae6ms"></td>
    <td id="ae6ms"></td>
  • <table id="ae6ms"></table><table id="ae6ms"><td id="ae6ms"></td></table>
  • <td id="ae6ms"></td>
  • <table id="ae6ms"><li id="ae6ms"></li></table>
  • <table id="ae6ms"></table>
    西西軟件下載最安全的下載網站、值得信賴的軟件下載站!

    首頁西西教程數據庫教程 → mongodb數據管理:數據的導出導入和數據備份恢復

    mongodb數據管理:數據的導出導入和數據備份恢復

    相關軟件相關文章發表評論 來源:西西整理時間:2013/2/23 2:59:16字體大?。?em class="fontsize">A-A+

    作者:西西點擊:0次評論:0次標簽: mongodb

    • 類型:編程控件大?。?i>191KB語言:中文 評分:6.6
    • 標簽:
    立即下載

    mongodb數據管理

    數據的導出、數據導入
    數據導出 mongoexport [使用mongoexport -h查看參數]
    數據導入 mongoimport [使用mongoimport -h查看參數]

    導入導出json數據實例

    mongoexport -d mydb -c user -o d:/mongdbback/user.dat--mydb是要導出的表所屬的數據庫--user是要導出的集合名c表示collection--user.dat是導出后的文件名mongoimport -d mydb -c user d:/mongdbback/user.dat--mydb 數據導入的目標數據庫--user 數據導入的目標集合--d:/mongdbback/user.dat 待導入的數據文件存放路徑

    導入導出csv數據

    CSV格式良好,主流數據庫都支持導出為csv的格式,所以這種格式非常利于異構數據遷移.

    mongoexport -d mydb -c user --csv -f  id,name,age  -o d:/mongodbback/user_csv.data--導出csv格式--f 指定要導出的列的名字mongoimport -d mydb -c user --type csv --headerline --file d:/mongodbback/user_csv.data;--mydb 數據導入的目標數據庫--user 數據導入的目標集合--type表示導入的文件格式--headerline 表明不導入第一行,因為第一行是列名--d:/mongodbback/user_cvs.data 待導入的數據文件存放路徑

    數據備份、數據恢復
    數據備份mongodump
    數據恢復mongorestore

    備份實例mongodump -d mydb    //備份mydb數據庫此時會在當前目錄下默認創建一個dump目錄,用于存放備份出來的文件,也可以指定備份存放的目錄使用-omongodump -d mydb -o d:/databack/恢復實例mongorestore -d mydb d:/databack/mydb/數據備份是為了發生災難事件后可以恢復數據,但是不幸總是存在的,即沒有數據備份,好在MongoDB內建了修復功能.可以嘗試修復受損文件,如果Mongdb不正常關閉,啟動服務時會看到一堆警告信息.修復所有數據最簡單的方法就是在mongod啟動時加上--repaire參數.修復單個數據庫可以再mongodb的shell里邊執行repaireDatabase命令,如>use testswitched to db test>db.repaireDatabase();{“ok” : 1}

    克隆collection

    克隆collection是將一組數據從一個數據源拷貝到多個數據源的技術,是將一份數據發布到多個存儲站點上的有效方式.

    遠程克隆例如,將192.168.1.32上test下的user集合克隆到本地db.runCommand({cloneCollection:”test.user”, from:”192.168.1.32:27017”});本地克隆由于mongoDB沒有提供本地克隆collection的命令或方法,所以需要寫一個循環插入的方案來完成這項工作.例如,將user集合中的數據克隆一份到taruser中.> db.user.find().forEach( function(x){ db.taruser.insert(x); } );> db.taruser.find();

    復制數據庫

    使用copyDatabase(fromdb,todb,fromhost)命令來實現復制數據庫

    遠程復制數據庫> db.copyDatabase("from_db1","to_db2","192.163.1.167");本地復制數據庫> db.copyDatabase("to_db1","to_db2","localhost");

    刷新磁盤

    在mongoDB中使用”db.runCommand({fsync:1})”命令將內存中尚未寫入磁盤的信息寫入磁盤,并鎖住對數據庫更新的操作,但讀擦做可以繼續.

    數據壓縮

    repairDatabase命令是MongoDB內置的一個方法,調用這個方法MongoDB會掃描數據庫中的所有數據,并將通過導入/導出來重新整理數據,整理磁盤碎片

    mongoDB中可以使用db.collection.storageSize()和db.collection.totalSize()命令來搜集壓縮命令執行前后集合所占用磁盤空間情況

    > db.user.storageSize();8192> db.user.totalSize();16384> db.repairDatabase();{ "ok" : 1 }> db.user.storageSize();8035> db.user.totalSize();9384

    捕獲異常

    MongoDB的寫是異步的,返回給客戶端成功但寫不一定成功,db.getLastError命令有2個功能,即當MongoDB在寫操作時,默認不會等數據寫完后才返回,這是可以通過這個命令來保證寫入是否是成功的.

    查看活動進程

    > db.currentOp();字段說明:opid:操作進程號,可以使用db.killop(opid)op:操作類型(查詢、更新等)ns:命名空間,指操作的是哪個對象query:如果操作類型是查詢的話,將顯示具體的查詢內容inLock:指名鎖定的類型.-1代表讀鎖,0代表無鎖.1代表寫鎖.

    用戶安全和認證

    限制特定IP地址訪問

    這樣可以避免來自公網上的惡意攻擊.

    MongDB可以指定對外服務的綁定,默認設置為空,即綁定在本機所有可用IP上,對于商業系統,出于安全考慮,可以綁定內網,減少外網訪問避免攻擊.只需要啟動時加bind_ip即可.    >mongod --bind_ip 169.254.180.132    //啟動mongodb時綁定ip169.254.180.132此時客戶端想訪問169.254.180.132上的服務器,就需要顯示地指定連接的IP地址是169.254.180.132.eg.    >mongo 169.254.180.132

    設置監聽端口

    MongoDB默認的監聽端口是27017,為了安全,一般都會修改這個監聽端口.

    eg.    >mongod --bind_ip 169.254.180.132 --port 9888    //啟動mongodb時綁定ip 并修改端口同理.客戶端連接時需要指定ip跟端口eg.    >mongo 169.254.180.132:9888

    設置登錄用戶名和口令

    mongodb默認是沒有用戶名和口令的,啟動后,可以直接用mongoDB連接,并且對所有的庫具有root權限,為了安全,必須給其設置用戶名和口令.

    只需要再啟動的時候,指定auth參數.就可以阻止客戶端的訪問和連接,如下

    eg.>mongod -auth --dbpath=../data --logpath=../logs/mongodb.logs

    想要登錄驗證模塊生效,必須在admin庫中添加一個用戶,同時要指定auth參數.

    D:\program files\mongo\bin>mongoMongoDB shell version: 1.8.1connecting to: test> use adminswitched to db admin> db.addUser("root","root123");{        "user" : "root",        "readOnly" : false,        "pwd" : "81c5bca573e01b632d18a459c6cec418"}> db.auth("root","root123");1>此時建立了系統root用戶.

    也可以對某個特定的數據庫設置用戶,這樣權限的細粒度劃分,也方便進行用戶管理.

    注意:建立指定權限的用戶只能用系統用戶來操作.

    為mydb創建一個用戶名為mydbusr口令為123的用戶

    D:\program files\mongo\bin>mongo -uroot -proot123 localhost:27017/adminMongoDB shell version: 1.8.1connecting to: localhost:27017/admin> show dbs;admin   0.03125GBlocal   (empty)test    (empty)> use mydb;switched to db mydb> db;mydb> db.addUser("mydbusr","123");{        "user" : "mydbusr",        "readOnly" : false,        "pwd" : "4dbfed60224bbcd7eccbd2da993a8029"}system> show tables;system.indexes.users> db.system.users.find();{ "_id" : ObjectId("50f6acdd22bc514e46426dda"), "user" : "mydbusr", "readOnly" : false,60224bbcd7eccbd2da993a8029" }> db.auth("mydbusr","123");1>

      相關評論

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

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

      熱門評論

      最新評論

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

      昵稱:
      表情: 高興 可 汗 我不要 害羞 好 下下下 送花 屎 親親
      字數: 0/500 (您的評論需要經過審核才能顯示)
      女人让男人桶30分钟免费视频,女人张开腿让男人桶个爽,一进一出又大又粗爽视频
    • <td id="ae6ms"><li id="ae6ms"></li></td>
    • <xmp id="ae6ms"><td id="ae6ms"></td><table id="ae6ms"></table>
    • <table id="ae6ms"></table>
    • <td id="ae6ms"></td>
      <td id="ae6ms"></td>
    • <table id="ae6ms"></table><table id="ae6ms"><td id="ae6ms"></td></table>
    • <td id="ae6ms"></td>
    • <table id="ae6ms"><li id="ae6ms"></li></table>
    • <table id="ae6ms"></table>