Поиск по сайту:
Так бывает довольно часто: главную трудность представляет не главная роль (Б. Шоу).

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

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

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

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

Для этого урока мы будем использовать Ubuntu 12.04 VPS с установленным MySQL. Большинство современных дистрибутивов и последние версии MySQL должны работать аналогичным образом.

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

Одним из наиболее распространенных способов резервного копирования с MySQL, чтобы использовать команду под названием “mysqldump“.

Резервное копирование

Существует статья о том, как экспортировать базы данных с помощью mysqldump. Основной синтаксис команды:

mysqldump -u username -p database_to_backup > backup_name.sql

Восстановление

Чтобы восстановить дамп базы данных, созданный с помощью mysqldump, вы просто должны снова перенаправить файл в MySQL.

Нам нужно создать пустую базу данных для размещения импортируемых данных. Во-первых, необходимо войти в MySQL, введите команду:

mysql -u username -p

Создать новую базу данных, которая будет содержать все данные из дампа данных, а затем выйти из командной строке MySQL:

CREATE DATABASE database_name;
exit

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

mysql -u username -p database_name < backup_name.sql

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

Как сделать резервную копию таблицы MySQL в текстовый файл

Вы можете сохранить данные из таблицы непосредственно в текстовый файл с помощью оператора выбора в MySQL.

Общий синтаксис для этой операции:

SELECT * INTO OUTFILE 'table_backup_file' FROM name_of_table;

Эта операция будет сохранять данные таблицы в файл на сервере MySQL. Это не сработает, если уже существует файл с именем выбранного.

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

Как сделать резервную копию MySQL данных с помощью automysqlbackup

Существует программа-утилита под названием “automysqlbackup“, которая доступна в репозитории Ubuntu.

Эта утилита может быть запущена автоматически и выполнять резервное копирование через регулярные промежутки времени.

Чтобы установить эту программу, введите следующую команду в терминале:

sudo apt-get install automysqlbackup

Выполните команду, набрав:

sudo automysqlbackup

Основной конфигурационный файл для automysqlbackup находится в “/etc/default/automysqlbackup“. Откройте его с правами администратора:

sudo nano /etc/default/automysqlbackup

Вы можете видеть, что этот файл, по умолчанию, присваивает много переменных в файле MySQL, расположенного по адресу “/etc/mysql/debian.cnf“. Этот документ содержит информацию для входа в обслуживание

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

Расположение по умолчанию для резервных копий “/var/lib/automysqlbackup“. Чтобы увидеть структуру резервных копий:

ls /var/lib/automysqlbackup
daily  monthly weekly

Если мы посмотрим в ежедневный каталог, мы можем увидеть подкаталог для каждой базы данных, внутри которого находится сжатый SQL дамп с момента, когда команда была запущена:

ls -R /var/lib/automysqlbackup/daily
.:
database_name  information_schema  performance_schema

./database_name:
database_name_2017-01-03_03h00m.Tuesday.sql.gz

./information_schema:
information_schema_2017-01-03_03h00m.Tuesday.sql.gz

./performance_schema:
performance_schema_2017-01-03_03h00m.Tuesday.sql.gz

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

Как сделать резервную копию при использовании репликации

Можно использовать репликацию MySQL для резервного копирования данных с вышеуказанными методами.

Репликация представляет собой процесс зеркального отображения данных с одного сервера на другой сервер (ведущий-ведомый) или зеркальное отображение изменений, внесенных c сервера на другой (мастер-мастер).

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

Чтобы избежать этой проблемы, мы можем либо:

  • Отключить репликацию временно
  • Сделайте резервную машину для чтения только временно

Временное отключение репликации

Вы можете отключить временно репликацию для ведомого устройства:

mysqladmin -u user_name -p stop-slave

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

mysql -u user_name -p -e 'STOP SLAVE SQL_THREAD;'

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

После завершения всех процедур, перезапустите репликацию, набрав:

mysqladmin -u user_name -p start-slave

Сделать резервную машину временно только для чтения

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

Вы можете выполнить следующие действия для ведущих или ведомых систем.

Во-первых, необходимо войти в MySQL с достаточными правами для управления данными:

mysql -u root -p

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

FLUSH TABLES WITH READ LOCK;
SET GLOBAL read_only = ON;

Теперь выполнить вашу резервную копию с помощью mysqldump.

После завершения резервного копирования, вернуть систему в исходное рабочее состояние путем ввода:

SET GLOBAL read_only = OFF;
UNLOCK TABLES;

Замечание о методах, которые уже не являются рекомендованными

Mysqlhotcopy

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

Самая важная причина, мы не будем рассматривать использование Mysqlhotcopy здесь потому, что он работает только для данных, сохраненных с помощью двигателей хранения “MyISAM” и “Archive”.

Большинство пользователей не меняют двигатель для хранения своих баз данных и, начиная с MySQL 5.5, двигатель хранения по умолчанию является “InnoDB”. Этот тип базы данных не могут быть сохранен с помощью Mysqlhotcopy.

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

Копирование файлов таблиц

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

Этот подход страдает из-за одного из тех же причин, как “Mysqlhotcopy”.

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

Вывод

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

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

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

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Загрузка...
Поделиться в соц. сетях:
0 0 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

**ссылки nofollow

0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии

Читайте также

Спасибо!

Теперь редакторы в курсе.