MariaDB
 sql >> Baza danych >  >> RDS >> MariaDB

Uaktualnianie do najnowszej wersji Jira z najnowszą wersją serwera MariaDB

Przy tworzeniu MariaDB Server używamy Jira Atlassian jako oprogramowania do śledzenia problemów i projektów, ale także do planowania. Używamy Jira od 2012 roku, kiedy to przeprowadziliśmy migrację z Launchpada. W tym momencie korzystaliśmy z Jira w chmurze Atlassian, ale kilka lat później zdecydowaliśmy się zainstalować własną instancję Jira i uruchomić ją na serwerze MariaDB Server. Wcześniej napisałem o tym wpis na blogu.

Jira na górze MariaDB Server NIE jest jeszcze obsługiwaną kombinacją. Jira obsługuje MySQL, ale oficjalnie jeszcze nie MariaDB. Oczywiście chcemy, aby jak najwięcej oprogramowania obsługiwało MariaDB Server, aby ułatwić naszym klientom i użytkownikom. Nie jesteśmy sami z myśleniem w ten sposób. Prośba o obsługę MariaDB Server w Jira znajduje się tutaj, a szersze żądanie obsługi MariaDB Server w produktach Atlassian można znaleźć tutaj. Oddaj swój głos, aby mieć nadzieję, że wkrótce zostanie oficjalnie obsługiwany serwer MariaDB. Ale chodzi o to, że pomimo tego, że nie jest oficjalnie wspierane, połączenie Jira i MariaDB działa świetnie. Niedawno zaktualizowaliśmy do najnowszej wersji Jira i najnowszej wersji MariaDB.

Przed aktualizacją Po aktualizacji
OS dla Jira Ubuntu 14.04 Ubuntu 18.04
OS dla MariaDB Ubuntu 14.04 Ubuntu 18.04
Wersja Jira 7.2.1 7.12.1
Wersja serwera MariaDB 10.1.35 10.3.9
Sterownik JDBC Złącze MariaDB/J 2.1.2 Złącze MariaDB/J 2.3.0
Serwer sieciowy Nginx 1.10.1 Nginx 1.14.0
Zaktualizuj dodatki Jira

Jira ma wiele wtyczek, a wersje wtyczek muszą być kompatybilne z uruchomioną wersją Jira. W Jira znajduje się narzędzie Jira Update Check dla dodatków, które można znaleźć pod adresem URL /plugins/servlet/upm/check . Użyj tego narzędzia, aby zaktualizować wszystkie dodatki do wersji, które będą obsługiwane w wersji Jira, do której zamierzasz uaktualnić.

Zatrzymaj dostęp do Jira

Przejdźmy do faktycznej aktualizacji. Zacznij od uniemożliwienia użytkownikom dostępu do Jira, udostępniając stronę konserwacji wszystkim, którzy próbują uzyskać dostęp do Jira. Można to łatwo zrobić za pomocą Nginx. W lokalizacji dyrektywy w konfiguracji Nginx, sprawdź plik konserwacji i jeśli zostanie znaleziony, pokaż go dla wszystkich adresów URL.

...
location / {
if (-f $document_root/maintenance.html) {
return 503;
}
...
error_page 503 @maintenance;

lokalizacja @maintenance {
przepisz ^(.*)$ /maintenance.html break;
}

Kopia zapasowa bazy danych i katalogów

Przed rozpoczęciem aktualizacji należy oczywiście upewnić się, że istnieją kopie zapasowe. W przypadku Jira należy mieć pełną kopię zapasową bazy danych i katalogów, których Jira używa do przechowywania załączników i obrazów awatarów użytkowników. Na serwerze działało narzędzie do tworzenia kopii zapasowych, które codziennie tworzyło pełne kopie zapasowe. Ponadto wykonałem również zrzut bazy danych za pomocą narzędzia zrzutu.

Kopia zapasowa bazy danych za pomocą narzędzia zrzutu:

$ mysqldump -u username -p databasename > jiradb20180907.sql
$ tar -zcvf jiradb20180907.tar.gz jiradb20180907.sql

Kopie zapasowe załączników i awatarów:

$ tar -zcvf attachments20180908.tar.gz /data/jira/data/attachments/
$ tar -zcvf avatars20180908.tar.gz /data/jira/data/avatars/

Skopiuj pliki kopii zapasowej na inny serwer na wypadek, gdyby coś poszło nie tak w procesie aktualizacji.

Aktualizacja systemu operacyjnego

Nasz serwer Jira działał pod kontrolą Ubuntu 14.04 i podczas aktualizacji oprogramowania chcieliśmy również zaktualizować system operacyjny. Nie będę wchodził w szczegóły aktualizacji Ubuntu, ale w zasadzie dwukrotnie wykonałem aktualizację do wydania, aby uzyskać serwer do Ubuntu 18.04. Musiałem zrobić kilka rzeczy. Musiałem stworzyć plik /etc/update-manager/release-upgrades.d/unauth.cfg i dodać następujący. Miało to umożliwić bibliotekom, których proces aktualizacji wydania nie mógł uwierzytelnić, czyli bibliotekom Galera i MariaDB.

[Distro]
AllowUnauthenticated=yes

Po aktualizacji usuń plik unauth.cfg.

W moim przypadku aktualizacja (z 16.04 do 18.04) zmieniła konfigurację serwera SSH i nie mogłem już SSH do serwera. Chyba wybrałem „Tak” gdzieś, gdzie nie powinienem. Na szczęście miałem dostęp do konsoli i ręcznie skonfigurowałem SSH.

Nginx jest aktualizowany podczas aktualizacji systemu operacyjnego. Sprawdź, uruchamiając polecenie:nginx -v

Aktualizacja serwera MariaDB

W naszym przypadku mieliśmy zainstalowany MariaDB Server 10.1. Oto kroki, aby uzyskać najnowszą stabilną wersję GA serwera MariaDB Server:

  • Zatrzymaj serwer MariaDB Server 10.1:zatrzymanie usługi sudo mysql
  • Odinstaluj 10.1:sudo apt usuń serwer mariadb
  • Dodaj repozytorium MariaDB Server 10.2. Użyję skryptu konfiguracyjnego repozytorium mariadb.com:
    curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s — –mariadb-server-version=mariadb-10.2
    Więcej informacji na temat skryptu repozytorium można znaleźć w dokumentacji.
  • Zainstaluj 10.2:sudo apt zainstaluj serwer mariadb
  • Sprawdź, czy MariaDB Server 10.2 działa i działa
  • Zatrzymaj MariaDB:sudo service mysql stop
  • Odinstaluj 10.2:sudo apt usuń serwer mariadb
  • Dodaj repozytorium MariaDB Server 10.2. Ponownie użyję skryptu konfiguracyjnego repozytorium mariadb.com:
    curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s — –mariadb-wersja-serwera=mariadb-10.3
  • Zainstaluj 10.3:sudo apt zainstaluj serwer mariadb
  • Sprawdź, czy MariaDB 10.3 działa i działa. Sprawdź, czy katalog danych w /etc/mysql/my.cnf wskazuje na katalog, w którym masz pliki bazy danych
Aktualizacja JDBC, MariaDB Connector/J

Przed przejściem do aktualizacji samej Jira zaktualizujmy najpierw sterownik JDBC, aby nie trzeba było kilkakrotnie restartować Jira. Aktualizacja MariaDB Connector/J jest prosta. Pobierz najnowszą wersję Connector/J z downloads.mariadb.com, umieść ją w katalogu lib Jira i usuń starą:

$ wget https://downloads.mariadb.com/Connectors/java/connector-java-2.3.0/mariadb-java-client-2.3.0.jar
$ mv /opt/atlassian/jira/lib/mariadb-java-client-2.1.2.jar ~
$ mv mariadb-java-client-2.3.0.jar /opt/atlassian/jira/lib/

Aktualizacja Jira

Na koniec zaktualizuj Jira za pomocą instalatora Jira:

  • Instalator Jira jest dostępny tutaj:https://www.atlassian.com/software/jira/download
  • Kopia zapasowa konfiguracji jira:sudo tar -zcvf conf20180909.tar.gz /opt/atlassian/jira/conf
  • Zatrzymaj Jira:zatrzymaj usługę sudo jira
  • Rozpocznij aktualizację:sudo ./atlassian-jira-software-7.12.1-x64.bin
  • Postępuj zgodnie z instrukcjami instalatora
  • Spróbuj uruchomić Jira:sudo service jira start (która nie będzie działać od czasu zastąpienia server.xml)

Jak wspomniano w ostatnim kroku, Jira nie uruchomi się, ponieważ instalator zastąpił plik konfiguracyjny server.xml. Teraz musisz to zmienić z powrotem na swoją konfigurację. Prostym sposobem na to jest zrobienie różnicy między server.xml, który miałeś wcześniej, a tym nowym. Po skonfigurowaniu uruchom Jira.

Pamiętaj również o usunięciu (lub zmianie nazwy) pliku maintenance.html używanego przez Nginx, na wypadek, gdybyś użył tego sposobu, aby przełączyć Jira w tryb konserwacji.

Po ponownym uruchomieniu Jira wszystko działało dobrze. Kilka dni później dowiedzieliśmy się, że jest jedna rzecz, która nie działała tak jak wcześniej. Używamy Tableau do raportowania i zainstalowaliśmy dodatek „All-in-One Tableau Connector for Jira”. Okazało się, że ten dodatek wygenerował zapytania SQL SELECT, które zawierały w sobie kolumnę ROWS. ROWS jest słowem zastrzeżonym w wersji 10.3, więc pytając o kolumnę o takiej nazwie, należy odwrócić nazwę, tj. 'ROWS'. Na szczęście firma stojąca za tym dodatkiem również chciała się upewnić, że dodatek działa dla nas, a gdy znaleźliśmy przyczynę, dostarczyła nam nową wersję dodatku kilka godzin później.

Jest jeszcze jedna rzecz, którą musiałem zrobić. Korzystaliśmy z poprzedniej wersji kopii zapasowej, która nie jest zgodna z MariaDB Server 10.3. Zalecamy korzystanie z kopii zapasowej MariaDB do tworzenia kopii zapasowych. Temat zasługuje na osobny wpis na blogu, do którego zajmę się nieco później.

Od czasu naszego uaktualnienia we wrześniu, najnowsza wersja Jira jest cały czas uruchomiona na bazie najnowszej wersji MariaDB obsługującej użytkowników Jira MariaDB.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Wskazówki dotyczące migracji z MySQL Replication do MySQL Galera Cluster 4.0

  2. Jak NOT RLIKE działa w MariaDB

  3. Jak działa LN() w MariaDB

  4. Jak zautomatyzować klaster Galera za pomocą ClusterControl CLI

  5. ClusterControl — Zaawansowane zarządzanie kopiami zapasowymi — mariabackup Część II