MongoDb進階實踐之九 Mongodb的備份與還原


一、引言

      前幾天寫了MongoDB數據庫的聚合。一說到“聚合”,用過關系型數據庫的人都應該知道它是一個什么東西,主要是用於對數據分類匯總和統計。大家都知道,做為DBA還有另一個重要的任務,那就是對數據庫進行備份,以備當數據庫發生損壞的時候,我們可以還原到以前的某個時刻,防止數據的丟失。今天我就來拋磚引玉,簡單的說一說MongoDB文檔數據庫中的“備份-還原”的概念。

二、簡介

      說起來數據庫的“備份-還原”,在RDBMS系統中,都有很好的支持,也有很多選項可以設置,功能強大,也能自動完成大部分的備份功能,只要當初設置好了就可以了。對於MongoDB文檔型的數據庫來說,情況有一些不一樣。在MongoDB中,要想對數據進行備份操作,需要使用腳本來執行命令完成,還原的的工作也是一樣的,這是它本身支持的“備份-還原”的工作,相對RDBMS系統來說,要簡單很多,不能自動完成。真的不能進行設置,來自動完成“備份和還原”的操作嗎?當然可以,只是我們需要使用第三的軟件才可以,而且功能越強大的,收費有的就越多,免費的也有,功能一般了,但是完成“備份-還原”的工作沒問題。

          接下來我們就開始說說MongoDB自己的、原生態的“備份-還原”是如何實現的,腳本很簡單。mongodump命名主要完成數據的備份工作,mongorestore命令主要完成數據庫的還原操作。就這兩個命名,是不是很簡單,那就開始我們今天的正文吧。

