Как сделать бэкап базы данных MySQL при лирическом настроении. Автоматическое резервное копирование MySQL Бэкап базы данных MySQL при помощи mysqldump

Хочу рассказать в своей статье «Автоматический бэкап баз 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. Но все-таки жаль, что нельзя сделать «бэкап» времени!

Бэкапим легонько

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

Заходим на сервер СУБД под учетной записью администратора. Затем слева выбираем базу, на которой будет тренироваться. Переходим на вкладку «Экспорт», и в разделе «Способ экспорта» отмечаем второй вариант («Обычный»).

После этого для редактирования станут доступны все возможные параметры бэкапа MySQL. Ниже в окне можно отметить конкретные таблицы базы, и создать только их копии. В поле «Вывод» активируйте вариант «Вывод в файл», и нажмите внизу «Ок». Копия базы данных сохранится в папке загрузки браузера.

Если честно, «господа-профессионалы программных наук», phpMyAdmin мне (как и вам) уже наскучил. Конечно, это «знатная» программная оболочка, обладающая «выдающимися» способностями в сфере администрирования СУБД. Но уже приелась!

Раз пошли такие «пляски», предлагаю испробовать что-то новенькое, и в качестве эксперимента для бэкапа базы данных MySQL использовать другую оболочку. Например, MySQL Admin.

Программная оболочка от авторов СУБД

Странно, но создатели столь популярной системы управления базами долгое время не пытались разработать для нее собственной графической оболочки. Но несколько лет назад появилась MySQL Admin. Хотя в данный момент поддержка программы ее создателями прекращена, но все-таки она обладает хорошим функционалом для бэкапа таблиц данных MySQL.
Чаще всего MySQL Admin используется как альтернатива phpMyAdmin, если размер резервируемой базы превышает 2 Мб. Это максимальный размер бэкапа, который поддерживается phpMyAdmin.

Скачиваем MySQL Admin, устанавливаем ее в файловую систему своего компьютера. Затем запускаем программу, и заполняем все поля параметров, которые нужны для подключения к серверу БД: название соединения, пароль, пользователя, хост и порт. Обратите внимание на последние два параметра. Их значение может отличаться для вашего ПК в зависимости от типа подключения (удаленно или локально) и используемой сборки.

Теперь переходим непосредственно бэкапу БД MySQL. В меню слева выбираем пункт «Backup».

Внизу нажимаем «New Project», в разделе «Schemata» выделяем нужную БД. Затем кнопкой с указателем направления перемещаем выделенный элемент в «Backup Content». Еще раз жмем на название базы, выделяем нужные таблицы и затем переходим по ссылке «Execute Backup Now».

Для окончания процесса бэкапа таблиц MySQL в появившемся диалоге проводника задаем имя файла резервной копии и папку для его сохранения.

Копия базы данной сохранена в указанной папке. Загляните в нее, и убедитесь в этом самостоятельно. Доверяй, но наличие бэкапа базы проверяй! Извините, последствие «наступа» на осенний лист

Использования MySQLDump

В набор встроенных средств СУБД входит MySQLDump, которая пригодится, чтобы сделать бэкап базы MySQL, когда «под рукой» нет специализированного ПО. Данная утилита не имеет собственного интерфейса, поэтому вся работа с ней происходит через командную строку. Запускаем cmd и переходим на тот диск и директорию, где хранится исполняемый файл утилиты:

Давайте немного поэкспериментируем с утилитой MySQLDump. Например, с помощью MySQL сделаем бэкап базы world и разместим его на рабочем столе. Код запроса:

mysqldump -uroot wordpress>C:\Users\домашний\Desktop\dump\world_copy.sql

mysqldump - uroot wordpress > C : \ Users \ домашний\ Desktop \ dump \ world_copy . sql

Теперь заглянем на свой рабочий стол (в указанную папку), проверим ее содержимое.

Утилита справилась с возложенной на нее миссией, и создала дубликат заданной базы в указанном нами месте файловой системы ПК.

Многим покажется, что я привожу слишком простые примеры реализации, Конечно, можно рассмотреть бэкап MySQL rsync, но соваться без подготовки в «неизвестные дебри» новичкам не стоит. Как-нибудь в другой раз, когда мы все окрепнем в своих

Создание резервных копий средствами PHP

