mongodb備份與恢復


轉載:https://www.cnblogs.com/jiekzou/p/9109137.html

系統環境

服務器系統:Windows Server2012 R2

MongoDB:v3.4.4

可以通過命令:mongo -version 查看版本信息

場景:備份數據庫smp_maint_2,還原到新建的數據庫smp_maint_2_restore中。

MongoDB數據庫備份

    1、語法:
        mongodump -h dbhost -d dbname -o dbdirectory
        參數說明:
            -h: MongDB所在服務器地址,例如:127.0.0.1,當然也可以指定端口號:127.0.0.1:27017
            -d: 需要備份的數據庫實例,例如:test
            -o: 備份的數據存放位置,例如:/home/mongodump/,當然該目錄需要提前建立,這個目錄里面存放該數據庫實例的備份數據。

   -c: 需要恢復的集合
   -f: 需要導出的字段(省略為所有字段)

   -u:用戶名

   -d:用戶密碼

  mongoexport -h dbhost -d dbname -c collectionname -f collectionKey -o dbdirectory
    2、實例:

先通過服務器上面安裝的Mongodb服務器找到服務的所在路徑:C:\Program Files\MongoDB\Server\3.4\bin\mongod.exe

先在服務器上面創建文件目錄:E:\data\home\momgodump

然后以管理員身份打開CMD,然后跳轉到Mongodb所在路徑,執行如下命令:

mongodump -h 192.168.1.18:27017 -d smp_maint_2 -o E:\data\home\momgodump

 運行結果如下:

備份完成之后,我們再看下備份目錄下面自動創建了一個和數據庫名稱一樣的目錄,目錄下面有如圖所示備份文件

MongoDB數據庫恢復

  單個collection恢復:
  mongoimport -d dbhost -c collectionname –type csv –headerline –file
  -type: 指明要導入的文件格式
  -headerline: 批明不導入第一行,因為第一行是列名
  -file: 指明要導入的文件路徑

    1、語法:
        mongorestore -h dbhost -d dbname --dir dbdirectory
 
        參數或名:
            -h: MongoDB所在服務器地址
            -d: 需要恢復的數據庫實例,例如:test,當然這個名稱也可以和備份時候的不一樣,比如test2
            --dir: 備份數據所在位置,例如:/home/mongodump/itcast/
            --drop: 恢復的時候,先刪除當前數據,然后恢復備份的數據。就是說,恢復后,備份后添加修改的數據都會被刪除,慎用!
    2、實例:

新建mongodb數據庫smp_maint_2_restore,然后執行如下命令:

mongorestore -h 192.168.1.18:27017 -d smp_maint_2_restore --dir E:\data\home\momgodump\smp_maint_2

 運行結果如下所示:


   

  還原成功!

轉載:https://blog.csdn.net/aafeiyang/article/details/88107884

1.先查看表中數據量:
db.score.find().count();2401
db.student.find().count() 2992

2.進入到Mongo DB的安裝目錄的此路徑下:/home/ubuntu/softwares/mongodb/bin

3.執行備份命令:./mongodump -h 192.168.123.133 -d testBackUp -o /myApplication/mongoDBData
  
3. 刪除原來DB :use testBackUp ,db.dropDatabase();

4.停止mongoDB,修改數據存儲目錄(如果不是Root操作,請先創建該目錄及Log文件,再授權)

dbpath=/myApplication/mongoDBData/mongoData
logpath=/myApplication/mongoDBData/mongoLog/mongodb.log
logappend = true
fork=true
bind_ip = 192.168.123.133
port=27017

5.啟動mongoDB,注意要帶配置文件 ,要不然會使用默認的,使用該命令:./mongod -f mongodb.conf
   生產環境執行后台啟動,要不然Xshell一關閉,服務就停了:nohup sudo ./mongod -f /etc/mongod.conf >> /datadrive2/mongodbLog/output.log 2>&1 &
   
6.執行還原命令:./mongorestore -h 192.168.123.133 -d newNameBackUp /myApplication/mongoDBData/testBackUp


PS:不要用kill -9 PID來殺死MondoDB進程,這樣可能會導致MongoDB的數據損壞,使用以下命令停止:
> use admin;
switched to db admin
> db.shutdownServer();
server should be down...

以下為另一種起動及停止方式。
sudo service mongod start
sudo service mongod stop
其他更詳細操作:https://www.jb51.net/article/40285.htm

#寫法1 mongorestore --collection collection --db database filePath #寫法2(推薦寫法) mongorestore --nsInclude database.collections filePath


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM