MariaDB
 sql >> Base de Dados >  >> RDS >> MariaDB

Atualizando para o Jira mais recente com a versão mais recente do servidor MariaDB


No desenvolvimento do MariaDB Server usamos o Jira da Atlassian como software de acompanhamento de problemas e projetos, mas também para planejamento. Usamos o Jira desde 2012, quando migramos do Launchpad. Nesse ponto, usamos o Jira na nuvem da Atlassian, mas alguns anos depois decidimos instalar nossa própria instância do Jira e executá-la no MariaDB Server. Já escrevi um post no blog sobre isso.

Jira em cima do MariaDB Server ainda NÃO é uma combinação suportada. Jira suporta MySQL, mas oficialmente ainda não MariaDB. É claro que queremos o maior número possível de softwares para dar suporte ao MariaDB Server para facilitar a vida de nossos clientes e usuários. Não estamos sozinhos em pensar assim. A solicitação de suporte ao MariaDB Server no Jira pode ser encontrada aqui e a solicitação mais ampla de suporte ao MariaDB Server em produtos Atlassian em geral pode ser encontrada aqui. Adicione seu voto para ter o MariaDB Server oficialmente suportado em breve. Mas o problema é que, embora não seja oficialmente suportado, a combinação de Jira e MariaDB funciona muito bem. Atualizamos para o Jira mais recente e para a versão mais recente do MariaDB recentemente.


Antes da atualização Após a atualização
SO para Jira Ubuntu 14.04 Ubuntu 18.04
SO para MariaDB Ubuntu 14.04 Ubuntu 18.04
versão do Jira 7.2.1 7.12.1
Versão do servidor MariaDB 10.1.35 10.3.9
Driver JDBC Conector MariaDB/J 2.1.2 Conector MariaDB/J 2.3.0
Servidor da Web Nginx 1.10.1 Nginx 1.14.0
Atualizar complementos do Jira

O Jira tem muitos plugins e as versões dos plugins precisam ser compatíveis com a versão do Jira que está sendo executada. Há uma ferramenta incluída no Jira, o Jira Update Check para complementos, que pode ser encontrado na URL /plugins/servlet/upm/check . Use essa ferramenta para atualizar todos os complementos para as versões que serão compatíveis com a versão do Jira para a qual você fará o upgrade.
Parar o acesso ao Jira

Vamos continuar com a atualização real. Comece tornando o Jira indisponível para os usuários, fornecendo uma página de manutenção para todos que tentarem acessar o Jira. Isso é feito facilmente com o Nginx. No local diretiva na configuração do Nginx, verifique se há um arquivo de manutenção e, se encontrado, mostre-o para todas as URLs.

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


location @maintenance {
reescrever ^(.*)$ /maintenance.html break;
}
Banco de dados e diretórios de backup

Antes de iniciar uma atualização, é claro que se deve certificar-se de que existem backups. Quando se trata do Jira, deve-se ter um backup completo do banco de dados e dos diretórios que o Jira usa para armazenar anexos e imagens de avatar do usuário. Tínhamos uma ferramenta de backup rodando no servidor produzindo backups completos diariamente. Além disso, fiz um dump de banco de dados usando o utilitário dump.

Backup de banco de dados com o utilitário de despejo:

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


Backup de anexos e avatares:

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


Copie os arquivos de backup para outro servidor caso algo dê muito errado no processo de atualização.
Atualização do SO

Nosso servidor Jira estava executando o Ubuntu 14.04 e, ao atualizar o software, também queríamos atualizar o sistema operacional. Não entrarei em detalhes da atualização do Ubuntu, mas basicamente executei do-release-upgrade duas vezes para levar o servidor para o Ubuntu 18.04. Havia algumas coisas que eu tinha que fazer. Eu tive que criar o arquivo /etc/update-manager/release-upgrades.d/unauth.cfg e adicionar o seguinte. Isso foi para permitir bibliotecas que o processo de atualização de lançamento não conseguiu autenticar, que eram bibliotecas Galera e MariaDB.

[Distro]
AllowUnauthenticated=yes


Após a atualização, remova o arquivo unauth.cfg.

