Репликация MySQL-сервера

Здравствуйте, коллеги!
Сегодня я вам расскажу про то, как обезопасить себя от краха империи, а именно — падения одного сервера с архи-важными данными и быстрое переключение на другой «запасной» MySQL-сервак, на который сваливались все операции, проводимые на главном серваке. Итак, приступим…

1. В конфиге мастер-хоста прописываем:
#replication 
server-id = 1
log_bin = D:/MYSQL/mysql-binus.log
expire_logs_days = 7
binlog-do-db = servicedb

(все базы, указанные в конфиге мастера в binlog-do-db будут реплицироваться на slave и в конфигурации подчиненного сервера их указывать не нужно!)

Читать дальше →

Сервис с добавлением шлюза после старта системы

Необходимость создания такого сервиса появилась после того, как debian 8.9 в рамках виртуальной среды после рестарта всегда затирал gateway. Итак, у нас есть 5 шагов для победы:

1)
/root/addroute.sh:

#!/bin/sh

echo "search 192.168.98.1" > /etc/resolv.conf
echo "nameserver 192.168.98.1" >> /etc/resolv.conf
/sbin/route add default gw 192.168.98.1


Читать дальше →

Четыре скрипта, к-е облегчат вашу навигацию между докерами

1) getdockerdir.sh # показывает рабочую директорию докер-контейнера по имени сервиса, для локальной отладки в любимом редакторе
#!/bin/sh
dockerid=$(docker ps -f name=$1 | awk 'NR==2{print $1}')
echo "рабочая директория сервиса $1: " $(docker inspect $dockerid | grep merg)


Читать дальше →

Перенос MyISAM в InnoDB

Процесс переноса из одно системы хранения (MyISAM) в другую (InnoDB) MySQL может состоять из одного только запроса и это было бы идеально, но не все так просто.

Условие № 1

Все таблицы в MyISAM перед конвертацией должны быть с первичными ключами (Primary key)

Условие № 2

В таблицах не должно быть дефолтных нулевых значений или как лайфхак можно применить две команды на сервере MySQL, куда мы конвертируем базу:
mysql> SET GLOBAL SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
mysql> SET SQL_MODE='ALLOW_INVALID_DATES';

Условие № 3
перед переносом сконвертированных баз с InnoDB во время экспорта нужно обязательно добавить два ключа:
--lock-tables=FALSE --add-locks=FALSE

п.ч. Persona Cluster не сможет симпортировать базу, в исходнике которой есть блокировка таблиц.


Читать дальше →

Docker stack на примере системы в несколько сервисов

Задача заключается в создании приложения из нескольких сервисов с автономными контейнерами в одной сети ос связкой с Mysql Percona Cluster в среде DEV. Итак приступим.

Наш итоговый рабочий конфиг из трех сервисов, выглядит следующим образом:

Читать дальше →

Гораздо лучший бэкап в openvz7 чем встроенный в платной virtuozzo

в режиме rescue доблестного hetzner указываем ось centos 7 и далее
############ разметка дисков для openvz7 с lvm ###################
PART /boot ext3 1024M
PART /nolvm ext4 500G
PART swap swap 64G
PART lvm vg0 all
LV vg0 root / ext4 300G
LV vg0 vz /vz/vmprivate ext4 400G
LV vg0 swap swap swap 16G

(должно оставаться свободное место — в данном случае около 600 гигов под снапшот папки с виртуалками)

Читать дальше →

Установка Openvz 7 (free Virtuozzo 7) в 2 варианта

Вариант первый
Установку делаем на уже существующий centos 7.2 — этот вариант идеальный, когда нет прямого доступа к дисководу и диском с openvz 7)) — например для hetzner.
Сначала запускаем установщик производителя и ставим необходимые пакеты.
yum localinstall https://download.openvz.org/virtuozzo/releases/openvz-7.0.3-479/x86_64/os/Packages/o/openvz-release-7.0.3-3.vz7.x86_64.rpm
yum install prlctl prl-disp-service vzkernel


Читать дальше →

Openvz 7 - почти virtuozzo 7

Единственное и самое главное отличие — невозможность простого и легкого создания бэкапа и восстановления из него. Зато никто не запретит нам создать логический том lvm для виртуалок с монтированием в /vz/vmprivate — все гениальное просто )))
И так приступим. По умолчанию openvz7 ставит виртуальный адаптер virtbr0 с сеткой 192.168.122.1 — ее мы и будем использовать для проброса сети в виртуалки.

Читать дальше →

Публикация сайта в TeamCity через TFS

Заходим на teamserver:8111
Создаем агента — убеждаемся в том, что процесс работает и файрволл его не блочит.
В визарде инсталляции агента в ServerURL указаываем адрес вашего TeamCity сервера
teamserver:8111/
порт оставляем дефолтным 9090, в workDir указываете удобную для вас локальную папку, остальные настройки можно оставить по умолчанию.

Далее на страничке teamserver:8111/admin/admin.html?item=projects
создаем проект.

Переходим в созданный проект и создаем новый VCS Root с типом «Team Foundation Server»
со следующими настройками:
VCS root name:	http://192.168.100.21:8080/tfs/
VCS root ID:    www_test_Http192168100218080tfs
URL:            http://192.168.100.21:8080/tfs/Stroysoft%20Web
Root:           $/websites
Username:       kolda
Password:       mypass

Читать дальше →