Как сделать резервную копию баз данных. Резервное копирование MySQL

Если вы храните данные в БД MySQL и вам важно не потерять их, то вам нужно регулярно делать бэкапы. Эта статья научит вас быстро через консоль делать бэкапы и восстанавливать их в БД MySQL. Также вы сможете перенести данные на другой сервер.

Как сделать бэкап через командную строку (используя mysqldump)

Если у вас есть доступ к серверу через консоль (SSH) вы можете быстро делать бэкапы и разварачивать их обратно. Эта позволяет быстро создавать дамп базы данных (дамп - это текстовый вариант БД) и восстанавливать их обратно, быстрее чем через phpmyadmin, adminer и прочее. Дамп базы будет состоять из SQL-команд для создания копии вашей БД. Вот команда создания дампа:

$ mysqldump --opt -u -p >

- Имя пользователя БД (возможно root)
- пароль к вашему пользователю, можно писать слитно если он без каких-то особых знаков и пробелов, например -proot, -ppassword
- имя вашей БД
- имя файлу куда будет сохранен бэкап
[--opt] - опции к команде mysqldump, можно пропустить и не писать

Допустим у вас есть база данных Drupal, а имя пользователя root с паролем password и имя файла будет backup.sql, тогда команда будет такая:

$ mysqldump -u root -ppassword DrupalDB > backup.sql

