docker-db-backup
docker-db-backup copied to clipboard
Mongo DB backup job does not fully do a backup snapshot for all databases
Summary
I have a cron jobs to create a Mongo DB snapshot of all databases and store it in S3, but when I do a restore I only get restores for 2 databases. This jobs run in an EKS cluster on AWS
Steps to reproduce
This the setup with values:
apiVersion: batch/v1
kind: CronJob
metadata:
name: cron-daily-backup-mongo
namespace: staging
labels:
name: cron-daily-backup-mongo
spec:
schedule: "0 2,11 * * *"
successfulJobsHistoryLimit: 1
failedJobsHistoryLimit: 1
# schedule: "25 1,14 * * *"
jobTemplate:
spec:
template:
spec:
restartPolicy: OnFailure
serviceAccountName: backup-service-account
volumes:
- name: secrets-store-inline
csi:
driver: secrets-store.csi.k8s.io
readOnly: true
volumeAttributes:
secretProviderClass: cron-backup-secret-provider
containers:
- name: mongo-db-backup-central
image: tiredofit/db-backup:3.8.5
command: ["backup-now"]
volumeMounts:
- name: secrets-store-inline
mountPath: "/mnt/secrets-store"
readOnly: true
env:
- name: BACKUP_LOCATION
value: "S3"
- name: DB_TYPE
value: "mongo"
- name: DEBUG_MODE
value: "true"
- name: DB_HOST
valueFrom:
secretKeyRef:
name: cron-backup-secrets
key: MONGODB_HOST
- name: DB_NAME
value: "ALL"
- name: DB_AUTH
value: "admin"
- name: DB_NAME_EXCLUDE
value: "admin,config,local"
- name: MONGO_CUSTOM_URI
valueFrom:
secretKeyRef:
name: cron-backup-secrets
key: MONGODB_URI
- name: DB_USER
valueFrom:
secretKeyRef:
name: cron-backup-secrets
key: MONGODB_USER
- name: DB_PASS
valueFrom:
secretKeyRef:
name: cron-backup-secrets
key: MONGODB_PASS
- name: S3_BUCKET
valueFrom:
secretKeyRef:
name: cron-backup-secrets
key: S3_BUCKET
- name: S3_HOSTNAME
value: "s3.amazonaws.com"
- name: S3_KEY_ID
valueFrom:
secretKeyRef:
name: cron-backup-secrets
key: AWS_ACCESS_KEY_ID
- name: S3_KEY_SECRET
valueFrom:
secretKeyRef:
name: cron-backup-secrets
key: AWS_SECRET_ACCESS_KEY
- name: S3_PATH
valueFrom:
secretKeyRef:
name: cron-backup-secrets
key: S3_PATH_MONGO
- name: S3_REGION
valueFrom:
secretKeyRef:
name: cron-backup-secrets
key: AWS_DEFAULT_REGION
- name: CONTAINER_ENABLE_MONITORING
value: "false"
- name: MD5
value: "TRUE"
- name: COMPRESSION
value: "GZ"
- name: TIMEZONE
value: "Europe/Stockholm"
- name: CONTAINER_ENABLE_SCHEDULING
value: "FALSE"
- name: MODE
value: "MANUAL"
- name: MANUAL_RUN_FOREVER
value: "FALSE"
What is the expected correct behavior?
I am expecting to have a full backup, so when I restore the db to restore all of the data across the tables/databases. NOTE: there are 3 tables excluded (local, admin, config).
- Image version / tag: tiredofit/db-backup:3.8.5
- Host OS: Linux
Is ‘ALL’ (used in config above) a supported option for DB_NAME when type is mongo? The documentation implies this is only supported for some other database types.