MongoDB是一种面向文档的NoSQL数据库系统,它提供了高性能、高可用性和易扩展的特点。为了有效管理MongoDB数据库,管理员需要掌握一系列的命令来执行日常维护任务。接下来将详细介绍文档中出现的MongoDB常用管理命令及其相关的知识点。
1. 启动MongoDB服务
- `mongod` 是MongoDB数据库服务器的命令行工具,用于启动数据库实例。
- 通常需要指定`--dbpath`参数来指定数据库存储的目录。
- `--logpath`参数用于指定日志文件存储的位置。
- `--logappend`表示日志会追加到现有文件。
- `--fork`参数会以守护进程形式在后台运行服务。
- 可以通过`--port`指定服务监听的端口。
- `--auth`表示启动认证功能,数据库服务器将要求客户端进行身份验证。
2. 关闭MongoDB服务
- 有多种方法可以关闭MongoDB服务:
- 直接在启动的命令行中按`Ctrl+C`。
- 使用操作系统命令`kill`加上进程ID来强制杀死服务进程。
- 执行`db.shutdownServer()`命令,但需要在客户端已连接的状态下操作。
3. 查看数据库状态和性能监控
- `db.runCommand({"serverStatus":1})`可以获取服务器状态的详细信息。
- `mongostat`用于监控MongoDB实例的实时性能数据,它需要在MongoDB的bin目录下使用。
- `mongotop`可以监控数据库中集合的读写活动。
4. 用户管理
- 在启用了认证的情况下,可以使用`db.addUser()`命令向数据库中添加用户。例如:
- `db.addUser("read_only","123",true)`为数据库添加了一个只读用户。
- `db.addUser("root","123")`为数据库添加了一个具有根权限的用户。
- 使用`db.auth("username","password")`方法验证用户的身份。
5. 数据备份与恢复
- `mongodump`用于导出数据库中的数据,可以通过`--db`指定数据库名。
- `mongorestore`用于将之前备份的数据恢复到数据库中。
- 为了确保数据备份的一致性,可以使用`fsyncLock`命令锁定数据库,`fsyncUnlock`命令解锁。
6. 数据库修复
- 当数据库出现故障时,可以使用`mongod --repair`命令来修复数据库。
- 也可以通过`use testdb`切换到特定数据库,然后执行`db.repairDatabase()`命令修复。
- 使用`db.runCommand({"repairDatabase":1})`命令也可以达到同样的效果。
7. 与复制相关的命令
- `slaveDB`和`slave`相关的命令通常用于复制集的管理,但根据提供的内容,这部分描述并不完整。
- 在复制集中,可以使用`insert`命令在主服务器上插入数据,该数据将同步到从服务器。
8. 启动参数解释
- `--rest`启用了REST API接口,允许HTTP访问。
- `--nohttpinterface`用于关闭HTTP接口。
- `--bind_ip`用于指定mongod服务绑定的IP地址。
- `-f`选项在启动mongod时使用,等同于`--fork`。
这些命令只是MongoDB管理工具的一小部分。一个合格的数据库管理员还需要掌握数据的导入导出、数据库的维护优化、复制集的配置管理、索引的创建和管理、以及故障排查等技能。MongoDB还提供了一个图形用户界面工具MongoDB Compass,这可以作为命令行工具的补充,帮助管理员更直观地操作数据库。管理员通过熟悉这些工具和命令,可以更好地管理和维护MongoDB数据库,确保数据库的稳定性和高性能。