【MongoDB实战】数据备份与恢复(部分迁移)

场景:

需求:

解决方案:

步骤:

Stage 1:【生产环境】修改备份文件映射

Stage 2:【生产环境】重新构建mongodb

Stage 3:【客户环境】修改备份文件映射,同 Stage 1

Stage 4:【客户环境】重新构建mongodb,同 Stage 2

Stage 5:【生产环境】进入mongodb容器,并备份到/backup中

Stage 6:【生产环境】下载备份 /backup

Stage 7:【客户环境】备份迁移至客户环境 /backup

Stage 8:【客户环境】进入mongodb容器,并恢复


场景:

  • 【系统】生产环境:Ubuntu 22
  • 【mongo】生产环境:docker 中安装 mongodb
  • 【数据库】: xph
  • 【集合个数】:1万个+
  • 【系统】客户环境:windows server 2020 
  • 【mongo】客户环境:docker 中安装 mongodb
  • 【数据库】: xph

需求:

        将生产上33个集合数据迁移到客户环境中

解决方案:

  • 备份mongodump
  • 恢复mongorestore

步骤:

Stage 1:【生产环境】修改备份文件映射

  • 作用:映射出备份文件,方便后面下载到客户服务器上
  • ./backup:/backup  :映射到docker-compose.yaml所在同级backup目录中
  • 这里重新构建mongodb时backup文件夹自动创建

version: '3.1'

services:
  mongo:
    image: mongo:4.2.1
    container_name: mongo
    restart: always
    ports:
      - 27017:27017
    volumes:
      - ./db:/data/db
      - ./backup:/backup
      - ./export:/data/export
    environment:
      MONGO_INITDB_ROOT_USERNAME: root
      MONGO_INITDB_ROOT_PASSWORD: xxxxxxxx
    command:
      --wiredTigerCacheSizeGB 30
    deploy:
      resources:
        limits:
          memory: 30G
        reservations:
          memory: 5G
networks:
  default:
    external:
      name: xph-network

Stage 2:【生产环境】重新构建 mongodb

  • docker-compose --compatibility up -d --build
  • 或 docker-compose up -d --build

Stage 3:【客户环境】修改备份文件映射,同 Stage 1

  • E:\docker\mongodb\backup

Stage 4:【客户环境】重新构建 mongodb,同 Stage 2

  • docker-compose --compatibility up -d --build
  • 或 docker-compose up -d --build

Stage 5:【生产环境】进入 mongodb 容器,并备份到 /backup 

  • docker exec -it mongo /bin/bash
  • 备份指令如下(33个集合)
mongodump --username root --password "xxx" --collection 16068044 --db xph --out /backup
mongodump --username root --password "xxx" --collection 16068045 --db xph --out /backup
.
.
.

Stage 6:【生产环境】下载备份 /backup

Stage 7:【客户环境】备份迁移至客户环境 /backup

  • 迁移至客户该目录下:E:\docker\mongodb\backup

Stage 8:【客户环境】进入 mongodb 容器,并恢复

  • docker exec -it mongo /bin/bash
  • 输入如下指令恢复
mongorestore --authenticationDatabase admin --username root --password "xxx" --dir=/backup/
  •  恢复中

posted @ 2023-07-17 19:57  随风落木  阅读(4)  评论(0编辑  收藏  举报  来源