С самого первого знакомства с языком PHP он показался мне очень сложным, и даже неприветливым. Но затем, освоив правила синтаксиса, все стало на свои места. И теперь я и PHP стараемся дружить. Опять с меня лирика «прет»! Пардон, друзья.

Сейчас рассмотрим простейший пример бэкапа MySQL в PHP. Для этого мы будет использовать не совсем «средства языка». Из файла PHP мы запустим уже хорошо нам знакомую утилиту MySQLDump и передадим ей все нужные параметры для создания копии указанной базы.

Код примера занимает всего несколько строк, и все благодаря PHP-функции system(), которая запускает на выполнению внешнюю (системную) программу, переданную ей в качестве основного параметра. Ее синтаксис:

string system (string $commandа [, int &$return_variable ])

string system (string $ command а[ , int & $ return _ variable] )

В общем, это полезная функция, которая нам пригодиться для создания MySQL бэкапа в Cети. Пример кода:

C:/Users/домашний/Desktop/dump/world_copy.sql"; system($commanda); ?>

$commanda = "mysqldump -uroot wordpress>C:/Users/домашний/Desktop/dump/world_copy.sql" ;

system ($commanda ) ;

До боли знакомый код! И результат тоже почти идентичен предыдущему. Но ведь это PHP, и его возможности почти безграничны. Давайте немного «подшаманим» пример, и сделаем так, чтобы код бэкапа MySQL скрипта создавал копию БД, имя которой включает в себя дату ее «сотворения».

MySQL — это популярная система управления базами данных (СУБД), использующая для управления данными язык запросов SQL. MySQL идеально подходит для хранения данных сайта или веб-приложения.

Резервное копирование (или бэкап) — очень важная для сохранности любых данных операция. Особенно это касается баз данных. Бэкап базы данных MySQL можно выполнить несколькими способами, о чём и пойдёт речь в этой статье.

Примечание : Для выполнения руководства использовался сервер Ubuntu 12.04 и MySQL 5.5, но более современные версии программного обеспечения будут работать подобным образом.

Бэкап базы данных MySQL при помощи mysqldump

Утилита mysqldump — один из самых простых и удобных способов создания резервной копии MySQL.

Для начала нужно экспортировать БД. Об экспортировании БД при помощи 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.

Общий синтаксис команды:

SELECT * INTO OUTFILE "table_backup_file" FROM name_of_table;

Данный оператор сохранит данные из таблицы в файл на сервере MySQL. Имейте в виду: если файл с таким именем уже существует, операция не будет выполнена.

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

Утилита automysqlbackup

Утилита automysqlbackup доступна в стандартных репозиториях Ubuntu. Она позволяет выполнять бэкап БД автоматически на регулярной основе.

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

sudo apt-get install automysqlbackup

Запустите программу:

sudo automysqlbackup

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

sudo nano /etc/default/automysqlbackup

Как видите, данный файл по умолчанию присваивает множество переменных из файла /etc/mysql/debian.cnf, который содержит данные для авторизации. Из этого файла automysqlbackup считывает пользователя, пароль и БД, резервные копии которых нужно создать.

Стандартное место хранения резервных копий — /var/lib/automysqlbackup. Найдите этот каталог и ознакомьтесь со структурой бэкапов:

ls /var/lib/automysqlbackup
daily monthly weekly

Каталог daily содержит подкаталог для каждой БД, в котором хранится сжатый sql дамп, полученный в результате последнего запуска команды:

ls -R /var/lib/automysqlbackup/dailey
.:
database_name information_schema performance_schema
./database_name:
database_name_2013-08-27_23h30m.Tuesday.sql.gz
./information_schema:
information_schema_2013-08-27_23h30m.Tuesday.sql.gz
./performance_schema:
performance_schema_2013-08-27_23h30m.Tuesday.sql.gz

Для настройки автоматического запуска резервного копирования система Ubuntu устанавливает вместе с этой программой демона cron.

Репликация баз данных

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

Репликация — это процесс зеркалирования данных с ведущего сервера на другие () или с любого сервера связки на остальные серверы ().

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

Чтобы устранить эту проблему, можно:

  • Временно отключить репликацию
  • Или временно сделать сервер резервного копирования доступным только для чтения.

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

Чтобы временно отключить репликацию на slave-сервере, введите:

