Este artigo descreve o procedimento para substituir o serviço nativo MySQL®️ ou MariaDB®️ pré-instalado em qualquer servidor Plesk Onyx 11 CentOS 7 típico. O procedimento descreve a remoção dos binários existentes relacionados ao MySQL e os substitui por uma versão adequada dos binários Percona. Uma vez que esses binários Percona estejam em vigor, uma atualização típica de versão Incremental de vários estágios do MySQL é processada para trazer os bancos de dados existentes e os binários Percona para a versão Percona 5.7 desejada.
Expectativas de manutenção:duração e tempo de inatividade
Duração de manutenção sugerida: 90 minutos
Tempo de inatividade mínimo esperado: ~30 minutos de serviço batendo
O tempo de inatividade do serviço MySQL esperado para este procedimento é inferior a 30 minutos de disponibilidade do serviço MySQL subindo e descendo repetidamente (flupping). Esta figura pressupõe que tudo corra bem e que nenhum erro imprevisto seja encontrado. A duração de manutenção sugerida permite tempo para solução de problemas caso surja um erro, bem como 30 minutos extras no caso improvável de que todas as alterações precisem ser revertidas e o plano de manutenção seja abortado.
Visão geral das etapas de manutenção
O plano é dividido em tarefas e etapas de preparação. As tarefas de preparação devem ser concluídas antes do horário de início da janela de manutenção. As etapas são conduzidas ao longo da janela do evento de manutenção e percorrem todo o procedimento para realizar cada etapa importante do esboço.
Preparação – Tarefas de Pré-Manutenção
Essas duas tarefas importantes devem ser concluídas antes do horário de início programado da janela de manutenção:
- Copiar arquivo de configuração MySQL existente
- Faça backup de dados do banco de dados MySQL
Usamos o estágio zero neste plano para ajudar a agilizar o processo de backup dos dados do MySQL. Como a quantidade de dados que o MySQL armazenará varia muito por servidor, é uma boa prática executar uma solução de backup incremental, como rsync, prior para a janela do evento de manutenção. O Rsync fará backup da maioria dos dados estáticos enquanto o MySQL ainda estiver em execução e, em seguida, fará backup da diferença incremental assim que o MySQL for desligado para manutenção.
Copiar arquivo de configuração MySQL existente:
1) Faça uma cópia de backup do arquivo de configuração próprio existente.
cp -pv /etc/my.cnf{,.pre-percona.bak}
Backup de estágio dos dados do banco de dados MySQL:
2) Execute o seguinte rsync para clonar os dados do MySQL. [IMPORTANTE:barra final obrigatória]
rsync -vaH /var/lib/mysql{,.pre-percona}/
Observação:bancos de dados muito grandes levarão muito mais tempo para serem concluídos, portanto, planeje adequadamente.
3) Aguarde a conclusão da etapa 1 antes de iniciar a Etapa 1.
Estágio 1 – Desligar o MySQL e executar novamente a sincronização final do Rsync
O objetivo do estágio um é garantir que um backup pristine dos dados do MySQL esteja em vigor antes de continuar. Para fazer isso, é necessário parar completamente os serviços MySQL para que todos os buffers sejam gravados e nenhuma alteração adicional seja gravada no banco de dados. Uma vez parado, o rsync é executado novamente para copiar as diferenças entre os dados originais agora parados e os dados de backup de destino.
1) Desligar o serviço MySQL/MariaDB
systemctl stop mysql
2) Execute novamente o seguinte rsync para finalizar os dados clonados. [IMPORTANTE:barra final obrigatória]
rsync -vaH /var/lib/mysql{,.pre-percona}/
3) Aguarde a conclusão do rsync antes de passar para o Estágio 3.
Estágio 2 – Substituir binários MariaDB 5.5 por Percona 5.5
NOTA:MariaDB 5.5 é a versão instalada com Onyx 11 CentOS 7, então este é o ponto de partida.A substituição dos binários existentes envolve a remoção dos pacotes binários necessários do sistema usando a ferramenta de linha de comando RPM em vez do yum. Isso permite que os pacotes sejam removidos sem tocar em nenhuma das dependências vinculadas a outros pacotes do sistema. Como o Percona, como o MariaDB, é um substituto imediato para o MySQL, uma vez que os novos binários estejam em vigor, as dependências vinculadas não saberão a diferença e funcionarão normalmente.
1) Remova os pacotes MariaDB sem dependências:
rpm -e --nodeps mariadb mariadb-libs mariadb-server
2) Remova o pacote mariadb-devel (faça isso como um comando separado acima para evitar falha na remoção do pacote ausente)
rpm -e --nodeps mariadb-devel
3) Instale o repositório Percona:
yum install https://www.percona.com/redir/downloads/percona-release/redhat/percona-release-0.1-4.noarch.rpm
4) Instale o servidor Percona DB:
yum install Percona-Server-client-55 Percona-Server-server-55 Percona-Server-shared-55
5) Execute os seguintes comandos (permite que o plugin InnoDB seja carregado corretamente)
mv /var/lib/mysql/ibdata1 /var/lib/mysql/ibdata1.bak
cp -a /var/lib/mysql/ibdata1.bak /var/lib/mysql/ibdata1
mv /var/lib/mysql/ib_logfile0 /var/lib/mysql/ib_logfile0.bak
cp -a /var/lib/mysql/ib_logfile0.bak /var/lib/mysql/ib_logfile0
mv /var/lib/mysql/ib_logfile1 /var/lib/mysql/ib_logfile1.bak
cp -a /var/lib/mysql/ib_logfile1.bak /var/lib/mysql/ib_logfile1
6) Certifique-se de que não haja processos escutando na porta 3306 e elimine o processo, se houver.
netstat -tulpn | grep 3306
7) Inicie o MySQL (agora Percona 5.5)
service mysql start
8) Execute o script mysql_upgrade
mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`
9) [Opcional] Habilite a UDF do cluster Percona XtraDB no Percona Toolkit:
plesk db -e "CREATE FUNCTION fnv1a_64 RETURNS INTEGER SONAME 'libfnv1a_udf.so'"
plesk db -e "CREATE FUNCTION fnv_64 RETURNS INTEGER SONAME 'libfnv_udf.so'"
plesk db -e "CREATE FUNCTION murmur_hash RETURNS INTEGER SONAME 'libmurmur_udf.so'"
10) Reinicie o MySQL para concluir o procedimento de atualização
systemctl start mysql
Estágio 3 – Mudar o pacote Plesk MySQL para o pacote Plesk MySQL Community
A execução do Percona no Plesk é uma configuração não suportada. Por esta razão, para satisfazer as conexões de dependência entre o pacote Plesk MySQL e os novos binários Percona, é necessário mudar a versão Plesk MySQL para usar a versão Plesk MySQL Community. A mudança é necessária para facilitar o upgrade e o downgrade das versões do Percona.
1) Crie o arquivo de configuração do repositório necessário:
printf '[PLESK_17_8_11-dist] %s\nname=PLESK_17_5_3 dist %s\nbaseurl=http://autoinstall.plesk.com/PSA_17.8.11/dist-rpm-CentOS-7-x86_64/ %s\nenabled=1 %s\ngpgcheck=1 %s\n' > /etc/yum.repos.d/plesk178.repo
2) Instale o pacote “plesk-mysql-server-community” do novo repositório:
yum install plesk-mysql-server-community
3) Desative o arquivo /etc/yum.repos.d/plesk178.repo, pois não é mais necessário:
mv /etc/yum.repos.d/plesk178.repo{,.disabled}
4) Remova o pacote "plesk-mysql-server" sem tocar nas dependências.
rpm -e --nodeps plesk-mysql-server
O Percona agora deve estar instalado e funcionando na versão base 5.5. Os próximos estágios são idênticos ao processo típico de atualização do MySQL, onde os binários são atualizados e, em seguida, as atualizações do esquema são feitas manualmente usando a ferramenta mysql_upgrade.
Atualize o Percona 5.5 para 5.6
1) Pare o serviço MySQL:
service mysql stop
2) Remova os pacotes Percona 55 sem dependências:
rpm -e --nodeps Percona-Server-shared-55 Percona-Server-client-55 Percona-Server-server-55
3) Instalar pacotes Percona 56
yum install Percona-Server-shared-56 Percona-Server-client-56 Percona-Server-server-56
4) Certifique-se de que não haja processos escutando na porta 3306 e elimine o processo, se houver.
netstat -tulpn | grep 3306
5) Inicie o serviço MySQL:
service mysql start
6) Atualizar tabelas MySQL:
mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`
Estágio 4 – Atualize o Percona 5.6 para 5.7
1) Pare o serviço MySQL:
service mysql stop
2) Remova os pacotes Percona 56 sem dependências:
rpm -e --nodeps Percona-Server-shared-56 Percona-Server-client-56 Percona-Server-server-56
3) Instalar pacotes Percona 57
yum install Percona-Server-shared-57 Percona-Server-client-57 Percona-Server-server-57
4) Certifique-se de que não haja processos escutando na porta 3306 e elimine o processo, se houver.
netstat -tulpn | grep 3306
5) Inicie o serviço MySQL:
service mysql start
6) Atualizar tabelas MySQL:
mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`
Etapa 5 – Finalizando a atualização
O sistema agora deve estar executando o Percona 5.7 e totalmente acessível por aplicativos. Nesse estágio, todos os sites ou aplicativos que usam um banco de dados devem ser testados e quaisquer erros investigados.