Database Backup Automator
This skill provides automated assistance for database backup automator tasks.
Prerequisites
Before using this skill, ensure:
- •Database credentials with backup permissions (SELECT on all tables)
- •Sufficient disk space for backup files (estimate 2-3x database size with compression)
- •Cron or task scheduler access for automated scheduling
- •Backup destination storage (local disk, NFS, S3, GCS, Azure Blob)
- •Encryption tools installed (gpg, openssl) for secure backups
- •Test database available for restore validation
Instructions
Step 1: Assess Backup Requirements
- •Identify database type (PostgreSQL, MySQL, MongoDB, SQLite)
- •Determine backup frequency (hourly, daily, weekly, monthly)
- •Define retention policy (how long to keep backups)
- •Calculate expected backup size and storage needs
- •Document RTO (Recovery Time Objective) and RPO (Recovery Point Objective)
Step 2: Design Backup Strategy
- •Choose backup type: full, incremental, or differential
- •Select backup destination (local, network storage, cloud)
- •Plan backup scheduling to avoid peak usage times
- •Define backup naming convention with timestamps
- •Determine compression and encryption requirements
Step 3: Generate Backup Scripts
- •Create database-specific backup command (pg_dump, mysqldump, mongodump)
- •Add compression using gzip or zstd for storage efficiency
- •Implement encryption using gpg or openssl for security
- •Add error handling and logging to backup script
- •Include backup verification (checksum, test restore)
Step 4: Configure Backup Schedule
- •Create cron job entry for automated execution
- •Set appropriate schedule based on backup frequency
- •Configure environment variables for credentials
- •Set up log rotation for backup logs
- •Test manual execution before enabling automation
Step 5: Implement Retention Policy
- •Create cleanup script to remove old backups
- •Implement tiered retention (daily 7 days, weekly 4 weeks, monthly 12 months)
- •Schedule retention cleanup after backup completion
- •Add safeguards to prevent accidental deletion of recent backups
- •Log all backup deletions for audit trail
Step 6: Create Restore Procedures
- •Document step-by-step restore process
- •Create restore scripts for each database type
- •Include procedures for point-in-time recovery
- •Test restore process on non-production environment
- •Document restore time estimates and validation steps
Output
This skill produces:
Backup Scripts: Shell scripts for database dumps with compression and encryption
Cron Configurations: Crontab entries for automated backup scheduling
Retention Scripts: Automated cleanup scripts implementing retention policies
Restore Procedures: Step-by-step documentation and scripts for database restoration
Monitoring Configuration: Log file locations and success/failure notification setup
Error Handling
Backup Failures:
- •Check database connectivity and credentials
- •Verify sufficient disk space for backup files
- •Review database logs for lock or permission issues
- •Implement retry logic with exponential backoff
- •Send alerts on backup failures
Insufficient Disk Space:
- •Monitor disk usage before backup execution
- •Implement pre-backup cleanup of old backups
- •Use incremental backups to reduce space requirements
- •Compress backups more aggressively
- •Move backups to remote storage immediately after creation
Encryption Errors:
- •Verify encryption tools (gpg, openssl) are installed
- •Check encryption key availability and permissions
- •Test encryption/decryption process manually
- •Document key management procedures
- •Store encryption keys securely separate from backups
Schedule Conflicts:
- •Ensure only one backup runs at a time (use lock files)
- •Adjust backup schedule to avoid peak database usage
- •Implement backup queuing for multiple databases
- •Monitor backup duration and adjust schedule if needed
- •Alert if backup duration exceeds acceptable window
Resources
Backup Script Templates:
- •PostgreSQL:
{baseDir}/templates/backup-scripts/postgresql-backup.sh - •MySQL:
{baseDir}/templates/backup-scripts/mysql-backup.sh - •MongoDB:
{baseDir}/templates/backup-scripts/mongodb-backup.sh - •SQLite:
{baseDir}/templates/backup-scripts/sqlite-backup.sh
Restore Procedures: {baseDir}/docs/restore-procedures/
- •Point-in-time recovery
- •Full database restore
- •Selective table restore
- •Cross-server migration
Retention Policy Templates: {baseDir}/templates/retention-policies.yaml
Cron Job Examples: {baseDir}/examples/crontab-entries.txt
Monitoring Scripts: {baseDir}/scripts/backup-monitoring.sh
Overview
This skill provides automated assistance for the described functionality.
Examples
Example usage patterns will be demonstrated in context.