mysqladmin -u user_name -p stop-slave

Есть ещё один метод, который не отключает репликацию полностью, а просто ставит её на паузу:

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

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

После этого просто возобновите репликацию:

mysqladmin -u user_name -p start-slave

Настройка доступа к серверу резервного копирования

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

Это можно сделать как на сервере master, так и на slave.

Для начала откройте MySQL с правами root:

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. Этот инструмент позволяет очень быстро скопировать БД на локальной машине, но он имеет некоторые ограничения, из-за которых его лучше не использовать.

Во-первых, этот скрипт копирует только данные, хранящиеся при помощи механизмов MyISAM и Archive. Большинство пользователей не меняют механизмы хранения для своих БД, а MySQL, начиная с версии 5.5, по умолчанию использует механизм InnoDB. Следовательно, скрипт mysqlhotcopy не может скопировать такой тип данных.

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

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

Этот подход имеет те же недостатки, что и скрипт mysqlhotcopy.

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

Заключение

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

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

Tags: ,

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

Виды бэкапов баз данных

Для начала разберемся с тем, какие вообще бывают бэкапы. Сервер баз данных не является обычным десктопным приложением, и, чтобы обеспечить выполнение всех свойств ACID (Atomic, Consistency, Isolated, Durable), используется ряд технологий, а поэтому создание и восстановление БД из архива имеет свои особенности. Существуют три различных подхода к резервному копированию данных, каждый из которых имеет свои плюсы и минусы.

При логическом, или SQL, бэкапе (pg_dump, mysqldump, SQLCMD) создается мгновенный снимок содержимого базы с учетом транзакционной целостности и сохраняется в виде файла с SQL-командами (можно выбрать всю базу или отдельные таблицы), при помощи которого можно воссоздать базу данных на другом сервере. На это требуется время (особенно для больших баз) для сохранения и восстановления, поэтому очень часто эту операцию выполнять нельзя и ее производят во время минимальной нагрузки (например, ночью). При восстановлении администратору необходимо будет выполнить несколько команд, чтобы подготовить все необходимое (создать пустую базу данных, учетные записи и прочее).

Физический бэкап (уровня файловой системы) - копирование файлов, которые СУБД использует для хранения данных в базе данных. Но при простом копировании игнорируются блокировки и транзакции, которые, скорее всего, будут неправильно сохранены и нарушены. При попытке присоединить этот файл он будет в несогласованном состоянии и приведет к ошибкам. Чтобы получить актуальный бэкап, базу данных нужно остановить (можно уменьшить время простоя, использовав два раза rsync - вначале на работающей, потом на остановленной). Недостаток этого метода очевиден - нельзя восстановить определенные данные, только всю базу данных. При старте БД, восстановленной из архива файловой системы, нужно будет провести проверку на целостность. Здесь используются разные вспомогательные технологии. Например, в PostgreSQL логи упреждающей журнализации WAL (Write Ahead Logs) и специальная функция (Point in Time Recovery - PITR), позволяющая вернуться к определенному состоянию базы. С их помощью легко реализуется третий сценарий, когда бэкап уровня файловой системы объединяется с резервной копией WAL-файлов. Вначале восстанавливаем файлы резервной копии файловой системы, а затем при помощи WAL база приводится к актуальному состоянию. Это чуть более сложный подход для администрирования, но зато нет проблем с целостностью БД и восстановлением баз до определенного времени.

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

Barman

Лицензия: GNU GPL

Поддерживаемые СУБД: PostgreSQL

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

Barman (backup and recovery manager) - внутренняя разработка компании 2ndQuadrant, предоставляющей услуги на базе PostgreSQL. Предназначен для физического бэкапа PostgreSQL (логический не поддерживает), архивирования WAL и быстрого восстановления после сбоев. Поддерживаются удаленный бэкап и восстановление нескольких серверов, функции point-in-time-recovery (PITR), управление WAL. Для копирования и подачи команд на удаленный узел используется SSH, синхронизация и бэкап при помощи rsync позволяет сократить трафик. Также Barman интегрируется со стандартными утилитами bzip2, gzip, tar и подобными. В принципе, можно использовать любую программу сжатия и архивирования, интеграция не займет много времени. Реализованы различные сервисные и диагностические функции, позволяющие контролировать состояние сервисов и регулировать полосу пропускания. Поддерживаются Pre/Post-скрипты.

