mongo备份索引_【MongoDB学习之四】索引 聚合 备份与恢复 监控
環(huán)境
MongoDB 4.0
CentOS 6.5_x64
一、索引
語法
ensureIndex()方法基本語法格式如下所示:
>db.COLLECTION_NAME.ensureIndex({KEY:1})
語法中 Key 值為你要創(chuàng)建的索引字段,1為指定按升序創(chuàng)建索引,如果你想按降序來創(chuàng)建索引指定為-1即可。
實例
>db.mycol.ensureIndex({"title":1})
ensureIndex() 方法中你也可以設(shè)置使用多個字段創(chuàng)建索引(關(guān)系型數(shù)據(jù)庫中稱作復(fù)合索引)。
>db.mycol.ensureIndex({"title":1,"description":-1})
二、聚合
語法
>db.COLLECTION_NAME.aggregate(AGGREGATE_OPERATION)
管道
管道在Unix和Linux中一般用于將當前命令的輸出結(jié)果作為下一個命令的參數(shù)。
MongoDB的聚合管道將MongoDB文檔在一個管道處理完畢后將結(jié)果傳遞給下一個管道處理。管道操作是可以重復(fù)的。
表達式:處理輸入文檔并輸出。表達式是無狀態(tài)的,只能用于計算當前聚合管道的文檔,不能處理其它的文檔。
這里我們介紹一下聚合框架中常用的幾個操作:
$project:修改輸入文檔的結(jié)構(gòu)。可以用來重命名、增加或刪除域,也可以用于創(chuàng)建計算結(jié)果以及嵌套文檔。
$match:用于過濾數(shù)據(jù),只輸出符合條件的文檔。$match使用MongoDB的標準查詢操作。
$limit:用來限制MongoDB聚合管道返回的文檔數(shù)。
$skip:在聚合管道中跳過指定數(shù)量的文檔,并返回余下的文檔。
$unwind:將文檔中的某一個數(shù)組類型字段拆分成多條,每條包含數(shù)組中的一個值。
$group:將集合中的文檔分組,可用于統(tǒng)計結(jié)果。
$sort:將輸入文檔排序后輸出。
$geoNear:輸出接近某一地理位置的有序文檔
三、備份與恢復(fù)
1、備份-mongodump
mongodump命令腳本語法如下:
>mongodump -h dbhost -d dbname -o dbdirectory
-h:
MongDB所在服務(wù)器地址,例如:127.0.0.1,當然也可以指定端口號:127.0.0.1:27017
-d:
需要備份的數(shù)據(jù)庫實例,例如:test
-o:
備份的數(shù)據(jù)存放位置,例如:c:\data\dump,當然該目錄需要提前建立,在備份完成后,系統(tǒng)自動在dump目錄下建立一個test目錄,這個目錄里面存放該數(shù)據(jù)庫實例的備份數(shù)據(jù)。
語法 描述 實例
mongodump 默認在bin目錄下創(chuàng)建dump目錄備份
mongodump --host HOST_NAME --port PORT_NUMBER 該命令將備份所有MongoDB數(shù)據(jù) mongodump --host w3cschool.cn --port 27017
mongodump --dbpath DB_PATH --out BACKUP_DIRECTORY mongodump --dbpath /data/db/ --out /data/backup/
mongodump --collection COLLECTION --db DB_NAME 該命令將備份指定數(shù)據(jù)庫的集合。 mongodump --collection mycol --db test
2、恢復(fù)-mongorestore
語法
mongorestore命令腳本語法如下:
>mongorestore -h dbhost -d dbname --directoryperdb dbdirectory
-h:
MongoDB所在服務(wù)器地址
-d:
需要恢復(fù)的數(shù)據(jù)庫實例,例如:test,當然這個名稱也可以和備份時候的不一樣,比如test2
--directoryperdb:
備份數(shù)據(jù)所在位置,例如:c:\data\dump\test,這里為什么要多加一個test,而不是備份時候的dump,讀者自己查看提示吧!
--drop:
恢復(fù)的時候,先刪除當前數(shù)據(jù),然后恢復(fù)備份的數(shù)據(jù)。就是說,恢復(fù)后,備份后添加修改的數(shù)據(jù)都會被刪除,慎用哦!
mongorestore不加參數(shù) 默認恢復(fù)bin目錄下dump下的數(shù)據(jù)
四、監(jiān)控
1、mongostat 命令
mongostat是mongodb自帶的狀態(tài)檢測工具,在命令行下使用。它會間隔固定時間獲取mongodb的當前運行狀態(tài),并輸出。如果你發(fā)現(xiàn)數(shù)據(jù)庫突然變慢或者有其他問題的話,你第一手的操作就考慮采用mongostat來查看mongo的狀態(tài)。
啟動你的Mongod服務(wù),進入到你安裝的MongoDB目錄下的bin目錄, 然后輸入mongostat命令。
2、mongotop 命令
mongotop也是mongodb下的一個內(nèi)置工具,mongotop提供了一個方法,用來跟蹤一個MongoDB的實例,查看哪些大量的時間花費在讀取和寫入數(shù)據(jù)。 mongotop提供每個集合的水平的統(tǒng)計數(shù)據(jù)。默認情況下,mongotop返回值的每一秒。
啟動你的Mongod服務(wù),進入到你安裝的MongoDB目錄下的bin目錄, 然后輸入mongotop命令
mongotop 10:后面的10是參數(shù) ,可以不使用,等待的時間長度,以秒為單位,mongotop等待調(diào)用之間。通過的默認mongotop返回數(shù)據(jù)的每一秒
mongotop --locks:報告每個數(shù)據(jù)庫的鎖的使用中,使用mongotop - 鎖
輸出結(jié)果字段說明:
ns:
包含數(shù)據(jù)庫命名空間,后者結(jié)合了數(shù)據(jù)庫名稱和集合。
db:
包含數(shù)據(jù)庫的名稱。名為 . 的數(shù)據(jù)庫針對全局鎖定,而非特定數(shù)據(jù)庫。
total:
mongod花費的時間工作在這個命名空間提供總額。
read:
提供了大量的時間,這mongod花費在執(zhí)行讀操作,在此命名空間。
write:
提供這個命名空間進行寫操作,這mongod花了大量的時間。
參考:
總結(jié)
以上是生活随笔為你收集整理的mongo备份索引_【MongoDB学习之四】索引 聚合 备份与恢复 监控的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 判断父元素是否为顶部_元素树,检查元素是
- 下一篇: java 读取webservice_ja