MariaDB
 sql >> Database >  >> RDS >> MariaDB

Aggiornamento all'ultima versione di Jira con l'ultima versione di MariaDB Server

Nello sviluppo di MariaDB Server utilizziamo Jira di Atlassian come software di rilevamento dei problemi e dei progetti, ma anche per la pianificazione. Utilizziamo Jira dal 2012, quando siamo migrati da Launchpad. A quel punto abbiamo utilizzato Jira nel cloud di Atlassian, ma un paio di anni dopo abbiamo deciso di installare la nostra istanza di Jira ed eseguirla su MariaDB Server. In precedenza ho scritto un post sul blog a riguardo.

Jira su MariaDB Server NON è ancora una combinazione supportata. Jira supporta MySQL, ma ufficialmente non ancora MariaDB. Ovviamente vogliamo che il maggior numero possibile di software supporti MariaDB Server per rendere più facile per i nostri clienti e utenti. Non siamo soli a pensare in questo modo. La richiesta per supportare MariaDB Server in Jira si trova qui e la richiesta più ampia per supportare MariaDB Server nei prodotti Atlassian in generale si trova qui. Aggiungi il tuo voto per ottenere presto il supporto ufficiale di MariaDB Server. Ma il fatto è che, anche se non è ufficialmente supportato, la combinazione di Jira e MariaDB funziona alla grande. Di recente abbiamo aggiornato all'ultima Jira e all'ultima versione di MariaDB.

Prima dell'aggiornamento Dopo l'aggiornamento
OS per Jira Ubuntu 14.04 Ubuntu 18.04
OS per MariaDB Ubuntu 14.04 Ubuntu 18.04
Versione Jira 7.2.1 7.12.1
Versione MariaDB Server 10.1.35 10.3.9
Driver JDBC Connettore MariaDB/J 2.1.2 Connettore MariaDB/J 2.3.0
Server web Nginx 1.10.1 Nginx 1.14.0
Aggiorna i componenti aggiuntivi di Jira

Jira ha molti plug-in e le versioni dei plug-in devono essere compatibili con la versione di Jira in esecuzione. C'è uno strumento incluso in Jira, Jira Update Check per componenti aggiuntivi, che si trova nell'URL /plugins/servlet/upm/check . Usa quello strumento per aggiornare tutti i componenti aggiuntivi alle versioni che saranno supportate nella versione di Jira a cui intendi eseguire l'aggiornamento.

Interrompi l'accesso a Jira

Andiamo avanti con l'aggiornamento vero e proprio. Inizia rendendo Jira non disponibile per gli utenti, offrendo una pagina di manutenzione a tutti coloro che tentano di accedere a Jira. Questo è facile con Nginx. Nella posizione nella configurazione di Nginx, verifica la presenza di un file di manutenzione e, se trovato, mostralo per tutti gli URL.

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

location @maintenance {
riscrivi ^(.*)$ /maintenance.html interruzione;
}

Backup database e directory

Prima di iniziare un aggiornamento, ovviamente, è necessario assicurarsi che esistano i backup. Quando si tratta di Jira, si dovrebbe avere un backup completo del database e delle directory che Jira utilizza per memorizzare gli allegati e le immagini degli avatar degli utenti. Avevamo uno strumento di backup in esecuzione sul server che produceva backup completi su base giornaliera. Inoltre ho eseguito anche un dump del database utilizzando l'utilità di dump.

Backup del database con l'utilità di dump:

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

Backup di allegati e avatar:

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

Copia i file di backup su un altro server nel caso qualcosa vada terribilmente storto durante il processo di aggiornamento.

Aggiornamento del sistema operativo

Il nostro server Jira eseguiva Ubuntu 14.04 e durante l'aggiornamento del software volevamo anche aggiornare il sistema operativo. Non entrerò nei dettagli dell'aggiornamento di Ubuntu, ma in pratica ho eseguito due volte do-release-upgrade per portare il server su Ubuntu 18.04. C'erano un paio di cose che dovevo fare. Ho dovuto creare il file /etc/update-manager/release-upgrades.d/unauth.cfg e aggiungere quanto segue. Questo per consentire le librerie che il processo di aggiornamento del rilascio non poteva autenticare, che erano le librerie Galera e MariaDB.

[Distro]
AllowUnauthenticated=yes

Dopo l'aggiornamento, rimuovere il file unauth.cfg.

Nel mio caso l'aggiornamento (dal 16.04 al 18.04) ha modificato la configurazione del server SSH e non potevo più SSH sul server. Immagino di aver scelto "Sì" da qualche parte che non avrei dovuto. Fortunatamente ho avuto accesso alla console e ho configurato SSH manualmente.

Nginx viene aggiornato durante l'aggiornamento del sistema operativo. Verifica eseguendo il comando:nginx -v

Aggiornamento del server MariaDB

Nel nostro caso avevamo installato MariaDB Server 10.1. Questi sono stati i passaggi per ottenere l'ultima versione GA stabile di MariaDB Server:

  • Interrompi MariaDB Server 10.1:servizio sudo mysql stop
  • Disinstalla 10.1:sudo apt remove mariadb-server
  • Aggiungi un repository MariaDB Server 10.2. Userò lo script di configurazione del repository mariadb.com:
    curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s — –mariadb-server-version=mariadb-10.2
    Per ulteriori informazioni sullo script del repository, fare riferimento alla documentazione.
  • Installa 10.2:sudo apt install mariadb-server
  • Verifica che MariaDB Server 10.2 sia in esecuzione e funzioni
  • Interrompi MariaDB:sudo service mysql stop
  • Disinstalla 10.2:sudo apt remove mariadb-server
  • Aggiungi un repository MariaDB Server 10.2. Userò di nuovo lo script di configurazione del repository mariadb.com:
    curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s — –mariadb-server-version=mariadb-10.3
  • Installa 10.3:sudo apt install mariadb-server
  • Verifica che MariaDB 10.3 sia in esecuzione e funzioni. Verifica che datadir in /etc/mysql/my.cnf sta puntando alla directory in cui hai i tuoi file di database
Aggiornamento JDBC, connettore MariaDB/J

Prima di passare all'aggiornamento di Jira stesso, aggiorniamo prima il driver JDBC per non dover riavviare Jira più volte. L'aggiornamento di MariaDB Connector/J è semplice. Prendi l'ultima versione di Connector/J da downloads.mariadb.com, inseriscila nella directory lib di Jira e rimuovi quella vecchia:

$ 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/

Aggiornamento Jira

Infine aggiorna Jira con il programma di installazione di Jira:

  • Il programma di installazione di Jira è disponibile qui:https://www.atlassian.com/software/jira/download
  • Configurazione jira di backup:sudo tar -zcvf conf20180909.tar.gz /opt/atlassian/jira/conf
  • Stop Jira:sudo service jira stop
  • Avvia aggiornamento:sudo ./atlassian-jira-software-7.12.1-x64.bin
  • Segui le istruzioni per l'installazione
  • Prova ad avviare Jira:sudo service jira start (che non funzionerà da quando server.xml è stato sostituito)

Come detto nell'ultimo passaggio, Jira non si avvia perché il programma di installazione ha sostituito il file di configurazione server.xml. Ora devi ripristinarlo nella tua configurazione. Un modo semplice per farlo è fare una differenza tra il server.xml che avevi prima e questo nuovo. Una volta completata la configurazione, avvia Jira.

Ricorda inoltre di rimuovere (o rinominare) il file Maintenance.html utilizzato da Nginx, nel caso in cui tu abbia utilizzato questo modo per mettere Jira in modalità di manutenzione.

Dopo aver riavviato Jira, tutto ha funzionato bene. Abbiamo appreso un paio di giorni dopo che c'era una cosa che non funzionava come prima. Utilizziamo Tableau per i rapporti e abbiamo installato il componente aggiuntivo "All-in-One Tableau Connector per Jira". Si è scoperto che questo componente aggiuntivo ha generato query SQL SELECT che contenevano la colonna ROWS. RIGHE è una parola riservata in 10.3, quindi quando si chiede una colonna denominata in questo modo è necessario eseguire il backtick del nome, ad esempio 'ROWS'. Fortunatamente l'azienda dietro questo componente aggiuntivo voleva anche assicurarsi che il componente aggiuntivo funzionasse per noi e, una volta trovato il motivo, ci ha fornito una nuova versione del componente aggiuntivo un paio d'ore dopo.

C'è un'altra cosa che dovevo fare. Stavamo utilizzando una versione di backup precedente che non è compatibile con MariaDB Server 10.3. Ti consigliamo di utilizzare MariaDB Backup per i tuoi backup. L'argomento merita un post sul blog separato e ne parlerò un po' più tardi.

Dal nostro aggiornamento di settembre, l'ultima versione di Jira è stata sempre attiva e funzionante in aggiunta all'ultima versione di MariaDB al servizio degli utenti di Jira di MariaDB.