Barman написан на Python, управление политиками резервного копирования производится при помощи понятного INI-файла barman.conf, который может находиться в /etc или домашнем каталоге пользователя. В поставке идет готовый шаблон с подробными комментариями внутри. Работает только на *nix-системах. Для установки в RHEL, CentOS и Scientific Linux следует подключить EPEL - репозиторий, в котором содержатся дополнительные пакеты. В распоряжении пользователей Debian/Ubuntu официальный репозиторий:

$ sudo apt-get install barman

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

Sypex Dumper

Лицензия: BSD

Поддерживаемые СУБД: MySQL

Вместе с MySQL поставляются утилиты mysqldump, mysqlhotcopy, позволяющие легко создать дамп базы данных, они хорошо документированы, и в интернете можно найти большое количество готовых примеров и фронтендов. Последние позволяют новичку быстро приступить к работе. Sypex Dumper представляет собой PHP-скрипт, позволяющий легко создать и восстановить копию базы данных MySQL. Создавался для работы с большими базами данных, работает очень быстро, понятен и удобен в использовании. Умеет работать с объектами MySQL - представлениями, процедурами, функциями, триггерами и событиями.

Еще один плюс, в отличие от других инструментов, при экспорте производящих перекодирование в UTF-8, - в Dumper экспорт производится в родной кодировке. Результирующий файл занимает меньше места, а сам процесс происходит быстрее. В одном дампе могут быть объекты с разными кодировками. Причем легко импорт/экспорт произвести в несколько этапов, останавливая процесс во время нагрузки. При возобновлении процедура начнется с места остановки. При восстановлении поддерживается четыре варианта:

  • CREATE + INSERT - стандартный режим восстановления;
  • TRUNCATE + INSERT - меньше времени на создание таблиц;
  • REPLACE - восстанавливаем в рабочей базе старые данные, не затирая новые;
  • INSERT IGNORE - добавляем в базу удаленные или новые данные, не трогая существующие.

Поддерживается сжатие копии (gzip или bzip2), автоудаление старых бэкапов, реализован просмотр содержимого дамп-файла, восстановление только структуры таблиц. Имеются и сервисные функции по управлению БД (создание, удаление, проверка, восстановление БД, оптимизация, очистка таблиц, работа с индексами и другое), а также файл-менеджер, позволяющий копировать файлы на сервер.

Управление производится при помощи веб-браузера, интерфейс с использование AJAX локализован из коробки и создает впечатление работы с настольным приложением. Также возможно запускать задания из консоли и по расписанию (через cron).

Для работы Dumper понадобится классический L|WAMP-сервер, установка обычная для всех приложений, написанных на PHP (копируем файлы и устанавливаем права), и не будет сложной даже для новичка. Проект предоставляет подробную документацию и видеоуроки, демонстрирующие работу с Sypex Dumper.

Есть две редакции: Sypex Dumper (бесплатно) и Pro (10 долларов). Вторая имеет больше возможностей, все отличия приведены на сайте.

SQL Backup And FTP

Лицензия:

Поддерживаемые СУБД: MS SQL Server

MS SQL Server - одно из популярных решений, а потому встречается достаточно часто. Задание резервного копирования создается при помощи среды SQL Server Management Studio, собственно Transact-SQL и командлетов модуля SQL PowerShell (Backup-SqlDatabase). На сайте MS можно найти просто огромное количество документации, которая позволяет разобраться с процессом. Документация хотя и полная, но очень специфическая, а информация в интернете часто противоречит друг другу. Новичку действительно вначале потребуется потренироваться, «набив руку», поэтому, даже несмотря на все сказанное, сторонним разработчикам есть где развернуться. К тому же бесплатная версия SQL Server Express не может похвастаться встроенными инструментами для резервного копирования. Для более ранних версий MS SQL (до 2008) можно найти бесплатные утилиты, например SQL Server backup , но в большинстве подобные проекты уже коммерциализировались, хотя и предлагают всю функциональность часто за символическую сумму.


