Как создать резервную копию и восстановить базы данных 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 < /tmp/database1_20241027.sqlЕсли нужно указать конкретную базу данных для восстановления, то используем следующую команду:
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ПОНРАВИЛАСЬ ИЛИ ОКАЗАЛАСЬ ПОЛЕЗНОЙ СТАТЬЯ, ПОДДЕРЖИ АВТОРА ДОНАТОМ
Обсуждение
Нет комментариев.