1. 程式人生 > >在CentOS上部署MongoDB數據庫

在CentOS上部署MongoDB數據庫

repo enable 訪問 存儲 面向集合 主配置文件 監聽端口 進入 bject

MongoDB簡介

MongoDB時一款跨平臺、面向文檔的 數據庫。可以實現高性能、高可用性,並且能夠輕松擴展。是一個基於分布式文件存儲的開源數據庫系統,在高負載情況下,添加更多節點,可以保證服務器性能。

MongoDB的特點

  • MongoDB的特點包括面向集合存儲、模式自由、豐富的查詢語句和多級索引、復制集機制、易於水平擴展、可插入存儲引擎、跨平臺多語言支持等。
  • MongoDB安裝簡單,提供了面向文檔存儲功能,操作起來比較容易。
  • MongoDB提供了復制、高可用性和自動分片功能。如果負載增加(需要更多的存儲空間和更強的處理能力),它可以分布在計算機網絡中的其他節點上,這就是所謂的分片。
  • Mongo支持豐富的查詢表達式。查詢指令使用JSON形式的標記,可輕易查詢文檔中內嵌的對象及數組 。
  • MongoDB支持各種編程語言:Ruby、Python、Java、C++、PHP、C#等多種語言。

MongoDB適用領域

MongoDB可以為Web應用提供可擴展的高性能數據存儲解決方案。MongoDB主要適用的領域有網站數據、分布式場景、數據緩存和JSON文檔格式存儲。適合大數據量、高並發、弱事務的互聯網應用,其內置的水平擴展機制提供了從幾百萬到十億級別的數據處理能力,可以很好的滿足Web2.0和移動互聯網應用數據存儲的要求。

MongoDB的存儲結構

MongoDB的存儲結構由邏輯存儲和物理存儲組成。

MongoDB的邏輯結構主要由文檔(document)、集合(collection)和數據庫(database)三部分組成。其中文檔是MongoDB的核心概念,它是MongoDB邏輯存儲的最小單元,相當於關系型數據庫中的一行記錄,多個文檔組成集合,集合相當於關系型數據庫中的表的概念,多個集合組成數據庫。

MongoDB的物理存儲結構主要包括數據存儲和日誌存儲。

安裝及運行控制

(1)配置YUM源倉庫

[root@localhost ~]# vim /etc/yum.repos.d/mongodb.repo 
[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
[root@localhost ~]# yum list

(2)安裝MongoDB

[root@localhost ~]# yum install mongodb-org -y
[root@localhost ~]# vim /etc/mongod.conf //修改主配置文件// 
net:
  port: 27017     //監聽端口//
  bindIp: 0.0.0.0  //監聽地址//

1)啟動mongodb服務並查看端口信息

[root@localhost ~]# systemctl start mongod.servicev
[root@localhost ~]# netstat -anpt | grep 27017
tcp        0      0 0.0.0.0:27017           0.0.0.0:*               LISTEN      14604/mongod

2)連接並訪問數據庫

[root@localhost ~]# /usr/bin/mongo
....//省略
2018-07-17T09:54:54.595+0800 I CONTROL  [initandlisten] 
> 
> db.version()    //查看版本信息//
3.6.6
> show dbs;     //查看數據庫//
admin   0.000GB
config  0.000GB
local   0.000GB
school  0.000GB
> db.getMongo()  //查看當前數據庫機器的連接地址//
connection to 127.0.0.1:27017  

(3)開啟多實例

1)在單臺服務器資源充分的情況下,可以使用多實列,以便充分使用服務器資源。具體步驟如下:

cp -p /etc/mongod.conf /etc/mongod2.conf //復制主配置文件//

vim /etc/mongod2.conf //修改主配置文件//
   path: /data/mongodb/mongod2.log //日誌存放位置//
   dbPath: /data/mongodb/mongo //數據存放位置//
   port: 27018   //端口號//

mkdir -p  /data/mongodb/  //創建日誌存放目錄//
cd /data/mongodb/
mkdir mongo
touch mongod2.log   //創建日誌文件//
chmod 777 mongod2.log   //提升權限//

mongod -f /etc/mongod2.conf  //啟動服務//
[root@localhost mongo]# netstat -ntap | grep mongod   //查看端口//
tcp        0      0 0.0.0.0:27017           0.0.0.0:*               LISTEN      14604/mongod        
tcp        0      0 0.0.0.0:27018           0.0.0.0:*               LISTEN      15552/mongod 

2)進入端口號為27018的數據庫

[root@localhost mongo]# mongo --port 27018 
MongoDB shell version v3.6.6
connecting to: mongodb://127.0.0.1:27018/
MongoDB server version: 3.6.6
.....//省略//
> 
MongoDB基本操作

(1)mongoDB數據庫的增、刪、改、查操作。

> use school      //不存在會創建,不建立集合又會刪除//
> db.createCollection(‘info‘)  //創建集合//
> show collections   //查看集合(表),也可以使用show tables查看//
info
> db.info.insert({"id":1,"name":"jack"})   //插入數據記錄//
WriteResult({ "nInserted" : 1 })
> db.info.find()   //查看數據信息//
{ "_id" : ObjectId("5b4d59fb97ae83a938d0e8b3"), "id" : 1, "name" : "jack" }
> db.info.update({"id":1},{$set:{"name":"tom"}})   //更改//
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
> db.info.find()
{ "_id" : ObjectId("5b4d59fb97ae83a938d0e8b3"), "id" : 1, "name" : "tom" }
> db.info.drop()   //刪除集合//
true
> db.dropDatabase()   //刪除數據庫//
{ "dropped" : "school", "ok" : 1 }
> show dbs
admin   0.000GB
config  0.000GB
local   0.000GB
MongoDB的日常維護

主要包括:數據庫的備份恢復、安全管理和數據庫狀態監控。

1)備份與恢復管理

在MongoDB中備份管理包括導入導出、備份與恢復、復制數據庫和克隆集合等操作。

導出操作
[root@bogon ~]# mongoexport -d kgc -c users -o /opt/users.json  //適用於只有一個實例//
                mongoexport -h 127.0.0.1:27018 -d school -c test -o /opt/test.json //適用於有兩個實列//
導入操作
[root@bogon opt]# mongoimport -d kgc -c user1 --file users.json  //適用於只有一個實例//
                  mongoimport -h=127.0.0.1:27018 -d school -c txt --file test.json //適用於有兩個實列//
條件操作
[root@bogon opt]# mongoexport -d kgc -c user1 -q ‘{"id":{"$eq":10}}‘ -o /opt/top10.json

2)備份與恢復、復制數據庫。

[root@bogon opt]# mkdir /backup  //創建備份目錄//
[root@bogon opt]# mongodump -d kgc -o /backup/  #備份

[root@bogon backup]# mongorestore -d kgc2 --dir=/backup/kgc  #恢復
>db.copyDatabase("kgc","kgc2")   //復制數據庫//

3)克隆集合

mongo --port 27018

 db.runCommand({"cloneCollection":"kgc.users","from":"192.168.235.190:27017"}

4)創建管理用戶

> use admin
> db.createUser({"user":"root","pwd":"123","roles":["root"]})
> db.auth("root","123")

在CentOS上部署MongoDB數據庫