首頁 > 軟體

MongoDB資料庫部署環境準備及使用介紹

2022-03-21 16:00:03

一、MongoDB 簡介

MongoDB 是由 C++ 語言編寫的,是一個基於分散式檔案儲存的非關係型開源資料庫系統。其優勢在於可以存放海量資料,具備強大的查詢功能,是一個獨立的面向集合檔案形式的。

應用平臺:MongoDB 支援 Unix Linux Windows 等系統平臺。

MySQL 與 MongoDB 區別:

MySQL資料庫資料表資料
MongDB資料庫集合檔案

1.MongoDB 特點

儲存性:

面向集合:資料被分組儲存在資料集中,被稱為一個集合。

面向檔案:儲存在集合中的檔案,被儲存為鍵值對的形式。

高效二進位制資料儲存:使用二進位制格式儲存,可以儲存任何型別的資料物件。

操作性:

完全索引:可以在任意屬性上建立索引,包含內部物件。以提高查詢的速度。

強大的聚合工具:MongoDB 除了提供豐富的查詢功能外,還提供了強大的聚合工具,如 count group 等。

支援 Perl PHP Java C# JavaScript Ruby Python CC++ 語言的驅動程式。

可用性:

支援複製和資料恢復:MongoDB 支援主從複製機制,可以實現資料的備份、故障恢復、讀擴充套件等功能。而基於副本集的複製機制提供了自動故障恢復的功能,確保了叢集資料不會丟失。

自動處理分片:MongoDB 支援叢集自動切分資料,對資料進行切分可以使用叢集儲存更多的資料,實現更大的負載,也能保證儲存的負載均衡。

2.MongoDB 適用場景

網站實時資料處理:它非常適合實時的插入、更新與查詢,並具備網站實時資料儲存所需的複製及高伸縮性。

快取:它適合作為資訊基礎設施的快取層。在系統重啟之後,由它搭建的持久化快取層可以避免下層的資料來源過載。

高伸縮性的場景:非常適合由數十臺或數百臺伺服器組成的資料庫。

不適用於的場景如下:

要求高度事務性的系統(例如:銀行和會計系統)傳統的商業只能應用。複雜的跨檔案(表)級聯查詢。

3.MongoDB 儲存結構

邏輯結構:

檔案 document:存放的資料。

集合 collection:由多個檔案組成,相當於表,但不同的是集合是無固定架構。

資料庫 database:多個集合組成的資料庫。

物理結構:

.wt 檔案:每個表或索引對應一個名稱空間,資料量增加,檔案數量增多,儲存了分配和正在使用的磁碟空間。

資料檔案:存放資料的實體,並且使用預分配空間機制。

紀錄檔檔案:系統紀錄檔檔案、journal 紀錄檔檔案(用於 MongoDB 崩潰恢復的保障)、oplog 複製操作紀錄檔檔案(相當於 MySQL 的 BinLog 檔案)、慢查詢紀錄檔(查詢操作超出指定時間的語句)

物理結構就是真正存放資料的位置。

4.MongoDB 資料型別

二、部署 MongoDB 資料庫應用

主機名作業系統IP 地址版本
MongoDBCentOS 7.4192.168.1.1mongodb-linux-x86_64-rhel70-4.4.5.tgz

1.準備系統環境

[root@MongoDB ~]# ulimit -n 25000									# 同一時間最多開啟的檔案數
[root@MongoDB ~]# ulimit -u 25000									# 使用者最多開啟的程式數目
[root@MongoDB ~]# echo 0 > /proc/sys/vm/zone_reclaim_mode			# 設定核心引數. 當某個節點記憶體不足時可以借用其它節點的記憶體
[root@MongoDB ~]# sysctl -w vm.zone_reclaim_mode=0
vm.zone_reclaim_mode = 0
[root@MongoDB ~]# echo never > /sys/kernel/mm/transparent_hugepage/enabled
[root@MongoDB ~]# echo never > /sys/kernel/mm/transparent_hugepage/defrag

因為下面安裝的版本為 4.4.5,而 MongoDB 4 版本以上的 /bin 目錄中的工具進行了分離,所以需要安裝:傳送門

[root@MongoDB ~]# tar xf mongodb-database-tools-rhel70-x86_64-100.3.1.tgz 

2.安裝 MongoDB

[root@MongoDB ~]# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.5.tgz
[root@MongoDB ~]# tar xf mongodb-linux-x86_64-rhel70-4.4.5.tgz
[root@MongoDB ~]# mv mongodb-linux-x86_64-rhel70-4.4.5 /usr/local/mongodb
[root@MongoDB ~]# mv mongodb-database-tools-rhel70-x86_64-100.3.1/bin/* /usr/local/mongodb/bin/
[root@MongoDB ~]# echo "export PATH=/usr/local/mongodb/bin:$PATH" >> /etc/profile
[root@MongoDB ~]# source /etc/profile

3.建立 MongoDB 儲存目錄以及組態檔

[root@MongoDB ~]# mkdir /usr/local/mongodb/{data,logs,conf}
[root@MongoDB ~]# touch /usr/local/mongodb/logs/mongodb.log
[root@MongoDB ~]# chmod 777 /usr/local/mongodb/logs/mongodb.log 
[root@MongoDB ~]# cat <<END > /usr/local/mongodb/conf/mongodb.conf
bind_ip=192.168.1.1
port=27017
dbpath=/usr/local/mongodb/data/
logpath=/usr/local/mongodb/logs/mongodb.log
logappend=true																	# 紀錄檔以檔案追加的方式寫入
fork=true																		# 通過後臺執行 MongoDB 服務
maxConns=5000																	# MongoDB 最大連線數
END

4.編寫服務啟動指令碼

[root@MongoDB ~]# mongod -f /usr/local/mongodb/conf/mongodb.conf				# 啟動 MongoDB 服務
[root@MongoDB ~]# mongo 192.168.1.1:27017										# 登入驗證
[root@MongoDB ~]# mongod -f /usr/local/mongodb/conf/mongodb.conf --shutdown		# 關閉 MongoDB 服務
[root@MongoDB ~]# vim /etc/init.d/mongodb
#!/bin/bash
case "$1" in
start)
/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/mongodb.conf;;
stop)
/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/mongodb.conf --shutdown;;
restart)
/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/mongodb.conf --shutdown
/usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/mongodb.conf;;
esac
[root@MongoDB ~]# chmod +x /etc/init.d/mongodb 									# 新增執行許可權
[root@MongoDB ~]# /etc/init.d/mongodb start										# 啟動

登入驗證

[root@MongoDB ~]# mongo 192.168.1.1:27017										# 登入 MongoDB 資料庫 (預設在 test 庫中)
> show databases					# 檢視資料庫中所有庫
admin   0.000GB
config  0.000GB
local   0.000GB
> db.getName()						# 檢視當前登入庫
test

MongoDB 安裝完後的預設 4 個庫:

admin:存放了有關資料庫賬號的相關資訊。

config:用於分片叢集環境,存放分片相關的後設資料資訊。

local:用於儲存限於本地單臺伺服器的任意集合(因為該庫並不會被複制到從節點,簡單來說就是沒有冗餘性)

test:MongoDB 預設建立的一個測試庫,連線 MongoDB 服務時,如果不指定連線的具體資料庫,預設就會連線到 test 庫。

以上就是MongoDB資料庫部署環境準備及使用介紹的詳細內容,更多關於MongoDB資料庫部署環境準備的資料請關注it145.com其它相關文章!


IT145.com E-mail:sddin#qq.com