Инкрементальное бекапирование/восстановление MySQL при помощи innobackupex

Posted in Новости on 23 мая, 2018 by admin

1. Делаем Full Backup:

innobackupex --databases='MYDATABASE mysql' /backupdir


/backupdir - корневой каталог бекапов
/backupdir/timestamp_of_full_backup - каталог только что созданного командой полного бекапа
2. Делаем инкремент после Full Backup ( на выходе получим /backupdir/timestamp_of_inc_backup ) :

innobackupex --incremental /backupdir --incremental-basedir=/backupdir/timestamp_of_full_backup


/backupdir - каталог, в котором будет хранится инкрементальный бекап
/backupdir/timestamp_of_full_backup - путь до полного бекапа, для которого будем делать инкремент

3. Восстановление БД из полного бекапа

innobackupex --apply-log --redo-only /backupdir/timestamp_of_full_backup

4. Сливание инкремента в полный дамп :

innobackupex --apply-log --redo-only /backupdir/timestamp_of_full_backup --incremental-dir=/backupdir/timestamp_of_inc_backup

NB — Инкрементальный бекап мы можем делать от другого инкрементального бекапа, создавая цепочку full — incremental1 — incremental2 — incrementaln , но в этом случае при восстановлении нам нужно будет пройти всю цепочку. Начало и конец бекапа вычисляются на основе LSN ( Log Sequence Number ).

Tags: , , , ,

Бекапирование и перенос БД на другой сервер при помощи innobackupex

Posted in Новости on 23 мая, 2018 by admin

NB — Destination сервер должен быть пустой.

Итак, мы будем переносить бекап наших БД при помощи инструмента от Percona — innobackupex . Утилита создает не текстовую sql копию БД, а побитовую копию.
1. Создаем на исходном сервере бекап требуемых БД ( мы берем с собой mysql для сохранения всех доступов ). В данном случае у нас создастся подкаталог с таймштампом начала бекапирования ( timestamp_of_full_backup )

innobackupex --databases='MYDATABASE mysql' /backupdir

2. Переносим на новый сервер ( например при помощи rsync )
3. Теперь сливаем логи InnoDB в таблицы

innobackupex --apply-log --export /backupdir

4. Стопаем MySQL и удаляем все текущие данные в нем

rm -rf /var/lib/mysql/*

5. Импортируем дамп :

innobackupex --copy-back /backupdir/timestamp_of_full_backup

6. Меняем права на нормальные :

chown -R mysql.mysql /var/lib/mysql

7. Стартуем MySQL

Tags: , , , ,

Сборка php-redis модуля для php7.1 для Debian 9 stretch

Posted in Новости on 22 мая, 2018 by admin

Стандартно с https://packages.sury.org/php/ идет битый redis модуль, который нам крайне необходим для работы сессий php в редисе. Итак, будем собирать из исходников.
1. Берем модуль тут https://github.com/phpredis/phpredis.git

cd /opt/
git clone https://github.com/phpredis/phpredis.git
cd phpredis

2. Стандартный ман ( phpize , ./configure, make , make install ) у меня не пошел, так как вместе с 7.1 у нас стоит 7.2 и phpize собирает именно под него либу. Смотрим версию апи для нашего php :

php -i | grep "PHP API"


# php -i | grep "PHP API"
PHP API => 20160303

Смотрим версию API phpize

:/opt/phpredis# phpize
Configuring for:
PHP Api Version: 20160303
Zend Module Api No: 20160303
Zend Extension Api No: 320160303

3. Собираем с учетом php-config7.1 ( ВАЖНО!!!!! )

./configure --with-php-config=/usr/bin/php-config7.1
make
checkinstall

4. Готово

Tags: , , ,

Деперсонализация всех коммитов в ветке git

Posted in Новости on 17 мая, 2018 by admin


git filter-branch -f --env-filter "
GIT_AUTHOR_NAME='Noname'
GIT_AUTHOR_EMAIL='noname@noname.com'
GIT_COMMITTER_NAME='Noname'
GIT_COMMITTER_EMAIL='noname@noname.com'
" HEAD

Соотнести подключенные диски в hyper-v с дисками на linux виртуалке

Posted in Новости on 20 декабря, 2017 by admin

1. Заходим на гипервизор и переписываем/запоминаем все подключенные диски к виртуалке
2. Командой Get-VHD -Path /path/to/disk.vhdx смотрим Disk Identifier . Например :

DiskIdentifier : 9517d70e-7047-412f-993a-da03e57a31e8

3. В виртуальной по команде udevadm info —query=property —name=sdX смотрим идентификаторы диска :

DEVLINKS=/dev/disk/by-id/scsi-3600224800ed717954770da03e57a31e8 /dev/disk/by-id/wwn-0x600224800ed717954770da03e57a31e8

4. Видим, что последние 12 символов идентификатора совпадают. Значит мы нашли соответствие.

Tags: , , ,