Add BLOB/large object verification script for backup diagnostics

This commit is contained in:
2025-11-13 16:14:10 +00:00
parent 37f55fdfb3
commit cc827fd7fc

57
verify_backup_blobs.sh Executable file
View File

@@ -0,0 +1,57 @@
#!/bin/bash
# Verify that backup contains large objects (BLOBs)
if [ $# -eq 0 ]; then
echo "Usage: $0 <backup_file.dump>"
echo "Example: $0 /var/lib/pgsql/db_backups/d7030.dump"
exit 1
fi
BACKUP_FILE="$1"
if [ ! -f "$BACKUP_FILE" ]; then
echo "Error: File not found: $BACKUP_FILE"
exit 1
fi
echo "========================================="
echo "Backup BLOB/Large Object Verification"
echo "========================================="
echo "File: $BACKUP_FILE"
echo ""
# Check if file is a valid PostgreSQL dump
echo "1. Checking dump file format..."
pg_restore -l "$BACKUP_FILE" > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo " ✅ Valid PostgreSQL custom format dump"
else
echo " ❌ Not a valid pg_dump custom format file"
exit 1
fi
# List table of contents and look for BLOB entries
echo ""
echo "2. Checking for BLOB/Large Object entries..."
BLOB_COUNT=$(pg_restore -l "$BACKUP_FILE" | grep -i "BLOB\|LARGE OBJECT" | wc -l)
if [ $BLOB_COUNT -gt 0 ]; then
echo " ✅ Found $BLOB_COUNT large object entries in backup"
echo ""
echo " Sample entries:"
pg_restore -l "$BACKUP_FILE" | grep -i "BLOB\|LARGE OBJECT" | head -10
else
echo " ⚠️ No large object entries found"
echo " This could mean:"
echo " - Database has no large objects (normal)"
echo " - Backup was created without --blobs flag (problem)"
fi
echo ""
echo "3. Full table of contents summary..."
pg_restore -l "$BACKUP_FILE" | tail -20
echo ""
echo "========================================="
echo "Verification complete"
echo "========================================="