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

Come eseguire l'aggiornamento da MariaDB 10.4 a MariaDB 10.5

MariaDB 10.5 è stato rilasciato come GA nel giugno 2020. Nella versione è stato aggiunto il supporto per Amazon S3 o qualsiasi cloud pubblico o privato di terze parti che supporta l'API S3. Dispone inoltre di una gestione sofisticata per i privilegi estendendone la granularità che consente a un DBA, ad esempio, di fornire privilegi limitati su un particolare utente del database per una maggiore sicurezza del database.

MariaDB 10.5 vantava anche miglioramenti con il motore di archiviazione InnoDB per le sue prestazioni e sono state presentate anche alcune nuove variabili, ma le principali variabili deprecate sono state contrassegnate come deprecate o completamente rimosse. Ad esempio, prendi nota che in MariaDB 10.5, innodb_buffer_pool_instances è già stato contrassegnato come deprecato mentre è impostato per essere rimosso nella versione 10.6. Se sei curioso di sapere qualsiasi motivo dicano, controlla MDEV-15058.

Con tutte queste modifiche, è meglio fornire questo blog per fornire una guida su come aggiornare MariaDB 10.4 a MariaDB 10.5. Lo faremo passo dopo passo su quali sono le cose che devi considerare per l'aggiornamento.

Cose che ti servono prima dell'aggiornamento

Non è sempre il metodo migliore per aggiornare il database in produzione senza eseguire un test. Questo semplice gergo definisce il termine che chiamiamo SNAFU. Potresti colpire Google per trovare il termine, ma in pratica è sempre meglio non toccare la salute normale, specialmente i sistemi normalmente funzionanti. Tuttavia, non è sempre necessario che il tuo sistema rimanga costante, deve essere aggiornato per usufruire di patch di sicurezza, correzioni di bug e funzionalità avanzate presenti nelle versioni più recenti. Quindi, in questo caso, hai sempre un meccanismo di failback pianificato e configurato prima dell'aggiornamento. Nel caso in cui l'aggiornamento del sistema abbia riscontrato problemi che non sono stati osservati, può avere un impatto sulla tua attività.

Crea sempre un backup del tuo database

In questo caso, fornisci sempre il backup dei tuoi dati. È possibile utilizzare strumenti come mariabackup o mydumper oppure, se si è utenti ClusterControl, utilizzare lo strumento Gestione backup database. Se non sei ancora preparato sul tipo di backup di cui hai bisogno, potresti dover controllare le best practice quando esegui un backup.

Test...Test... e test ancora

Mentre il backup fornisce dati da alimentare nel caso in cui sia necessario ripristinare il suo stato primario se si verificano problemi imprevisti, l'aggiornamento a una versione principale deve essere prima testato in una macchina di sviluppo o staging. Per le grandi aziende, è prassi comune eseguire sempre un test di regressione su un ambiente di controllo qualità mirato o un ambiente di gestione temporanea in cui è necessario prima applicare l'aggiornamento dei server di database alla versione principale. Tutti i sistemi dell'applicazione e del database devono eseguire un test di regressione o una serie di test di controllo qualità fino a quando tutto non è passato. Non è una buona idea semplificare un test case della tua applicazione che va ai sistemi di database ed escludere semplicemente che tutto va bene fintanto che il database non si arresta in modo anomalo o è stato dimostrato solo per un breve lasso di tempo in cui il test è in breve, un test molto semplice che copre solo una piccola percentuale del tuo sistema generale. Il test dell'aggiornamento prima su un ambiente di staging o QA deve avere la priorità in modo tale da ottenere la perfetta forma dell'applicazione senza influire sul lato aziendale e anche sugli utenti che utilizzeranno l'applicazione, quindi rendersi conto in ritardo che l'aggiornamento del database fa sì che il tuo sistema si comporti in modo anomalo a causa di modifiche che non hai ancora scoperto.

Preparare una procedura di ripristino

