MongoDB
作用
MongoDB 是一种开源的文档型 NoSQL 数据库,采用 BSON(二进制 JSON)格式存储数据。以下是 MongoDB 的主要作用和用途:
灵活的数据模型:
- MongoDB 使用文档存储数据,文档之间可以有不同的结构。这种灵活性使得 MongoDB 非常适合处理不规则和变化频繁的数据。
大数据和实时分析:
- MongoDB 的高性能和扩展性使其适合处理大数据和实时分析应用。它能够快速存储和查询大量数据,并支持实时数据处理。
内容管理和目录服务:
- MongoDB 常用于内容管理系统(CMS)和目录服务,适合存储和管理大量的文档、图像、视频等非结构化数据。
物联网(IoT)和传感器数据:
- 由于 MongoDB 可以高效地存储和处理大量的时间序列数据,它非常适合物联网应用中的传感器数据存储和分析。
移动应用和社交网络:
- MongoDB 的灵活性和高性能使其成为移动应用和社交网络的理想选择,能够处理用户生成的内容、用户个人资料、消息和活动流等数据。
电子商务:
- 在电子商务平台中,MongoDB 可以用于存储产品目录、用户数据、订单信息等,并支持复杂的查询和数据分析。
日志和事件存储:
- MongoDB 可以用于存储和分析日志数据和事件数据,适用于日志管理、监控和审计等场景。
地理空间数据:
- MongoDB 提供了强大的地理空间查询功能,可以存储和查询地理位置数据,适用于地图服务、定位服务等应用。
分布式文件存储:
- MongoDB 的 GridFS 功能允许存储和检索大文件,如图像、视频和音频文件,适合作为分布式文件存储系统。
高可用性和扩展性:
- MongoDB 支持复制集和分片机制,能够实现数据的高可用性和水平扩展,适合大规模分布式系统。
快速开发和迭代:
- 由于 MongoDB 的模式灵活性,开发人员可以快速进行数据模型的修改和应用程序的迭代,适合敏捷开发和快速原型设计。
MongoDB 的文档存储模型、灵活性、高性能和扩展性使其成为现代应用程序中处理多样化和大规模数据的理想选择。
资源需求
- CPU: 4 核
- 内存: 32GB
- 存储: 500G
- 节点:1
网络端口
默认端口
副本集成员之间的通信端口
- 端口号: 27017(默认)
- 用途: 副本集成员之间通过该端口进行数据同步和心跳检测。
分片集群配置服务器端口
- 端口号: 27019
- 用途: 分片集群中的配置服务器使用的默认端口。
分片服务器端口
安装部署
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
| wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.0.6.tgz curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.4.24.tgz
[root@localhost ~] anaconda-ks.cfg mongodb-linux-x86_64-rhel70-4.0.6.tgz [root@localhost ~] Failed to stop friewalld.service: Unit friewalld.service not loaded. [root@localhost ~] [root@localhost ~] Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
[root@localhost ~] 1024 [root@localhost ~] [root@localhost ~] 65535 [root@localhost ~] 63447 [root@localhost ~] [root@localhost ~] 65535 [root@localhost ~] [root@localhost ~] anaconda-ks.cfg mongodb-linux-x86_64-rhel70-4.0.6.tgz
[root@worker02 ~] [root@worker02 ~] [root@worker02 mongodb]
[root@worker02 mongodb]
[root@worker02 mongodb] [root@worker02 mongodb] [root@worker02 mongodb]
[root@worker02 mongodb] data logs mongodb [root@worker02 mongodb] [root@worker02 mongodb]
port=27017 dbpath=/data/mongodb/data logpath=/data/mongodb/logs/mongodb.log logappend=true fork=true maxConns=5000
storageEngine=wiredTiger
bind_ip=0.0.0.0
auth=true
[root@worker02 mongodb] about to fork child process, waiting until server is ready for connections. forked process: 1834 [root@localhost mongodb] tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN 1834/mongod [root@localhost mongodb] root 1834 24.7 0.5 1502384 96948 ? Sl 5月27 1:41 /usr/local/mongodb/bin/mongod -f /usr/local/mongodb/conf/mongodb1.conf 设置开机自动启动 [root@mongodb mongodb] rm -f /data/mongodb1/mongod.lock mongod -f /usr/local/mongodb/conf/mongodb1.conf [root@localhost mongodb] MongoDB shell version v4.0.6 connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb Implicit session: session { "id" : UUID("be032cef-e2b3-4856-927c-0a560a40d1fd") } MongoDB server version: 4.0.6 Welcome to the MongoDB shell.
> show dbs admin 0.078GB config 0.078GB local 0.078GB > exit
|
报错处理:
dmesg | grep -i watchdog
journalctl -k | grep -i watchdog
vim /etc/sysctl.conf
添加以下内容
kernel.watchdog_thresh = 60
#使其生效
sysctl -p
#启动
/data/mongodb/mongodb/bin/mongod -f /data/mongodb/conf/mongodb.conf
# 可做可不做--作用是禁用透明大页
vim /etc/default/grub
添加以下内容
GRUB_CMDLINE_LINUX="... transparent_hugepage=never"