понедельник, 21 января 2008 г.

Правильный бекап MySQL

Задача
Орагнизовать резервное копирование базы данных на Windows машину не имея непосредственного доступа к серверу MySQL.

Решение
Для бекапа будут использоваться две утилиты:
  • Putty - лучший консольный SSH клиент для Windows.
  • MySQL Administrator - входт в состав MySQL GUI Tools и доступен на сайте http://dev.mysql.com
Основная функция putty - предоставить доступ к командной строке сервера. Второй предоставляемой им возможностью, которую я буду использовать, является тунелирование соединений. Не буду вдаваться в подробности этого понятия. Скажу, что тунелирование поможет мне перенести интерфейс к базе данных на Windows машину так, что мне останется только сделать бекап с локальной машины. Для непосредственного бекапа я буду использовать MySQL Administrator.

Запускаю 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 и указать на сохранённый файл.

Заметки
  • Имя SSH сервера, а также, логин и пароль часто совпадают с параметрами доступа по FTP.
  • Адрес MySQL сервера, имя пользователя и пароль можно посмотреть в конфигурационных файлах ваших скриптов, или же обратиться к хостеру.
  • Перед бекапом надо обязательно остановить сервис, который работает с базой данных. Иначе восстановление данных не гарантировано.
  • Файлы бекапа базы данных, как правило, хорошо поддаются сжатию, так что хранить их удобнее в сжатом виде.
  • Бекап необходимо проводить регулярно, и копии хранить в безопасном месте. Хранить копии на рабочей машине небезопасно. Лучше использовать внешние носители.
  • Использование Web интерфейсов, таких кaк phpMyAdmin, позволяет орагнизовать бекап и восстановление только маленьких баз данных. Предложенный мной способ прекрасно справляется с гигабайтными объёмами.
  • Не имеет значения сколько место вам предоставляет хостер. Для такого бекапа не портебуется дополнительного места.

вторник, 15 января 2008 г.

Установка программ в Linux из под обычного пользователя

[aeremihin@apollo ~]$ wget http://download.insecure.org/nmap/dist/nmap-4.53.tgz
[aeremihin@apollo ~]$ mkdir src
[aeremihin@apollo ~]$ mkdir install
[aeremihin@apollo ~]$ mv nmap-4.53.tgz src
[aeremihin@apollo ~]$ cd src
[aeremihin@apollo src]$ tar -xf nmap-4.53.tgz
[aeremihin@apollo src]$ cd nmap-4.53
[aeremihin@apollo nmap-4.53]$ mkdir ~/install/nmap
[aeremihin@apollo nmap-4.53]$ ./configure --prefix=$HOME/install/nmap
[aeremihin@apollo nmap-4.53]$ make
[aeremihin@apollo nmap-4.53]$ make install
[aeremihin@apollo nmap-4.53]$ $HOME/install/nmap/bin/nmap www.google.ru
Заметки:
  1. В директории ~/src будут находятся исходные коды, там же производится сборка программ.
  2. В директории ~/install будут находятся установленные программы.
  3. В директорию ~/install/nmap будет установлена программа nmap.
  4. Директория для установки указывается в строке ./configure .
  5. При указании имени папки слеш на конце не ставится.
  6. Аналогичным образом рекомендую устанавливать публичные службы.