Tutto deve essere pianificato durante l'aggiornamento del database. Ogni volta che il backup è disponibile e il test rivela risultati forti e promettenti, risulta sempre sicuro e prevedibile nel caso in cui si verifichino problemi imprevisti durante l'aggiornamento dei server di database MariaDB di produzione. In questo caso, scrivi e prepara sempre una procedura che riporti le cose alla normalità senza intoppi e senza intoppi.

Se la finestra di manutenzione non è troppo lunga, preparare una procedura di ripristino utilizzando strumenti automatizzati come Ansible, Chef, Puppet, SaltStack o Terraform può essere una buona scelta per la procedura di ripristino. Riduce al minimo gli errori umani e fornisce velocità e agilità per eseguire compiti vitali. Sebbene possa danneggiarsi nel caso in cui si verifichi un singolo errore se lo script di automazione non riesce, ciò significa anche che non puoi ignorare la possibilità che ciò possa accadere. Pertanto, questo indica anche che il ripristino deve essere senza soluzione di continuità ed è stato adeguatamente testato per poter ripristinare una procedura valida.

Procedure di aggiornamento di MariaDB

L'aggiornamento di MariaDB dalla versione 10.4 alla 10.5 non è una seccatura, ma è semplice. Di seguito sono riportati i passaggi che puoi seguire per eseguire l'aggiornamento all'ultima versione di MariaDB 10.5.

Prepara il tuo archivio

È comprensibile che tu abbia MariaDB 10.4, quindi è presupposto che ci sia un repository presente nei tuoi attuali nodi del server MariaDB. Altrimenti, puoi comunque aggiungere un repository ed è semplice.

Ubuntu/Debian

Per i sistemi basati su Ubuntu/Debian, per un repository mariadb esistente, puoi modificare il repository. Potresti essere in grado di verificare se i repository esistenti sono nel tuo host o scoprire se esiste un repository MariaDB esistente da qualche parte. Per farlo, basta,

