Backup mysql для windows

Содержание
  1. Как сделать резервную копию баз данных MySQL (MariaDB) в Windows без phpMyAdmin
  2. Как сделать резервную копию БД MySQL и MariaDB в Windows
  3. Восстановление баз данных из резервной копии без phpMyAdmin в Windows
  4. Backup mysql для windows
  5. Автоматический бэкап MySQL в Windows и Linux
  6. Технологии бэкапа MySQL
  7. Плагин MySQL Backup в программе Handy Backup
  8. Handy Backup Office Expert
  9. Преимущества автоматического бэкапа MySQL с помощью Handy Backup
  10. Горячее сохранение данных
  11. Хранение данных в читаемом формате
  12. Частичный и полный бэкап MySQL
  13. Автоматический бэкап MySQL
  14. Обработка локальных и сетевых баз данных
  15. Большой выбор хранилищ данных
  16. Репликация или создание зеркала из бэкапа MySQL
  17. Как выполнить репликацию или зеркалирование с помощью бэкапа базы MySQL?
  18. Решения Handy Backup для автоматического бэкапа MySQL
  19. Резервное копирование данных в MySQL
  20. 1. Копирование файлов базы
  21. 2. Копирование через текстовые файлы
  22. 3. Инкрементные бэкапы
  23. 4. Репликация

Как сделать резервную копию баз данных MySQL (MariaDB) в Windows без phpMyAdmin

Как сделать резервную копию БД MySQL и MariaDB в Windows

Резервную копию можно создать в графическом веб-интерфейсе в phpMyAdmin. Если вы хотите сделать бэкап сразу всех баз данных, то перейдите на главную страницу phpMyAdmin, оттуда перейдите во вкладку Экспорт. Далее всё достаточно просто.

Аналогично при бэкапе отдельных баз данных: перейдите на страницу интересующей БД, а далее во вкладку Экспорт.

phpMyAdmin — это прослойка на PHP между СУБД и пользователем, по этой причине скорость создания дампа очень большой базы займёт больше времени, чем если создавать его напрямую через специальную программу от MySQL или MariaDB.

Если вы решили сделать бэкап базы данных MySQL из командной строки в Windows, то для этого понадобиться утилита mysqldump.exe, она поставляется вместе с MySQL и расположена в каталоге с установленной MySQL/MariaDB в папке bin. Например, если СУБД установлена в C:\Server\bin\mysql-8.0, то программа mysqldump.exe будет находиться в папке C:\Server\bin\mysql-8.0\bin\.

Для её использования откройте командную строку и перетащите туда программу. Программу можно использовать с разнообразными опциями.

Если вы хотите сделать резервную копию всех баз данных в один файл, то выполните:

Кстати, файл нужно искать в той папке, которую вы видите в приглашении командной строки.

Для того, чтобы сделать резервную копию только одной базы данных (например, rsyslog):

Чтобы сделать резервную копию нескольких баз данных используйте опцию —databases, а после него через пробел перечислите желаемые для бэкапа базы данных:

Чтобы сделать резервную копию только одной таблицы (wp_posts) из базы данных (wordpress):

Для того, чтобы сделать резервную копию нескольких таблиц, перечислите их через пробел после названия БД:

Восстановление баз данных из резервной копии без phpMyAdmin в Windows

Для экспорта баз данных, phpMyAdmin работает довольно неплохо. Но с импортом возникло ряд проблем. Намного проще и в разы быстрее сделать импорт без phpMyAdmin и других помощников на PHP скриптах.

Для этого откройте командную строку Windows. Нажмите комбинацию WIN+x, затем выберите Windows PowerShell. Чтобы выйти из PowerShell и перейти в командную строку, выполните:

Затем смените текущую папку (укажите путь до подпапки bin внутри папки, куда установлена MySQL или MariaDB — у вас это может быть другой путь):

Backup mysql для windows

Как говорится, админы делятся на тех, кто не делает бэкапов и тех, кто уже делает. Уж сколько раз убеждались, что делать бэкапы нужно, и чем чаще, тем лучше, но не перевелась еще армия админов, надеющихся на авось.

Недавно поднял на очередном компьютере веб-сервер Xampp и запустил несложную, но важную программку с веб-интерфейсом для внутрисетевого использования и озадачился вопросом — как сделать, чтобы база данных сама бэкапилась каждый день.

В принципе, задача имеет множества вариантов решения, но мне больше всего понравился такой вариант — создать .bat-файл и забить его в штатный планировщик Windows. После активного поиска в интернете был найден такой код:

