mysqldumpalexisiumus.ru

Клиентская утилита mysqldump выполняет логическое резервное копирование, создавая набор операторов SQL, которые можно выполнить для воспроизведения исходных определений объектов базы данных и табличных данных. Он создает дамп одной или нескольких баз данных MySQL для резервного копирования или переноса на другой сервер SQL. Команда mysqldump также может генерировать выходные данные в формате CSV, другом тексте с разделителями или формате XML.

Рассмотрите возможность использования утилит дампа MySQL Shell, которые обеспечивают параллельный дамп с несколькими потоками, сжатие файлов и отображение информации о ходе выполнения, а также облачные функции, такие как потоковая передача объектов Oracle Cloud Infrastructure Object Storage, а также проверки и модификации совместимости службы MySQL HeatWave. Дампы можно легко импортировать в экземпляр MySQL Server или систему баз данных MySQL HeatWave Service с помощью утилит загрузки дампа MySQL Shell. Инструкции по установке MySQL Shell можно найти здесь.

mysqldump требует по крайней мере привилегию SELECT для выгруженных таблиц, SHOW VIEW для выгруженных представлений, TRIGGER для выгруженных триггеров, LOCK TABLES, если опция —single-transaction не используется, PROCESS (начиная с MySQL 8.0.21), если —no Опция —tablespaces не используется, и (начиная с MySQL 8.0.32) привилегия RELOAD или FLUSH_TABLES с —single-transaction, если и gtid_mode=ON, и —set-gtid=purged=ON|AUTO.

Чтобы перезагрузить файл дампа, у вас должны быть привилегии, необходимые для выполнения содержащихся в нем инструкций, например, соответствующие привилегии CREATE для объектов, созданных этими инструкциями.

Выходные данные mysqldump могут включать операторы ALTER DATABASE, которые изменяют параметры сортировки базы данных. Их можно использовать при сбросе сохраненных программ, чтобы сохранить их кодировку символов. Чтобы перезагрузить файл дампа, содержащий такие операторы, требуется привилегия ALTER для затронутой базы данных.

Примечание

Дамп, сделанный с помощью PowerShell в Windows с перенаправлением вывода, создает файл с кодировкой UTF-16:

mysqldump [options] > dump.sql

Однако UTF-16 не разрешен в качестве набора символов соединения (см. Недопустимые наборы символов клиента), поэтому файл дампа не может быть загружен правильно. Чтобы обойти эту проблему, используйте параметр —result-file, который создает выходные данные в формате ASCII:

mysqldump [options] --result-file=dump.sql

Не рекомендуется загружать файл дампа, когда на сервере включены GTID (gtid_mode=ON), если ваш файл дампа включает системные таблицы. mysqldump выдает инструкции DML для системных таблиц, использующих нетранзакционный механизм хранения MyISAM, и эта комбинация не разрешена, когда включены GTID.

Вопросы производительности и масштабируемости

Преимущества mysqldump включают удобство и гибкость просмотра или даже редактирования вывода перед восстановлением. Вы можете клонировать базы данных для разработки и работы с базами данных или создавать небольшие варианты существующей базы данных для тестирования. Он не предназначен для использования в качестве быстрого или масштабируемого решения для резервного копирования значительных объемов данных. При больших объемах данных, даже если этап резервного копирования занимает разумное время, восстановление данных может быть очень медленным, поскольку воспроизведение операторов SQL требует дискового ввода-вывода для вставки, создания индекса и т. д.

Для крупномасштабного резервного копирования и восстановления больше подходит физическая резервная копия для копирования файлов данных в их исходном формате, чтобы их можно было быстро восстановить.

Если ваши таблицы в основном представляют собой таблицы InnoDB или если у вас есть сочетание таблиц InnoDB и MyISAM, рассмотрите возможность использования mysqlbackup, который доступен как часть MySQL Enterprise. Этот инструмент обеспечивает высокую производительность резервного копирования InnoDB с минимальным нарушением работы; он также может создавать резервные копии таблиц из MyISAM и других механизмов хранения; он также предоставляет ряд удобных опций для различных сценариев резервного копирования. См. Раздел 30.2, «Обзор резервного копирования MySQL Enterprise».

mysqldump может извлекать и сбрасывать содержимое таблицы построчно, или он может извлекать все содержимое из таблицы и буферизовать его в памяти перед тем, как сбросить его. Буферизация в памяти может быть проблемой, если вы выгружаете большие таблицы. Чтобы вывести таблицы построчно, используйте параметр —quick (или —opt, который включает —quick). Опция —opt (и, следовательно, —quick) включена по умолчанию, поэтому для включения буферизации памяти используйте —skip-quick.

Если вы используете последнюю версию mysqldump для создания дампа для повторной загрузки на очень старый сервер MySQL, используйте параметр —skip-opt вместо параметра —opt или —extended-insert.

Для получения дополнительной информации о mysqldump см. Раздел 7.4, «Использование mysqldump для резервного копирования».

mysqldump [options] db_name [tbl_name ...]
mysqldump [options] --databases db_name ...
mysqldump [options] --all-databases

Чтобы создать дамп всей базы данных, не называйте никакие таблицы после db_name или используйте параметр —databases или —all-databases.

Чтобы просмотреть список параметров, поддерживаемых вашей версией mysqldump, введите команду mysqldump —help.

Синтаксис опций — сводка по алфавиту

mysqldump поддерживает следующие параметры, которые можно указать в командной строке или в группах [mysqldump] и [client] файла параметров. Для получения информации о файлах опций, используемых программами MySQL, смотрите Раздел 4.2.2.2, «Использование файлов опций».

Вывод

Утилита mysqldump предназначена для логического резервного копирования в MySQL. Она генерирует набор SQL-запросов, которые можно использовать для восстановления исходных определений объектов базы данных и данных таблиц. Она может создавать дамп одной или нескольких баз данных MySQL для резервного копирования или передачи на другой SQL-сервер.

Помимо формата SQL, mysqldump также может генерировать вывод в форматах CSV, других текстовых форматах с разделителями или XML.

Утилита имеет различные параметры и опции для управления процессом резервного копирования, такие как опции производительности, опции соединения, опции формата, опции отладки, опции репликации и другие. Также требуются определенные привилегии для различных типов объектов, которые будут резервироваться.

Однако при работе с большим объемом данных или при необходимости масштабируемого резервного копирования рекомендуется использовать физический метод резервного копирования вместо логического. Для таблиц InnoDB или комбинации таблиц InnoDB и MyISAM инструмент mysqlbackup, доступный с MySQL Enterprise, предоставляет высокопроизводительный вариант резервного копирования с минимальными прерываниями.

Существуют также рекомендации по оптимизации производительности утилиты mysqldump, такие как использование опции —quick для построчного вывода данных таблицы или отключение буферизации памяти с помощью —skip-quick. Утилита также поддерживает различные опции для настройки процесса резервного копирования.

Для более подробного понимания mysqldump и его использования, включая синтаксис команд, вопросы производительности и масштабируемости, а также подробности опций, обратитесь к официальной документации MySQL.

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

Знакомство с mysqldump

От alex

Обучаемый.