MongoDB-------安裝+操作命令+備份的恢復(fù)、管理、監(jiān)控

文章目錄

一、MongoDB :
二、Linux 系統(tǒng)安裝MongoDB :
  • 第一步:配置 YUM 源倉庫
  • 第二步:安裝 MongoDB
    三、MongoDB 基礎(chǔ)操作
  • 1、基本命令:
  • 2、備份、恢復(fù):
  • 3、安全管理:
  • 4、進(jìn)程管理:
  • 5、MongoDB 監(jiān)控:

    一、MongoDB :

    (1)MongoDB是一個基于分布式文件存儲的數(shù)據(jù)庫。由C++語言編寫。旨在為WEB應(yīng)用提供可擴(kuò)展的高性能數(shù)據(jù)存儲解決方案。

    成都創(chuàng)新互聯(lián)一直秉承“誠信做人,踏實(shí)做事”的原則,不欺瞞客戶,是我們最起碼的底線! 以服務(wù)為基礎(chǔ),以質(zhì)量求生存,以技術(shù)求發(fā)展,成交一個客戶多一個朋友!為您提供網(wǎng)站制作、成都做網(wǎng)站、成都網(wǎng)頁設(shè)計、微信平臺小程序開發(fā)、成都網(wǎng)站開發(fā)、成都網(wǎng)站制作、成都軟件開發(fā)、重慶APP開發(fā)是成都本地專業(yè)的網(wǎng)站建設(shè)和網(wǎng)站設(shè)計公司,等你一起來見證!

(2)MongoDB是一個介于關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫之間的產(chǎn)品,是非關(guān)系數(shù)據(jù)庫當(dāng)中功能最豐富,最像關(guān)系數(shù)據(jù)庫的。它支持的數(shù)據(jù)結(jié)構(gòu)非常松散,是類似json的bson格式,因此可以存儲比較復(fù)雜的數(shù)據(jù)類型。Mongo最大的特點(diǎn)是它支持的查詢語言非常強(qiáng)大,其語法有點(diǎn)類似于面向?qū)ο蟮牟樵冋Z言,幾乎可以實(shí)現(xiàn)類似關(guān)系數(shù)據(jù)庫單表查詢的絕大部分功能,而且還支持對數(shù)據(jù)建立索引。

(3)特點(diǎn):

  • 面向集合存儲,易存儲對象類型的數(shù)據(jù);
  • 模式自由、支持查詢、支持動態(tài)查詢;
  • 支持完全索引,包含內(nèi)部對象;
  • 支持復(fù)制和故障恢復(fù);
  • 使用高效的二進(jìn)制數(shù)據(jù)存儲,包括大型對象(如視頻等);
  • 自動處理碎片,以支持云計算層次的擴(kuò)展性;
  • 支持RUBY,PYTHON,JAVA,C++,PHP,C#等多種語言;
  • 文件存儲格式為BSON(一種JSON的擴(kuò)展);
  • 可通過網(wǎng)絡(luò)訪問。

二、Linux 系統(tǒng)安裝MongoDB :

1、配置 YUM 源倉庫
[mongodb-org]

name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.6/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.6.asc

2、安裝 MongoDB

yum install mongodb-org -y
修改配置文件:
vim /etc/mongod.conf

bindIp: 0.0.0.0    //監(jiān)聽地址
port: 27017         //監(jiān)聽端口
開啟服務(wù):
systemctl start mongod.service
#查看服務(wù)啟動情況
netstat -natp | grep 27017
啟動MongoDB 多實(shí)例:
cp -p /etc/mongod.conf /etc/mongod2.conf

vim /etc/mongod2.conf  
//修改以下代碼:
     path: /data/mongodb/mongod2.log      //日志文件目錄
     dbPath: /data/mongodb/mongo          //數(shù)據(jù)存儲目錄
     port: 27018                          //服務(wù)器端口

MongoDB-------安裝+操作命令+備份的恢復(fù)、管理、監(jiān)控

創(chuàng)建實(shí)例的目錄和日志文件:
mkdir -p  /data/mongodb/
cd /data/mongodb/
mkdir mongo
#創(chuàng)建日志文件
touch mongod2.log
#給于權(quán)限
chmod 777 mongod2.log
啟動實(shí)例:
mongod -f /etc/mongod2.conf    
mongo --port 27018    //指定實(shí)例的端口
netstat -ntap

三、MongoDB 基礎(chǔ)操作

1、基本命令:

(1)文檔 : 相當(dāng)于關(guān)系數(shù)據(jù)庫的 行 (多個文檔組成集合)

(2)集合 : 相當(dāng)于關(guān)系數(shù)據(jù)庫的 表 (多個集合組成數(shù)據(jù)庫)

(3)數(shù)據(jù)庫名特殊作用:

  • admin: 將用戶添加到這個庫,這個用戶繼承數(shù)據(jù)庫所有權(quán)限;
  • local : 這個庫永遠(yuǎn)不被復(fù)制,可以存儲限于本地單臺服務(wù)器的任意集合;
  • config : 當(dāng)Mongo用于分片設(shè)置時,這個庫在內(nèi)部使用,保存分片的相關(guān)信息。
 mongo   //進(jìn)入數(shù)據(jù)庫

> db.version()      //查看版本
> show dbs;         // 查看數(shù)據(jù)庫
> db.getMongo()     //查看當(dāng)前數(shù)據(jù)庫機(jī)器的連接地址
> db.集合名.help     //顯示集合操作命令
> show users        //顯示用戶

(4)具體操作:

