Monthly Archive for June, 2009

Linux VPS: Backup MySQL баз данных

Предыдущие записи: Переезд Backup Выбор хостера

Да, в продолжение темы Backup-а хостинга и переезда.

Как правильно перемещать базы MySQL?

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

Как копировать базы с работающго MySQL сервера ?

Есть цивилизованый вариант при помощи mysqldump - он неплохо работает, но если при этом происходят изменения в базе данных - то потом будет проблема синхронизировать сервера.

Самый цивилизованый и правильный вариант - это настраивать синхронизацию master/slave. Перегонать всю базу на slave, а потом уже с него и запускать. НО! Есть несколько но - это сложнее и это требуется только на тех хостах, где нельзя допустить даже кратковременного отключения базы.

Если же можно допустить кратковременное отключение, то последовательность действий будет такая:

  • Делаем копию базы на новом хосте при помощи rsync или tar.gz - без разницы чем
  • Останавливаем MySQL сервер
  • Делаем окончательную синхронизацию при помощи rsync
  • Поднимаем MySQL сервер на новом хосте и перенастраиваем все приложения на него

Как правильно копировать “упавшие” базы MySQL?

Тут, поскольку уже все и так само упало, процесс немного проще.

  • Копируем все базы на новый хост (rsync/tar.gz)
  • Прогоняем по ним myisamchk , если база хранилась исключительно в InnoDB - тогда этот шаг не нужен. (Как это делать и как ускорять процесс - есть в книжке по FreeBSD+apache+mysql+php , на Linux процедура ничем не отличается ).
  • Запускаем MySQL сервер уже на новой машине

Ну как, есть вопросы? Готовы переживать переезд к новому хостеру прямо сейчас? :)

Продолжение, естественно, следует …

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

Linux VPS: Находим новый хост

Предыдущие записи: Переезд Backup

Каким критериям должен удовлетворять хостинг?

  1. Надежность
  2. Объем диска/Скорость передачи данных и предоплаченый трафик
  3. Наличие backup-ов
  4. Managed VS Unmanaged
  5. Цена

Именно в таком порядке. Самое важное в хостинге - это надежность

1. Как проверить надежность hosting-а?

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

На что нужно обращать внимание

  • что говорят об отзывчивости технической поддержки
  • что говорят о  overselling - когда хост продает больше сервиса, чем он физически может выдержать.
  • что говорят о падении канала/надежности серверов
  • что говорят об отзывчивости поддержки биллинга

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

Поищите, что пишут на форумах или в community о скорости тех. поддержки данного хостера, наскоько она быстро отвечает и насколько она адекватно умеет решать проблемы.

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

Overselling — это зло с которым сложно бороться. Обыкновенно хостинг провайдеры рассчитывают на то, что не все пользователи будут использовать ресурсы на все 100% процентов и продают больше емкостей/канала/процессорного времени, чем они реально имеют.  Впоследствии это приводит к сильным проблемам у клиентов. Так что если вы подозреваете, чтоб ваш хостер продает всерх меры - бегите от него :)

Надежность серверов и падение канала у хостеров случается обыкновенно с одинаковой частотой - так что тут не стоит особенно сильно придираться. Падение канала на пару часов раз в 3-4 месяца — это нормальный показатель. Те самые 99.9%, которые гарантирует обыкновенно провайдер.

Ну и поддержка продаж/биллинга – обыкновенно она редко пригождается, но тем не менее стоит посмотреть отзывы и на нее. Как пример — псомотирте, есть ли негативные отзывы по возврату денег. Если их мало - скорее всего с сервисом у компании все в порядке. Не рассчитывайте что sales/billing будет работать в нерабочие часы. Это скорее исключение, чем правило.

Продолжение следует :) …

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

Linux VPS: Делаем backup apache+mysql+настроек в боевых условиях

Есть несколько способов делать backup.

Когда встает разговор о необходимость создать резервную копию VPS можно использовать

  • tar + gzip
  • rsync
  • dump / restore

У каждого из этих способов есть свои плюсы и минусы.

Нас будет интересовать только одно - скорость создания backup и минимизация трафика.

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

Мой личный выбор - rsync

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

В основном скрипт крутится вокруг

rsync -azvPp root@remote_host:/  ~/localbackup/

Но нам нужно немного больше — правильный перенос линков, которые мы создавали на VPS и расстановка приоритето backup (так, логи и скажем большие файлы с mp3 могут подождать, а вот базу даных и данные сайтов и пользователей нужно спасать максимально быстро).

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

Linux VPS: Падение хостинга или “Пожелай врагу переезд”

Добрый день!

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

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

Что такое VPS?

VPS расшифровываестя как Virtual Private Server — Виртуальный Частный Сервер.  А если просто и в двух словах - то берется один мощный сервер и при помощи какой-либо технологии виртуализации (Xen/OpenVZ) нарезается на много маленьких изолированных друг от друга серверов. У всех у них меньше памяти/дискового пространства/процессорного времени, но зато они существенно дешевле, чем арендовать большой сервер. Тем более когда вам и не нужны мощности выделенного сервера.

Итак

Из чего состоит переезд?

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