Например, разработка SQL Backup And FTP и One-Click SQL Restore соответствует принципу «настроил и забыл». Обладая очень простым и понятным интерфейсом, они позволяют создавать копии баз данных MS SQL Server (включая Express) и Azure, сохранять зашифрованные и сжатые файлы на FTP и облачных сервисах (Dropbox, Box, Google Drive, MS SkyDrive или Amazon S3), результат можно тут же просмотреть. Возможен запуск процесса как вручную, так и по расписанию, отправка сообщения о результате задания по email, запуск пользовательских скриптов.

Поддерживаются все варианты бэкапа: полный, дифференциальный, журнал транзакций, копирование папки с файлами и многое другое. Старые резервные копии удаляются автоматически. Для подключения к виртуальному узлу используется SQL Management Studio, хотя здесь могут быть нюансы и это будет работать не во всех таких конфигурациях. Для загрузки предлагается пять версий - от бесплатной Free до навороченной Prof Lifetime (на момент написания этих строк стоила всего 149 долларов). Функционала Free вполне достаточно для небольших сетей, в которых установлено один-два SQL-сервера, все основные функции активны. Ограничено количество резервных БД, возможность отправки файлов на Google Drive и SkyDrive и шифрование файлов. Интерфейс хотя и не локализован, но очень прост и понятен даже новичку. Нужно лишь подключиться к SQL-серверу, после чего будет выведен список баз данных, следует отметить нужные, настроить доступ к удаленным ресурсам и указать время выполнения задания. И все это в одном окне.

Но есть одно «но». Сама программа не предназначена для восстановления архивов. Для этого предлагается отдельная бесплатная утилита One-Click SQL Restore, понимающая и формат, созданный командой BACKUP DATABASE. Админу необходимо лишь указать архив и сервер, на который восстановить данные, и нажать одну кнопку. Но в более сложных сценариях придется использовать RESTORE.


Особенности бэкапа MS SQL Server

Создание резервной копии и восстановление СУБД имеет свои отличия, которые нужно учитывать, особенно их много при переносе архива на другой сервер. Для примера разберем некоторые нюансы MS SQL Server. Для архивирования при помощи Transact-SQL следует использовать команду BACKUP DATABASE (есть и разностная DIFFERENTIAL) и журнал транзакций BACKUP LOG.

Если резервная копия разворачивается на другом сервере, нужно убедиться, что присутствуют те же самые логические диски. Как вариант - можно вручную прописать правильные пути для файлов базы данных, используя опцию WITH MOVE команды RESTORE DATABASE.

Простая ситуация - бэкап и перенос баз на другие версии SQL Server. Эта операция поддерживается, но в случае SQL Server будет работать, если версия сервера, на которой разворачивается копия, такая же или новее, чем та, на которой она создавалась. Причем есть ограничение: новее не более чем на две версии. После восстановления БД будет находиться в режиме совместимости с той версией, с которой осуществлялся переход, то есть новые функции будут недоступны. Это легко поправить, изменив COMPATIBILITY_LEVEL. Можно это сделать при помощи GUI или SQL.

ALTER DATABASE MyDB SET COMPATIBILITY_LEVEL = 110;

Определить, на какой версии была создана копия, можно, просмотрев заголовок файла архива. Чтобы не экспериментировать, при переходе на новую версию SQL Server следует запустить бесплатную утилиту Microsoft Upgrade Advisor.

Iperius

Лицензия: коммерческая, есть версия Free

Поддерживаемые СУБД: Oracle 9–11, XE, MySQL, MariaDB, PostgreSQL и MS SQL Server

Когда приходится управлять несколькими типами СУБД, без комбайнов не обойтись. Выбор большой. Например, Iperius - легкая, очень простая в использовании и одновременная мощная программа для резервного копирования файлов, имеющая функцию горячего резервирования баз данных без прерывания в работе или блокирования. Обеспечивает полный или инкрементальный бэкап. Может создавать полные образы дисков для автоматической переустановки всей системы. Поддерживает резервное копирование на NAS, USB-устройства, стример, FTP/FTPS, Google Drive, Dropbox и SkyDrive. Поддерживает сжатие zip без ограничения в размере файлов и AES256-шифрование, запуск внешних скриптов и программ. Включает весьма функциональный планировщик заданий, возможно параллельное или последовательное выполнение нескольких заданий, результат отправляется на email. Поддерживаются многочисленные фильтры, переменные для персонализации путей и настроек.