>  use school;                       //打開school數(shù)據(jù)庫, 不存在會創(chuàng)建,不建立集合又會刪除
> db.createCollection('info')        //創(chuàng)建集合
> db.info.insert({"id":1,"name":"zhangsan","hobby":["game","talk"]})      //添加數(shù)據(jù)
> db.info.find()                    //查看info集合中所有文檔
> show collections                  //查看數(shù)據(jù)庫中所有集合
> db.info.update({"id":10},{$set:{"name":"tom"}})     //更改數(shù)據(jù)
> db.info.remove({"id":2})         //移除info集合中的id2的數(shù)據(jù)
> db.info.drop()                   //刪除info集合
> db.dropDatabase()               //刪除數(shù)據(jù)庫  先use到要刪的數(shù)據(jù)庫里在刪
> db.info.count()                 //統(tǒng)計有多少條數(shù)據(jù)

(5)MongoDB 數(shù)據(jù)類型:

  • String: 字符串,最常用,必須是utf-8
  • Boolean:布爾值,true 或者false
  • Integer:整數(shù)
  • Double:浮點(diǎn)數(shù)
  • Arrays:數(shù)組或者列表,多個值存儲到一個鍵
  • Object:用于嵌入文檔,即一個值為一個文檔
  • Null:存儲null值
  • Binary Data : 二進(jìn)制數(shù)據(jù),用于存儲二進(jìn)制數(shù)據(jù)
  • Date:存儲當(dāng)前日期或時間unix時間格式

(6)查看數(shù)據(jù)類型:

> a=db.info.findOne({"id":1})   //查找指定記錄并賦予別名a
> typeof(a.id)                  //查看屬性類型

2、備份、恢復(fù):

(1)導(dǎo)入導(dǎo)出:

  • 導(dǎo)出:mongoexport
  • 導(dǎo)入:mongoimport
  • 常見選項(xiàng):
    -d 數(shù)據(jù)庫
    -c 集合
    -o 目錄文件.json結(jié)尾
    -q 導(dǎo)出數(shù)據(jù)過濾條件
    -f 導(dǎo)出哪些列
for(var i=1;i<=100;i++)db.info.insert({"id":i,"name":"jack"+i})    //循環(huán)寫入100條數(shù)據(jù)
mongoexport -d school -c info -o /opt/info.json        //導(dǎo)出
mongoimport -d school -c info1 --file /opt/info.json  //導(dǎo)入到info1集合
mongoexport -d school -c info1 -q '{"id":{"$eq":10}}' -o /opt/top10.json    //條件導(dǎo)出指定第10行

(2)備份與恢復(fù):

  • 備份:mongodump
  • 恢復(fù):mongorestore
  • 選項(xiàng):
    -h 指定Mongodb所在服務(wù)器的地址也可以指定端口(例:-h 127.0.0.1:27017)
    -d :需要備份的數(shù)據(jù)庫;
    -o :備份數(shù)據(jù)存放的目錄 該目錄需提前創(chuàng)建
mkdir /backup                       //創(chuàng)建存放目錄
mongodump -d school -o /backup/     //備份school數(shù)據(jù)庫
mongorestore -d school1 --dir=/backup/school    //恢復(fù)到school1數(shù)據(jù)庫

④ 復(fù)制數(shù)據(jù)庫:

db.copyDatabase("school","school2")     //復(fù)制數(shù)據(jù)庫school 到school2中

⑤ 克隆數(shù)據(jù)庫:

把數(shù)據(jù)庫school的info集合 克隆到實(shí)例2
先進(jìn)入實(shí)例2的MongoDB
mongo --port 27018
db.runCommand({"cloneCollection":"school.info","from":"192.168.126.130:27017"}) 

3、安全管理:

  • 創(chuàng)建管理用戶;
  • 啟動是必須指定 auth=true;
  • 可以將用戶分配角色;
  • 內(nèi)置數(shù)據(jù)庫用戶角色: read 、 readWrite;
  • 數(shù)據(jù)庫管理員角色: dbAmin 、 dbOwner 、 userAdmin;
  • 超級用戶角色 :root
    vim /etc/mongod.conf
auth=true   //添加
mongo
> use admin
> db.createUser({"zkc":"root","pwd":"123","roles":["root"]})
//創(chuàng)建用戶zkc  密碼123  分配到root角色
> db.auth("root","123")     //驗(yàn)證用戶

4、進(jìn)程管理:

  • 終止正在運(yùn)行的進(jìn)程: db.killOp(opid值)、
  • 查看當(dāng)前正在運(yùn)行的進(jìn)程: db.currentOp()
> db.currentOp()       //查看

> db.killOp(4872) //終止4872進(jìn)程

5、MongoDB 監(jiān)控:

  • MongoDB提供一些內(nèi)置工具可以監(jiān)測數(shù)據(jù)庫的狀態(tài)信息
  • 查看數(shù)據(jù)庫實(shí)例的狀態(tài)信息: db.serverStatus()
  • 查看數(shù)據(jù)庫的統(tǒng)計信息: db.stats()
  • 此外也可以通過web界面查看系統(tǒng)監(jiān)控信息需要在配置文件中加入
vim /etc/mongod.conf
httpinterface=true

本文名稱:MongoDB-------安裝+操作命令+備份的恢復(fù)、管理、監(jiān)控
鏈接URL:http://bm7419.com/article4/pcihoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、微信公眾號、域名注冊、小程序開發(fā)、企業(yè)建站、網(wǎng)站收錄

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁設(shè)計