【赵渝强老师】管理MongoDB的运行

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: MongoDB使用`mongod`命令启动服务器。实战中,创建目录`/data/db2`存放数据文件,并通过命令`mongod --dbpath /data/db2/ --port 1234 --fork --logpath /data/db2/db2.log --directoryperdb`启动服务。登录MongoDB后可创建数据库和集合。停止MongoDB服务器有三种方式:1) 使用`db.shutdownServer()`;2) 使用`db.adminCommand({shutdown:1, force:true})`强制关闭;3) 使用操作系统的`kill -2 PID`命令。

副本_副本_副本_副本_副本_副本_副本_副本_副本_副本_副本_副本_Oracle-课程封面__2025-03-08+08_58_45.png

MongoDB提供了mongod命令用于启动MongoDB服务器端;而停止MongoDB服务器却可以通过几种不同的方式完成。


一、【实战】启动MongoDB服务器


通过执行下面的语句可以查看启动MongoDB服务器的帮助信息:

mongod --help
# 输出的信息如下:
......
Storage options:
  --storageEngine arg What storage engine to use - defaults 
                        to wiredTiger if no data files present
  --dbpath arg      Directory for datafiles - defaults to 
                        /data/db
  --directoryperdb      Each database will be stored in a 
                        separate directory
......


MongoDB除了可以将启动的配置参数写入配置文件以外,还可以直接写到mongod的启动命令中。视频讲解如下:


下面通过具体的步骤来进行演示。


(1)创建一个新的目录/data/db2用于存放MongoDB数据文件。

mkdir -p /data/db2


(2)使用mongod命令启动MongoDB服务器。

mongod --dbpath /data/db2/ --port 1234 --fork \
--logpath /data/db2/db2.log --directoryperdb
# 其中:
# --port:指定MongoDB监听的端口。
# --fork:指定MongoDB服务器将运行在后台。
#--logpath:指定MongoDB输出的日志文件。
# -directoryperdb:指定将不同的数据库存放在单独的目录下以方便管理。
# 输出的信息如下:
about to fork child process, waiting until server is ready for connections.
forked process: 28215
child process started successfully, parent exiting


(3)使用mongoshell登录MongoDB,并创建一个新的数据库和集合。

mongo --port 1234
> use demo
> db.test1.insert({_id:'user001',name:'Tom'})


(4)查看目录/data/db2下的目录和文件。

tree /data/db2
输出的信息如下:
/data/db2
├── admin
│   ├── collection-0--1928158110699126729.wt
│   └── index-1--1928158110699126729.wt
├── config
│   ├── collection-4--1928158110699126729.wt
│   ├── index-5--1928158110699126729.wt
│   └── index-6--1928158110699126729.wt
├── db2.log
├── demo
│   ├── collection-7--1928158110699126729.wt
│   └── index-8--1928158110699126729.wt
├── diagnostic.data
│   ├── metrics.2022-04-05T07-48-58Z-00000
│   └── metrics.interim
├── journal
│   ├── WiredTigerLog.0000000001
│   ├── WiredTigerPreplog.0000000001
│   └── WiredTigerPreplog.0000000002
├── local
│   ├── collection-2--1928158110699126729.wt
│   └── index-3--1928158110699126729.wt
├── _mdb_catalog.wt
......
# 提示:由于在启动MongoDB服务器时使用了--directoryperdb参数,因此在第(3)步中创建的demo数据库将单独存放一个目录。


二、【实战】停止MongoDB服务器


停止MongoDB数据库服务器可以通过三种不同的方式来完成。视频讲解如下:


下面通过具体的示例来进行演示。


(方式1)在MongoDB服务器上执行shutdownServer命令时。

> use admin
> db.shutdownServer()
# 提示:使用shutdownServer关闭数据库服务器,MongoDB会在关闭前先等待MongoDB集群中的从节点与主节点保持同步,
# 这会将数据回滚的可能性降到最低。


(方式2)使用命令db.adminCommand强制关闭主节点。

> db.adminCommand({"shutdown":1,"force":true})
# 这时会打印下面的错误信息,该信息表示数据库已经停止。
uncaught exception: Error: error doing query: failed:
network error while attempting to run command 'shutdown' on host '127.0.0.1:1234'  :
DB.prototype.runCommand@src/mongo/shell/db.js:188:19
DB.prototype.adminCommand@src/mongo/shell/db.js:200:12
@(shell):1:1


(方式3)使用操作系统的kill命令关闭MongoDB服务器。

kill -2 PID
# 其中:PID是MongoDB的服务器进程号。


以上三种方式都能够安全地停止MongoDB的运行。







