Как проверить бэкап базы данных сайта sql файла MySQL что он нормально сохранился?

12
Dmitriy_2014
На сайте с 01.07.2014
Offline
344
#11
yodda #:

А как можно по‑быстрому проверить, что у Dmitriy_2014 всё нормально с прошивкой головы и синдром дауна не активировался, но без реальной диагностики и похода к специалисту?

Например, читаешь его сообщение сначала — вроде идёт какая‑то умная техинформация, значит загрузка мозга стартовала. Потом доходишь до конца — видишь "Заранее спасибо" и думаешь: ага, завершение прошло, система отчиталась как будто "Dump completed".

Проматываешь середину — а там бесконечные повторы однотипных мыслей. Тут возникает подозрение, что дамп головы слегка битый и кое‑где блоки копипастятся сами на себя.

Что ещё по‑быстрому можно проверить, но без серьёзных исследований? Может, просто спросить у Дмитрия дату его последнего обновления прошивки мозга — если это был 2014, то многое становится на свои места.

Заранее всем спасибо за помощь в проверке ТС!

Очень смешно и остроумно. Ты видимо Йода, учитель Сплинтера. Да, я знаю, что их никто не проверяет, но все же интересно хоть кто-то смотрит что у них сохраняется, у меня как-то был баг при сохранении, я вроде сохранил, а потом смотрю там 0 байт, при импорте ошибки, были архивы кривые нераспаковываемые с ошибкой, ну ты с этим смотри не затягивай, простатит такое дело брат, не встанет в нужный момент и все, ну давай.
E
На сайте с 01.10.2017
Offline
122
#12
Dmitriy_2014 :
Как можно по-быстрому проверить сделанный бэкап файл базы данных сохраненный в формате name.sql базы данных MySQL, чтобы понять, что он нормально сохранился
В общем верно мыслите: быстро пролистать до конца, посмотреть на размер и сравнить с размером предыдущего. А в общем просто делайте резервные копии автоматически и часто, а также периодически выборочно тестируйте или просматривайте созданные копии. Кстати, в плане резервного копирования можно описать поведение при ошибках, например отправить письмо админу и не удалять "устаревшую" копию.
Домены на продажу: https://p20.ru/collection/domains-for-sale
S3
На сайте с 29.03.2012
Offline
356
#13

проверки:

Проверка наличия таблиц, INSERT, DROP TABLE

Проверка строк на ;

Контрольная сумма (MD5, SHA256)

Проверка кодировки ( CHARSET )

Проверка движка таблиц ( ENGINE )

Проверка наличия индексов и внешних ключей

Проверка наличия триггеров, процедур и функций

Проверка на потенциально повреждённые бинарные символы

#!/bin/bash
# extended_mysql_dump_check.sh
# Extended static check of MySQL dump without restoring

DUMP_FILE="$1"

if [ -z "$DUMP_FILE" ]; then
    echo "Usage: $0 <path_to_dump.sql>"
    exit 1
fi

if [ ! -f "$DUMP_FILE" ]; then
    echo "File $DUMP_FILE not found!"
    exit 1
fi

echo "Checking dump file: $DUMP_FILE"

# Check if file is empty
if [ ! -s "$DUMP_FILE" ]; then
    echo "File is empty!"
    exit 1
fi
echo "File is not empty."

# Compute checksums
MD5=$(md5sum "$DUMP_FILE" | awk '{print $1}')
SHA256=$(sha256sum "$DUMP_FILE" | awk '{print $1}')
echo "MD5: $MD5"
echo "SHA256: $SHA256"

# Count CREATE TABLE statements
TABLES=$(grep -i "CREATE TABLE" "$DUMP_FILE" | wc -l)
echo "Number of tables found: $TABLES"

# Count INSERT statements
INSERTS=$(grep -i "INSERT INTO" "$DUMP_FILE" | wc -l)
echo "Number of INSERT statements found: $INSERTS"

# Count DROP TABLE statements
DROPS=$(grep -i "DROP TABLE" "$DUMP_FILE" | wc -l)
echo "Number of DROP TABLE statements found: $DROPS"

# Simple syntax check - lines not ending with ;
BROKEN_LINES=$(grep -vE ".*;(\s*)$" "$DUMP_FILE" | head -n 20)
if [ -n "$BROKEN_LINES" ]; then
    echo "Potential syntax issues (first 20 lines without ';'):"
    echo "$BROKEN_LINES"
else
    echo "All lines seem to end with ';' (sample check)."
fi

# Check character sets
CHARSETS=$(grep -i "CHARSET=" "$DUMP_FILE" | sort | uniq)
echo "Character sets used in dump:"
echo "$CHARSETS"

# Check storage engines
ENGINES=$(grep -i "ENGINE=" "$DUMP_FILE" | sort | uniq)
echo "Storage engines used in dump:"
echo "$ENGINES"

# Check foreign keys
FOREIGN_KEYS=$(grep -i "FOREIGN KEY" "$DUMP_FILE" | wc -l)
echo "Number of FOREIGN KEY constraints: $FOREIGN_KEYS"

# Check indexes
INDEXES=$(grep -i "INDEX" "$DUMP_FILE" | wc -l)
echo "Number of INDEX definitions: $INDEXES"

# Check triggers, procedures, functions
TRIGGERS=$(grep -i "CREATE TRIGGER" "$DUMP_FILE" | wc -l)
PROCEDURES=$(grep -i "CREATE PROCEDURE" "$DUMP_FILE" | wc -l)
FUNCTIONS=$(grep -i "CREATE FUNCTION" "$DUMP_FILE" | wc -l)
echo "Number of triggers: $TRIGGERS"
echo "Number of procedures: $PROCEDURES"
echo "Number of functions: $FUNCTIONS"

# Check for unusual binary characters
BINARY_ISSUES=$(grep -P '[^\x09\x0A\x0D\x20-\x7E]' "$DUMP_FILE" | head -n 20)
if [ -n "$BINARY_ISSUES" ]; then
    echo "Potential binary/corrupted characters (first 20 occurrences):"
    echo "$BINARY_ISSUES"
else
    echo "No obvious binary/corrupted characters found."
fi

echo "Extended static dump check completed."

С мусклей давно не работал, может что то избыточное, но за основу можно взять и допилить

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий