mongo备份工具

42 阅读1分钟

版本控制:(C、A、M、D:创建、增加、修订、删除)

版本号变更日志变更类型(C/A/M/D)修改人摘要备注
1.02024-12-09Cxx



一、背景




二、备份策略

  1. OCS mongo每天全备一次,备份保留7天时间,job:




三、工具

  1. mongodump与mongorestore

  2. export与import




四、mongodump




五、mongoimport




六、最佳实践

定时

shell

#!/bin/bash -ex

cd $WORKSPACE
source /etc/profile.d/rclone.sh

S3_BUCKET_NAME="bm-s3-xfz:/sox-dba-backup/mongodb/ocs"
# 7天前的时间格式
seven_days_ago=$(date -d "7 days ago" +%Y-%m-%d)

# 全量备份
/data/mongodb/27017/bin/mongodump \
  --host ${src_ip} --port ${src_port} \
  --username ${src_user} --password ${src_passwd} --authenticationDatabase ${src_authdb} \
  --oplog --archive \
| zstd -c \
| rclone rcat --s3-chunk-size 100Mi ${S3_BUCKET_NAME}/$(date +'%F_%H').zst


# 显示7天前的文件大小
rclone size bm-s3-xfz:/sox-dba-backup/mongodb/ocs/${seven_days_ago}_00.zst

# 删除
rclone delete bm-s3-xfz:/sox-dba-backup/mongodb/ocs/${seven_days_ago}_00.zst

说明

  1. 使用sztd和管道搭配实现不产生中间文件
  2. 使用S3作为备份文件的存储
  3. 结合Jenkins实现脚手架



七、补充