SET SOURCEDIR=D:\xampp\mysql\data\ set hour=%TIME:

0,2% set minute=%TIME:

Читайте также:  Sangoma linux 7 ��������� mc

3,2% set second=%TIME:

6,2% set HHMMSS=%hour%-%minute% for /d %%i in (%SOURCEDIR%\*) do «D:\xampp\mysql\bin\mysqldump.exe» -uusername -hlocalhost -ppassword -c -n %%

ni | «c:\Program Files\7-Zip\7z.exe» a -tgzip -si»%%

ni.sql.gzip» eachfile.exe -purge -r -w -e -d 13 -l 0 -dir D:\backups\data\ exit

Принцип работы следующий:

  • в первой строке задаем путь к каталогу, в котором хранятся файлы базы данных MySQL
  • дальше идут строки (set . ), в которых формируется имя архива — оно состоит из даты и времени создания архива
  • цикл for перебирает все файлы в каталоге и для каждого из них запускает процедуру создания дампа базы данных. Для этого нужно ввести данные -u username , -h localhost , -p password. Именно так, без пробелов. Дампы упаковываются архиватором 7-zip (должен быть установлен на ПК). Каждый дамп пишется в отдельный архив.
  • eachfile.exe — это бесплатная программа, позволяющая удалять устаревшие файлы в каталоге. В предпоследней строчке выполнение программы настроено таким образом, что она удаляет файлы старже 13 дней.

После этого заходим в планировщик заданий и настраиваем выполнение этого скрипта каждый день в удобное для нас время.

Автоматический бэкап MySQL в Windows и Linux

Бэкап баз данных MySQL в операционных средах Windows и Linux через Handy Backup, позволяет автоматически создавать копии таблиц и целых серверов MySQL, не останавливая их работу. Попробуйте прямо сейчас, скачав бесплатную пробную версию со всеми функциями на 30 дней! За счёт возможностей инкрементного бэкапа, планирования задач и восстановления состояния любой базы данных, Handy Backup по праву может считаться одной из лучших утилит для бэкапа MySQL.

Версия 8.2.3 от 29 марта 2021. 111 MB
30-дневный полнофункциональный пробный период

Технологии бэкапа MySQL

Существуют два основных способа бэкапа базы данных MySQL:

  • Холодный бэкап MySQL выполняется при остановленном сервере с прекращением всех транзакций и сохранением данных на рабочий носитель базы перед бэкапом MySQL. Этот способ имеет недостатки, в частности, относится длительное время простоя сервера.
  • Горячий бэкап MySQL не требует остановки и последующего перезапуска сервера MySQL. Это позволяет сократить простои и повысить комфортность работы.

Handy Backup по умолчанию использует технологию горячего бэкапа для баз MySQL, которая отличается высокой скоростью работы и позволяет создавать копии отдельных таблиц, пространств и целых баз данных MySQL.

Плагин MySQL Backup в программе Handy Backup

Бэкап MySQL при помощи Handy Backup не требует установки дополнительного ПО.

При создании задачи бэкапа на Шаге 2 щелкаем по плагину MySQL в группе источников Database и нажимаем по кнопке «Создать подключение», чтобы настроить подключение к базе и выбрать файлы для автоматического бэкапа MySQL.

Подробнее об архитектуре плагина можно узнать в Руководстве пользователя.

Рекомендуемое решение
9200 ₽ за лицензию

Handy Backup Office Expert

Решение Office Expert идеально подходит для бэкапа баз MySQL.
Предусматривает 30 дней бесплатного использования!

Преимущества автоматического бэкапа MySQL с помощью Handy Backup

Горячее сохранение данных

Горячий бэкап позволяет сохранять содержимое базы данных, не прерывая работы СУБД, сервера и веб-приложений, связанных с этой базой.

Хранение данных в читаемом формате

Программа осуществляет бэкап таблиц MySQL в виде последовательности команд (дампа), которые можно прочитать или выполнить, что обеспечивает удобное восстановление MySQL.

Частичный и полный бэкап MySQL

Представленное программное обеспечение способно копировать как содержимое базы данных целиком, так и отдельные таблицы.

Автоматический бэкап MySQL

Решения Handy Backup отличаются высокой степенью автоматизации всех шагов: запуск задач по расписанию, автоматический поиск данных, работа в средах Windows и Linux и т.д.

Обработка локальных и сетевых баз данных

Программа позволяет сохранять базы данных MySQL и восстанавливать их не только на локальной машине, но и на серверах СУБД, подключенных к программе Handy Backup по сети.

Большой выбор хранилищ данных

