課程簡介

模块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操作
  • 在MongoDB中使用JSON Schema进行模式验证

模块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内部原理和部署最佳实践感兴趣的开发人员
 48 時間:

人數


每位參與者的報價

客戶評論 (5)

Upcoming Courses

課程分類