相关实践学习
MongoDB数据库入门
MongoDB数据库入门实验。
快速掌握 MongoDB 数据库
本课程主要讲解MongoDB数据库的基本知识,包括MongoDB数据库的安装、配置、服务的启动、数据的CRUD操作函数使用、MongoDB索引的使用(唯一索引、地理索引、过期索引、全文索引等)、MapReduce操作实现、用户管理、Java对MongoDB的操作支持(基于2.x驱动与3.x驱动的完全讲解)。 通过学习此课程,读者将具备MongoDB数据库的开发能力,并且能够使用MongoDB进行项目开发。   相关的阿里云产品:云数据库 MongoDB版 云数据库MongoDB版支持ReplicaSet和Sharding两种部署架构,具备安全审计,时间点备份等多项企业能力。在互联网、物联网、游戏、金融等领域被广泛采用。 云数据库MongoDB版(ApsaraDB for MongoDB)完全兼容MongoDB协议,基于飞天分布式系统和高可靠存储引擎,提供多节点高可用架构、弹性扩容、容灾、备份回滚、性能优化等解决方案。 产品详情: https://www.aliyun.com/product/mongodb
相关文章
|
NoSQL MongoDB 数据库
mongoDB入门教程一:下载安装和环境配置、连接运行
mongoDB入门教程一:下载安装和环境配置、连接运行
294 0
|
3月前
|
存储 NoSQL MongoDB
【赵渝强老师】MongoDB写入数据的过程
在MongoDB数据更新时,WiredTiger存储引擎通过预写日志(Journal)机制先将更新写入日志文件,再通过检查点操作将日志中的操作刷新到数据文件,确保数据持久化和一致性。检查点定期创建,缩短恢复时间,并保证异常终止后可从上一个有效检查点恢复数据。视频讲解及图示详细说明了这一过程。
125 23
【赵渝强老师】MongoDB写入数据的过程
|
5月前
|
存储 NoSQL MongoDB
【赵渝强老师】MongoDB的MMAPv1存储引擎
在MongoDB 3.2版本之前,默认使用MMAPv1存储引擎。MMAPv1包括Database、Namespace、数据文件、Extent和Record等组件。每个Database由名称空间文件和数据文件组成,数据文件按编号递增,大小从64MB到2GB。每个数据文件被划分为多个Extent,每个Extent包含多个Record,对应MongoDB中的文档。通过一个示例展示了如何配置和使用MMAPv1存储引擎。
102 0
|
3月前
|
存储 监控 NoSQL
【赵渝强老师】MongoDB文档级别的并发控制
MongoDB使用WiredTiger存储引擎在文档级别进行并发控制,允许多个写操作同时修改不同文档,但对同一文档的修改需序列化执行。引擎采用乐观锁和意向锁机制处理冲突。通过视频讲解、插入大量文档示例及使用`mongotop`和`db.serverStatus()`命令,演示了如何监控MongoDB的锁信息和读写统计,展示了数据库和集合级别的写锁情况。
129 29
|
4月前
|
存储 NoSQL 安全
【赵渝强老师】MongoDB的Journal日志
MongoDB通过Journal日志保证数据安全,记录检查点后的更新,确保数据库从异常中恢复到有效状态。每个Journal文件100M,存于--dbpath指定的journal子目录。默认已启用Journal日志,可通过--journal参数手动启用。WiredTiger存储引擎使用128KB内存缓冲区,异常关机时可能丢失最多128KB的数据。视频讲解和详细步骤参见附录。
116 17
|
4月前
|
存储 NoSQL MongoDB
【赵渝强老师】MongoDB逻辑存储结构
MongoDB的逻辑存储结构由数据库(Database)、集合(Collection)和文档(Document)组成,形成层次化数据模型。用户通过mongoshell或应用程序操作这些结构。视频讲解及结构图详见下文。
174 3
|
5月前
|
存储 NoSQL 关系型数据库
【赵渝强老师】MongoDB的存储结构
MongoDB 是一个可移植的 NoSQL 数据库,支持跨平台运行。其逻辑存储结构包括数据库、集合和文档,而物理存储结构则由命名空间文件、数据文件和日志文件组成。视频讲解和示意图进一步解释了这些概念。
191 5
|
5月前
|
存储 缓存 NoSQL
【赵渝强老师】MongoDB的WiredTiger存储引擎
MongoDB WiredTiger存储引擎自3.2版本起成为默认选择,提供文档级别的并发控制、检查点、数据压缩和本地加密等功能。本文详细介绍了WiredTiger的并发控制机制、预写日志与检查点、内存使用、数据压缩及磁盘空间回收等特性。
264 0
|
5月前
|
存储 NoSQL MongoDB
【赵渝强老师】MongoDB的In-Memory存储引擎
MongoDB的In-Memory存储引擎将数据存储在内存中,显著减少查询延迟,提高性能。该引擎不会将数据持久化到硬盘,仅在内存中存储,因此重启后数据会丢失。本文通过创建目录、配置文件、启动服务、插入数据和查询等步骤,详细演示了如何使用In-Memory存储引擎。
105 0
|
5月前
|
存储 NoSQL MongoDB
【赵渝强老师】MongoDB的存储引擎
存储引擎是MongoDB的核心组件,负责管理数据在硬盘和内存中的存储方式。从3.2版本起,MongoDB支持WiredTiger、MMAPv1和In-Memory三种存储引擎。WiredTiger为默认引擎,提供文档级并发控制和数据压缩;MMAPv1在3.2版本前为默认引擎,4.x版本后不再支持;In-Memory引擎将数据存储在内存中,减少查询延迟。
155 0
下一篇
oss创建bucket