Docker搭建MongoDB Replica Set高可用集群+数据丢失&被黑解决+自动备份与恢复脚本+持久化慢查询记录

文章目录

    • 节点规划
    • 配置文件
      • 创建持久化目录
      • 创建并推送证书
      • 启动临时容器
      • 修改配置文件
      • 单节点参考
        • mongod.conf
        • docker-compose.yml
      • Replica Set 参考
        • mongod.conf
        • docker-compose.yml
    • 部署与配置
      • 部署集群
      • 配置集群
      • 验证集群
      • 增删节点
        • 增加节点
        • 删除节点
        • 查看节点
      • 常用命令
      • 重置集群
        • 备份数据
        • 关闭服务
        • 删除持久化数据
        • 启动集群
        • 配置集群
          • 验证集群
        • 创建用户
        • 验证集群
    • 用户管理
      • 权限说明
      • 创建用户并授权
        • 授权某个库
        • 授权所有库
        • 删除用户
      • 修改密码
    • 备份与恢复
      • 备份
        • 手动备份
        • 自动备份
          • mongo_backup.sh
          • 自动备份测试
        • 查看`mongodump`版本
        • 安装`repo`源
        • 安装备份工具
        • 查看版本是否对应
      • 恢复
        • 手动恢复
          • 解压备份
            • 恢复命令
        • 自动恢复
          • mongo_import.sh
          • 自动恢复测试
            • 准备工作
            • 不加--drop
            • 加上--drop
    • 开启慢查询并备份日志
      • 日志级别
      • 耗时说明
      • 开启慢查询
        • 永久开启
        • 临时开启
        • 慢查询日志详细查看
      • 日志备份
        • 备份脚本
        • 测试备份
        • 告警效果
    • Java连接到MongoDB
      • 导入包
      • 连接到实例
        • 方式1
        • 方式2
      • 身份验证连接
    • 上传超过16M的大文件
      • mongofiles
      • mongoimport
    • 数据丢失&被黑
      • 场景
      • 解决方案
        • 单节点
          • 清空数据
          • 关闭服务
          • 修改端口号
          • 启动服务
          • 恢复数据
        • 集群节点
          • 关闭服务
          • 删除持久化数据
          • 修改端口号
          • 启动服务
          • 重新建立集群关系
          • 恢复数据
          • 创建用户
      • 预防方案
    • 内存占用过高解决
      • 配置内存大小限制
      • 配置文件不生效?

MongoDB Replica Set中文名为副本集,通俗地讲是集群当中包含了多份数据,保证主节点挂掉了,备节点能继续提供数据服务,提供的前提就是数据需要和主节点一致。

Mongodb(M)表示主节点,Mongodb(S)表示备节点,Mongodb(A)表示仲裁节点(Arbiter)。主备节点存储数据,仲裁节点不存储数据。客户端同时连接主节点与备节点,不连接仲裁节点。

​ 默认设置下,主节点提供所有增删查改服务,备节点不提供任何服务。但是可以通过设置使备节点提供查询服务,这样就可以减少主节点的压力,当客户端进行数据查询时,请求自动转到备节点上。这个设置叫做Read Preference Modes,同时Java客户端提供了简单的配置方式,可以不必直接对数据库进行操作。

​ 仲裁节点是一种特殊的节点,它本身并不存储数据,主要的作用是决定哪一个备节点在主节点挂掉之后提升为主节点,所以客户端不需要连接此节点。这里虽然只有一个备节点,但是仍然需要一个仲裁节点来提升备节点级别。我开始也不相信必须要有仲裁节点&#x

你可能感兴趣的:(运维企业实战笔录,运维,docker,mongodb,数据库)