Орагнизовать резервное копирование базы данных на Windows машину не имея непосредственного доступа к серверу MySQL.
Решение
Для бекапа будут использоваться две утилиты:
- Putty - лучший консольный SSH клиент для Windows.
- MySQL Administrator - входт в состав MySQL GUI Tools и доступен на сайте http://dev.mysql.com
Запускаю putty, в разделе Session указываю адрес ApacheSrv. В разделе Tunnels указываю порт источник 5000 и назначение mysql.host.com:3306. Нажимаю кнопку Open, ввожу запрашиваемые логин и пароль. С этого момента начинает действовать тунелирование. Другими словами, на 5000 порту Windows машины теперь действует точная копия MySQL сервера, которая будет считать, что к ней присоединяется ApacheSrv.
Запускаю MySQL Administartor, указываю имя хоста localhost (Windows машина) , порт 5000, а также имя пользователя и пароль к БД. После соединения с базой данных выбираю Backup, New Project. Ввожу имя проекта My backup, выбираю базу данных для бекапа и нажимаю на кнопку ">", для того чтобы MySQL Administrator получил список таблиц в базе.
Нажимаю Execute Backup Now и указываю, куда мне сохранить бекап. Процесс может занять несколько часов. По окончании должно высветиться окно The Backup was finished successfully.
Для восстановления вместо Backup надо выбрать Restore и указать на сохранённый файл.
Заметки
Для восстановления вместо Backup надо выбрать Restore и указать на сохранённый файл.
Заметки
- Имя SSH сервера, а также, логин и пароль часто совпадают с параметрами доступа по FTP.
- Адрес MySQL сервера, имя пользователя и пароль можно посмотреть в конфигурационных файлах ваших скриптов, или же обратиться к хостеру.
- Перед бекапом надо обязательно остановить сервис, который работает с базой данных. Иначе восстановление данных не гарантировано.
- Файлы бекапа базы данных, как правило, хорошо поддаются сжатию, так что хранить их удобнее в сжатом виде.
- Бекап необходимо проводить регулярно, и копии хранить в безопасном месте. Хранить копии на рабочей машине небезопасно. Лучше использовать внешние носители.
- Использование Web интерфейсов, таких кaк phpMyAdmin, позволяет орагнизовать бекап и восстановление только маленьких баз данных. Предложенный мной способ прекрасно справляется с гигабайтными объёмами.
- Не имеет значения сколько место вам предоставляет хостер. Для такого бекапа не портебуется дополнительного места.
2 комментария:
Если бекап занимает гигабайты и часы, то по уму надо делать slave и бекапится с него.
Вы же не будете останавливать рабочую базу на несколько часов для ежедневного бекапа?
Да, согласен, если проект действительно серьёзный. На практике, если идут такие объёмы данных, то и прямой доступ к базе данных тоже, как правило, есть.
Данная заметка предназначается больше для владельцев мелких частных сайтов и форумов, которые просто не знают как сделать бекап в таком случае.
Лично я тоже не знал, потому потратил своё время, чтобы найти решение.
Сейчас я делаю такие бекапы с девелоперской версии проекта, чтоб не пинать лишний раз админов.
Отправить комментарий