Как создать резервную копию и восстановить базы данных MySQL с помощью mysqldump
В этой статье я расскажу о различных способах создания резервной копии на сервере баз данных MySQL. Как мы знаем, данные являются ценным активом для организации. В случае сбоя системы или центра обработки данных, повреждения базы данных или потери данных мы должны иметь возможность восстановить их.
mysqldump
— это утилита командной строки, которая используется для создания логической резервной копии базы данных MySQL. Она создает SQL-запросы, которые могут быть использованы для воссоздания объектов и данных базы данных. Команда также может быть использована для создания выходных данных в формате XML
, delimited text
или CSV
.
Синтаксис mysqldump
mysqldump -u [user name] –p [password] [options] [database_name] [tablename] > [dumpfilename.sql]
Описание параметров следующие:
-u [user name]
— Это имя пользователя для подключения к серверу MySQL.-p [password]
— Действительный пароль пользователя MySQL.[options]
— Параметры конфигурации для настройки резервного копирования.[database_name]
— Имя базы данных, для которой необходимо сделать резервную копию.[tablename]
— Необязательный параметр. Если вы хотите создать резервную копию определенных таблиц, то можете указать их имена в команде.<
или>
— Этот символ указывает, создаем ли мы резервную копию базы данных или восстанавливаем ее. Вы можете использовать>
для создания резервной копии и<
для ее восстановления[dumpfilename.sql]
— Путь и имя файла резервной копии. Как я уже говорил, мы можем создать резервную копию в XML, delimited text или SQL-файле, поэтому мы можем указать расширение файла соответствующим образом.
- Создание резервной копии одной базы данных
- Создание резервной копии нескольких баз данных или всех баз данных
- Создание резервной копии структуры базы данных
- Создание резервной копии определенной таблицы
- Создание резервной копии данных базы данных
- Восстановление базы данных
- Восстановление определенной таблицы в базе данных
Создание резервной копии одной базы данных
Например, хотим сделать резервную копию одной базы данных (прим. database1
), выполните следующую команду.
mysqldump -u root -p database1 > \tmp\database1_20241027.sql
Создание резервной копии нескольких баз данных или всех баз данных
Например, хотим сделать резервную копию более чем одной базы данных (прим. database1
и database2
). Для этого в команду mysqldump
необходимо добавить параметр -databases
.
mysqldump -u root -p --databases database1 database2 > \tmp\database1_database2_20241027.sql
Аналогично, если хотим сделать резервную копию всех баз данных, необходимо использовать опцию -all-databases
в команде mysqldump
.
mysqldump -u root -p --all-databases > \tmp\all_databases_20241027.sql
Создание резервной копии структуры базы данных
Если хотим сделать резервную копию структуры базы данных (прим. database1
), то в команде mysqldump
необходимо использовать параметр -no-data
.
mysqldump -u root -p --no-data database1 > \tmp\database1_schema_20241027.sql
Создание резервной копии определенной таблицы
Если хотим сделать резервную копию определенной таблицы (прим. table1
), то после имени базы данных необходимо указать имя таблицы.
mysqldump -u root -p database1 table1 > \tmp\database1_table1_tables_20241027.sql
Если хотим сделать резервную копию более чем одной таблицы (прим. table1
и table2
), то необходимо разделять имена таблиц пробелом.
mysqldump -u root -p database1 table1 table2 > \tmp\database1_table1_table2_tables_20241027.sql
Создание резервной копии данных базы данных
Если хотим сделать резервную копию данных без структуры базы данных, то в команде mysqldump необходимо использовать параметр -no-create-info
.
mysqldump -u root -p database1 --no-create-info > \tmp\database1_data_only_20241027.sql
Восстановление базы данных
Восстановление базы данных MySQL с помощью mysqldump
очень просто. Чтобы восстановить базу данных, необходимо создать пустую базу данных с аналогичным именем восстанавливаемой базы данных.
mysqldump
необходимо использовать mysql
, иначе mysqldump не сгенерирует схему и данные.mysql -u root -p database1 < \tmp\database1_20241027.sql
Восстановление определенной таблицы в базе данных
Например, кто-то удалил таблицу (table2
) из базы данных (database1
). Вместо того чтобы восстанавливать всю базу данных, мы можем восстановить удаленную таблицу из имеющейся резервной копии.
Шаг #1
Создайте фиктивную базу данных с именем database1_dummy
и восстановите резервную копию базы данных database1
на ней.
create database database1_dummy;
use database1_dummy;
source \tmp\database1_20241027.sql
Шаг #2
Создайте резервную копию таблицы table2
в файле database1_dummy_table2_20241027.sql
.
mysqldump -u root -p database1_dummy table2 > \tmp\database1_dummy_table2_20241027.sql
Шаг #3
Восстановите таблицу table2
из файла database1_dummy_table2_20241027.sql
.
use database1;
source \tmp\database1_dummy_table2_20241027.sql
Обсуждение
Нет комментариев.