From cc827fd7fc440e71e9122a2c127ad646a9e9be4b Mon Sep 17 00:00:00 2001 From: Renz Date: Thu, 13 Nov 2025 16:14:10 +0000 Subject: [PATCH] Add BLOB/large object verification script for backup diagnostics --- verify_backup_blobs.sh | 57 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100755 verify_backup_blobs.sh diff --git a/verify_backup_blobs.sh b/verify_backup_blobs.sh new file mode 100755 index 0000000..97f35b0 --- /dev/null +++ b/verify_backup_blobs.sh @@ -0,0 +1,57 @@ +#!/bin/bash +# Verify that backup contains large objects (BLOBs) + +if [ $# -eq 0 ]; then + echo "Usage: $0 " + 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 "========================================="