Вы можете сохранять данных MySQL backup как на локальные носители (например, USB диски), так и по сети — на FTP/SFTP/FTPS, облака S3, OneDrive, Google Диск, по WebDAV и т.д.

Репликация или создание зеркала из бэкапа MySQL

Репликация и зеркалирование из бэкапа базы данных MySQL – это автоматизированые операции по созданию и использованию копий данных MySQL на нескольких серверах одновременно. Такие задачи часто приходится решать при создании информационных кластеров и распределённых БД.

Читайте также:  Ошибка активации лицензии windows ошибка 0x80070005

Репликация – это создание несколько синхронизированных копий БД на разных серверах — основном (master) и подчинённых (slave), с целью распараллеливания доступа к информации, повышения производительности и надёжности всей системы.

Репликация напоминает создание кластеров MySQL; если один из узлов останавливает работу, это не отражается на надёжности всей системы.

Зеркалирование баз данных MySQL — процесс, который может рассматриваться в общем случае как форма репликации одного основного узла на другой (master-master replication).

Как выполнить репликацию или зеркалирование с помощью бэкапа базы MySQL?

Репликация БД требует бэкап MySQL с основного сервера на дополнительные и последующего установления отношений master-slave (основной-дополнительный) между серверами MySQL. Ниже приведён сценарий репликации:

  1. Скачайте и установите Handy Backup.
  2. Используя плагин для бэкапа MySQL, создайте копию базы, которую необходимо реплицировать.
  3. В каждом файле резервного копирования MySQL смените тип размещения на MyISAM. Так как сохранение файлов осуществляется в доступной для прочтения и понимания форме, используйте любой текстовый редактор, чтобы изменить содержание операторов CREATE TABLE в начале каждого файла.

Внимание: Изменение способа хранения файлов (storage engine) – универсальная общая рекомендация для любой репликации master-to-slave. Серверы MySQL Slave предназначены только для чтения, и изменение способа хранения их БД на MyISAM способно серьёзно повысить их производительность.

  1. Восстановите изменённые файлы БД на серверах MySQL Slave.
  2. Для каждого сервера Slave выставьте уникальный параметр server-id, после чего используйте оператор CHANGE MASTER TO, чтобы установить связь с основным сервером (MySQL Master).

Чтобы узнать больше о процессе репликации MySQL, прочите, пожалуйста, соответствующую статью.

Решения Handy Backup для автоматического бэкапа MySQL

Плагин для бэкапа MySQL автоматически доступен в двух версиях Handy Backup * :

Резервное копирование данных в MySQL

1. Копирование файлов базы

Базу данных MySQL можно скопировать, если временно выключить MySQL-сервер и просто скопировать файлы из папки /var/lib/mysql/db/. Если сервер не выключить, по очевидным причинам вероятна потеря и порча данных. Для больших нагруженных баз эта вероятность близка к 100%. Кроме того, при первом запуске с «грязной» копией базы данных MySQL-сервер начнет процесс проверки всей базы, который может затянуться на часы.

В большинстве «живых» проектов регулярное выключение сервера БД на длительное время неприемлемо. Для решения этой проблемы применяется трюк, основанный на снэпшотах файловой системы. Снэпшот — это что-то вроде «фотографии» файловой системы на определенный момент времени, сделанный без реального копирования данных (и потому быстро). Аналогичным образом работает «ленивое копирование» объектов во многих современных языках программирования.
Общая схема действий такова: блокируются все таблицы, сбрасывается файловый кэш БД, делается снэпшот файловой системы, разблокируются таблицы. После этого файлы спокойно копируются из снэпшота, после чего он уничтожается. «Блокирующая» часть такого процесса занимает время порядка секунд, что уже терпимо. В качестве расплаты на какое-то время, пока «жив» снэпшот, снижается производительность файловых операций, что в первую очередь бьет по скорости операций записи в базу.

Некоторые файловые системы, например, ZFS, поддерживают снятие снэпшотов нативно. Если вы не пользуетесь ZFS, но на вашем сервере стоит менеджер томов LVM, вы также сможете скопировать базу MySQL через снэпшот. Наконец, под *nix можно воспользоваться драйвером снэпшотов R1Soft Hot Copy, но этот способ не заработает в контейнере openvz (процесс бэкапа MySQL описан здесь).

Для баз MyISAM существует официальная бесплатная утилита mysqlhotcopy, которая «правильно» копирует файлы баз MyISAM без остановки сервера. Существует аналогичная утилита для InnoDB, но она платная, хотя и возможностей в ней больше.

