5.6 KiB
5.6 KiB
DB Backup Tool - Quick Start Guide
🌟 NEW: Real-Time Progress Tracking!
The database backup tool now includes enhanced progress tracking with:
- <EFBFBD> Live progress bars with percentage completion
- ⏱️ Real-time timing and performance metrics
- 📝 Detailed logging with timestamps
- 🎨 Beautiful interactive UI with color indicators
<EFBFBD>🚀 Quick Installation
Option 1: Pre-compiled Binary (Recommended)
# Linux AMD64
./bin/dbbackup_linux_amd64
chmod +x ./bin/dbbackup_linux_amd64
# Linux ARM64
./bin/dbbackup_linux_arm64
chmod +x ./bin/dbbackup_linux_arm64
# macOS Intel
./bin/dbbackup_darwin_amd64
chmod +x ./bin/dbbackup_darwin_amd64
# macOS M1/M2
./bin/dbbackup_darwin_arm64
chmod +x ./bin/dbbackup_darwin_arm64
# Windows
./bin/dbbackup_windows_amd64.exe
Option 2: Build from Source
git clone https://git.uuxo.net/renz/dbbackup.git
cd dbbackup
go build -o dbbackup .
⚡ Quick Start with Progress Tracking
🎨 Enhanced Interactive Mode (Best for Beginners)
# Start with real-time progress tracking
dbbackup interactive --database your_database
# Example with PostgreSQL
dbbackup interactive --database postgres --host localhost --user postgres
Tip: In the interactive menu, tap the left/right arrows (or
t) to toggle between PostgreSQL and MySQL/MariaDB before starting a task.
📊 Command Line with Progress
# Single backup with live progress
dbbackup backup single your_database --progress
# Cluster backup with detailed logging
dbbackup backup cluster --progress --verbose --timestamps
🎬 Progress Tracking in Action
Real-Time Progress Display
🔄 PostgreSQL Backup [67%] - Compressing archive...
[███████████████▒▒▒▒▒▒▒]
⏱️ Elapsed: 1m 45.2s | ETA: 42s
📁 Files: 18/25 processed
💾 Data: 1.4GB/2.1GB transferred
Steps:
✅ Prepare backup directory
✅ Build backup command
✅ Execute database backup
🔄 Verify backup file
⏳ Create metadata file
Details:
database: postgres | type: single | compression: 6
output_file: /backups/db_postgres_20241203_143527.dump
Post-Operation Summary
✅ Single database backup completed: db_postgres_20241203_143527.dump
📊 Operation Summary:
Total: 1 | Completed: 1 | Failed: 0 | Running: 0
Total Duration: 2m 18.7s
📁 Backup Details:
File: /backups/db_postgres_20241203_143527.dump
Size: 1.1GB (compressed from 2.1GB)
Verification: PASSED
Metadata: Created successfully
Command Line (For Scripts/Automation)
PostgreSQL Examples
# Single database backup (auto-optimized)
dbbackup backup single myapp_db --db-type postgres
# Sample backup (10% of data)
dbbackup backup sample myapp_db --sample-ratio 10 --db-type postgres
# Full cluster backup
dbbackup backup cluster --db-type postgres
# Check connection
dbbackup status --db-type postgres
MySQL Examples
# Single database backup
dbbackup backup single myapp_db --db-type mysql
# Using the short flag for database selection
dbbackup backup single myapp_db -d mysql
# Sample backup
dbbackup backup sample myapp_db --sample-ratio 10 --db-type mysql
# Check connection
dbbackup status --db-type mysql
🧠 CPU Optimization Commands
# Show CPU information and recommendations
dbbackup cpu
# Auto-optimize for your hardware
dbbackup backup single mydb --auto-detect-cores
# Manual configuration for big servers
dbbackup backup cluster --jobs 16 --dump-jobs 8 --max-cores 32
🔧 Common Options
| Option | Description | Example |
|---|---|---|
--host |
Database host | --host db.example.com |
--port |
Database port | --port 5432 |
--user |
Database user | --user backup_user |
-d, --db-type |
Database type (postgres, mysql, mariadb) |
-d mysql |
--insecure |
Disable SSL | --insecure |
--jobs |
Parallel jobs | --jobs 8 |
--debug |
Debug mode | --debug |
PostgreSQL Quick Options
- Default target is PostgreSQL; explicitly add
--db-type postgreswhen switching between engines in scripts. - Run as the
postgresOS user for local clusters:sudo -u postgres dbbackup ...ensures socket authentication succeeds. - Pick an SSL strategy: omit
--ssl-modefor local sockets, use--ssl-mode require(or stricter) for remote TLS, or--insecureto disable TLS. - Cluster backups (
backup cluster) and plain.dumprestores are PostgreSQL-only operations.
MySQL / MariaDB Quick Options
- Select the engine with
--db-type mysql(ormariadb); supply--host,--port 3306,--user,--password, and--databaseexplicitly. - Use
--insecureto emit--skip-ssl; choose--ssl-mode require|verify-ca|verify-identitywhen TLS is mandatory. - MySQL dumps are gzipped SQL scripts (
*.sql.gz); the restore preview showsgunzip -c ... | mysqlso you know the exact pipeline. - Credentials can also come from
MYSQL_PWDor option files if you prefer not to use the--passwordflag.
📁 Available Binaries
Choose the right binary for your platform:
- Linux:
dbbackup_linux_amd64,dbbackup_linux_arm64 - macOS:
dbbackup_darwin_amd64,dbbackup_darwin_arm64 - Windows:
dbbackup_windows_amd64.exe - BSD:
dbbackup_freebsd_amd64,dbbackup_openbsd_amd64
🆘 Need Help?
# General help
dbbackup --help
# Command-specific help
dbbackup backup --help
dbbackup backup single --help
# Check CPU configuration
dbbackup cpu
# Test connection
dbbackup status --debug
For complete documentation, see README.md.