Mysql
 sql >> Database >  >> RDS >> Mysql

Come sostituire MySQL con Percona su Plesk CentOS 7

Questo articolo illustra la procedura per sostituire il servizio nativo MySQL®️ o MariaDB®️ preinstallato su qualsiasi server Plesk Onyx 11 CentOS 7 tipico. La procedura delinea la rimozione dei binari esistenti relativi a MySQL e li sostituisce con una versione adeguata dei binari Percona. Una volta installati questi binari Percona, viene elaborato un tipico aggiornamento multistadio della versione MySQL incrementale per portare i database esistenti e i binari Percona alla versione Percona 5.7 desiderata.

Aspettative di manutenzione:durata e tempi di fermo

Durata della manutenzione consigliata: 90 minuti
Tempo di inattività minimo previsto: ~30 minuti di servizio sbattimento

Il tempo di inattività del servizio MySQL previsto per questa procedura è inferiore a 30 minuti in cui la disponibilità del servizio MySQL aumenta e diminuisce ripetutamente (flapping). Questa cifra presuppone che tutto vada liscio e non si verifichino errori imprevisti. La durata della manutenzione suggerita consente tempo per la risoluzione dei problemi in caso di errore, nonché 30 minuti in più nell'improbabile eventualità che tutte le modifiche debbano essere annullate e il piano di manutenzione interrotto.

Panoramica delle fasi di manutenzione

Il piano è suddiviso in attività e fasi di preparazione. Le attività di preparazione devono essere completate prima dell'ora di inizio della finestra di manutenzione. Le fasi vengono eseguite durante la finestra dell'evento di manutenzione e illustrano l'intera procedura per completare ogni fase importante dello schema.

Preparazione:attività preliminari alla manutenzione

Queste due importanti attività devono essere completate prima dell'ora di inizio programmata della finestra di manutenzione:

  • Copia il file di configurazione MySQL esistente
  • Backup in fase dei dati del database MySQL

Utilizziamo la fase zero in questo piano per accelerare il processo di backup dei dati MySQL. Poiché la quantità di dati che MySQL conterrà varia notevolmente a seconda del server, è buona norma eseguire una soluzione di backup incrementale, come rsync, prima alla finestra dell'evento di manutenzione. Rsync eseguirà il backup della maggior parte dei dati statici mentre MySQL è ancora in esecuzione e quindi eseguirà il backup della differenza incrementale una volta che MySQL verrà spento per manutenzione.

Copia il file di configurazione MySQL esistente:
1) Crea una copia di backup del file di configurazione personale esistente.

cp -pv /etc/my.cnf{,.pre-percona.bak}

Backup in fase dei dati del database MySQL:

2) Esegui il seguente rsync per clonare i dati MySQL. [IMPORTANTE:barra finale richiesta]

rsync -vaH /var/lib/mysql{,.pre-percona}/

Nota:il completamento di database molto grandi richiederà molto più tempo, quindi pianificare di conseguenza.

3) Attendi il completamento della fase 1 prima di iniziare la fase 1.

Fase 1 – Arresta MySQL e riesegui Rsync Final Sync

Lo scopo della prima fase è garantire un backup incontaminato dei dati MySQL prima di procedere. Per ottenere ciò, è necessario arrestare completamente i servizi MySQL in modo che tutti i buffer vengano scritti e nessuna modifica aggiuntiva venga scritta nel database. Una volta interrotto, rsync viene eseguito nuovamente per copiare le differenze tra i dati pristine ora interrotti e i dati di backup di destinazione.

1) Spegni il servizio MySQL/MariaDB

systemctl stop mysql

2) Eseguire nuovamente la seguente rsync per finalizzare i dati clonati. [IMPORTANTE:barra finale richiesta]

rsync -vaH /var/lib/mysql{,.pre-percona}/

3) Attendi il completamento della rsync prima di passare alla Fase 3.

Fase 2 – Sostituisci i binari di MariaDB 5.5 con Percona 5.5

NOTA:MariaDB 5.5 è la versione installata con Onyx 11 CentOS 7, quindi questo è il punto di partenza.

La sostituzione dei binari esistenti implica la rimozione dei pacchetti binari necessari dal sistema utilizzando lo strumento della riga di comando RPM invece di yum. Ciò consente di rimuovere i pacchetti senza toccare nessuna delle dipendenze che si collegano ad altri pacchetti di sistema. Dal momento che Percona, come MariaDB, è un sostituto drop-in di MySQL, una volta che i nuovi binari sono a posto, le dipendenze collegate non riconosceranno la differenza e funzioneranno normalmente.

