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 |