mongo server端常用命令

本文详细介绍如何启动MongoDB服务、登录数据库、备份及恢复数据的方法。包括本地与远程操作的具体命令,以及注意事项。

1.启动mongodb的服务使用:
  mongod --help
  启动mongodb的本地服务(data目录和bin同级别)
   mongod --dbpath ../data
  从参数文件中启动
   mongod -f /etc/mongodb.cnf
  后台启动方式:
  mongod --dbpath=../data --logpath=../logs --fork

2.登录mongodb数据库
  mongo --help
  登录本地数据库
  mongo
  登录远程数据库:
  mongo 123.123.101.24:27017/mash5
  mongo 192.168.73.149:27017/mash5
  mongo 192.168.73.176:27017/mash5
3.恢复本地dump文件
  查看帮助:
  mongorestore --help
  导入本地的dump文件
  mongorestore C:\mongodb\bin\dump_bak_11241739\mash5
  导入多个数据库
  mongorestore --directoryperdb C:\mongodb\bin\dump_bak_11241739

 

 

远程恢复

   mongorestore   -h 192.168.73.176 --directoryper  C:\backup\mongodb

 


4.备份数据库
   查看帮助
   mongodump --help

   在mongodump命令目录里生成一个dump目录存储导出文件(导出多个数据库)
   mongodump

   导出数据库到某一个目录(单个数据库)
   mongodump --db mash5 -o C:\temp

 

   远程导出
   mongodump -h localhost --port 27017  -o c:\temp
  
  
   mongodump --port 27017 --host 123.123.101.20
  
   在mongodb的官方上search mongodump没有相应的资料,自己就在shell命令行里面 :
/data/mongodb-linux-x86_64-1.6.0/bin/mongodump --help 了一把, 自己来测试了,测试总结如下:
备份本机mongodb到/tmp/bakup目录下面:
[root@localhost csf]# /data/mongodb-linux-x86_64-1.6.0/bin/
mongodump -h 192.168.0.39:10001 -d csf -o /backup/mongodb

将/tmp/backup 下面的文件导入数据库:
[root@localhost csf]#
/data/mongodb-linux-x86_64-1.6.0/bin/
mongorestore -h 192.168.0.39:10001 -d csf -drop --directoryperdb /backup/mongodb/csf/

 

 

【注释】--drop参数,有此参数,则表示,先删除所有的记录,然后恢复。如无此参数,则恢复备份时候的数据,备份之后新增加的数据依然存在;
/backup/mongodb则是备份文件存放路径