1) Rimuovere i pacchetti MariaDB senza dipendenze:

rpm -e --nodeps mariadb mariadb-libs mariadb-server

2) Rimuovi il pacchetto mariadb-devel (fai questo come un comando separato dall'alto per evitare errori di rimozione fai al pacchetto mancante)

rpm -e --nodeps mariadb-devel

3) Installa repository Percona:

yum install https://www.percona.com/redir/downloads/percona-release/redhat/percona-release-0.1-4.noarch.rpm

4) Installa il server DB Percona:

yum install Percona-Server-client-55 Percona-Server-server-55 Percona-Server-shared-55

5) Esegui i seguenti comandi (consente al plug-in InnoDB di caricarsi correttamente)

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) Assicurati che non ci siano processi in ascolto sulla porta 3306 e interrompi il processo se presente.

netstat -tulpn | grep 3306

7) Avvia MySQL (ora Percona 5.5)

service mysql start

8) Esegui lo script mysql_upgrade

mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`

9) [Facoltativo] Abilita Percona XtraDB Cluster UDF da 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) Riavvia MySQL per completare la procedura di aggiornamento

systemctl start mysql

Fase 3 – Passare dal pacchetto Plesk MySQL al pacchetto Plesk MySQL Community

L'esecuzione di Percona su Plesk è una configurazione non supportata. Per questo motivo, per soddisfare le connessioni di dipendenza tra il pacchetto Plesk MySQL ei nuovi binari Percona, è necessario passare dalla versione Plesk MySQL all'utilizzo della versione Plesk MySQL Community. La modifica è necessaria per facilitare l'aggiornamento e il downgrade delle versioni di Percona.

1) Crea il file di configurazione del repository necessario:

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) Installa il pacchetto "plesk-mysql-server-community" dal nuovo repository:

yum install plesk-mysql-server-community

3) Disabilita il file /etc/yum.repos.d/plesk178.repo poiché non è più necessario:

mv /etc/yum.repos.d/plesk178.repo{,.disabled}

4) Rimuovi il pacchetto "plesk-mysql-server" senza toccare le dipendenze.

rpm -e --nodeps plesk-mysql-server

Ora Percona dovrebbe essere installato e funzionante sulla versione base 5.5. Le fasi successive sono identiche al tipico processo di aggiornamento di MySQL in cui vengono aggiornati i binari, quindi gli aggiornamenti dello schema vengono eseguiti manualmente utilizzando lo strumento mysql_upgrade.

Aggiorna Percona da 5.5 a 5.6

1) Arresta il servizio MySQL:

service mysql stop

2) Rimuovere i pacchetti Percona 55 senza dipendenze:

rpm -e --nodeps Percona-Server-shared-55 Percona-Server-client-55 Percona-Server-server-55

3) Installa i pacchetti Percona 56

yum install Percona-Server-shared-56 Percona-Server-client-56 Percona-Server-server-56

4) Assicurati che non ci siano processi in ascolto sulla porta 3306 e interrompi il processo se presente.

netstat -tulpn | grep 3306

5) Avvia il servizio MySQL:

service mysql start

6) Aggiorna le tabelle MySQL:

mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`

Fase 4 – Aggiorna Percona 5.6 a 5.7

1) Arresta il servizio MySQL:

service mysql stop

2) Rimuovere i pacchetti Percona 56 senza dipendenze:

rpm -e --nodeps Percona-Server-shared-56 Percona-Server-client-56 Percona-Server-server-56

3) Installa i pacchetti Percona 57

yum install Percona-Server-shared-57 Percona-Server-client-57 Percona-Server-server-57

4) Assicurati che non ci siano processi in ascolto sulla porta 3306 e interrompi il processo se presente.

netstat -tulpn | grep 3306

5) Avvia il servizio MySQL:

service mysql start

6) Aggiorna le tabelle MySQL:

mysql_upgrade -uadmin -p`cat /etc/psa/.psa.shadow`

Fase 5 – Completamento dell'aggiornamento

Il sistema dovrebbe ora eseguire Percona 5.7 ed essere completamente accessibile dalle applicazioni. In questa fase, tutti i siti o le applicazioni che utilizzano un database devono essere testati e gli eventuali errori esaminati.