前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用mlaunch搭建临时测试MongoDB环境

使用mlaunch搭建临时测试MongoDB环境

原创
作者头像
保持热爱奔赴山海
修改2024-10-01 11:21:57
770
修改2024-10-01 11:21:57
举报
文章被收录于专栏:数据库相关

mlaunch 是 mtools工具集里面的一个组件。

mtools是一组辅助脚本,用于解析、过滤和可视化MongoDB日志文件(mongod、mongos)。mtools还包括mlaunch,一个在本地计算机上快速设置复杂的MongoDB测试环境的实用程序,以及mtransfer,一个用于在MongoDB实例之间传输数据库的工具。

地址:

https://github.com/rueckstiess/mtools

https://rueckstiess.github.io/mtools/mlaunch.html

以下工具位于 mtools 集合中:

代码语言:txt
复制
mlogfilter 按时间对日志文件进行切片,合并日志文件,过滤慢速查询,查找 表扫描,缩短日志行,按其他属性过滤,转换为 JSON格式

mloginfo 返回有关日志文件的信息,例如开始和结束时间、版本、二进制文件、 特殊部分,如重新启动、连接、不同视图 (需要numpy)

mplotqueries 可视化具有不同类型绘图的日志文件(需要matplotlib)

mlaunch 用于快速启动本地测试环境(包括副本集)的脚本 和分片系统(需要pymongo, psutil, packaging)

mtransfer 一个实验性脚本,用于通过以下方式在MongoDB实例之间传输数据库 复制 WiredTiger 数据文件(需要pymongo和wiredtiger) 


注意:除了mlaunch外,其他的几个工具都很少使用或者对高版本mongodb不兼容,因此不用去了解它们的使用方法。

mlaunch的安装

代码语言:txt
复制
$ pip install mlaunch

$ mlaunch --help
Detected mongod version: 5.0.6
usage: mlaunch [-h] [--version] [--no-progressbar] {init,start,stop,restart,list,kill} ...

script to launch MongoDB stand-alone servers, replica sets and shards.

commands:
  init is the default command and can be omitted. To get help on individual commands, run mlaunch <command>
  --help. Command line arguments which are not handled by mlaunch will be passed through to mongod/mongos if
  those options are listed in the --help output for the current binary. For example: --storageEngine,
  --logappend, or --config.

  {init,start,stop,restart,list,kill}
	init                initialize a new MongoDB environment and start stand-alone instances, replica sets, or
						sharded clusters.
	start               starts existing MongoDB instances. Example: "mlaunch start config" will start all config
						servers.
	stop                stops running MongoDB instances. Example: "mlaunch stop shard 2 secondary" will stop all
						secondary nodes of shard 2.
	restart             stops, then restarts MongoDB instances.
	list                list MongoDB instances of this environment.
	kill                kills (or sends another signal to) MongoDB instances of this environment.

options:
  -h, --help            show this help message and exit
  --version             show program's version number and exit
  --no-progressbar      disables progress bar

案例

代码语言:txt
复制
需要先安装好mongodb,并加到环境变量里面,否则mlaunch识别不到。这步操作比较简单,忽略。


创建工作目录
mkdir -pv /usr/local/software/mlaunch
cd /usr/local/software/mlaunch

查看init的可用参数
mlaunch init --help 

standalone

代码语言:txt
复制
# 创建单机mongodb
mkdir /usr/local/software/mlaunch/demo01
cd /usr/local/software/mlaunch/demo01
mlaunch init --single --port=28017 --name "single-01"

replicaset

代码语言:txt
复制
# 创建3节点的复制集,端口编号从29017开始
mkdir /usr/local/software/mlaunch/demo02
cd /usr/local/software/mlaunch/demo02
mlaunch init --replicaset --nodes=3 --port=29017  --name "cluster-01"

日志如下:
Detected mongod version: 5.0.6
launching: "mongod" on port 29017
launching: "mongod" on port 29018
launching: "mongod" on port 29019
replica set 'replset' initialized.


# 列出(实际上是读取当前目录下的data文件夹的隐藏文件.mlaunch_startup)
$ mlaunch list
Detected mongod version: 5.0.6
PROCESS    PORT     STATUS     PID
mongod     29017    running    88243
mongod     29018    running    88589
mongod     29019    running    88924

sharding replicaset

代码语言:txt
复制
# 创建2分片的sharding replicaset(每个replicaset单副本)
mkdir /usr/local/software/mlaunch/demo03_shards
cd /usr/local/software/mlaunch/demo03_shards
mlaunch init --replicaset --nodes 1 --sharded 2   # 默认端口从27017开始分配

其它命令

代码语言:txt
复制
# 启动(读取当前目录下的data文件夹.mlaunch_startup)
	mlaunch start 

# 重启(读取当前目录下的data文件夹.mlaunch_startup)
	mlaunch restart 

# 停止(读取当前目录下的data文件夹.mlaunch_startup)
	mlaunch stop

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • mlaunch的安装
  • 案例
    • standalone
      • replicaset
        • sharding replicaset
          • 其它命令
          相关产品与服务
          云数据库 MongoDB
          腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档