Можно опустить пароль или пароль содержит пробелы и другие особые знаки (#!,-_), то тогда вам придется вводить пароль отдельно и команда будет такая:

$ mysqldump -u root -p DrupalDB > backup.sql

Вы можете также бэкапить отдельные таблицы, для этого нужно перечислять таблицы через пробел, например nodes users:

$ mysqldump -u root -p DrupalDB nodes users > backup.sql

Помимо того чтобы бэкапить отдельные таблицы, можно бэкапить сразу несколько БД, для этого нужно указать параметр --databases это позволит через пробел указать нужные БД:

$ mysqldump -u root -p --databases DrupalDB Drupal7 Drupal8 > backup.sql

Если вы хотите перенести сервер MySQL полностью, то вы можете скопировать все данные с помощью параметра --all-databases:

$ mysqldump -u root -p --all-databases > alldb_backup.sql

Команда mysqldump имеет также несколько полезных параметров:

--add-drop-table - позволяет удалять таблицы перед разварачиваем этого бекапа (то есть в дамп будет добавлены SQL-запросы DROP TABLE перед CREATE TABLE той же таблицы).

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

--add-lock - позволяет добавить LOCK TABLES и UNLOCK TABLES. Если размер БД большой то таблицы могут быть залочены на продолжительное время.

Как сделать бэкап MySQL БД со сжатием

Пожалуй наиболее подходящий варинт, потому что сжать удается в 10-20 раз и бэкапы из больших баз данных становится вполне небольших размеров. Для сжатия мы будем пользоваться командой gzip:

$ mysqldump -u root -p DrupalDB | gzip -9 > backup.sql.gz

Если вы хотите разархивировать файл (не восстановить БД, а просто разархивировать), то воспользуйтесь этой командой:

$ gunzip backup.sql.gz

Как восстановить БД MySQL из бэкапа

Для восстановления БД из дампа, вам нужна чистая БД, можете удалить таблицы с помощью adminer"а или phpmyadmin"а. Если вы использовали параметр --add-drop-table, то таблицы сами удаляться и зальются и ничего удалять прежде не нужно. Вот команда чтобы восстановить БД из дампа:

$ mysql -u root -p DrupalDB < backup.sql

Если у вас был сжатый бэкап, то воспользуйтесь этой командой:

Gunzip < backup.sql.gz | mysql -u root -p DrupalDB

Бэкап и восстановление через Adminer (замена PhpMyAdmin)

Adminer - это замена PhpMyAdmin. Он такой же по функционалу, только сделан в виде одного небольшого файла, что весьма удобно:

Просто копируем файл в корень нашего сайта и обращаемся к нему через браузер:

http://имя_вашего_сайта/adminer-4.2.1.php (можете переименовать в adminer.php для удобства):

Теперь нажимаем Экспорт (Dump) и выгружаем данные. Причем мы можем не выгружать ненужные нам данные кэша:

Для загрузки дампа обратно используйте вкладку Импорт (Import):

Хочу рассказать в своей статье «Автоматический бэкап баз Mysql в Linux» как я делал автоматический бекап моих баз данных в Mysql. Очень полезная информация, особенно если этого не знаешь, а нужно делать бекап.

1. Установка и настройка Mysql (надеюсь у вас уже все настроено и готова к работе, как же имеются БД для создания бекапа), я приведу информацию в своих предыдущих темах, может кому то и нужно будет:

Есть еще много тем, просто поищите на сайте, если есть необходимость.

2. Создаем собственно бекап всех БД.

Для начала создадим папку, там будут лежать все наши бекапы, для этого:

# mkdir /home/captain/backup && cd /home/captain/backup

Командой создаем бекап:

# mysqldump -u root -proot -h 127.0.0.1 --all-databases | gzip >

PS: Ребята, только не путаем знаки (` -тильда, которая похожа на обычную кавычку ‘). У метя там прописаны именно тильды.

Смотрим чтобы уже был созданный файл, убеждаемся что все норм:

# ls -lah

Это бывает не всегда правильно! Так так нужно всегда думать, а не сделал ли я бекап? Нужно добавить эту команду в crontab для автоматического бекапа данных mysql, делается это вот так:

# vim /etc/crontab

Этот вариант, подходит, но есть но, он выполняется от пользователя root. Желательно этого не делать. Правильно будет следующим образом:

# crontab -e # Автоматический бэкап баз Mysql в Linux 00 00 * * * /usr/bin/mysqldump -u root -proot -h 127.0.0.1 --all-databases | gzip > /home/captain/backup/my_database_backup_`date +%mm%dd%yy`.sql.gz

На этом, я завершаю свою тему «Автоматический бэкап баз Mysql в Linux» на моем сайте https://сайт

Следующий пример показывает выполнение резервного копирования БД MySQL с помощью графического интерфейса.

1. Щелкните правой кнопкой мыши в окне Проводник и выберите опцию Резервная копия Создать резервную копию БД . Откроется окно Мастер резервирования БД


2. На вкладке «Общие» укажите соединение, базу данных для создания резервной копии, а также название итогового файла. Щелкните Далее .



3. Выберите содержимое для создания резервной копии. Щелкните Далее .



4. Укажите подробные опции создания резервной копии MySQL. Щелкните Далее .



5. Настройте опции Обработка ошибок и Лог-файла . Щелкните Выполнить для создания резервной копии MySQL.



6. Щелкните Выполнить .

Как запланировать создание резервной копии MySQL?

Иногда вам может понадобиться настроить автоматическое Создание резервных копий БД MySQL . Для этого вы должны, прежде всего, создать файл проекта, содержащий настройки резервного копирования, с помощью мастера резервного копирования MySQL. Создав файл проекта, вы должны будете запланировать задачу Windows, которая будет выполняться в определенное время или при выполнении определенного условия.



2. Выбрав все необходимые опции для резервного копирования и сохранив проект, запустите Планировщик задач в Windows.

3. Выберите Действие Создать простую задачу в верхнем меню.

4. Укажите имя для новой задачи. Щелкните Далее .

5. Выберите одну из опций для запуска задачи создания резервной копии MySQL. Щелкните Далее .

6. Выберите время и частоты для запуска задачи. Щелкните Далее .

7. Выберите Запустить программу и щелкните Далее .

8. Укажите путь к файлу dbforgemysql.com в поле Программа или сценарий . (По умолчанию задан путь "C:\Program Files\Devart\dbForge Studio for MySQL\dbforgemysql.com")



Также, не забудьте указать следующие аргументы в поле Добавить аргументы :

/backup /connection:"User Id=root;Host=db;Port=3309;Database=sakila;Character Set=utf8;" /projectfile:"C:\Users\Documents\dbForge Studio for MySQL\Export\sakila.backup"

9. Проверьте все настройки еще раз и, если изменения не требуются, щелкните Завершить . В противном случае, щелкните Назад и внесите необходимые изменения.



Наш Мастер резервного копирования MySQL поможет вам избежать потери данных. Всего за несколько простых шагов вы сможете создавать копии баз данных целиком или только избранных объектов, настолько же быстро и просто восстанавливая их в дальнейшем.

Привет читатели и подписчики сайт! Сегодня я решил поговорить о самом главном, о резервной копии сайта, благодаря которой все данные площадки могут быть восстановлены в любое время дня и ночи в том виде что и прежде.

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

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

А знаете что само страшное? Это то, что вы не сделали его резервную копию (файлы и база данных).

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

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

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

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

Хостинг-провайдер пришлет вам извинения и больше ничего. Ну а вам естественно придется начинать карьеру онлайн предпринимателя с самого нуля. (

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

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

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

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

Причины, из-за которых может пропасть сайт:

  • Ошибка при редактировании фалов сайта. Вы запросто можете испортить код или допустить ошибку.
  • Падение хостинга. Здесь причин может быть много, начиная стихийными бедствиями и заканчивая тем, что сам хостинг позволит себе кинуть клиентов. Всякое в жизни бывает!
  • Хакерская или вирусная атака на сайт. Сейчас развелось очень много злоумышленников, целью которых становятся рядовые вебмастера и их прибыльные проекты.

Резервная копию фалов сайта на хостинге

Начнем с того что практически каждый хостинг провайдер ежедневно создан бэкапы всех данных клиентов.

А теперь самое интересное, в следующем пункте вам надо задать промежуток времени, через который на почту плагин будет автоматически копировать, и присылать резервную копию базы данных.

Я поставил периодичность 1 раз в день и завел для этого отдельных почтовый аккаунт, чтобы не захламлять рабочий адрес архивами копий баз блога. Как видите, нет ничего сложного!

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

Лучше потратить пару минут времени, чем несколько месяцев на восстановления проекта из веб-архивов. Пока

Система управления базами данных mysql и ее форк mariadb являются очень популярными. Все благодаря открытому коду и бесплатности. Огромное количество проектов в интернете, и не только, используют mysql/mariadb в качестве сервера баз данных.

Регулярное резервное копирование информации является надежным средством защиты от ее порчи или утраты. Существует не малое количество программных средств для организации резервного копирования mysql. Рассмотрим один из самых простых способов.

Замечательная утилита mysqldump позволяет делать бэкапы баз данных mysql/mariadb на лету, без остановки работы сервера. С её помощью, мы будем делать копию всех баз данных. Архивы старше 10 дней будем удалять.

Примерный код скрипта:

#!/bin/bash DB_BACKUP="/backups/backup-mysql/`date +%Y-%m-%d`" DB_USER="root" DB_PASSWD="mysql-root-password" HN=`hostname | awk -F. "{print $1}"` # Создаем каталог для сохранения резервной копии mkdir -p $DB_BACKUP # Удаляет архивы старше 10 дней find /backups/backup-mysql/ -maxdepth 1 -type d -mtime +10 -exec rm -rf {} \; # Делаем копию каждой базы данных сервера mysql/mariadb for db in $(mysql --user=$DB_USER --password=$DB_PASSWD -e "show databases" -s --skip-column-names|grep -viE "(staging|performance_schema|information_schema)"); do mysqldump --user=$DB_USER --password=$DB_PASSWD --events --opt --single-transaction $db | bzip2 > "$DB_BACKUP/mysqldump-$HN-$db-$(date +%Y-%m-%d).sql.bz2"; done

#!/bin/bash

DB_BACKUP = "/backups/backup-mysql/`date +%Y-%m-%d`"

DB_USER = "root"

DB_PASSWD = "mysql-root-password"

HN = ` hostname | awk - F . "{print $1}" `

# Создаем каталог для сохранения резервной копии

mkdir - p $ DB_BACKUP

# Удаляет архивы старше 10 дней

find / backups / backup - mysql / - maxdepth 1 - type d - mtime + 10 - exec rm - rf { } \ ;

# Делаем копию каждой базы данных сервера mysql/mariadb

for db in $ (mysql -- user = $ DB_USER -- password = $ DB_PASSWD - e "show databases" - s -- skip - column - names | grep - viE "(staging|performance_schema|information_schema)" ) ;

do mysqldump -- user = $ DB_USER -- password = $ DB_PASSWD -- events -- opt -- single - transaction $ db | bzip2 > "$DB_BACKUP/mysqldump-$HN-$db-$(date +%Y-%m-%d).sql.bz2" ;

55 1 * * * / usr / local / bin / backup - mysql . sh

Скрипт может выглядеть на много проще, если использовать параметр –all-databases, вместо прямого перебора всех баз данных. Однако выбранный подход позволяет упростить работу с копиями больших баз данных.

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

В данном скрипте подразумевается, что каталог /backups является подключенным надежным удаленным ресурсом.



Загрузка...
Top