Mysql: восстановление одной таблицы из полного дампа

В этой заметке я рассказал, как делать резервную копию одной таблицы, но это частный случай. В большинстве случаев делается полный дамп базы и для экономии места дамп архивируется.

Ниже представленный скрипт позволяет из архива полного дампа вытащить одну таблицу.

#!/bin/sh
 
DB=$1
TABLE=$2
PATH=/some/path/backup
 
if [ -f $PATH/$DB.sql.gz ]; then
    /bin/gunzip -c $PATH/$DB.sql.gz | /usr/bin/awk '/CREATE TABLE `'$TABLE'`/,/UNLOCK TABLES/' > /tmp/$DB.$TABLE.sql
    else
    echo 'FILE not found'
fi

Небольшое пояснение по скрипту. В качестве параметров он принимает имя базы данных и имя таблицы, которую необходимо восстановить.

Имя архива состоит из имени базы с расширением sql.gz

Пример выполнения скрипта

extract_table.sh database_name table_name

Из архива базы database_name извлечется таблица table_name

После этого, если необходимо, можно восстановить данную таблицу в базу.

mysql -uusername -ppassword database_name < /tmp/database_name.table_name.sql

Комментарии запрещены.