Compare commits
3 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 490a12f858 | |||
| ea4337e298 | |||
| bbd4f0ceac |
40
README.md
40
README.md
@@ -194,21 +194,49 @@ r: Restore | v: Verify | i: Info | d: Diagnose | D: Delete | R: Refresh | Esc: B
|
|||||||
```
|
```
|
||||||
Configuration Settings
|
Configuration Settings
|
||||||
|
|
||||||
|
[SYSTEM] Detected Resources
|
||||||
|
CPU: 8 physical cores, 16 logical cores
|
||||||
|
Memory: 32GB total, 28GB available
|
||||||
|
Recommended Profile: balanced
|
||||||
|
→ 8 cores and 32GB RAM supports moderate parallelism
|
||||||
|
|
||||||
|
[CONFIG] Current Settings
|
||||||
|
Target DB: PostgreSQL (postgres)
|
||||||
|
Database: postgres@localhost:5432
|
||||||
|
Backup Dir: /var/backups/postgres
|
||||||
|
Compression: Level 6
|
||||||
|
Profile: balanced | Cluster: 2 parallel | Jobs: 4
|
||||||
|
|
||||||
> Database Type: postgres
|
> Database Type: postgres
|
||||||
CPU Workload Type: balanced
|
CPU Workload Type: balanced
|
||||||
Backup Directory: /root/db_backups
|
Resource Profile: balanced (P:2 J:4)
|
||||||
Work Directory: /tmp
|
Cluster Parallelism: 2
|
||||||
|
Backup Directory: /var/backups/postgres
|
||||||
|
Work Directory: (system temp)
|
||||||
Compression Level: 6
|
Compression Level: 6
|
||||||
Parallel Jobs: 16
|
Parallel Jobs: 4
|
||||||
Dump Jobs: 8
|
Dump Jobs: 4
|
||||||
Database Host: localhost
|
Database Host: localhost
|
||||||
Database Port: 5432
|
Database Port: 5432
|
||||||
Database User: root
|
Database User: postgres
|
||||||
SSL Mode: prefer
|
SSL Mode: prefer
|
||||||
|
|
||||||
s: Save | r: Reset | q: Menu
|
[KEYS] ↑↓ navigate | Enter edit | 'l' large-db | 'c' conservative | 'p' recommend | 's' save | 'q' menu
|
||||||
```
|
```
|
||||||
|
|
||||||
|
**Resource Profiles for Large Databases:**
|
||||||
|
|
||||||
|
When restoring large databases on VMs with limited resources, use the resource profile settings to prevent "out of shared memory" errors:
|
||||||
|
|
||||||
|
| Profile | Cluster Parallel | Jobs | Best For |
|
||||||
|
|---------|------------------|------|----------|
|
||||||
|
| conservative | 1 | 1 | Small VMs (<16GB RAM) |
|
||||||
|
| balanced | 2 | 2-4 | Medium VMs (16-32GB RAM) |
|
||||||
|
| performance | 4 | 4-8 | Large servers (32GB+ RAM) |
|
||||||
|
| large-db | 1 | 2 | Large databases on any hardware |
|
||||||
|
|
||||||
|
**Quick shortcuts:** Press `l` to apply large-db profile, `c` for conservative, `p` to show recommendation.
|
||||||
|
|
||||||
**Database Status:**
|
**Database Status:**
|
||||||
```
|
```
|
||||||
Database Status & Health Check
|
Database Status & Health Check
|
||||||
|
|||||||
@@ -4,8 +4,8 @@ This directory contains pre-compiled binaries for the DB Backup Tool across mult
|
|||||||
|
|
||||||
## Build Information
|
## Build Information
|
||||||
- **Version**: 3.42.50
|
- **Version**: 3.42.50
|
||||||
- **Build Time**: 2026-01-18_10:38:39_UTC
|
- **Build Time**: 2026-01-18_11:06:11_UTC
|
||||||
- **Git Commit**: 670c9af
|
- **Git Commit**: ea4337e
|
||||||
|
|
||||||
## Recent Updates (v1.1.0)
|
## Recent Updates (v1.1.0)
|
||||||
- ✅ Fixed TUI progress display with line-by-line output
|
- ✅ Fixed TUI progress display with line-by-line output
|
||||||
|
|||||||
@@ -200,11 +200,11 @@ func New() *Config {
|
|||||||
SSLMode: sslMode,
|
SSLMode: sslMode,
|
||||||
Insecure: getEnvBool("INSECURE", false),
|
Insecure: getEnvBool("INSECURE", false),
|
||||||
|
|
||||||
// Backup defaults
|
// Backup defaults - use recommended profile's settings for small VMs
|
||||||
BackupDir: backupDir,
|
BackupDir: backupDir,
|
||||||
CompressionLevel: getEnvInt("COMPRESS_LEVEL", 6),
|
CompressionLevel: getEnvInt("COMPRESS_LEVEL", 6),
|
||||||
Jobs: getEnvInt("JOBS", getDefaultJobs(cpuInfo)),
|
Jobs: getEnvInt("JOBS", recommendedProfile.Jobs),
|
||||||
DumpJobs: getEnvInt("DUMP_JOBS", getDefaultDumpJobs(cpuInfo)),
|
DumpJobs: getEnvInt("DUMP_JOBS", recommendedProfile.DumpJobs),
|
||||||
MaxCores: getEnvInt("MAX_CORES", getDefaultMaxCores(cpuInfo)),
|
MaxCores: getEnvInt("MAX_CORES", getDefaultMaxCores(cpuInfo)),
|
||||||
AutoDetectCores: getEnvBool("AUTO_DETECT_CORES", true),
|
AutoDetectCores: getEnvBool("AUTO_DETECT_CORES", true),
|
||||||
CPUWorkloadType: getEnvString("CPU_WORKLOAD_TYPE", "balanced"),
|
CPUWorkloadType: getEnvString("CPU_WORKLOAD_TYPE", "balanced"),
|
||||||
@@ -233,8 +233,8 @@ func New() *Config {
|
|||||||
// Timeouts - default 24 hours (1440 min) to handle very large databases with large objects
|
// Timeouts - default 24 hours (1440 min) to handle very large databases with large objects
|
||||||
ClusterTimeoutMinutes: getEnvInt("CLUSTER_TIMEOUT_MIN", 1440),
|
ClusterTimeoutMinutes: getEnvInt("CLUSTER_TIMEOUT_MIN", 1440),
|
||||||
|
|
||||||
// Cluster parallelism (default: 2 concurrent operations for faster cluster backup/restore)
|
// Cluster parallelism - use recommended profile's setting for small VMs
|
||||||
ClusterParallelism: getEnvInt("CLUSTER_PARALLELISM", 2),
|
ClusterParallelism: getEnvInt("CLUSTER_PARALLELISM", recommendedProfile.ClusterParallelism),
|
||||||
|
|
||||||
// Working directory for large operations (default: system temp)
|
// Working directory for large operations (default: system temp)
|
||||||
WorkDir: getEnvString("WORK_DIR", ""),
|
WorkDir: getEnvString("WORK_DIR", ""),
|
||||||
|
|||||||
@@ -402,6 +402,17 @@ func (m RestorePreviewModel) View() string {
|
|||||||
s.WriteString("\n")
|
s.WriteString("\n")
|
||||||
s.WriteString(fmt.Sprintf(" Host: %s:%d\n", m.config.Host, m.config.Port))
|
s.WriteString(fmt.Sprintf(" Host: %s:%d\n", m.config.Host, m.config.Port))
|
||||||
|
|
||||||
|
// Show Resource Profile and CPU Workload settings
|
||||||
|
profile := m.config.GetCurrentProfile()
|
||||||
|
if profile != nil {
|
||||||
|
s.WriteString(fmt.Sprintf(" Resource Profile: %s (Parallel:%d, Jobs:%d)\n",
|
||||||
|
profile.Name, profile.ClusterParallelism, profile.Jobs))
|
||||||
|
} else {
|
||||||
|
s.WriteString(fmt.Sprintf(" Resource Profile: %s\n", m.config.ResourceProfile))
|
||||||
|
}
|
||||||
|
s.WriteString(fmt.Sprintf(" CPU Workload: %s\n", m.config.CPUWorkloadType))
|
||||||
|
s.WriteString(fmt.Sprintf(" Cluster Parallelism: %d databases\n", m.config.ClusterParallelism))
|
||||||
|
|
||||||
if m.existingDBError != "" {
|
if m.existingDBError != "" {
|
||||||
// Show warning when database listing failed - but still allow cleanup toggle
|
// Show warning when database listing failed - but still allow cleanup toggle
|
||||||
s.WriteString(checkWarningStyle.Render(" Existing Databases: Detection failed\n"))
|
s.WriteString(checkWarningStyle.Render(" Existing Databases: Detection failed\n"))
|
||||||
|
|||||||
Reference in New Issue
Block a user