<think> 我们注意到用户的问题是关于MongoDB中"getParameter"的使用方法和功能介绍。结合上下文,用户提到了一段Java代码片段,其中包含一个名为`GetParameters`的类,但这不是MongoDB内置的命令或方法。因此,我们需要区分两种情况: 1. **MongoDB内置命令**:MongoDB有一个`getParameter`命令,用于获取数据库的运行时参数配置。 2. **用户自定义工具类**:用户提供的引用[1]中提到的`GetParameters`是一个自定义的Java工具类,用于读取配置文件(如.properties文件)中的属性。 根据用户的问题,他可能想了解MongoDB内置的`getParameter`命令,但由于他引用了自定义工具类的代码,我们也要考虑他可能混淆了这两者。因此,我们将分别介绍这两部分。 ### 一、MongoDB内置的`getParameter`命令MongoDB中,`getParameter`是一个管理命令,用于获取数据库实例的运行时参数值。这些参数通常是通过配置文件或命令行选项设置的。 #### 使用方法(在mongo shell中): ```javascript // 获取单个参数 db.adminCommand({ getParameter: 1, featureCompatibilityVersion: 1 }) // 获取多个参数(使用星号通配符) db.adminCommand({ getParameter: '*', featureCompatibilityVersion: 1 }) // 获取所有参数(注意:输出可能很长) db.adminCommand({ getParameter: '*' }) ``` #### 功能说明: - 返回一个文档,包含请求的参数及其当前值。 - 常用参数: - `featureCompatibilityVersion`:当前数据库的兼容性版本(用于控制升级行为)。 - `authSchemaVersion`:认证模式版本。 - `logLevel`:日志级别。 - 等等。 #### 示例输出: ```json { "featureCompatibilityVersion": { "version": "3.6" }, "ok": 1 } ``` > **注意**:该命令需要在`admin`数据库上运行,并且通常需要管理员权限[^4]。 ### 二、自定义工具类`GetParameters`(基于引用[1]) 引用[1]中的`GetParameters`是一个Java工具类,用于读取配置文件(如`mongo-pool.properties`)中的属性。它提供了两种获取配置值的方式: 1. 直接使用`Properties.getProperty(String key)`:但无法处理包含环境变量引用的属性(如`${serverEnv:local}`)。 2. 使用自定义方法`GetParameters.getPropValue(Properties prop, String key)`:该方法可以解析属性值中的环境变量占位符。 #### 使用方法: ```java // 加载配置文件 Properties prop = GetParameters.getConfig("mongo-pool.properties"); // 方式1:直接获取(不解析环境变量) String dbName1 = prop.getProperty("spring.data.mongodb.database"); // 方式2:通过工具方法获取(解析环境变量占位符) String dbName2 = GetParameters.getPropValue(prop, "spring.data.mongodb.database"); ``` #### 功能说明: - `getConfig(String filename)`:从类路径加载指定的properties文件,并返回`Properties`对象。 - `getPropValue(Properties prop, String key)`:解析属性值,如果值包含`${var:default}`格式的环境变量占位符,则尝试用系统环境变量或系统属性替换,如果找不到则使用默认值。 #### 示例配置文件(mongo-pool.properties): ```properties spring.data.mongodb.host=localhost spring.data.mongodb.port=27017 spring.data.mongodb.database=test server.env=${SERVER_ENV:local} # 环境变量占位符 ``` ### 三、两者区别总结 | 特性 | MongoDB `getParameter`命令 | Java工具类 `GetParameters` | |------|----------------------------|---------------------------| | 类型 | 数据库管理命令 | Java工具类 | | 用途 | 获取MongoDB运行时参数 | 读取配置文件中的属性 | | 运行环境 | mongo shell或驱动 | Java应用程序 | | 权限 | 需要管理员权限 | 无特殊权限 | ### 常见问题 1. **为什么`getParameter`命令返回空值?** - 可能是参数名拼写错误,或者该参数不支持通过`getParameter`获取[^4]。 2. **自定义工具类如何处理嵌套环境变量?** - 示例中的`GetParameters`可能不支持嵌套解析(如`${outer${inner}}`),需要查看具体实现。 §§相关问题§§ 1. MongoDB中如何设置运行时参数? 2. Spring Boot如何集成MongoDB连接池配置? 3. 如何在Java中解析包含环境变量的配置文件? </think> ### MongoDB `getParameter` 使用方法与功能详解 #### 一、功能概述 `getParameter` 是 MongoDB 的管理命令,主要用于**获取数据库实例的运行时参数配置值**。这些参数通常通过配置文件(`mongod.conf`)或命令行启动时设置,包含服务器行为、日志级别、安全设置等核心配置[^4]。 #### 二、使用场景 1. **查看兼容性版本**:验证升级准备状态 2. **诊断配置问题**:检查参数是否生效 3. **安全审计**:确认认证/加密设置 4. **性能调优**:获取缓存/连接池参数 #### 三、命令语法(在 mongo shell 中执行) ```javascript // 基本格式 db.adminCommand({ getParameter: <integer|"*">, <parameterName>: 1 }) // 常用变体 // 1. 获取单个参数 db.adminCommand({ getParameter: 1, featureCompatibilityVersion: 1 }) // 2. 获取所有参数(返回200+项) db.adminCommand({ getParameter: "*" }) // 3. 带权限验证(需admin角色) db.getSiblingDB("admin").runCommand({ getParameter: 1, tlsMode: 1, authenticationMechanisms: 1 }) ``` #### 四、关键参数示例 | **参数名称** | **返回值示例** | **说明** | |--------------|----------------|----------| | `featureCompatibilityVersion` | `{ "version": "3.6" }` | 集群兼容性版本[^4] | | `logLevel` | `0` (默认) | 日志详细级别(0-5) | | `tlsMode` | `"disabled"` | TLS加密状态 | | `authSchemaVersion` | `5` | 认证模式版本 | | `wiredTigerCacheSizeGB` | `1.5` | 缓存大小(GB) | #### 五、Java 驱动实现(结合引用[1]) ```java // 读取配置文件(引用[1]示例扩展) Properties prop = GetParameters.getConfig("mongo-pool.properties"); String dbName = GetParameters.getPropValue(prop, "spring.data.mongodb.database"); try (MongoClient client = new MongoClient("localhost")) { // 执行getParameter命令 Document result = client.getDatabase("admin").runCommand( new Document("getParameter", 1) .append("featureCompatibilityVersion", 1) ); // 解析结果 String compatVersion = result.get("featureCompatibilityVersion", Document.class) .getString("version"); System.out.println("当前兼容版本: " + compatVersion); } ``` #### 六、注意事项 1. **权限要求**:需在 `admin` 数据库执行且具备 `clusterAdmin` 角色 2. **参数名大小写**:严格区分大小写(如 `featureCompatibilityVersion`) 3. **返回值类型**:根据参数不同返回字符串/整数/文档等类型 4. **动态参数**:部分参数可通过 `setParameter` 实时修改 > **诊断技巧**:当参数未生效时,先用 `getParameter` 验证运行时值,再检查配置文件优先级(命令行参数 > 配置文件 > 默认值)[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值