Но в целом вам нужно представить этапы:

  1. Делаем предварительный полный backup
  2. Находим новый хост, оплачиваем, получаем к нему доступ
  3. Перекачиваем весь полный backup на новый хост
  4. Поднимаем/восстанавливаем на новом хосте конфигурацию со старого (не всегда это возможно проверить, но тем не менее можно все подготовить) - тут есть много тонкостей
  5. Снижаем время обновления DNS до 5-10 минут
  6. Приостанавливаем/переводим в readonly старый хостинг
  7. Делаем окончательную синхронизацию файлов
  8. Поднимаем все сервисы на новом хосте
  9. Вносим изменения в DNS
  10. PROFIT
  11. Поднимаем время обновления DNS до нормального

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

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

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

Я буду выпускать бесплатную версию курса - где можно будет просто скачать аудио файлы и послушать их.

Будет так же и платная версия курса

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

После окончания переезда (ну и соответственно и курса) я, как всегда, подыму цену — до 4500 рублей.

Я знаю, что запишутся немногие, поэтому там можно смело раздавать вкусные и полезные советы и приемы — все равно большая часть читателей с ними не познакомится :)

Спешите записаться, потому что курс будет идти прямо в режиме online - я сейчас в процессе переезда и буду его подробно освещать.

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

Ошибки безопасности в FreeBSD, пора обновить систему

Если вы не следите за обновлениями системы FreeBSD, то сейчас
настало самое подходящее время.

Вчера были опубликованы 3 ошибки безопасности в ОС FreeBSD.

FreeBSD-SA-09:11.ntpd

Ошибка в демоне ntdp (синхронизация времени). Возможно выполнение
произвольного кода с правами суперпользователя.

Ошибку можно использовать только если у вас в файле /etc/ntp.conf
стоит опция “autokey”. По умолчанию, у вас этого файла вообще
быть не должно.

FreeBSD-SA-09:10.ipv6

Локальные пользователи могут менять настройки IPv6 стека. Если у
вас нет локальных пользователей, которым вы не доверяете, можете
смело пропускать это предупреждение.

Эта ошибка касается ТОЛЬКО IPv6 , IPv4 ей не подвержен.

FreeBSD-SA-09:09.pipe

Ошибка при использовании pipes (конвейера). Из-за специфичной для
FreeBSD оптимизации есть возможность читать память других
процессов, что можетп риводить к утечке паролей и другой важной
информации.

Если у вас нет локальных пользователей, которым вы не доверяете,
на вас это не распространяется. Но для повышения безопасности
системы все-таки стоит обновить ядрօ.

Успешного make world вам!

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

Shell: Автодополнение имен файлов в tcsh

Я давно всем рекомендую использовать tcsh в качестве своей оболочки для работы. В предыдущем посте насчет настроек tcsh я написал, какие настройки нужно поставить.

А вот зачем это нужно:

Автодополнение имен файлов в tcsh

Если у вас есть файл

a12312039akasd.avi

вы можете набрать a.avi<Tab> и получить полное имя файла.

или есть файлы

a.jpg
a.a.jpg
a.a-b.jpg

a.-<Tab> откроет шаблон в a.a-b.jpg

А если будут файлы

a.jpg
a.a.jpg
a.a-b.jpg
a.a-c.jpg

то, скажем, .-<Tab> откроется в a.a- и список возможных оставшихся вариантов :)

Так же с предыдущими настройками tcsh работает и автодополнение имен директорий

Имена директорий и <tab> в tcsh

Если вы введете команду cd и потом нажмете Tab, то тогда tcsh выведет только имена директорий, а не вообще список всех файлов.

Если же набрать ./<Tab> , то тогда tcsh выведет все исполняемые файлы в этой директории и все поддиректории — таким образом помогаю вам сформировать путь к исполняемому файлу.

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).

Удобная конфигурация tcsh и других программ

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

Называлась она The Dotfile Generator.

Проект по утверждению автора уже немного мертвый, но тем не менее он не становится от этого менее полезным :)

Из настроек tcsh, которые вы точно захотите включить в свой .tcshrc файл :)

###---------->command line editor/bindings<----------
### Bindings for the command line editor
### искать взад вперед по истории команд при помощи кнопочек вверх/вниз
### набираете префикс команды - скаем l и кнопочку наверх и он выводит предыдущие
### ls, less, locate и так далее ;)
bindkey -k up history-search-backward
bindkey -k down history-search-forward

###———->completion/misc<———-
### Configuration on filename completion
### автодополнение пути, просто скопируйте :) voodoo magic :) но сильно облегчает жизнь
set addsuffix
set autolist
set complete = enhance
set autoexpand
set matchbeep = nomatch
set recognize_only_executables

###———->files<———-
### configuration of files
set listlinks
set noclobber
set rmstar
set symlinks ignore
umask 066

###———->history<———-
### Configuration of the history mechanism
### злопамятно запоминать много shell команд :) можно увеличить число до 2 тысяч
set savehist = (1000 merge)

###———->logout<———-
### Configuration of logout
### никогда не делать автологаут - только по команде!
set autologout = (0 0)
set ignoreeof = 1

Надеюсь, это сэкономит у вас много секунд в вашей жиззни :)

Понравилось? Подпишись на RSS!

Хочешь написать статью? Мы ищем авторов (и не только за красивые глаза, но и за дохлых президентов).