三、數據庫的備份和還原

    1、MongoDB數據庫的備份

        1.1、mongodump命令腳本語法如下:

             >./mongodump -h dbhost -d dbname -o dbdirectory

            -h:--host【--host <hostname><:port>, -h <hostname><:port>】

               MongoDB所在服務器地址,默認地址:localhost(127.0.0.1),當然也可以指定端口號:localhost:27017


            -d:--db【--db <database>, -d <database>】

               需要備份的數據庫實例,例如:school,這個數據庫是我自己建立的,所以是該備份的


            -o:--out <path>【 --out <path>, -o <path>】

               備份的數據存放位置,例如:./databaseBack,當然該目錄需要提前建立,在備份完成后,系統自動在dump目錄下建立一個test目錄,這個目錄里面存放該數據庫實例的備份數據。


          -u:--username <username>【--username <username>, -u <username>】

               指定用於向使用認證的MongoDB數據庫認證的用戶名,與--password和--authenticationDatabase結合使用


           -p:--password <password>【--password <password>, -p <password>】

               指定用於向使用認證的MongoDB數據庫認證的密碼。與--username和 --authenticationDatabase選項結合使用。


           -c:--collection <collection>【--collection <collection>, -c <collection>】

               指定要備份的集合。如果不指定,則會將指定數據庫或實例中的所有集合備份。


           --port <port>:

               指定MongoDB實例監聽客戶連接的TCP端口號。端口的默認值:27017


           --gzip:

                MongoDB3.2或者以上的版本,可以進行壓縮輸出,如果mongodump指定導出到目錄,則該選項會將每個文件都壓縮,並添加.gz后綴;如果mongodump指定導出到文檔或標准輸出流,則該選項會壓縮到文檔或輸出流中


           --authenticationDatabase:【--authenticationDatabase <dbname>】

                 如果您未指定身份驗證數據庫,則mongodump會假定指定要導出的數據庫保存用戶的憑據。如果您未指定要導出的身份驗證數據庫或數據庫,則mongodump假定admin數據庫保存用戶的憑據。


           --authenticationMechanism:【 --authenticationMechanism <name>】

                默認值: SCRAM-SHA-1


        1.2、實例代碼


          1】、登陸MongoDB的客戶端,查看school數據庫當前的詳情

            //登陸MongoDB的客戶端
            [root@linux bin]# ./mongo --host=192.168.127.130 --port=27017
            MongoDB shell version v3.6.3
            connecting to: mongodb://192.168.127.130:27017/
            MongoDB server version: 3.6.3
            Server has startup warnings:
            2018-06-13T11:27:09.721+0800 I CONTROL  [initandlisten]
            2018-06-13T11:27:09.721+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
            2018-06-13T11:27:09.721+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
            2018-06-13T11:27:09.721+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
            2018-06-13T11:27:09.721+0800 I CONTROL  [initandlisten]
            2018-06-13T11:27:09.723+0800 I CONTROL  [initandlisten]
            2018-06-13T11:27:09.723+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
            2018-06-13T11:27:09.723+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
            2018-06-13T11:27:09.723+0800 I CONTROL  [initandlisten]


            //顯示當前數據庫列表
            > show dbs
            admin   0.000GB
            config  0.000GB
            local   0.000GB
            school  0.000GB   //---這個數據庫就是我們要備份的

            //切換到school數據庫
            > use school
            switched to db school

            //顯示當前school數據庫下有多個集合
            > show tables
            geoInstance
            users

            //當前兩個集合都有數據
            > db.users.find()
            { "_id" : ObjectId("5b1e044733091e826f7c2c74"), "title" : "MongoDb Overview", "description" : "Mongodb is not sql database", "author" : "huangFeiHong", "url" : "http://www.huangfeihong.com", "tags" : [ "mongodb", "database", "NoSql" ], "likes" : 100, "quantity" : 4 }
            { "_id" : ObjectId("5b1e044733091e826f7c2c75"), "title" : "NoSql Overview", "description" : "No sql database is very fast", "author" : "huangFeiHong", "url" : "http://www.huangfeihong.com", "tags" : [ "mongodb", "database", "NoSql" ], "likes" : 10, "quantity" : 12 }
            { "_id" : ObjectId("5b1e044733091e826f7c2c76"), "title" : "Log4Net Overview", "description" : "log4net is not sql database", "author" : "linChong", "url" : "http://www.linchong.com", "tags" : [ "log", "net", "NoSQL" ], "likes" : 750, "quantity" : 6 }
            { "_id" : ObjectId("5b1e1bfb33091e826f7c2c77"), "title" : "MongoDb Higher", "description" : "Mongodb is not sql database", "author" : "huangFeiHong", "url" : "http://www.huangfeihong.com", "tags" : [ "mongodb", "database", "NoSql" ], "likes" : 120, "quantity" : 4 }
            { "_id" : ObjectId("5b1e1bfb33091e826f7c2c78"), "title" : "NoSql Redis Overview", "description" : "No sql database is very fast", "author" : "linChong", "url" : "http://www.linchong.com", "tags" : [ "redis", "database", "NoSql" ], "likes" : 30, "quantity" : 33 }
            { "_id" : ObjectId("5b1e1bfb33091e826f7c2c79"), "title" : "Memcached Overrivew", "description" : "Memcached is sql database", "author" : "wuSong", "url" : "http://www.wusong.com", "tags" : [ "memcached", "cache", "NoSQL" ], "likes" : 50, "quantity" : 10 }
            >
            >
            > db.geoInstance.find()
            { "_id" : ObjectId("5b1f4d21cf30d7cba03d5e03"), "loc" : [ 1, 3 ] }
            { "_id" : ObjectId("5b1f4d21cf30d7cba03d5e04"), "loc" : [ 3, 4 ] }
            { "_id" : ObjectId("5b1f4d21cf30d7cba03d5e05"), "loc" : [ 0, -3 ] }
            { "_id" : ObjectId("5b1f4d21cf30d7cba03d5e06"), "loc" : [ -6, 2 ] }
            { "_id" : ObjectId("5b1f4d21cf30d7cba03d5e07"), "loc" : { "x" : 9, "y" : 5 } }
            { "_id" : ObjectId("5b1f4d21cf30d7cba03d5e08"), "loc" : { "lng" : -9.2, "lat" : 21.3 } }


          2】、退出MongoDB的客戶端,我們要創建保存備份文件的目錄
       

            //退出MongoDB的客戶端
            > exit
            bye
            [root@linux bin]#

            //當前目錄結構
            [root@linux bin]# pwd
            /root/application/program/mongodb/mongodb-linux-x86_64-3.6.3/bin
            [root@linux bin]# databaseBack    //創建保存備份文件的目錄名稱

            
            //已經創建好的目錄結構,databaseBack是備份目錄
            [root@linux bin]# ls
            bsondump      datas            logs   mongod        mongodump    mongofiles   mongoperf    mongorestore  mongostat
            databaseBack  install_compass  mongo  mongodb.conf  mongoexport  mongoimport  mongoreplay  mongos        mongotop


          3】、開始備份數據庫,因為我們使用的是客戶端,要寫完整的地址,在MongoDB服務器端就可以省略

            //代碼很簡單
            [root@linux bin]# ./mongodump -h 192.168.127.130:27017 -d school -o ./databaseBack
            2018-06-13T11:50:00.816+0800    writing school.geoInstance to
            2018-06-13T11:50:00.817+0800    writing school.users to
            2018-06-13T11:50:00.821+0800    done dumping school.geoInstance (6 documents)
            2018-06-13T11:50:00.821+0800    done dumping school.users (6 documents)


            //查看備份文件
            [root@linux bin]# ls ./databaseBack
            school
            [root@linux bin]# ls ./databaseBack/school
            geoInstance.bson  geoInstance.metadata.json  users.bson  users.metadata.json


          4】、以下操作將創建一個只包含名為school的數據庫中名為users的集合的轉儲文件。 在這種情況下,數據庫在端口27017上的192.168.127.130運行:

            [root@linux bin]# ./mongodump -h 192.168.127.130:27017 --db school --collection users -o ./backCollection
            2018-06-13T13:40:46.702+0800    writing school.users to
            2018-06-13T13:40:46.706+0800    done dumping school.users (6 documents)
            [root@linux bin]# ls ./backCollection
            school
            [root@linux bin]# ls ./backCollection/school
            users.bson  users.metadata.json
            [root@linux bin]# 

 


          5】、要將轉儲輸出到存檔文件,請使用--archive選項和存檔文件名運行mongodump。 例如,以下操作將創建一個包含school數據庫轉儲的文件school.20180613.archive。

            [root@linux bin]# ./mongodump -h 192.168.127.130:27017 --archive=./backArchiveFile/school.2018613.archive --db school
            2018-06-13T13:57:51.953+0800    writing school.geoInstance to archive './backArchiveFile/school.2018613.archive'
            2018-06-13T13:57:51.955+0800    writing school.users to archive './backArchiveFile/school.2018613.archive'
            2018-06-13T13:57:51.994+0800    done dumping school.geoInstance (6 documents)
            2018-06-13T13:57:51.997+0800    done dumping school.users (6 documents)
            [root@linux bin]# ls ./backArchiveFile/
            school.2018613.archive


          6】、要壓縮輸出轉儲目錄中的文件,請使用新的--gzip選項運行mongodump。 例如,以下操作將壓縮文件輸出到默認轉儲目錄。

            [root@linux bin]# ./mongodump -h 192.168.127.130:27017 --db school --gzip -o ./backZip
            2018-06-13T14:04:39.674+0800    writing school.geoInstance to
            2018-06-13T14:04:39.675+0800    writing school.users to
            2018-06-13T14:04:39.682+0800    done dumping school.geoInstance (6 documents)
            2018-06-13T14:04:39.684+0800    done dumping school.users (6 documents)
        
            //顯示壓縮文件
            [root@linux bin]# ls ./backZip/school
            geoInstance.bson.gz  geoInstance.metadata.json.gz  users.bson.gz  users.metadata.json.gz


          7】、想要通過mongodump命令將壓縮的文件輸出到指定目錄,請將--gzip選項與--archive選項一起使用,並指定壓縮文件的名稱。

            [root@linux bin]# ./mongodump -h 192.168.127.130:27017 --archive=./backZip/school.2018613.gz --db school --gzip
            2018-06-13T14:08:57.311+0800    writing school.geoInstance to archive './backZip/school.2018613.gz'
            2018-06-13T14:08:57.312+0800    writing school.users to archive './backZip/school.2018613.gz'
            2018-06-13T14:08:57.346+0800    done dumping school.geoInstance (6 documents)
            2018-06-13T14:08:57.349+0800    done dumping school.users (6 documents)

            [root@linux bin]# ls ./backZip/
            school.2018613.gz



    2、MongoDB數據庫的還原


          2.1、mongorestore命令腳本語法如下:

             >mongorestore -h <hostname><:port> -d dbname <path>

                  --host <:port>, -h <:port>:

                  MongoDB所在服務器地址,默認為: localhost:27017

                  --db , -d :

                  需要恢復的數據庫實例,例如:school,當然這個名稱也可以和備份時候的不一樣,比如school3

                  --drop:

                  還原的時候,先刪除當前的數據,然后還原備份的數據。也就是說,還原后,成功備份之后再添加或者修改的數據都會被刪除,慎用哦!

                  <path>:

                  mongorestore 最后的一個參數,設置備份數據所在位置,如:./databaseBack

                  你不能同時指定 <path> 和 --dir 選項,--dir也可以設置備份目錄。

                  --dir:

                  指定備份數據的目錄地址

                  你不能同時指定 <path> 和 --dir 選項。


        2.2、示例代碼

          1】、上文已經成功備份了數據庫,現在我們要登陸MongoDB客戶端把我們的school數據庫刪除。

            //登陸MongoDB客戶端,顯示當前數據庫列表
            [root@linux bin]# ./mongo --host=192.168.127.130 --port=27017
            MongoDB shell version v3.6.3
            connecting to: mongodb://192.168.127.130:27017/
            MongoDB server version: 3.6.3
            Server has startup warnings:
            2018-06-13T11:27:09.721+0800 I CONTROL  [initandlisten]
            2018-06-13T11:27:09.721+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
            2018-06-13T11:27:09.721+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
            2018-06-13T11:27:09.721+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
            2018-06-13T11:27:09.721+0800 I CONTROL  [initandlisten]
            2018-06-13T11:27:09.723+0800 I CONTROL  [initandlisten]
            2018-06-13T11:27:09.723+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
            2018-06-13T11:27:09.723+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
            2018-06-13T11:27:09.723+0800 I CONTROL  [initandlisten]
            > show dbs
            admin   0.000GB
            config  0.000GB
            local   0.000GB
            school  0.000GB
            >

            //刪除school數據庫
            > use school
            switched to db school
            > db.dropDatabase()
            { "dropped" : "school", "ok" : 1 }
            >
            >
            > show dbs
            admin   0.000GB
            config  0.000GB
            local   0.000GB
            >

            //退出MongoDB客戶端
            > exit
            bye
            [root@linux bin]# 

 


          2】、我們開始還原我們的school數據庫吧,我們從集合來恢復數據庫。

            //還原users集合
            [root@linux bin]# ./mongorestore -h 192.168.127.130:27017 --collection users --db school ./databaseBack/school/users.bson
            2018-06-13T13:16:52.118+0800    checking for collection data in databaseBack/school/users.bson
            2018-06-13T13:16:52.120+0800    reading metadata for school.users from databaseBack/school/users.metadata.json
            2018-06-13T13:16:52.148+0800    restoring school.users from databaseBack/school/users.bson
            2018-06-13T13:16:52.218+0800    no indexes to restore
            2018-06-13T13:16:52.218+0800    finished restoring school.users (6 documents)
            2018-06-13T13:16:52.219+0800    done


            //還原geoInstance集合
            [root@linux bin]# ./mongorestore -h 192.168.127.130:27017 --collection geoInstance --db school ./databaseBack/school/geoInstance.bson
            2018-06-13T13:18:26.353+0800    checking for collection data in databaseBack/school/geoInstance.bson
            2018-06-13T13:18:26.358+0800    reading metadata for school.geoInstance from databaseBack/school/geoInstance.metadata.json
            2018-06-13T13:18:26.386+0800    restoring school.geoInstance from databaseBack/school/geoInstance.bson
            2018-06-13T13:18:26.456+0800    restoring indexes for collection school.geoInstance from metadata
            2018-06-13T13:18:26.475+0800    finished restoring school.geoInstance (6 documents)
            2018-06-13T13:18:26.475+0800    done


          3】、查看一下我們還原的數據。       

            [root@linux bin]# ./mongo --host=192.168.127.130 --port=27017
            MongoDB shell version v3.6.3
            connecting to: mongodb://192.168.127.130:27017/
            MongoDB server version: 3.6.3
            Server has startup warnings:
            2018-06-13T11:27:09.721+0800 I CONTROL  [initandlisten]
            2018-06-13T11:27:09.721+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
            2018-06-13T11:27:09.721+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
            2018-06-13T11:27:09.721+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
            2018-06-13T11:27:09.721+0800 I CONTROL  [initandlisten]
            2018-06-13T11:27:09.723+0800 I CONTROL  [initandlisten]
            2018-06-13T11:27:09.723+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
            2018-06-13T11:27:09.723+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
            2018-06-13T11:27:09.723+0800 I CONTROL  [initandlisten]
            >
            >
            > show dbs
            admin   0.000GB
            config  0.000GB
            local   0.000GB
            school  0.000GB
            >
            >
            > use school
            switched to db school
            >
            > show tables
            geoInstance
            users
            >
            >
            > db.users.find()
            { "_id" : ObjectId("5b1e044733091e826f7c2c74"), "title" : "MongoDb Overview", "description" : "Mongodb is not sql database", "author" : "huangFeiHong", "url" : "http://www.huangfeihong.com", "tags" : [ "mongodb", "database", "NoSql" ], "likes" : 100, "quantity" : 4 }
            { "_id" : ObjectId("5b1e044733091e826f7c2c75"), "title" : "NoSql Overview", "description" : "No sql database is very fast", "author" : "huangFeiHong", "url" : "http://www.huangfeihong.com", "tags" : [ "mongodb", "database", "NoSql" ], "likes" : 10, "quantity" : 12 }
            { "_id" : ObjectId("5b1e044733091e826f7c2c76"), "title" : "Log4Net Overview", "description" : "log4net is not sql database", "author" : "linChong", "url" : "http://www.linchong.com", "tags" : [ "log", "net", "NoSQL" ], "likes" : 750, "quantity" : 6 }
            { "_id" : ObjectId("5b1e1bfb33091e826f7c2c77"), "title" : "MongoDb Higher", "description" : "Mongodb is not sql database", "author" : "huangFeiHong", "url" : "http://www.huangfeihong.com", "tags" : [ "mongodb", "database", "NoSql" ], "likes" : 120, "quantity" : 4 }
            { "_id" : ObjectId("5b1e1bfb33091e826f7c2c78"), "title" : "NoSql Redis Overview", "description" : "No sql database is very fast", "author" : "linChong", "url" : "http://www.linchong.com", "tags" : [ "redis", "database", "NoSql" ], "likes" : 30, "quantity" : 33 }
            { "_id" : ObjectId("5b1e1bfb33091e826f7c2c79"), "title" : "Memcached Overrivew", "description" : "Memcached is sql database", "author" : "wuSong", "url" : "http://www.wusong.com", "tags" : [ "memcached", "cache", "NoSQL" ], "likes" : 50, "quantity" : 10 }
            >
            >
            > db.geoInstance.find()
            { "_id" : ObjectId("5b1f4d21cf30d7cba03d5e03"), "loc" : [ 1, 3 ] }
            { "_id" : ObjectId("5b1f4d21cf30d7cba03d5e04"), "loc" : [ 3, 4 ] }
            { "_id" : ObjectId("5b1f4d21cf30d7cba03d5e05"), "loc" : [ 0, -3 ] }
            { "_id" : ObjectId("5b1f4d21cf30d7cba03d5e06"), "loc" : [ -6, 2 ] }
            { "_id" : ObjectId("5b1f4d21cf30d7cba03d5e07"), "loc" : { "x" : 9, "y" : 5 } }
            { "_id" : ObjectId("5b1f4d21cf30d7cba03d5e08"), "loc" : { "lng" : -9.2, "lat" : 21.3 } }

 


          4】、我們可以使用nsInclude參數來恢復指定集合的數據。

            [root@linux bin]# ./mongorestore -h 192.168.127.130:27017 --nsInclude school.users ./databaseBack/
            2018-06-13T14:19:59.942+0800    preparing collections to restore from
            2018-06-13T14:19:59.946+0800    reading metadata for school.users from databaseBack/school/users.metadata.json
            2018-06-13T14:19:59.970+0800    restoring school.users from databaseBack/school/users.bson
            2018-06-13T14:19:59.977+0800    no indexes to restore
            2018-06-13T14:19:59.977+0800    finished restoring school.users (6 documents)
            2018-06-13T14:19:59.977+0800    done


            //這是在有數據的情況下執行恢復
            [root@linux bin]# ./mongorestore -h 192.168.127.130:27017 --nsInclude school.users ./databaseBack/
            2018-06-13T14:21:10.743+0800    preparing collections to restore from
            2018-06-13T14:21:10.747+0800    reading metadata for school.users from databaseBack/school/users.metadata.json
            2018-06-13T14:21:10.748+0800    restoring school.users from databaseBack/school/users.bson
            2018-06-13T14:21:10.755+0800    error: multiple errors in bulk operation:
              - E11000 duplicate key error collection: school.users index: _id_ dup key: { : ObjectId('5b1e044733091e826f7c2c74') }
              - E11000 duplicate key error collection: school.users index: _id_ dup key: { : ObjectId('5b1e044733091e826f7c2c75') }
              - E11000 duplicate key error collection: school.users index: _id_ dup key: { : ObjectId('5b1e044733091e826f7c2c76') }
              - E11000 duplicate key error collection: school.users index: _id_ dup key: { : ObjectId('5b1e1bfb33091e826f7c2c77') }
              - E11000 duplicate key error collection: school.users index: _id_ dup key: { : ObjectId('5b1e1bfb33091e826f7c2c78') }
              - E11000 duplicate key error collection: school.users index: _id_ dup key: { : ObjectId('5b1e1bfb33091e826f7c2c79') }

            2018-06-13T14:21:10.755+0800    no indexes to restore
            2018-06-13T14:21:10.755+0800    finished restoring school.users (6 documents)
            2018-06-13T14:21:10.755+0800    done

 


          5】、我們可以使用zip壓縮文件,通過archive參數來恢復指定數據庫的數據。

            [root@linux bin]# ./mongorestore -h 192.168.127.130:27017 --gzip --db school  --archive=./backZip/school.2018613.gz
            2018-06-13T14:26:48.939+0800    the --db and --collection args should only be used when restoring from a BSON file. Other uses are             deprecated and will not exist in the future; use --nsInclude instead
            2018-06-13T14:26:49.591+0800    preparing collections to restore from
            2018-06-13T14:26:50.041+0800    reading metadata for school.geoInstance from archive './backZip/school.2018613.gz'
            2018-06-13T14:26:50.071+0800    restoring school.geoInstance from archive './backZip/school.2018613.gz'
            2018-06-13T14:26:51.132+0800    restoring indexes for collection school.geoInstance from metadata
            2018-06-13T14:26:51.150+0800    finished restoring school.geoInstance (6 documents)
            2018-06-13T14:26:51.152+0800    reading metadata for school.users from archive './backZip/school.2018613.gz'
            2018-06-13T14:26:51.181+0800    restoring school.users from archive './backZip/school.2018613.gz'
            2018-06-13T14:26:51.837+0800    no indexes to restore
            2018-06-13T14:26:51.838+0800    finished restoring school.users (6 documents)
            2018-06-13T14:26:51.838+0800    done



            //以前已經刪除了school數據庫
            [root@linux bin]# ./mongo --host 192.168.127.130 --port=27017
            MongoDB shell version v3.6.3
            connecting to: mongodb://192.168.127.130:27017/
            MongoDB server version: 3.6.3
            Server has startup warnings:
            2018-06-13T11:27:09.721+0800 I CONTROL  [initandlisten]
            2018-06-13T11:27:09.721+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
            2018-06-13T11:27:09.721+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
            2018-06-13T11:27:09.721+0800 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
            2018-06-13T11:27:09.721+0800 I CONTROL  [initandlisten]
            2018-06-13T11:27:09.723+0800 I CONTROL  [initandlisten]
            2018-06-13T11:27:09.723+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
            2018-06-13T11:27:09.723+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
            2018-06-13T11:27:09.723+0800 I CONTROL  [initandlisten]
            > show dbs
            admin   0.000GB
            config  0.000GB
            local   0.000GB
            school  0.000GB  //數據庫已經存在了,說明恢復成功



五、結束

      好了,就是這些了。MongoDB的備份和還原還是有很多內容的,mongodump和mongorestore命令有很多參數可以去配置,今天只是一個初步認知,如果大家想查看更詳細的內容,可以查看英文的網站。地址如下:https://docs.mongodb.com/manual/reference/program/mongodump/。不忘初心,繼續努力吧。


免責聲明!

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



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