Для обновления системы необходимо выполнить команду:
aptitude update aptitude install arta-synergy-synergy
Также необходимо просмотреть изменения в конфигурационных файлах, заменить на новые, оставить старые. Этот шаг обычно вызывает большую часть ошибок, т.к. конфигурации зачастую сильно отличаются. При обновлении пакета администратору будут поочередно показаны конфигурационные файлы, которые отличаются от тех, что в пакете. Для каждого файла будет предложен новый вариант конфигурационного файла, с возможностью заменить, отказаться от замены и просмотреть разницу между файлами.
Для манипуляции файлами конфигурации пакеты
arta-synergy-*
используют механизм Debian
conffiles
. Более подробно о нем можно прочитать
здесь:
https://raphaelhertzog.com/2010/09/21/debian-conffile-configuration-file-managed-by-dpkg/
Замечание:
Перед обновлением конфигурационного файла рекомендуется создать его резервную копию.
В процессе обновления вам будет задана часть вопросов из секции установки (такие, как пароль к БД), а также будет предложено очистить временные файлы сервера приложений (это настоятельно рекомендуется сделать).
Иногда после обновления нужно выполнить актуализацию версии базы данных (БД), процессов и индексов системы.
В версии Synergy 3.15
используемая СУБД была
заменена с MySQL Server 5.5
на
Percona Server 5.7
, а также были произведены
значительные изменения в структуре баз данных. В связи с этим
вам необходимо запланировать время для обновления, так как оно
может занять несколько часов (время зависит от размера вашей
базы данных).
Обновление должно производиться в два этапа:
Замена и обновление версии СУБД
Обновление пакетов Synergy и запуск штатного обновления БД
Внимание!
Перед заменой СУБД и её обновлением необходимо обязательно сделать резервную копию данных.
Перед заменой СУБД мы рекомендуем вынести из
/etc/mysql/my.cnf
настройки, которые были
добавлены вами вручную, в отдельный файл
/etc/mysql/conf.d/custom.cnf
, оставив в
оригинальном файле только настройки по умолчанию. При этом вам
нужно свериться с файлом
/etc/mysql/conf.d/arta_synergy_performance.cnf
,
так как файлы в каталоге /etc/mysql/conf.d
считываются в лексикографическом (алфавитном) порядке, и вы
можете переопределить настройки производительности базы данных
для Synergy. В случае сомнений мы рекомендуем убрать
собственное переопределение и использовать параметры из
/etc/mysql/conf.d/arta_synergy_performance.cnf
.
Кроме того, обратите внимание на настройки, которые были изменены, переименованы либо удалены из MySQL 5.6 и MySQL 5.7. Необходимо откорректировать, заменить или исключить такие настройки, если они у вас имеются.
Перед установкой необходимо убедиться, что установлена
последняя версия Synergy (3.14 perlis
или
3.12 tengri
). Если это не так, то
необходимо установить последнюю доступную в репозитории версию
всех установленных пакетов Synergy:
# aptitude update # aptitude install ~iarta-synergy
Перед заменой и обновлением СУБД сервер приложений Synergy необходимо остановить:
# /etc/init.d/arta-synergy-jboss stop
Обновление СУБД и данных в ней можно произвести двумя способами:
Логическое обновление: сначала выгрузить данные при помощи
mysqldump
, удалить БД, обновить
программное обеспечение и загрузить данные обратно.
In-place
-обновление: обновлять СУБД
последовательно с версии на версию и пользоваться при этом
инструментом mysql_upgrade
для
обновления данных.
Мы рекомендуем проводить логическое обновление по следующим причинам:
В Percona Server 5.7 (и MySQL 5.7) по умолчанию включена
настройка
innodb_file_per_table
.
В процессе обновления при помощи
mysql_upgrade
многие таблицы будут
пересозданы заново и уже в виде
.ibd
-файлов, однако место в общем
tablespace
(файл
innodb1
) освобождено не будет. Таким
образом, можно получить двукратное (и бесполезное)
увеличение занятого базой дискового пространства
Данные в таблицах будут иметь минимальную фрагментацию
Вы получаете резервную копию данных, которую можно будет использовать, если что-то пойдет не так
Если по каким-то причинам логическое обновление невозможно
(например, большой объём базы данных и длительное время работы
mysqldump
), можно проводить
in-place
-обновление.
Для обновления Synergy в первую очередь нужно подключить
репозиторий Percona
. Сделать это можно
двумя способами:
Установить официальный репозиторий Percona:
Примечание:
Перед установкой необходимо проверить, что установлен пакет
lsb
:
# aptitude install lsb
В терминале выполнить:
# 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
Проверить, что репозиторий был подключен, можно в файле
/etc/apt/sources.list.d/percona-release.list
.
Альтернативный вариант: подключить зеркало репозитория
Percona. Для этого в файл
/etc/apt/sources.list
нужно добавить
строку:
deb http://deb.arta.kz/percona $debian_release main
Вместо $debian_release
необходимо
добавить используемую версию Debian. Узнать название
используемой версии можно с помощью команды:
# lsb_release -sc
Далее необходимо добавить ключ, который использует Percona для подписи репозиториев:
# apt-key adv --keyserver keys.gnupg.net --recv-keys 8507EFA5
После подключения репозиториев необходимо обновить список пакетов, выполнив команду:
# aptitude update
Вначале необходимо снять резервную копию баз данных
synergy
, jbpmdb
и
storage
:
# cd /var/backups/synergy # mkdir upgrade_3.15 # cd upgrade_3.15 # for db in synergy jbpmdb storage; do mysqldump --routines -u root -p $db | gzip > $db.sql.gz; done
Далее удалим базы:
# for db in synergy jbpmdb storage; do mysql -u root -p -e "drop schema $db"; done
Установим сервер Percona 5.7, удалим данные из каталога
данных MySQL, инициализируем новые данные и установим пароль
root
.
Ввиду существующей проблемы при обновлении Percona Server до
5.7 с предыдущих версий, нам необходимо будет предварительно
удалить пакеты mysql-server-core-5.5
и
mysql-server-5.5
без учёта зависимостей:
# dpkg -r --force-all mysql-server-core-5.5 mysql-server-5.5 # aptitude install percona-server-server-5.7 Следующие НОВЫЕ пакеты будут установлены: libmecab2{a} libnuma1{a} percona-server-client-5.7{ab} percona-server-common-5.7{a} percona-server-server-5.7 [ ... ] Следующие пакеты имеют неудовлетворённые зависимости: mysql-server : Зависит: mysql-server-5.5 но его установка не запланирована. percona-server-client-5.7 : Ломает: mysql-client-5.5 но установлен 5.5.55-0+deb7u1 Ломает: virtual-mysql-client который является виртуальным пакетом. Следующие действия разрешат зависимости: Удалить следующие пакеты: 1) mysql-client-5.5 2) mysql-server Принять данное решение? [Y/n/q/?] Y [ ... ] # /etc/init.d/mysql stop # rm /var/lib/mysql/* -rf # mysqld_safe --user=mysql --datadir=/var/lib/mysql --initialize-insecure # mysqld_safe --user=mysql --datadir=/var/lib/mysql --skip-grant-tables & # mysql -u root mysql> UPDATE mysql.user SET authentication_string = PASSWORD('root') WHERE User = 'root'; mysql> FLUSH PRIVILEGES; mysql> quit # killall mysqld # /etc/init.d/mysql start
Загрузим данные обратно:
# for db in synergy jbpmdb storage; do mysql -u root -proot -e "CREATE SCHEMA $db"; zcat $db.sql.gz | mysql -u root -proot $db; done
Выполним mysql_upgrade
# mysql_upgrade -u root -proot
Обновление завершено.
Вначале необходимо установить Percona Server 5.6:
# aptitude install percona-server-server-5.6 Следующие НОВЫЕ пакеты будут установлены: libnuma1{a} libperconaserverclient18.1{a} percona-server-client-5.6{ab} percona-server-common-5.6{a} percona-server-server-5.6{b} [ ... ] Следующие пакеты имеют неудовлетворённые зависимости: percona-server-server-5.6 : Ломает: mysql-server-5.5 но устанавливается 5.5.55-0+deb7u1. Ломает: mysql-server-core-5.5 но устанавливается 5.5.55-0+deb7u1. Ломает: virtual-mysql-server который является виртуальным пакетом. percona-server-client-5.6 : Ломает: mysql-client-5.5 но устанавливается 5.5.55-0+deb7u1. Ломает: virtual-mysql-client который является виртуальным пакетом. Следующие действия разрешат зависимости: Удалить следующие пакеты: 1) mysql-client-5.5 2) mysql-server 3) mysql-server-5.5 4) mysql-server-core-5.5 Принять данное решение? [Y/n/q/?] Y [ ... ]
Выполним mysql_upgrade
:
# mysql_upgrade -u root -proot --force
Установим сервер Percona 5.7.
Ввиду существующей проблемы при обновлении Percona Server до
5.7 с предыдущих версий, нам необходимо будет предваритель
удалить пакет percona-server-server-5.6
без учёта зависимостей:
# dpkg -r --force-all percona-server-server-5.6 # aptitude install percona-server-server-5.7 Следующие НОВЫЕ пакеты будут установлены: percona-server-client-5.7{ab} percona-server-common-5.7{a} percona-server-server-5.7 Следующие пакеты будут УДАЛЕНЫ: libdbd-mysql-perl{u} libmysqlclient18{u} [ ... ] Следующие пакеты имеют неудовлетворённые зависимости: percona-server-client-5.6 : Ломает: virtual-mysql-client который является виртуальным пакетом. Ломает: virtual-mysql-client-core который является виртуальным пакетом. percona-server-client-5.7 : Ломает: percona-server-client-5.6 но установлен 5.6.36-82.0-1.wheezy Ломает: virtual-mysql-client который является виртуальным пакетом. Ломает: virtual-mysql-client-core который является виртуальным пакетом. Следующие действия разрешат зависимости: Удалить следующие пакеты: 1) percona-server-client-5.6 Принять данное решение? [Y/n/q/?] Y [ ... ]
Вновь выполним mysql_upgrade
:
mysql_upgrade -u root -proot --force /etc/init.d/mysql restart
Обновление завершено.
Примечание
В некоторых системах, несмотря на настройку
max_connections
, количество соединений
после запуска MySQL остается 214
. Решение
этой проблемы подробно описано в разделе
«Настройка
MySQL»
После обновления необходимо проверить, что файл
/etc/mysql/my.cnf
имеет
только следующее содержимое:
# # The Percona Server 5.7 configuration file. # # # * IMPORTANT: Additional settings that can override those from this file! # The files must end with '.cnf', otherwise they'll be ignored. # Please make any edits and changes to the appropriate sectional files # included below. # !includedir /etc/mysql/conf.d/ !includedir /etc/mysql/percona-server.conf.d/
Если это не так (например, там содержимое вашего старого
my.cnf
от MySQL 5.5 с внесенными вами
изменениями), то необходимо проделать следующее:
# mv /etc/mysql/my.cnf /etc/mysql/my.cnf.orig # update-alternatives --install /etc/mysql/my.cnf my.cnf "/etc/mysql/percona-server.cnf" 200 # /etc/init.d/mysql restart
Кроме этого, необходимо установить вспомогательные функции Percona:
# mysql -e "CREATE FUNCTION fnv1a_64 RETURNS INTEGER SONAME 'libfnv1a_udf.so'" -u root -proot # mysql -e "CREATE FUNCTION fnv_64 RETURNS INTEGER SONAME 'libfnv_udf.so'" -u root -proot # mysql -e "CREATE FUNCTION murmur_hash RETURNS INTEGER SONAME 'libmurmur_udf.so'" -u root -proot
После обновления СУБД до 5.7 можно запускать обновление Synergy.
Для этого в /etc/apt/sources.list
должен
присутствовать репозиторий wilkes
:
# grep wilkes /etc/apt/sources.list deb http://deb.arta.kz/tengri unstable main contrib non-free
Устанавливаем обновление Synergy:
# aptitude install ~iarta-synergy
В случае, если во время обновления возникли ошибки, выполните
команду aptitude install -f
, которая
предложит разрешить проблемы с зависимостями пакетов.
Далее необходимо произвести обновление БД Synergy штатным способом.
В версии 3.5
была выпущена задача
0300
Мультиязычность системы, в рамках реализации которой
было сделано очень много изменений в ядре системы, в частности,
в структуре базы данных. В связи с этим обновиться до версии
3.5
можно только с предыдущей версии системы,
3.4
.
Замечание:
Для этого обновления нужно обязательно использовать последние ревизии пакетов системы версии 3.4 - они доступны на deb.arta.kz в репозитории «3.4»
Для случая, когда требуется обновление системы с версий старше
3.4
(например, 3.2
), мы
подготовили специальный репозиторий, которой всегда будет
содержать версию системы ARTA Synergy 3.4
,
актуальную на момент её выпуска и периода поддержки.
Обновления до более высокой версии проводятся аналогично.
Пример действий, необходимых для обновления ARTA Synergy c версии 3.3 или старше до версии 3.5 с промежуточным обновлением до 3.4:
В файле /etc/apt/sources.list
временно
закомментировать или удалить строки с указанием стабильных
репозиториев ARTA Synergy, и добавить туда репозиторий,
содержащий версию системы 3.4
:
#deb http://deb.arta.kz/tengri stable main contrib non-free #deb http://deb.arta.kz/tengri stable-updates main contrib non-free deb http://deb.arta.kz/tengri 3.4 main contrib non-free
Обновить список пакетов и обновить систему стандартным способом:
aptitude update aptitude install arta-synergy-synergy
Обновить базу данных, процесссы и индексы
Внимание!
Обновление базы данных может занять длительное время.
Убрать репозиторий 3.4
из файла
/etc/apt/sources.list
и вернуть туда
стабильные репозитории ARTA Synergy:
deb http://deb.arta.kz/tengri stable main contrib non-free deb http://deb.arta.kz/tengri stable-updates main contrib non-free #deb http://deb.arta.kz/tengri 3.4 main contrib non-free
Обновить список пакетов и обновить систему стандартным способом:
aptitude update aptitude install arta-synergy-synergy
Обновить базу данных, процесссы и индексы
Если вы по каким-то причинам обновили систему с версий <
3.4
сразу на 3.5
, минуя
3.4
, то при попытке обновления базы данных
вы увидите следующее сообщение:
Чтобы исправить данную ситуацию, необходимо произвести
понижение версии (downgrade
) пакета
arta-synergy-synergy
. Необходимо проделать
следующее:
В файле /etc/apt/sources.list
временно
закомментировать или удалить строки с указанием стабильных
репозиториев ARTA Synergy, и добавить туда репозиторий,
содержащий версию системы 3.4
:
#deb http://deb.arta.kz/tengri stable main contrib non-free #deb http://deb.arta.kz/tengri stable-updates main contrib non-free deb http://deb.arta.kz/tengri 3.4 main contrib non-free
Обновить список пакетов:
aptitude update
Проверить имеющиеся версии пакета
arta-synergy-synergy
:
apt-cache policy arta-synergy-synergy
Мы получим вывод примерно следующего вида:
arta-synergy-synergy: Установлен: 3.5-r1~160401.131002 Кандидат: 3.5-r1~160401.131002 Таблица версий: *** 3.5-r1~160401.131002 0 100 /var/lib/dpkg/status 3.4-r10 0 500 http://deb.arta.kz/tengri/ 3.4/non-free amd64 Packages
Мы видим, что в системе на данный момент установлена версия
3.5-r1~160401.131002
пакета
arta-synergy-synergy
, а установить из
репозитория можно версию 3.4-r10
Устанавливаем пакет
arta-synergy-synergy
с явным указанием
версии:
aptitude install arta-synergy-synergy=3.4-r10
В результате возможно получить вывод следующего вида:
Следующие пакеты будут обновлены: arta-synergy-synergy{b} 1 пакетов обновлено, 0 установлено новых, 0 пакетов отмечено для удаления, и 7 пакетов не обновлено. Необходимо получить 590 MB архивов. После распаковки 0 B будет занято. Следующие пакеты имеют неудовлетворённые зависимости: arta-synergy-synergy : Зависит: arta-synergy-deps (< 3.5) но установлен 3.5-r1~160210.110622 Зависит: arta-synergy-esb (< 3.5) но установлен 3.5-b674 Зависит: arta-synergy-indexator (< 3.5) но установлен 3.5-b658 Следующие действия разрешат зависимости: Удалить следующие пакеты: 1) arta-synergy-synergy Принять данное решение? [Y/n/q/?]
Необходимо отказываться от решений (нажимать
n
) до тех пор, пока
aptitude
не предложит снизить версию у
зависимостей:
Следующие действия разрешат зависимости: Установить более старую версию для следующих пакетов: 1) arta-synergy-deps [3.5-r1~160210.110622 (now) -> 3.4-r5~160210.110622 (3.4)] 2) arta-synergy-esb [3.5-b674 (now) -> 3.4-b619 (3.4)] 3) arta-synergy-indexator [3.5-b658 (now) -> 3.4-b603 (3.4)] Принять данное решение? [Y/n/q/?]
Это решение нужно принять (нажать Y
).
Обновить базу данных, процесссы и индексы
Внимание!
Обновление базы данных может занять длительное время.
Убрать репозиторий 3.4
из файла
/etc/apt/sources.list
и вернуть туда
стабильные репозитории ARTA Synergy:
deb http://deb.arta.kz/tengri stable main contrib non-free deb http://deb.arta.kz/tengri stable-updates main contrib non-free #deb http://deb.arta.kz/tengri 3.4 main contrib non-free
Обновить список пакетов и обновить систему стандартным способом:
aptitude update aptitude install arta-synergy-synergy
Обновить базу данных, процесссы и индексы