Копирование файлов — самый быстрый способ перебросить базу данных целиком с одного сервера на другой.

2. Копирование через текстовые файлы

Для того, чтобы считать в бэкап данные из production-базы, необязательно дергать файлы. Можно выбрать данные запросом и сохранить их в текстовый файл. Для этого используется SQL-команда SELECT INTO OUTFILE и парная ей LOAD DATA INFILE. Выгрузка производится построчно (можно отобрать для сохранения только нужные строки, как в обычном SELECT). Структура таблиц нигде не указывается — об этом должен заботиться программист. Он также должен позаботиться о включении команд SELECT INTO OUTFILE в транзакцию, если это необходимо для обеспечения целостности данных. На практике SELECT INTO OUTFILE используется для частичного бэкапа очень больших таблиц, которые нельзя скопировать никаким другим образом.

Читайте также:  Самая быстрая виртуалка для windows

В большинстве случаев намного более удобна созданная Игорем Романенко утилита mysqldump. Утилита mysqldump формирует файл, содержащий все SQL-команды, необходимые для полного восстановления БД на другом сервере. Отдельными опциями можно добиться совместимости этого файла с практически любой СУБД (не только MySQL), кроме того, существует возможность выгрузки данных в форматах CSV и XML. Для восстановления данных из таких форматов существует утилита mysqlimport.

Утилита mysqldump консольная. Существуют её надстройки и аналоги, позволяющие управлять бэкапом через веб-интерфейс, например, украинская тулза Sypex Dumper (их представитель zapimir есть на хабре).

Недостатки универсальных утилит бэкапа в текстовые файлы — это относительно невысокая скорость работы и отсутствие возможности делать инкрементные бэкапы.

3. Инкрементные бэкапы

Традиционно рекомендуют держать 10 бэкапов: по одному на каждый день недели, а также бэкапы двухнедельной, месячной и квартальной давности — это позволит достаточно глубоко откатиться в случае порчи каких-либо данных.
Храниться бэкапы должны точно не на том же диске, что и живая база, и не на том же сервере. На случай пожаров и прочих катаклизмов лучше всего арендовать пару юнитов в соседнем дата-центре.

Эти требования могут стать проблемой для больших баз. Прокачка бэкапа 100-гигабайтной базы по 100-мбитной сети займет часа три, на которые полностью забьет канал.
Частично решить эту проблему позволяют инкрементные бэкапы, когда полный бэкап делается, скажем, только по воскресеньям, а в остальные дни пишутся только данные, добавленные или измененные за прошедшие сутки. Сложность в том, как выявить эти самые «данные, изменившиеся за сутки».

Здесь практически вне конкуренции система Percona XtraBackup, которая содержит модифицированный движок InnoDB, анализирует двоичные логи MySQL и вытаскивает из них необходимую информацию. Почти такими же возможностями обладает платная InnoDB Hot Backup, упомянутая выше.

Общая проблема с любыми бэкапами в том, что они всегда отстают. В случае фатального сбоя основного сервера восстановить систему можно будет только с некоторым «откатом» по времени, что очень и очень разочарует её пользователей. Если в системе так или иначе были затронуты финансовые потоки, подобный «откат» может в прямом смысле влететь в копеечку.

4. Репликация

Избежать откатов призвана система репликации MySQL. Идея репликации основана на том, что кроме «главного» сервера («Мастера») постоянно работают ведомые сервера MySQL («слейвы»), которые получают инкрементные бэкапы с мастера в режиме реального времени. Таким образом, время отката уменьшается почти до сетевого лага. В случае краха Мастера можно оперативно назначить «новым Мастером» один из слейвов и перенаправить клиентов на него. Кроме того, слейвы могут обрабатывать запросы на чтение данных (SELECT-ы); это можно использовать для выполнения каких-то расчетов или снижения нагрузки на мастера. MySQL поддерживает репликацию «из коробки», процесс настройки репликации в MySQL хорошо описан юзером whisk. Существует возможность запуска конфигураций Master-Master, а с помощью внешних аппаратно-программных систем — и балансировки нагрузки между мастерами. Только не нужно забывать про ограничения, накладываемые CAP-теоремой.

Репликация — это очень здорово, только использовать её нужно по назначению. Реплика — это полная копия базы, но это не резервная копия! Очевидно же, что если на мастере выполнить DROP TABLE или UPDATE users SET password=«Haha!», изменения будут тут же скопированы на слейв, и откатить их назад станет невозможно.

Репликацию можно совместить с бэкапом на уровне файлов базы, останавливая слейв, а не мастера.

Оцените статью