Различия
Показаны различия между двумя версиями страницы.
Предыдущая версия | |||
— | mysqldump [2024/01/31 14:41] (текущий) – [Улучшение производительности и масштабируемости mysqldump] darkfire | ||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Использование утилиты mysqldump для резервирования MySQL ====== | ||
+ | |||
+ | ~~Title: Теория и практика использования программы mysqldump ~~ | ||
+ | {{htmlmetatags> | ||
+ | metatag-description=(Утилита mysqldump позволяет получить дамп содержимого базы данных или совокупности баз для создания резервной копии или пересылки данных на другой SQL-сервер (не обязательно MySQL-сервер)) | ||
+ | }} | ||
+ | |||
+ | |||
+ | Существует программа **mysqldump**, | ||
+ | |||
+ | Сразу возьмем простую задачу, | ||
+ | |||
+ | <file bash> | ||
+ | > mysqldump -uLOGIN -PPORT -hHOST -pPASS DBNAME > dump.txt | ||
+ | </ | ||
+ | После выполнения данной команды в файле dump.txt у нас будет копия MySQL-базы DBNAME. Это произойдет только в том случае, | ||
+ | |||
+ | ===== Что же делает mysqldump? ===== | ||
+ | |||
+ | Программа mysqldump создает сценарий восстановления Ваших данных. То есть, вывод mysqldump - это не какие-то абстрактные и нечитаемые двоичные данные, | ||
+ | |||
+ | <file sql> | ||
+ | # MySQL dump 8.14 | ||
+ | # | ||
+ | # Host: HOST Database: DBNAME | ||
+ | # | ||
+ | # Server version 3.23.39-log | ||
+ | |||
+ | # | ||
+ | # Table structure for table ' | ||
+ | # | ||
+ | |||
+ | CREATE TABLE test ( | ||
+ | test2 int(11) default NULL | ||
+ | ) TYPE=MyISAM; | ||
+ | |||
+ | # | ||
+ | # Dumping data for table ' | ||
+ | # | ||
+ | |||
+ | INSERT INTO test2 VALUES (' | ||
+ | </ | ||
+ | Таким образом, | ||
+ | |||
+ | Для восстановления будем пользоваться стандартной программой mysql, которая входит в комплект поставки MySQL наряду с mysqldump. Допустим, | ||
+ | |||
+ | <file bash> | ||
+ | > mysql -uLOGIN -PPORT -hHOST -pPASS DBNAME < dump.txt | ||
+ | </ | ||
+ | То есть, заставляем mysql-клиент соединиться с сервером и выполнить сценарий, | ||
+ | |||
+ | ===== Тонкие настройки mysqldump ===== | ||
+ | |||
+ | * **--database**s позволяет сделать так, что mysqldump включит в сценарий восстановления команды CREATE DATABASE /*!33333 IF NOT EXISTS*/ DBNAME и USE DBNAME. Это позволит создавать рабочие базы "с нуля" | ||
+ | * **--all-databases** позволяет сделать копии всех баз данных, | ||
+ | * Ключ **--help**. Программа mysqldump имеет множество версий. Посмотреть, | ||
+ | * **--add-drop-table** - ключ, который заставит mysqldump добавлять в итоговый сценарий команду drop table перед созданием таблиц. Это позволит избежать некоторых ошибок при восстановлении базы из резервной копии. Конечно, | ||
+ | * **--no-data**. С помощью этого ключа можно быстро сделать копию структуры таблицы/ | ||
+ | * **--result-file**=... - этот ключ можно использовать для перенаправления вывода в файл. Можно использовать обычное unix-перенаправление командой ">", | ||
+ | * **--add-locks** Добавить команды LOCK TABLES перед выполнением и UNLOCK TABLE после выполнения каждого дампа таблицы (для ускорения доступа к MySQL). | ||
+ | * **-e, --extended-insert** Использовать команду INSERT с новым многострочным синтаксисом (повышает компактность и быстродействие операторов ввода). | ||
+ | * **-l, --lock-tables** Заблокировать все таблицы перед началом выполнения дампа. Таблицы блокируются оператором READ LOCAL, чтобы разрешить параллельные записи для MyISAM-таблиц. | ||
+ | * **--single-transaction** запустит транзакцию перед запуском. Вместо того, чтобы блокировать всю базу данных, | ||
+ | |||
+ | Кроме перечисленных ключей mysqldump имеет и еще некоторое количество очень полезных возможностей, | ||
+ | |||
+ | ===== Улучшение производительности и масштабируемости mysqldump ===== | ||
+ | Еще один очень полезный совет по использованию mysqldump в хостинговой ограниченной среде. Как правило, | ||
+ | |||
+ | * **-q, --quick** Выводить дамп построчно на стандартный вывод stdout без буферизации запроса, | ||
+ | * **--opt** То же, что и --quick --add-drop-table --add-locks --extended-insert --lock-tables. Должно дать наиболее быстрый дамп для чтения на MySQL-сервере. | ||
+ | |||
+ | Пример: | ||
+ | <file bash> | ||
+ | mysqldump --opt database > backup-file.sql | ||
+ | </ | ||
+ | |||
+ | <alert type=" | ||
+ | ===== Автоматизация резервного копирования ===== | ||
+ | Теперь подумаем, | ||
+ | |||
+ | В unix shell запускаем crontab -e и создаем такое правило запуска процесса создания копий базы: | ||
+ | |||
+ | <file bash> | ||
+ | 0 0 * * * mysqldump -uLOGIN -PPORT -hHOST -pPASS DBNAME | ||
+ | | gzip -c > `date " | ||
+ | </ | ||
+ | Эта команда, | ||
+ | |||
+ | Сохраняем правило для cron и ждем результатов. Итак, каждый день мы будем иметь на диске заархивированную копию нашей базы данных. Можно быстро найти нужный архив по его названию и восстановить то, что испортилось, | ||
+ | |||
+ | Читайте также: [[kak_behkapit_dannye_v_mysql]] | ||
+ | |||
+ | Кстати, | ||
+ | |||
+ | Если у Вас есть машина, | ||
📌 Удобный подбор VPS по параметрам доступен на DIEGfinder.com - официальном инструменте проекта DIEG. Это часть единой экосистемы, созданной для того, чтобы помочь быстро найти подходящий VPS/VDS сервер для любых задач хостинга.
📌 Для тестирования скриптов, установщиков VPN и Python-ботов рекомендуем использовать надежные VPS на короткий срок. Подробнее о быстрой аренде VPS для экспериментов - читайте здесь.
💥 Подпишись в Телеграм 💥 и задай вопрос по сайтам и хостингам бесплатно!7 Самых Популярных Статей
- Как запустить скрипты и веб-приложения на Python
- Что такое страны TIER 1,2,3
- 7 способов сравнения файлов по содержимому в Windows или Linux
- Установка и тестирование веб-панели HestiaCP
- Nginx простые примеры конфигурации
- top, htop, atop определение загрузки ОС (Load average, LA)
- Использование rsync в примерах
7 Самых Популярных Обзоров
- Хостинг для Python-скриптов и приложений
- ТОП 4 лучших антидетект браузеров (Бесплатные & Платные)
- Подборка купонов (промокоды) на хостинг, антидетект браузеры
- Обзор THE.Hosting (PQ Hosting): надежный хостинг с профессиональной поддержкой
- Хостинг в России
- Хостинг в Европе
- Обзор браузера Dolphin {anty} для мультиаккаунтинга