Database Backup + Restore

Database Backup + Restore

highly configurable solution for automated database backup and restore

Deploy Database Backup + Restore

Database Backup + Restore

JamesWRC/db-backup

Just deployed

/db_backup

For Influx DB2:

Your Organization will be mapped to DB_USER and your root token will need to be mapped to DB_PASS. You may use DB_NAME=ALL to backup the entire set of databases. For DB_HOST use syntax of http(s)://db-name

Scheduling Options

ParameterDescriptionDefault
DB_DUMP_FREQHow often to do a dump, in minutes after the first backup. Defaults to 1440 minutes, or once per day.1440
DB_DUMP_BEGINWhat time to do the first dump. Defaults to immediate. Must be in one of two formats
Absolute HHMM, e.g. 2330 or 0415
Relative +MM, i.e. how many minutes after starting the container, e.g. +0 (immediate), +10 (in 10 minutes), or +90 in an hour and a half
DB_DUMP_TARGETDirectory where the database dumps are kept.${DB_DUMP_TARGET}/archive/
DB_DUMP_TARGET_ARCHIVEOptional Directory where the database dumps archives are kept.
DB_CLEANUP_TIMEValue in minutes to delete old backups (only fired when dump freqency fires). 1440 would delete anything above 1 day old. You don't need to set this variable if you want to hold onto everything.FALSE
DB_ARCHIVE_TIMEValue in minutes to move all files files older than (x) from DB_DUMP_TARGET to DB_DUMP_TARGET_ARCHIVE - which is useful when pairing against an external backup system.
  • You may need to wrap your DB_DUMP_BEGIN value in quotes for it to properly parse. There have been reports of backups that start with a 0 get converted into a different format which will not allow the timer to start at the correct time.

Backup Options

ParameterDescriptionDefault_FILE
COMPRESSIONUse either Gzip GZ, Bzip2 BZ, XZip XZ, ZSTD ZSTD or none NONEZSTD
COMPRESSION_LEVELNumberical value of what level of compression to use, most allow 1 to 9 except for ZSTD which allows for 1 to 19 -3
ENABLE_PARALLEL_COMPRESSIONUse multiple cores when compressing backups TRUE or FALSETRUE
PARALLEL_COMPRESSION_THREADSMaximum amount of threads to use when compressing - Integer value e.g. 8autodetected
GZ_RSYNCABLEUse --rsyncable (gzip only) for faster rsync transfers and incremental backup deduplication. e.g. TRUEFALSE
ENABLE_CHECKSUMGenerate either a MD5 or SHA1 in Directory, TRUE or FALSETRUE
CHECKSUMEither MD5 or SHA1MD5
EXTRA_OPTSIf you need to pass extra arguments to the backup command, add them here e.g. --extra-command
MYSQL_MAX_ALLOWED_PACKETMax allowed packet if backing up MySQL / MariaDB512M
MYSQL_SINGLE_TRANSACTIONBackup in a single transaction with MySQL / MariaDBTRUE
MYSQL_STORED_PROCEDURESBackup stored procedures with MySQL / MariaDBTRUE
MYSQL_ENABLE_TLSEnable TLS functionality for MySQL clientFALSE
MYSQL_TLS_VERIFY(optional) If using TLS (by means of MYSQL_TLS_* variables) verify remote hostFALSE
MYSQL_TLS_VERSIONWhat TLS v1.1 v1.2 v1.3 version to utilizeTLSv1.1,TLSv1.2,TLSv1.3
MYSQL_TLS_CA_FILEFilename to load custom CA certificate for connecting via TLS/etc/ssl/cert.pemx
MYSQL_TLS_CERT_FILEFilename to load client certificate for connecting via TLSx
MYSQL_TLS_KEY_FILEFilename to load client key for connecting via TLSx
  • When using compression with MongoDB, only GZ compression is possible.

Backing Up to S3 Compatible Services

If BACKUP_LOCATION = S3 then the following options are used.

ParameterDescriptionDefault_FILE
S3_BUCKETS3 Bucket name e.g. mybucketx
S3_KEY_IDS3 Key ID (Optional)x
S3_KEY_SECRETS3 Key Secret (Optional)x
S3_PATHS3 Pathname to save to (must NOT end in a trailing slash e.g. 'backup')x
S3_REGIONDefine region in which bucket is defined. Example: ap-northeast-2x
S3_HOSTHostname (and port) of S3-compatible service, e.g. minio:8080. Defaults to AWS.x
S3_PROTOCOLProtocol to connect to S3_HOST. Either http or https. Defaults to https.httpsx
S3_EXTRA_OPTSAdd any extra options to the end of the aws-cli process executionx
S3_CERT_CA_FILEMap a volume and point to your custom CA Bundle for verification e.g. /certs/bundle.pemx
OR
S3_CERT_SKIP_VERIFYSkip verifying self signed certificates when connectingTRUE
  • When S3_KEY_ID and/or S3_KEY_SECRET is not set, will try to use IAM role assigned (if any) for uploading the backup files to S3 bucket.

See Full Config:

https://github.com/JamesWRC/db-backup


Template Content

Database Backup + Restore

JamesWRC/db-backup

More templates in this category

New

Postgres S3 backups

Postgres S3 backups

A simple NodeJS app to back up your PostgreSQL database to S3 via a cron


0

New

Tier

Tier

A single tool to configure,orchestrate and manage your entire pricing stack


0

New

Trigger.dev

Trigger.dev

Open source background jobs framework for TypeScript.


0