课程大纲
模块 1: 介绍与 MongoDB 架构 (4小时)
内容:
- MongoDB 的历史与生态系统
- 典型用例、优缺点
- 通用架构:实例、进程与配置
实践:
- 互动探索:通过 Mongo Shell/CLI 连接
- 创建示例数据库与集合
模块 2: 安装与初始配置 (6小时)
内容:
- 硬件与资源需求
- 在 Linux (deb/rpm)、Windows 和 macOS 上安装
- YAML 配置文件 (mongod.conf):dataDir、logDir、bindIp、port
- 启动选项与 systemd/服务管理
实践:
- 在本地虚拟机或 Docker 容器中部署实例
- 调整开发与生产环境的配置
- 验证安全的远程连接
模块 3: 数据建模与基本操作 (5小时)
内容:
- BSON 文档、集合、数据库
- 建模:嵌入与引用;数据设计模式
- 基本索引(之前介绍过)
- 使用 Mongo Shell 的操作与驱动程序脚本示例
实践:
- 建模用例:库存或计费系统
- 实现 CRUD 操作
- 使用 JSON Schema 在 MongoDB 中进行模式验证
模块 4: 索引与性能 (4小时)
内容:
- 简单、复合、多键、文本与地理空间索引
- 使用 explain() 与分析指标
- 索引对写入性能与内存的影响
实践:
- 创建包含测试数据的集合
- 测试有索引与无索引的查询;解释 explain()
- 根据访问模式调整索引
模块 5: 安全性 (5小时)
内容:
- 认证机制:SCRAM、LDAP/Kerberos(简介)
- 定义用户与自定义角色
- 客户端与服务器之间的 TLS/SSL
- 静态加密:密钥配置
- 基本审计日志
实践:
- 创建具有最小权限的用户
- 在本地实例中配置 TLS
- 验证未授权访问并查看审计日志
模块 6: 复制与高可用性 (6小时)
内容:
- 复制概念:主节点、从节点、oplog
- 副本集配置:初始化、成员资格、仲裁
- 监控状态与选举
- 维护:添加/移除成员、重新分配优先级
实践:
- 部署三节点副本集(本地或虚拟机)
- 模拟主节点故障并观察故障转移
- 重建从节点并恢复副本
模块 7: 分片与水平扩展 (6小时)
内容:
- 分片概念:分片键、配置服务器、mongos 路由器
- 分片键选择与相关风险
- 部署配置服务器、分片与 mongos
- 重新平衡与块迁移
实践:
- 配置简单的分片集群
- 插入大规模数据并观察分布
- 引入分片键更改并理解限制
模块 8: 备份、恢复与灾难恢复 (4小时)
内容:
- 原生工具:mongodump/mongorestore、文件系统快照
- 副本集与分片集群中的备份
- 使用 Cloud Manager/Ops Manager 进行备份的基本操作
- 灾难恢复 (DR) 规划:RTO、RPO
实践:
- 在测试数据库上执行备份与恢复
- 模拟故障并从备份中恢复
- 为假设案例设计灾难恢复计划
模块 9: 监控与告警 (4小时)
内容:
- 工具:mongostat、mongotop、Cloud Manager/Atlas Monitoring
- 与 Prometheus + Grafana 的集成(概念与示例)
- 关键指标:CPU、内存、I/O、oplog 大小、延迟
- 告警:定义阈值与通知
实践:
- 部署本地或基于容器的监控代理
- 使用示例指标设置基本仪表板
- 模拟负载并观察告警
模块 10: 维护、升级与最佳实践 (4小时)
内容:
- 副本集与分片集群的升级策略
- 数据清理、压缩、完整性检查
- 审查日志与定期审计
- 自动化常规任务(脚本、cronjobs、Ansible、Terraform)
- 数据保留与归档策略
实践:
- 在受控环境中模拟次要与主要升级
- 创建备份与监控的自动化脚本
- 制定定期维护检查表
总结与后续步骤
要求
- 了解通用数据库概念和数据结构
- 熟悉Linux命令行使用
- 具备网络和系统管理的基础知识
受众
- 与MongoDB合作的Database管理员和系统工程师
- 部署和维护MongoDB环境的DevOps和基础设施团队
- 对MongoDB内部机制和部署最佳实践感兴趣的开发人员
客户评论 (5)
卡米尔做得很好。 他提出问题,以了解我们已经知道的内容以及我们需要关注的内容,并轻松地根据我们的需求调整培训。
Susanna - USAF
课程 - MongoDB Advanced Administrator
机器翻译
这种情况是不典型的,因为对开发人员的强化培训将与非开发人员一起进行。卢卡斯以同理心和幽默感接受了这一挑战。通过他聪明而灵活的方式,他能够确保每个人都能获得具体的学习收益。我非常喜欢这个,很乐意再次与卢卡斯一起参加研讨会。
Christoph - Honda Bank GmbH
课程 - MERN Fullstack Development
机器翻译
The lab environment
Samer Roshdi - epic ltd
课程 - MongoDB for Analysts
It was very flexible and adapted to our expectations and skill level.
Raul Alberto Canales Requena - Kiloo
课程 - MongoDB for Advanced Users
I generally was benefit from the open mind and communication.