MySQL-копирование | REG.RU
Несмотря на надёжность современных компьютеров и серверов, время от времени случаются поломки. А значит пользователи постоянно рискуют потерять все свои данные. Чтобы решить проблему потери информации, специалисты рекомендуют делать резервное копирование MySQL.
Резервное копирование, или бэкап ― это создание копии файлов и папок на дополнительном носителе информации. Резервное копирование позволяет восстанавливать повреждённые данные на основном носителе. В этой статье мы расскажем, как сделать бэкап MySQL.
Где можно хранить резервные копии
Бэкап можно хранить на любом внешнем носителе. Желательно, чтобы этот носитель не был подключен к основному устройству постоянно.
- Внешний жёсткий диск. Он представляет собой тот же жёсткий диск, что и в компьютере, но подключается с помощью USB-разъема. Это надёжное устройство для хранения информации, однако его нужно беречь от падений.
- Флешка. Флешка менее надёжна, чем жёсткий диск, так как её легче сломать или потерять. Всё-таки в первую очередь она создана для переноса данных. Однако её большими плюсами являются маленькие размеры и простота использования.
- Облачные хранилища. Это популярный метод хранения информации. Плюсами облачного хранения копий являются:
- Автоматическое копирование. Можно настроить сохранение данных, например, раз в сутки или раз в неделю.
- Экономия. Облачное хранение часто обходится дешевле, чем материальные носители, и не требует обслуживания со стороны пользователя.
- Безопасность. Современные облачные технологии обеспечивают высокую информационную безопасность за счёт шифрования данных.
Способы резервного копирования MySQL
Способов сделать копирование базы данных несколько:
- Можно временно выключить MySQL-сервер и скопировать файлы из папки /var/lib/mysql/db/. Само копирование занимает мало времени, однако восстановление сервера может занять часы. Копировать базу нужно регулярно, а постоянное отключение нехорошо для сервиса.
- Можно использовать снэпшоты. Для них не нужно останавливать MySQL-сервер. Однако создание снимка может повлиять на работоспособность БД.
- Для копирования MySQL можно использовать утилиту mysqldump, которая была создана Игорем Романенко. С её помощью создаётся дамп содержимого базы данных. Дамп ― это файл с копией БД. Файл состоит из SQL-команд.
Плюсы дампа:
- прост в использовании,
- лучше переносятся между версиями MySQL,
- можно копировать как все имеющиеся БД, так и отдельно выделенные таблицы,
- совместим практически с любой СУБД (не только MySQL),
- можно выгружать данные в форматах CSV и XML.
Недостатки использования дампов:
- медленное создание копии БД (особенно для тяжёлых файлов),
- требует много дискового пространства.
Третий вариант имеет много плюсов. Ниже мы расскажем, как сделать резервную копию MySQL с помощью утилиты mysqldump.
Как создать бекап базы данных MySQL
Синтаксис команды для создания резервной копии:
mysqldump [опции] [имя_базы] > [путь_и_имя_файла].sql
В результате выполнения будет создан файл .sql.
Для примера создадим бекап базы данных db_name и сохраним файл db_backup.sql в корневой директории. Для этого используем команду:
mysqldump -u root -p db_name > /db_backup.sql
Даже если команда была выполнена успешно, вывода на экран не будет. Результат сразу запишется в файл:
MySQL backup database
Как создать бэкап отдельной таблицы
При помощи mysqldump можно создать резервную копию отдельной таблицы. Для этого нужно добавить имя таблицы после названия БД:
mysqldump -u root -p db_name table_name > /db_table_backup.sql
В результате резервная копия таблицы table_name базы данных db_test будет сохранена в файле db_table_backup.sql.
Посмотреть список таблиц в БД можно при помощи команды:
mysqlshow -u root -p table_name
Как сохранить копию нескольких баз данных
Чтобы сохранить копию нескольких баз данных, используйте ключ —databases, а после него через пробел введите названия БД. У вас должно получиться подобное:
mysqldump --databases db_1 db_2 > db_backup.sql
Чтобы сделать бэкап всех баз, используйте ключ —all-databases:
mysqldump --all-databases > db_backup.sql
Как создать новую базу данных MySQL
Чтобы развернуть бэкап, нужна существующая БД. Если её нет, можно создать новую. Для этого:
-
1.
Подключитесь к серверу MySQL:
mysql -u root -p
Создайте базу данных:
CREATE DATABASE db_name;
Вместо db_name введите нужное имя.
Готово, вы создали новую БД, теперь вы можете развернуть на ней резервную копию.
Как восстановить базу данных MySQL из резервной копии
Для восстановления резервной копии используется утилита mysql. Синтаксис:
mysql [опции] [имя_базы] < [путь_и_имя_файла].sql
Например, восстановим базу данных db_name из файла резервной копии db_backup.sql
mysql -uroot -p db_name < /db_backup.sql
Если БД с таким названием не существует, вы увидите ошибку:
ERROR 1049 (42000): Unknown database ‘db_name’:
Посмотреть список баз данных можно при помощи команды:
mysqlshow -u root -p
Помогла ли вам статья?
Да
раз уже
помогла
Резервное копирование MySQL — Losst
Как вы знаете, все важные данные ваших сайтов, их настройки, статьи, комментарии и другая информация хранятся в базе данных. Потеря этой информации может иметь очень тяжелые последствия для проекта. Поэтому важно своевременно делать резервные копии базы данных MySQL. Также эти копии могут быть очень полезными при переносе проекта на другой сервер.
В этой инструкции мы рассмотрим как выполняется резервное копирование MySQL или mariadb базы данных, а также как восстановить информацию в базе из копии. Кроме того, мы разберем как настроить автоматическое создание копий через определенный промежуток времени.
Содержание статьи:
Резервное копирование базы данных
Все что вам нужно для резервного копирования MySQL — это доступ к серверу с операционной системой Linux, на котором установлен сервер баз данных, а также имя базы данных и параметры доступа к ней.
Для экспорта информации из базы данных в формате SQL можно использовать утилиту mysqldump. Вот ее синтаксис:
$ mysqldump опции имя_базы [имя_таблицы] > файл.sql
По умолчанию утилита будет выводить все в стандартный вывод, поэтому нам нужно перенаправить эти данные в файл, что мы и делаем с помощью оператора «>». Опции указывают параметры аутентификации и работы, а имя базы и таблицы — данные которые нужно экспортировать. Теперь рассмотрим кратко опции, которые будем использовать:
- -A
- -i — записывать дополнительную информацию в комментариях;
- -c — использовать имена колонок для инструкции INSERT;
- -a — включать все возможные опции в инструкцию CREATE TABLE;
- -k — отключает первичные ключи на время копирования;
- -e — использовать многострочный вариант инструкции INSERT;
- -f — продолжить даже после ошибки;
- -h — имя хоста, на котором расположен сервер баз данных, по умолчанию localhost;
- -n — не писать инструкции для создания базы данных;
- -t — не писать инструкции для создания таблиц;
- -d — не записывать данные таблиц, а только их структуру;
- -p — пароль базы данных;
- -P — порт сервера баз данных;
- -Q — брать все имена таблиц, баз данных, полей в кавычки;
- -X — использовать синтаксис XML вместо SQL;
- -u — пользователь, от имени которого нужно подключаться к базе данных.
В большинстве случаев нам достаточно задать имя пользоваться, пароль, а также имя базы данных. Дальше рассмотрим примеры работы с утилитой. Например самая простая команда экспорта базы данных:
mysqldump -u имя_пользователя -p имя_базы > data-dump.sql
Вам нужно будет ввести пароль пользователя базы данных и больше ничего команда не выведет, поскольку мы отправили все данные в файл, но вы можете посмотреть информацию о резервной копии с помощью такой команды:
head -n 5 data-dump.sql
Но если во время создания копии возникнут какие-либо ошибки, они будут выведены на экран и вы сразу о них узнаете. Более сложный вариант, это выполнить резервное копирование MySQL с другого хоста, если у вас есть к нему доступ:
mysqldump -h хост -P порт -u имя_пользователя -p имя_базы > data-dump.sql
Копирование таблицы MySQL может быть выполнено простым добавлением имени таблицы в конец строки:
mysqldump -u имя_пользователя -p имя_базы имя_таблицы > data-dump. sql
Также, чтобы выполнять автоматическое резервное копирование может понадобиться сразу задать пароль, для этого указывайте его сразу после опции -p, без пробела:
mysqldump -u имя_пользователя -pпароль имя_базы > data-dump.sql
Мы можем делать бэкап вручную время от времени, но это не совсем удобно, поскольку есть другие важные дела. Поэтому используем планировщик cron, чтобы автоматизировать процесс. Тут есть два способа более простой, и более сложный, но точный. Допустим, нам нужно создавать резервную копию каждый день, тогда просто создайте скрипт в папке /etc/cron.daily/ со следующим содержимым:
sudo vi /etc/cron.daily/mysql-backup
!/bin/bash
/usr/bin/mysqldump -u имя_пользователя -pпароль имя_базы > /backups/mysql-dump.sql
Папку /backups/mysql-dump.sql нужно заменить на свою папку для резервных копий. Осталось дать скрипту права на выполнение:
chmod ugo+x /etc/cron.daily/mysql-backup
Дальше планировщик будет запускать его каждый день и делать копирование базы данных. Но есть еще один, более точный способ, который позволяет указать точное время выполнения. Сначала выполните команду:
sudo crontab -e
Добавьте в открывшейся файл такую строку и сохраните изменения:
30 2 * * * /usr/bin/mysqldump -u имя_пользователя -pпароль имя_базы > /backups/mysql-dump.sql
Команда будет выполняться каждый день, в 2:30, это удобно, поскольку ночью обычно меньше нагрузка на сервер. Как вы поняли, первое число — это минуты, второе — часы, третье день, дальше неделя и месяц. Звездочка значит, что этот параметр не имеет значения.
Восстановление из резервной копии
Восстановить резервную копию mysql или mariadb из существующего SQL файла тоже очень просто. Поскольку использовался синтаксис sql мы просто можем выполнить все команды с помощью стандартного клиента mysql.
Сначала нужно создать новую базу данных. Для этого авторизуйтесь на mysql сервере с правами суперпльзователя:
mysql -u root -p
Затем создайте новую базу данных, например, с именем new_database, если база данных уже существует, то этого делать не нужно:
mysql> CREATE DATABASE new_database;
Дальше закройте оболочку, нажав сочетание клавиш Ctrl+Q и импортируйте данные из файла командой:
mysql -u пользователь -p база_данных < data-dump. sql
Для экспорта мы направляли данные стандартного вывода в файл, а здесь происходит обратная операция, данные из файла направляются на стандартный ввод программы. Успешно выполненная команда ничего не выведет, и чтобы убедиться что все прошло успешно, просто посмотрите содержимое базы.
Выводы
Теперь вы знаете как выполняется копирование базы данных MySQL, а также как восстановить скопированную информацию. Мы рассмотрели все возможные опции mysqldump чтобы вы могли настроить утилиту так, как вам нужно. Резервное копирование базы данных MySQL это очень важный момент и в определенной ситуации может сохранить много времени, поэтому обязательно настройте у себя на сервере!
Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.
Как сделать резервную копию и восстановить базы данных MySQL с помощью команды mysqldump
В этой статье я собираюсь объяснить различные способы создания резервной копии на сервере базы данных MySQL. Как известно, данные являются ценным активом для организации. Как администраторы баз данных, наша основная и важная задача — обеспечить доступность и безопасность данных. В случае сбоя системы или центра обработки данных, повреждения базы данных или потери данных мы должны иметь возможность восстановить их в рамках определенного соглашения об уровне обслуживания.
Различные платформы баз данных предоставляют различные методы для создания резервной копии и восстановления базы данных. Многие поставщики предоставляют самые современные программные и аппаратные решения, которые могут помочь в резервном копировании базы данных и восстановлении базы данных в пределах заданных RTO и RPO.
Здесь мы не собираемся обсуждать решения для резервного копирования сторонних поставщиков. Я собираюсь объяснить нативные методы, которые используются для создания резервной копии базы данных. Мы можем создать резервную копию базы данных MySQL, используя любой из следующих методов:
- Создайте резервную копию с помощью утилиты mysqldump .
- Создание инкрементных резервных копий с использованием двоичного журнала
- Создание резервных копий с помощью репликации ведомых устройств
В этой статье я собираюсь объяснить, как мы можем использовать mysqldump для создания резервной копии базы данных MySQL.
Создать резервную копию с помощью утилиты mysqldump
Mysqldump — это утилита командной строки, которая используется для создания логической резервной копии базы данных MySQL. Он создает операторы SQL, которые можно использовать для воссоздания объектов и данных базы данных. Команду также можно использовать для создания выходных данных в формате XML, текста с разделителями или CSV.
Эта команда проста в использовании, но единственная проблема возникает при восстановлении базы данных. Как я уже упоминал, когда мы создаем резервную копию базы данных MySQL, создается файл резервной копии, содержащий команды SQL, необходимые для перестроения или восстановления базы данных. Теперь, когда мы восстанавливаем базу данных, команда выполняет все операторы SQL для создания таблиц и вставки данных. Если у вас большая база данных, то процесс восстановления займет много времени.
Примечание: По умолчанию команда mysqldump не создает дамп базы данных information_schema , performance_schema, и базы данных MySQL Cluster ndbinfo .
Если вы хотите включить таблицы information_schema , вы должны явно указать имя базы данных в команде mysqldump , а также включить параметр — skip-lock-tables .
Существует множество опций и функций, которые можно использовать с mysqldump . Вы можете просмотреть полный список опций здесь. Я перейду к некоторым основным функциям. Ниже приведен синтаксис утилиты mysqldump .
mysqldump -u [имя пользователя] –p [пароль] [параметры] [имя_базы_данных] [имя таблицы] > [имя_дампа_файла.sql] |
Параметры следующие:
- -u [имя_пользователя]: Это имя пользователя для подключения к серверу MySQL. Чтобы создать резервную копию, используя mysqldump , « Select » для дампа таблиц, « Show View » для представлений, « Trigger » для триггеров. Если вы не используете опцию — для одной транзакции , то пользователю должны быть предоставлены привилегии « Lock Tables ».
- -p [пароль]: Действительный пароль пользователя MySQL
- [опция]: Параметр конфигурации для настройки резервного копирования
- [имя базы данных]: Имя базы данных, для которой вы хотите сделать резервную копию
- [имя таблицы]: Это необязательный параметр. Если вы хотите взять в резерв определенные таблицы, то вы можете указать имена в команде
- «<» ИЛИ »>»: Этот символ указывает, делаем ли мы резервную копию базы данных или восстанавливаем базу данных. Вы можете использовать « >» для создания резервной копии и « < » для восстановления резервной копии
- [dumpfilename.sql]: Путь и имя файла резервной копии. Как я уже упоминал, мы можем создать резервную копию в XML, тексте с разделителями или файле SQL, чтобы мы могли предоставить соответствующее расширение файла.
Создать резервную копию одной базы данных
Например, вы хотите создать резервную копию одной базы данных, выполните следующую команду. Команда создаст резервную копию « sakila » база данных со структурой и данными в файле sakila_20200424.sql .
mysqldump -u root -p sakila > C:\MySQLBackup\sakila_20200424. sql |
Когда вы запускаете эту команду, она запрашивает пароль. Укажите соответствующий пароль. См. следующее изображение:
После успешного создания резервной копии давайте откроем файл резервной копии, чтобы просмотреть содержимое файла резервной копии. Откройте хранилище резервных копий и дважды щелкните значок «9».0010 sakila_20200424.sql ».
Как вы можете видеть на изображении выше, файл резервной копии содержит различные операторы T-SQL, которые можно использовать для повторного создания объектов.
Создать резервную копию нескольких баз данных или всех баз данных
Например, вы хотите создать резервную копию более чем одной базы данных. Вы должны добавить опцию — databases в mysqldump 9Команда 0013. Следующая команда создаст резервную копию базы данных « sakila » и « сотрудников » со структурой и данными.
mysqldump -u root -p —databases сотрудники sakila > C:\MySQLBackup\sakila_employees_20200424.sql |
См. следующее изображение:
Точно так же, если вы хотите создать резервную копию всех баз данных, вы должны использовать –все базы данных в команде mysqldump . Следующая команда создаст резервную копию всех баз данных на сервере MySQL.
mysqldump -u root -p —all-databases > C:\MySQLBackup\all_databases_20200424.sql |
См. следующее изображение:
Создать резервную копию структуры базы данных
Если вы хотите создать резервную копию структуры базы данных, то вы должны использовать опцию –no-data в команде mysqldump . Следующая команда создает резервную копию структуры базы данных sakila .
mysqldump -u root -p —no-data sakila > C:\MySQLBackup\sakila_objects_definition_20200424.sql |
См. следующее изображение:
Создать резервную копию определенной таблицы
Если вы хотите сгенерировать резервную копию конкретной таблицы, то вы должны указать имя таблиц после имени базы данных. Следующая команда создает резервную копию таблицы актера базы данных sakila .
mysqldump -u root -p sakila платеж актера > C:\MySQLBackup\actor_payment_table_20200424.sql |
Если вы хотите создать резервную копию более чем одной таблицы, вы должны разделить имена таблиц пробелом, следующая команда создает резервную копию таблицы актера и оплаты базы данных sakila .
Создать резервную копию данных базы данных
Если вы хотите создать резервную копию данных без структуры базы данных, вы должны использовать –no-create-info в команде mysqldump . Следующая команда создает резервную копию данных базы данных sakila .
mysqldump -u root -p sakila —no-create-info > C:\MySQLBackup\sakila_data_only_20200424.sql |
См. следующее изображение:
Давайте посмотрим содержимое файла резервной копии.
Как вы можете видеть на снимке экрана выше, файл резервной копии содержит различные операторы T-SQL, которые можно использовать для вставки данных в таблицы.
Восстановление базы данных MySQL
Восстановить базу данных MySQL с помощью mysqldump очень просто. Для восстановления базы данных необходимо создать пустую базу данных. Во-первых, давайте удалим и воссоздадим базу данных sakila, выполнив следующую команду.
mysql> удалить базу данных sakila; Query OK, затронуто 24 строки (0,35 сек) mysql> создать базу данных sakila; Запрос ОК, затронута 1 строка (0,01 с) MySQL> |
Когда вы восстанавливаете базу данных, вместо использования mysqldump вы должны использовать mysql; в противном случае mysqldump не будет генерировать схему и данные. Выполните следующую команду, чтобы восстановить базу данных sakila:
mysql -u root -p sakila < C:\MySQLBackup\sakila_20200424.sql |
После успешного выполнения команды выполните следующую команду, чтобы убедиться, что все объекты созданы в базе данных sakila .
mysql> использовать sakila;
База данных изменена
mysql> показать таблицы;
См. следующее изображение:
Восстановить определенную таблицу в базе данных
Например, кто-то удалил таблицу из базы данных. Вместо того, чтобы восстанавливать всю базу данных, мы можем восстановить удаленную таблицу из доступной резервной копии. Чтобы продемонстрировать, удалите таблицу актера из базы данных sakila, выполнив следующую команду в инструменте командной строки MySQL.
mysql> использовать sakila; База данных изменена mysql> отбросить таблицу актеров; |
Чтобы восстановить таблицу субъектов, выполните следующий пошаговый процесс.
Шаг 1 :
Создайте фиктивную базу данных с именем sakila_dummy и восстановите на ней резервную копию базы данных sakila . Ниже приведена команда.
mysql> создать базу данных sakila_dummy; mysql> использовать sakila_dummy; mysql> источник C:\MySQLBackup\sakila_20200424.sql |
Шаг 2:
Создайте резервную копию таблицы актера в файл sakila_dummy_actor_20200424.sql . Ниже приведена команда
C:\Users\Nisarg> mysqldump -u root -p актер sakila_dummy > C:\MySQLBackup\sakila_dummy_actor_20200424.sql |
Шаг 3:
Восстановите таблицу актеров из файла « sakila_dummy_actor_20200424. sql ». Ниже приведена команда инструмента командной строки MySQL.
mysql> источник C:\MySQLBackup\sakila_dummy_actor_20200424.sql |
Выполните следующую команду, чтобы убедиться, что таблица успешно восстановлена.
mysql> использовать sakila; База данных изменена mysql> показать таблицы; |
См. следующее изображение:
Сводка
В этой статье я объяснил, как мы можем использовать утилиту командной строки mysqldump для создания следующего:
- Резервное копирование базы данных MySQL, таблицы или структуры базы данных
- Восстановите базу данных или таблицу MySQL из резервной копии
- Автор
- Последние сообщения
Нисарг Упадхьяй
Нисарг Упадхьяй является администратором базы данных SQL Server и сертифицированным специалистом Microsoft, имеет более 8 лет опыта администрирования SQL Server и 2 года администрирования базы данных Oracle 10g.
Он имеет опыт проектирования баз данных, настройки производительности, резервного копирования и восстановления, настройки высокой доступности и аварийного восстановления, миграции и обновлений баз данных. Он получил степень бакалавра технических наук в Университете Ганпат. С ним можно связаться по адресу [email protected]
Последние сообщения Nisarg Upadhyay (посмотреть все)
Как сделать резервную копию базы данных или таблицы MySQL (Ultimate Tutorial)
В статье представлен обзор типов резервного копирования, доступных в MySQL, и описаны практические примеры использования mysqldump утилита командной строки для резервного копирования базы данных, таблиц, данных или схемы и восстановления базы данных MySQL.
Кроме того, вы можете посмотреть, как создать резервную копию базы данных с помощью MySQL Workbench и насколько просто и быстро выполнить ту же задачу с помощью инструмента дампа MySQL, доступного в dbForge Studio для MySQL.
Содержание
- Типы резервного копирования в MySQL
- Создайте резервную копию базы данных MySQL с помощью команды mysqldump.
- mysqldump для резервного копирования всех баз данных
- mysqldump для резервного копирования только данных
- mysqldump для резервного копирования только структуры
- mysqldump для резервного копирования всех таблиц в базе данных
- mysqldump для резервного копирования одной таблицы
- MySQL Workbench для резервного копирования базы данных
- Как создать резервную копию базы данных с помощью dbForge Studio для MySQL
- Восстановить базу данных в MySQL из файла
Типы резервного копирования в MySQL
В MySQL существуют разные типы резервного копирования. Выбор стратегии резервного копирования зависит от нескольких факторов, например, от размера данных, используемого оборудования, желаемой производительности, объема хранилища базы данных и т. д. Кроме того, следует учитывать, сколько времени потребуется для восстановить резервную копию.
MySQL поддерживает следующие типы резервных копий:
- Логическое резервное копирование выводит структуру базы данных в файл .sql путем создания операторов CREATE или INSERT. Позже этот файл можно восстановить с помощью утилиты mysqldump . Этот тип резервирует только данные без индексов, поэтому имеет небольшой размер. Однако его вариант восстановления медленнее по сравнению с его альтернативами, потому что он должен выполнять все операторы один за другим.
- Физические резервные копии файлов базы данных в том же формате, в котором они хранятся на диске. Это быстрее, чем логический тип, но его можно восстановить только на сервер MySQL из того же ядра базы данных.
- Непротиворечивая резервная копия копирует файлы в точный момент времени – только после остановки или блокировки сервера.
Если в процессе копирования могут возникнуть какие-либо перерывы, резервные копии можно разделить на следующие типы:
- Холодное резервное копирование блокирует доступ к данным во время резервного копирования и не позволяет вносить какие-либо изменения в данные. Это просто, быстро и не влияет на производительность.
- Горячее резервное копирование копирует файлы во время работы базы данных. Пользователи могут читать и манипулировать данными.
- Теплая резервная копия создает копию базы данных во время ее работы. Пользователи могут читать, но не могут записывать данные во время резервного копирования.
Независимо от того, следует ли копировать данные полностью или частично, резервные копии можно разделить на:
- Полная резервная копия копирует все данные из базы данных. Оно может быть логическим или физическим. Полную резервную копию можно восстановить на другом сервере.
- Дифференциальная резервная копия копирует все изменения, внесенные с момента последней полной резервной копии. Разностную резервную копию можно восстановить только после восстановления полной резервной копии.
- Инкрементная резервная копия копирует все изменения данных, сделанные с момента предыдущей резервной копии (полной или дифференциальной).
Резервное копирование базы данных MySQL с помощью команды mysqldump
Для резервного копирования базы данных MySQL можно использовать сторонние инструменты или выполнить команду mysqldump из командной строки.
mysqldump — это утилита командной строки, используемая для создания резервной копии логической базы данных MySQL. Он создает один файл .sql, содержащий набор операторов SQL. Этот файл можно использовать для создания таблиц, объектов и/или вставки данных, скопированных из базы данных. С помощью утилиты вы можете сделать дамп таблиц, одной или нескольких баз данных или всего сервера со всеми базами данных и таблицами вместе с их объектами или перенести их на другой сервер.
Кроме того, утилита mysqldump может выводить дамп в файлы форматов CSV или XML. Следует отметить, что mysqldump не может выгружать базу данных или данные в отдельные файлы .sql.
Для восстановления базы данных утилита выполняет все операторы SQL для воссоздания таблиц и заполнения их данными, что, в свою очередь, требует много времени.
Базовый синтаксис команды mysqldump включает следующие параметры: .sql]
-
-u
(или--user=[username]
) — это имя пользователя для подключения к серверу MySQL. -
-p
— это пароль для имени пользователя, которое вы используете для подключения к серверу. -
-h
(--host=[hostname]
) — это имя сервера, с которого вы хотите подключиться для дампа данных. -
параметры
— дополнительные параметры для настройки резервного копирования. -
имя_базы_данных
— это имя базы данных, резервную копию которой вы хотите создать. -
имя_таблицы
— это имя таблицы, резервную копию которой вы хотите создать. -
<
или>
относится к параметрам, указывающим на процесс резервного копирования (>) или восстановления базы данных (<). -
dumpfilename. sql
— это путь к файлу дампа, содержащему резервную копию базы данных.
Примечание: Как правило, mysqldump
находится в каталоге установки MySQL Server. Например, для MySQL 8.0 путь к каталогу — C:\Program Files\MySQL\MySQL Server 8.0\bin. Таким образом, мы рекомендуем добавить этот каталог в список mysqldump
команда.
Далее давайте подробнее рассмотрим примеры, описывающие, как сделать резервную копию базы данных MySQL с помощью утилиты командной строки mysqldump .
В демонстрационных целях мы собираемся подключиться к удаленному серверу dbfmylast . Вот почему мы добавим в команду mysqldump
некоторую дополнительную информацию, такую как параметры --host
и --port
.
mysqldump для резервного копирования всех баз данных
В примере показано, как использовать mysqldump
для резервного копирования всех баз данных MySQL на сервере. Скрипты баз данных экспортируются в файл .sql, который впоследствии можно использовать, например, для переноса баз данных на новый сервер. Дополнительные сведения см. в разделе Резервное копирование всех баз данных сервера MySQL или только необходимых.
Чтобы создать резервную копию всех баз данных, выполните следующую команду, добавив параметр --all-databases
:
mysqldump --host=dbfmylast --user=root --port=3306 --p --all-databases > D:\backup_all_databases.sql
Это создаст резервную копию всех баз данных с их структурой и данными в файл backup_all_databases.sql .
mysqldump для резервного копирования только данных
Если вы хотите сделать резервную копию данных без структуры базы данных, выполните команду с параметром –no-create-info
. Например, дамп данных для базы данных sakila .
mysqldump --host=dbfmylast --user=root --port=3306 -p --no-create-info sakila > D:\backup_data_only. sql
Файл выведет сценарий, содержащий только данные таблицы дампа:
mysqldump для резервного копирования только структуры
Могут быть случаи, когда вам нужно экспортировать структуру базы данных или таблицы без данных. Для этого запустите команду с параметром -no-data
.
mysqldump --host=dbfmylast --user=root --port=3306 -p --no-data sakila > D:\backup_database_structure_only.sql
Команда mysqldump
выводит в файл только структуру таблицы.
mysqldump для резервного копирования всех таблиц в базе данных
Команда mysqldump
может создать резервную копию всех или определенных таблиц в базе данных, добавив в команду имена выбранных таблиц. Имейте в виду, что имена таблиц должны быть разделены пробелом. Например, выгрузите таблицы категории , города и страны , выполнив следующую команду:
mysqldump --host=dbfmylast --user=root --port=3306 -p sakila city country category > D:\backup_selected_tables. sql
Результат выглядит следующим образом:
mysqldump для резервного копирования одной таблицы
Чтобы сделать резервную копию одной таблицы в базе данных, укажите имя конкретной таблицы в команде mysqldump
. Например, выгрузите таблицу inventory из базы данных sakila .
mysqldump --host=dbfmylast --user=root --port=3306 -p sakila inventory > D:\backup_single_table.sql
Сценарий резервного копирования выводит структуру и данные только для инвентаризации таблицы:
MySQL Workbench для резервного копирования базы данных
В этой части мы рассмотрим, как сделать резервную копию базы данных с помощью инструмента MySQL Workbench.
Чтобы создать резервную копию базы данных, выполните следующие действия:
1. На панели администрирования нажмите Экспорт данных . Откроется документ Администрирование — Экспорт данных .
2. На Object Выберите вкладку > Tables to Export , выберите схему sakila .
3. В разделе Параметры экспорта выберите Экспорт в папку проекта дампа , если вы хотите, чтобы таблицы базы данных сохранялись в отдельные файлы .sql, или Экспорт в автономный файл , чтобы сохранить дамп базы данных в одном .sql файл.
4. Чтобы создать файл резервной копии, нажмите Начать экспорт . На индикаторе выполнения вы можете увидеть, что данные были экспортированы в указанный файл.
Примечание: В MySQL Workbench невозможно автоматизировать или запланировать резервное копирование базы данных.
Как создать резервную копию базы данных с помощью dbForge Studio для MySQL
Теперь давайте посмотрим, насколько просто и быстро можно создать резервную копию базы данных с помощью dbForge Studio для MySQL. Это универсальный инструмент MySQL с графическим интерфейсом для разработки, управления и администрирования баз данных MariaDB и MySQL. Эта IDE может повысить производительность, оптимизировать производительность запросов, эффективно сравнивать и синхронизировать базы данных, автоматизировать и планировать резервное копирование баз данных.
С помощью инструмента резервного копирования MySQL, встроенного в dbForge Studio для MySQL, вы можете создавать резервные копии и восстанавливать базы данных MySQL наиболее эффективным и быстрым способом.
Чтобы создать резервную копию базы данных, откройте инструмент и подключитесь к серверу MySQL. В обозревателе баз данных щелкните правой кнопкой мыши базу данных, для которой требуется создать резервную копию, и выберите Резервное копирование и восстановление > Резервное копирование базы данных .
В открывшемся мастере резервного копирования базы данных укажите соединение, базу данных, место для хранения выходного файла и имя этого файла.
На вкладке Резервное копирование содержимого выберите, хотите ли вы создать резервную копию структуры базы данных или данных, или того и другого, и выберите объекты базы данных.
На вкладке Параметры установите дополнительные параметры, которые будут управлять процессом резервного копирования.
Если вы хотите настроить поведение обработки ошибок и параметры ведения журнала, перейдите на вкладку Обработка ошибок и настройте параметры. Чтобы запустить резервное копирование базы данных, нажмите Backup . После завершения процесса вы увидите соответствующее уведомление и сможете закрыть мастер.
Восстановим базу данных в MySQL из файла
Теперь восстановим базу данных sakila из выходного файла .sql с помощью утилиты mysqldump
.
Во-первых, вам нужно создать пустую базу данных на целевом сервере и восстановить базу данных с помощью команды mysql
, которая создаст схему с данными.
mysql --host=dbfmylast --user=root --port=3306 -p sakila < D:\dumps\sakila.sql
, где sakila
— это пустая база данных, которая будет содержать структуру базы данных с данными после импорта из файла резервной копии sakila.sql
.
Примечание: Если на целевом сервере есть база данных с таким же именем, то сначала нужно ее сбросить, а затем создать пустую базу.
Чтобы просмотреть список таблиц, расположенных в базе данных sakila , выполните следующую команду mysql
:
mysql> use sakila; ... mysql> показать таблицы;
Заключение
В статье мы рассмотрели типы резервного копирования в MySQL, привели примеры того, как сделать резервную копию всех баз данных, данных или структуры базы данных и таблиц, а также как восстановить базу данных с помощью mysqldump утилита. Кроме того, мы рассмотрели, как создать резервную копию базы данных с помощью MySQL Workbench и dbForge Studio для MySQL.