TGViewer
ServerAdmin.ru ServerAdmin.ru @srv_admin · 32.6K subscribers
Post #1059 6.15K
Недавно уже делал заметку о настройке mysqldump для бэкапа баз данных mysql. Продолжу тему и приведу еще несколько полезных примеров из практики.

Чаще всего база дампится целиком. Если вам нужно восстановить отдельную таблицу из полного дампа, то простого способа сделать это нет. Я решаю эту задачу в консоли с помощью линуксовых утилит.

cat dbase.sql | /usr/bin/awk '/CREATE TABLE `b_catalog_discount`/,/UNLOCK TABLES/' > /tmp/b_catalog_discount.sql

Ищу в дампе строку CREATE TABLE и UNLOCK TABLES и сохраняю все, что между этих строк. Такой способ сработает, если вы дампите с ключами add-locks и create-options. Если дампите без них, по посмотрите сами, какие строки окаймляют создание таблиц в дампе.

Если нужно сделать потабличный дамп баз данных, использую простой скрипт с циклом:

#!/bin/bash
USER='root'
PASS='pass'

MYSQL="mysql --user=$USER --password=$PASS --skip-column-names";
DIR="/tmp/backupdb"

for s in mysql `$MYSQL -e "SHOW DATABASES"`;
  do
  mkdir $DIR/$s;
  for t in `$MYSQL -e "SHOW TABLES FROM $s"`;
do
  /usr/bin/mysqldump --user="$USER" --password="$PASS" --opt $s $t |
/usr/bin/gzip -c > $DIR/$s/$t.sql.gz;
done
done

Данный скрипт сделает потабличный бэкап всех баз данных и положит каждую базу данных в отдельную директорию. Если вам нужна будет конкретная база данных, то замените конструкцию `$MYSQL -e "SHOW DATABASES"` на имя нужной базы данных.

Восстановить всю базу из потабличного бэкапа можно тоже скриптом:

#!/bin/bash
DB=dbase;
USER='root'
PASS=''pass
DIR="/tmp/backupdb/dbase"

for s in `ls -1 $DIR`;
  do
  echo "--> $s restoring... ";
  zcat $DIR/$s | /usr/bin/mysql --user=$USER --password=$PASS $DB;
  done

Удобнее не использовать в скриптах пользователя и пароль, а задавать их в ~/.my.cnf, обязательно ограничив доступ на чтение.

#mysql #backup #bash
  • 👍 2
More from @srv_admin
  1. Oct 6, 2026Компания Selectel выкатила в public preview своего бесплатного ИИ-агента aish. Далее будет…
  2. Oct 5, 2026На прошлой неделе Mikrotik сделал рассылку с обзором своих новых продуктов. Я последние го…
  3. Oct 5, 2026🚀 Zabbix 8.0 на подходе. Запланируйте обучение команды уже сейчас В ближайшее время ожида…
  4. Oct 5, 2026В комментариях к недавней заметке про рабочее место один читатель в комментариях упомянул…
  5. Oct 2, 2026Мне Селектел прислали прикольный светильник, которым я сейчас стал постоянно пользоваться.…
  6. Oct 2, 202620 октября в 12:00 (мск) пройдёт бесплатный вебинар «Мониторинг событий безопасности в MWS…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →