На этой странице представлены наиболее популярные стратегии резервного копирования для платформы Navixy. Предполагается, что все компоненты работают на одном сервере, а база данных работает либо на том же сервере, либо на отдельном.
Платформа состоит из следующих компонентов, перечисленных по пути установки по умолчанию:
Backend:
/home/java/api-server
/home/java/sms-server
/home/java/tcp-server
Frontend:
/var/www/panel-v2
/var/www/pro-ui
Следующие базы данных MySQL используются платформой:
google
tracking
Если ваша платформа Navixy работает на виртуальной машине или AWS, Вы можете делать периодические снимки машины, и дополнительно реализовать дамп базы данных MySQL. Создание дампа требуется для постоянного обслуживания базы данных. Вы можете найти больше информации о дампе MySQL ниже:
https://dev.mysql.com/doc/refman/5.7/en/mysqldump.html
Базы данных "google" и "tracking" должны иметь бэкапы.
Вы можете создать дамп MySQL в запущенной базе данных, не блокируя таблицы и не прерывая службу, используя параметр --single-transaction.
Если вы запускаете Navixy на физическом сервере, вы можете выполнить резервное копирование компонентов только один раз после установки, а затем один раз после каждого обновления платформы, так что у вас всегда будет резервная копия последней версии внутренних и внешних компонентов. Затем вам нужно только периодически создавать резервные копии базы данных, используя дамп MySQL.
Ниже приведен пример bash-скрипта, который создает дампы MySQL для обеих баз данных, передает его через gzip для уменьшения размера, а затем удаляет все резервные копии в каталоге резервных копий старше 1 года. Не стесняйтесь изменять скрипт в соответствии с вашими потребностями.
#!/bin/bash
bak_dir=/home/navixy-backups
sql_user=root
sql_passwd=rootpasswd
now=$(date +"%Y-%m-%d")
mysqldump -u$sql_user -p$sql_passwd --single-transaction google | gzip > $bak_dir/google-bak-$now.sql.gz
mysqldump -u$sql_user -p$sql_passwd --single-transaction tracking | gzip > $bak_dir/tracking-bak-$now.sql.gz
find $bak_dir -maxdepth 1 -type f \( -name "google-bak-*.sql.gz" -o -name "tracking-bak-*.sql.gz" \) -mtime +365 -delete
Вы также можете использовать сторонние решения для резервного копирования MySQL, например: https://www.percona.com/doc/percona-xtrabackup/LATEST/index.html
Резервное копирование лицензионного ключа
При планировании резервного копирования для платформы Navixy важно принять во внимание лицензионный ключ. Ключ (также известный как fingerprint) обновляется на нашем сервере лицензий примерно раз в неделю. Это означает, что если вы восстановите резервную копию, которая была сделана до последнего обновления ключа, платформа не будет работать, и вам нужно будет связаться с нашей службой поддержки, чтобы получить новый ключ.
Чтобы избежать этого, мы рекомендуем создавать резервную копию лицензионного ключа отдельно от основной резервной копии. Ключ можно получить из базы данных, используя следующий SQL-запрос:
SELECT value FROM google.variables WHERE var='fingerprint';
В результате получается простая текстовая строка, которую можно сохранить в файле или в другой базе данных. Мы рекомендуем выполнять резервное копирование ключа как минимум 2-3 раза в день.
Если вам нужно восстановить платформу из резервной копии, вам нужно только записать ключ обратно в базу данных, перезапустить сервисы, и платформа должна начать работать:
UPDATE google.variables SET value='<your_key>' WHERE var='fingerprint';