Перенос трекера с сервера на сервер с сохранением данных

Для простоты понимания введем следующие обозначение:
server1 – сервер, с которого осуществляется перенос трекера;
server2 – сервер, на который осуществляется перенос трекера;
folder1 – папка на server1, которую нужно создать (например, mkdir /root/mysql);
folder2 – папка на server2, которую нужно также создать (например, mkdir /var/lib/mysql_backup).
Внимание! Папки /folder1 и /folder2 не должны быть реальными путями текущих файлов MySQL!

1. Установите xtrabackup:
apt-get install percona-xtrabackup-24
Если не получилось, можете ознакомиться с официальной инструкцией по установке, вкратце :
wget https://repo.percona.com/apt/percona-release_0.1-4.$(lsb_release -sc)_all.deb
dpkg -i percona-release_0.1-4.$(lsb_release -sc)_all.deb
apt-get update
apt-get install percona-xtrabackup-24

2. Для создания бэкапа нужно, как минимум, столько же места, сколько занимают все ваши базы MySQL вместе. Также нужно будет место для создания архива, который вы перебросите на другой сервер.
На практике, лишнего места обычно нет, поэтому можно сразу делать бэкап на удаленный сервер. Для этого нужно установить sshfs на сервере, с которого будем переносить трекер:
apt-get install sshfs
Для монтирования удаленной папки выполните:
sshfs username@server:/folder2 /folder1
где username@server – пользователь и IP от server2.
(например, sshfs root@192.168.1.1:/var/lib/mysql_backup /root/mysql)

3. Убедитесь, что на трекер не идет трафик.
Можете просто остановить nginx:
service nginx stop

4. Для запуска бэкапа выполните:
innobackupex --no-timestamp --user=root --password=PASS /folder1
innobackupex --no-timestamp --user=root --password=PASS --apply-log /folder1

где PASS – пароль от рута MySQL
(например, innobackupex --no-timestamp --user=root --password=PASS /root/mysql
innobackupex --no-timestamp --user=root --password=PASS --apply-log /root/mysql)

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

5. На удаленном сервере нужно остановить MySQL и заменить файлы баз на файлы из бэкапа:
service mysql stop
mv /var/lib/mysql /var/lib/myslq.old
mv /folder1 /var/lib/mysql
(например, mv /var/lib/mysql_backup /var/lib/mysql)
chown -R mysql:mysql /var/lib/mysql

6. Теперь пароль рута MySQL у вас на server2 такой же, как и на server1, и его нужно поменять в файле настройки трекера:
– Откройте файл configuration/system.php в папке трекера, по умолчанию это /var/www/binom/configuration/system.php;
– Найдите строчку с $this->password=;
– Замените старый пароль MySQL на новый;
– Сохраните изменения.

7. Выполните:
service mysql start
mysql_upgrade -uroot -p -f

8. Перезапустите MySQL и проверяйте функциональность трекера.
service mysql restart

9. Отключите удаленную папку (выполнить на старом сервере):
fusermount -u /folder2
(например, fusermount -u /root/mysql)

Комменты