版本控制:(C、A、M、D:创建、增加、修订、删除)
| 版本号 | 变更日志 | 变更类型(C/A/M/D) | 修改人 | 摘要 | 备注 |
|---|---|---|---|---|---|
| 1.0 | 2024-12-19 | C | xxx |
一、思路
使用mongodump 工具对OCS mongo进行逻辑备份,不产生中间文件,通过 zstd 压缩后直接转储到S3上。
-
mongodump,mongo备份工具
-
rclone,传输到s3
-
zstd压缩
-
管道做拼接,实现不产生中间文件
二、实现
关键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
三、目前OCS mongo的备份任务
http://192.21.141.48:8080/job/MongoDB/job/ocs.mongo.dump.timedTask/
OCS mongo的备份与保留机制:
-
每天零点备份
-
备份保留7天
四、补充文档
-
S3对象存储 略
-
mongo工具 www.percona.com/blog/stream…