Возможность закачки по FTP позволяет легко обновлять информацию на нескольких веб-сайтах. Открытые файлы резервируются при помощи технологии VSS (теневого копирования томов), что позволяет производить горячий бэкап не только файлов СУБД, но и других приложений. Для Oracle также задействуется средство организации резервного копирования и восстановления данных RMAN (Recovery Manager). Чтобы не перегружать канал, есть возможность настройки полосы пропускания. Управление резервированием и восстановлением производится при помощи локальной и веб-консоли. Все функции на виду, поэтому для настройки задания потребуется лишь понимание процесса, в документацию заглядывать даже не придется. Просто следуем подсказкам мастера. Также можно отметить менеджер учетных записей, что очень удобно при большом количестве систем.

Базовые функции предлагаются бесплатно, но возможность резервирования БД заложена только в версиях Advanced DB и Full. Поддерживается установка от XP до Windows Server 2012.

Handy Backup

Лицензия: коммерческая

Поддерживаемые СУБД: Oracle, MySQL, IBM DB2 (7–9.5) и MS SQL Server

Одна из самых мощных систем управления реляционными базами данных - IBM DB2, имеющая уникальные функции по масштабированию и поддерживающая множество платформ. Поставляется в нескольких редакциях, которые построены на одной базе и отличаются функционально. Архитектура баз данных DB2 позволяет управлять практически всеми типами данных: документами, XML, медиафайлами и так далее. Особо популярна бесплатная DB2 Express-C. Бэкап очень прост:

Db2 backup db sample

Или снапшот, использующий функцию Advanced Copy Services (ACS):

Db2 backup db sample use snapshot

Но нужно помнить, что в случае снимков мы не можем восстанавливать (db2 recover db) отдельные таблицы. Есть и возможности по автоматическому бэкапу, и многое другое. Продукты хорошо документированы, хотя в русскоязычном интернете руководства встречаются редко. Также далеко не во всех специальных решениях можно найти поддержку DB2.

Например, Handy Backup позволяет выполнять бэкап нескольких типов серверов баз данных и сохранять файлы практически на любой носитель (жесткий диск, CD/DVD, облачное и сетевое хранилище, FTP/S, WebDAV и другие). Возможен бэкап баз данных через ODBC (только таблицы). Это одно из немногих решений, поддерживающих DB2, и к тому же имеет логотип «Ready for IBM DB2 Data Server Software». Вся процедура выполняется при помощи обычного мастера, в котором необходимо лишь выбрать нужный пункт и сформировать задачу. Сам процесс настройки настолько прост, что разобраться сможет и новичок. Можно создать несколько заданий, которые будут запускаться по расписанию. Результат фиксируется в журнале и отправляется по email. Во время работы задания остановка сервиса не требуется. Архив автоматически сжимается и шифруется, что гарантирует его безопасность.


Работу с DB2 поддерживают две версии Handy Backup - Office Expert (локальный) и Server Network (сетевой). Работает на компьютерах под управлением Win8/7/Vista/XP или 2012/2008/2003. Сам процесс развертывания несложен для любого админа.

Организовываем автоматические бэкапы базы данных MySQL.

Каждая база данных должна быть подстрахована резервным копированием или бэкапом (backup). Если вы все еще делаете это вручную, то можете радоваться, потому что есть простое решение автоматического бэкапа на PHP. С помощью данного скрипта вы можете передавать конкретные таблицы для резервного копирования или сделать резервное копирование всей базы данных.

Как реализовать mysql backups?

Лучше всего скопировать код предоставленного скрипта и поместить его в папку «database_backups», как показано на скриншоте ниже. Затем при вызове файла backup. php , он будет создавать резервную копию базы данных на вашем сервере. Я бы рекомендовал периодически копировать все файлы бэкапов себе на компьютер или другое хранилище, что бы перестраховаться на случай потери хостинга.

Автоматизация mysql backups с помощью CRON

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

Wget -O /dev/null http://your-site.com/database_backup/backup.php

PHP код файла

Мы рассмотрели простой пример реализации автоматического бэкапа базы данных mysql. Да, способ дубовый, но он приемлем для маленьких сайтов. Если у вас большой проект, то использование php очень медленное в сравнении с использованием mysqldump . Убедительная просьба к тем, кто знает как организовать резервное копирование лучше, напишите в комментариях.