$ grep ^[^#] /etc/apt/sources.list /etc/apt/sources.list.d/*

In genere, hai un repository mariadb.list. Nella mia configurazione in Ubuntu 18.0 (Bionic), questo mostra come segue:

[email protected]:/vagrant# cat /etc/apt/sources.list.d/mariadb.list

deb [arch=amd64] http://ftp.osuosl.org/pub/mariadb/repo/10.4/ubuntu bionic main

Esegui la seguente riga di comando per aggiungere il repository MariaDB 10.5,

 . /etc/os-release

sudo echo "deb [arch=amd64] http://ftp.osuosl.org/pub/mariadb/repo/10.5/${ID} ${VERSION_CODENAME}  main" >> /etc/apt/sources.list.d/mariadb.list

Prima di poter installare i pacchetti MariaDB, è necessario che i pacchetti da installare debbano essere importati con la chiave pubblica GPG che viene utilizzata per verificare le firme digitali dei pacchetti nel loro repository. Potresti controllare le tue chiavi apt con quanto segue,

$ apt-key list |grep -C2 -i 'mariadb'

Se le chiavi non vengono importate, 

$ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db

o per le versioni più recenti basate su Ubuntu/Debian, ad esempio a partire da Debian 9 (Stretch) e Debian Unstable (Sid) e Ubuntu 16.04 LTS (Xenial),

$ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8

Una volta terminato, esegui

$ sudo apt update

CentOS/RHEL

Per CentOS/RHEL, se hai un repository esistente, puoi semplicemente aggiungere o modificare il file. In caso contrario, l'aggiunta delle righe seguenti per il repository MariaDB 10.5 sarà sufficiente per i requisiti del repository (vedi mariadb.repo). Ad esempio, ho il seguente mariadb.repo nel mio host CentOS 8.0.

[[email protected] ~]# cat /etc/yum.repos.d/mariadb.repo

[mariadb]

name = MariaDB Repository

baseurl = http://yum.mariadb.org/10.4/centos8-amd64

enabled = 1

gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

gpgcheck = 1



[mariadb_10.5]

name = MariaDB Repository For 10.5

baseurl = http://yum.mariadb.org/10.5/centos8-amd64

enabled = 1

gpgkey = https://yum.mariadb.org/RPM-GPG-KEY-MariaDB

gpgcheck = 1

Puoi verificare che se il repository MariaDB è abilitato e funziona correttamente:

[[email protected] ~]# dnf --disablerepo=* --enablerepo=mariadb_10.5 repolist 

repo id                                repo name                                              status

mariadb_10.5                           MariaDB Repository For 10.5                            83

Aggiorna i tuoi pacchetti MariaDB

L'aggiornamento con MariaDB è molto semplice. Assicurati prima di aver spento correttamente il server MariaDB.

Per un server di produzione occupato e attivo, assicurati di non avere connessioni in entrata e che le pagine sporche siano correttamente scaricate sul disco. Prima di spegnere il server, puoi impostare lo svuotamento delle pagine sporche con il tuo motore di archiviazione Innodb in modo aggressivo in modo che tutte le pagine sporche vengano svuotate e rendano il processo di spegnimento più veloce,

set global innodb_max_dirty_pages_pct = 0;

Quindi controlla le pagine sporche con quanto segue,

$ mysqladmin ext -i10 | grep dirty

| Innodb_buffer_pool_pages_dirty                         | 0                                                |

| Innodb_buffer_pool_bytes_dirty                         | 0                                                |

Una volta a posto, spegni l'istanza MariaDB,

systemctl stop mariadb

Per un cluster di database master/replica, è buona norma avviare sempre l'aggiornamento sulle repliche. Quindi, prima dell'aggiornamento e dopo lo spegnimento, assicurati di aver aggiunto quanto segue nel tuo file di configurazione my.cnf,

[mysqld]

….

skip-slave-start

Ciò consente di evitare di avviare automaticamente i thread di replica all'avvio del server MariaDB. Questo ti dà più sicurezza ed evita ulteriori errori nella replica. Avviare i thread di replica manualmente solo una volta pronti con la seguente istruzione,

START SLAVE;

Ubuntu/Debian

L'aggiornamento con sistemi basati su Ubuntu/Debian è piuttosto semplice,

sudo apt install --only-upgrade  mariadb-server mariadb-client mariadb-backup mariadb-common

Ovviamente, non fornire l'opzione -y in modo da poter rivedere i seguenti pacchetti da aggiornare.

Centos/RHEL

Come con i sistemi basati su Ubuntu/Debian, anche CentOS/RHEL non mostra problemi per l'aggiornamento della versione corrente di MariaDB 10.4. Puoi eseguire il seguente comando di seguito per rendere il processo sufficiente,

$ dnf --disablerepo=* --enablerepo=mariadb_10.5 upgrade Mariadb-server MariaDB-client MariaDB-backup MariaDB-common Mariadb-shared

Post installazione/aggiornamento del pacchetto

Una volta che i pacchetti sono stati aggiornati. Poiché si tratta di un aggiornamento importante, non dimenticare di ricaricare il demone per systemd. Corri,

$ systemctl daemon-reload

Ora che sei pronto, avvia il servizio mariadb

$ systemctl start mariadb

 ed esegui mysqld_upgrade,

$ mysql_upgrade 

Durante l'esecuzione di mysql_upgrade, monitora sempre il registro degli errori in modo da poter rilevare eventuali errori prima di eseguire e avviare tutto per le normali operazioni:

tail -5f /var/log/mariadb/mariadb.log

Suggerimenti per l'aggiornamento per gli utenti ClusterControl

Poiché ClusterControl non fornisce l'aggiornamento delle versioni principali, quando si esegue un aggiornamento del pacchetto, non dimenticare sempre di disattivare le modalità di ripristino automatico per il cluster MariaDB. Imposta i nodi in modalità di manutenzione in modo che gli avvisi siano silenziosi e non vengano notificati falsi avvisi.