docker-db-backup icon indicating copy to clipboard operation
docker-db-backup copied to clipboard

Mongo DB backup job does not fully do a backup snapshot for all databases

Open ratkokorlevski opened this issue 1 year ago • 1 comments

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

ratkokorlevski avatar Dec 28 '23 13:12 ratkokorlevski

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.

yaakovfeldman avatar Feb 14 '24 18:02 yaakovfeldman