No meu caso, a atualização (de 16.04 para 18.04) alterou a configuração do servidor SSH e não consegui mais SSH para o servidor. Acho que escolhi “Sim” em algum lugar que não deveria. Felizmente eu tinha acesso ao console e configurei o SSH manualmente.

O Nginx é atualizado durante a atualização do SO. Verifique executando o comando:nginx -v
Atualização do servidor MariaDB

No nosso caso tínhamos o MariaDB Server 10.1 instalado. Estas foram as etapas para obter a versão GA estável mais recente do MariaDB Server:
  • Parar MariaDB Server 10.1:sudo service mysql stop
  • Desinstalar 10.1:sudo apt remove mariadb-server
  • Adicione um repositório MariaDB Server 10.2. Usarei o script de configuração do repositório mariadb.com:
    curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s — –mariadb-server-version=mariadb-10.2
    Para mais informações sobre o script do repositório, consulte a documentação.
  • Instalar 10.2:sudo apt install mariadb-server
  • Verifique se o MariaDB Server 10.2 está em execução e funciona
  • Parar MariaDB:sudo service mysql stop
  • Desinstalar 10.2:sudo apt remove mariadb-server
  • Adicione um repositório MariaDB Server 10.2. Vou usar novamente o script de configuração do repositório mariadb.com:
    curl -sS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s — –mariadb-server-version=mariadb-10.3
  • Instalar 10.3:sudo apt install mariadb-server
  • Verifique se o MariaDB 10.3 está em execução e funciona. Verifique se datadir em /etc/mysql/my.cnf está apontando para o diretório onde você tem seus arquivos de banco de dados
JDBC, MariaDB Connector/atualização J

Antes de passar para a atualização do Jira, vamos atualizar o driver JDBC primeiro para não precisar reiniciar o Jira várias vezes. A atualização do MariaDB Connector/J é simples. Pegue a versão mais recente do Connector/J em downloads.mariadb.com, coloque-a no diretório lib do Jira e remova a antiga:

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

Atualização do Jira

Por fim, atualize o Jira com o instalador do Jira:
  • O instalador do Jira está disponível aqui:https://www.atlassian.com/software/jira/download
  • Backup da configuração do jira:sudo tar -zcvf conf20180909.tar.gz /opt/atlassian/jira/conf
  • Parar Jira:sudo service jira stop
  • Iniciar atualização:sudo ./atlassian-jira-software-7.12.1-x64.bin
  • Siga as instruções do instalador
  • Tente iniciar o Jira:sudo service jira start (que não funcionará desde que o server.xml foi substituído)

Como dito na última etapa, o Jira não inicia porque o instalador substituiu o arquivo de configuração server.xml. Agora você precisa alterá-lo de volta para sua configuração. Uma maneira fácil de fazer isso é fazer uma diferença entre o server.xml que você tinha antes e este novo. Quando a configuração estiver definida, inicie o Jira.

Lembre-se também de remover (ou renomear) o arquivo maintenance.html usado pelo Nginx, caso você tenha usado essa forma de colocar o Jira em modo de manutenção.

Depois de ter o Jira funcionando novamente, tudo funcionou bem. Descobrimos alguns dias depois que havia uma coisa que não funcionava como antes. Usamos o Tableau para geração de relatórios e instalamos o complemento “All-in-One Tableau Connector for Jira”. Acontece que esse complemento gerou consultas SQL SELECT que tinham a coluna ROWS nelas. ROWS é uma palavra reservada em 10.3, portanto, ao solicitar uma coluna com esse nome, deve-se dar um backtick no nome, ou seja, ´ROWS´. Felizmente, a empresa por trás desse complemento também queria garantir que o complemento funcionasse para nós e, assim que descobrimos o motivo, eles nos forneceram uma nova versão do complemento algumas horas depois.

Há mais uma coisa que eu tinha que fazer. Estávamos usando uma versão de backup anterior que não é compatível com o MariaDB Server 10.3. Recomendamos que você use o MariaDB Backup para seus backups. O tópico merece um post separado no blog e falarei sobre isso um pouco mais tarde.

Desde nossa atualização em setembro, a versão mais recente do Jira está funcionando o tempo todo em cima da versão mais recente do MariaDB atendendo aos usuários do Jira do MariaDB.