MariaDB 10.5 is in juni 2020 uitgebracht als GA. In de release is ondersteuning toegevoegd voor Amazon S3 of een openbare of private cloud van derden die S3 API ondersteunt. Het beschikt ook over een geavanceerde verwerking van privileges, waardoor de granulariteit wordt uitgebreid, waardoor een DBA bijvoorbeeld beperkte privileges kan bieden aan een bepaalde databasegebruiker voor een strikte beveiliging van uw database.
MariaDB 10.5 pochte ook zijn verbeteringen met de InnoDB-opslagengine voor zijn prestaties en enkele nieuwe variabelen worden ook gepresenteerd, maar belangrijke verouderde variabelen zijn gemarkeerd als verouderd of volledig verwijderd. Houd er bijvoorbeeld rekening mee dat innodb_buffer_pool_instances in MariaDB 10.5 al is gemarkeerd als verouderd, terwijl het is ingesteld om te worden verwijderd in versie 10.6. Als je nieuwsgierig bent naar de reden die ze zeggen, kijk dan eens naar MDEV-15058.
Met al deze wijzigingen is het het beste om deze blog te plaatsen met een handleiding voor het upgraden van MariaDB 10.4 naar MariaDB 10.5. We bekijken stap voor stap waar u rekening mee moet houden bij het upgraden.
Dingen die je nodig hebt voordat je gaat upgraden
Het is niet altijd de beste methode om uw database live in productie te upgraden zonder een test uit te voeren. Dit eenvoudige jargon definieert de term die we SNAFU noemen. Je zou Google kunnen raken om de term te vinden, maar in principe is het altijd het beste om de normale gezondheid niet aan te raken, vooral de normaal functionerende systemen. Het is echter niet altijd dat uw systeem constant moet blijven, het moet worden geüpgraded om beveiligingspatches, bugfixes en geavanceerde functies te gebruiken die aanwezig zijn in de nieuwere versie-releases. In dit geval hebt u dus altijd een failback-mechanisme gepland en ingesteld voorafgaand aan de upgrade. Als het upgraden van het systeem problemen oplost die niet zijn opgemerkt, kan dit gevolgen hebben voor uw bedrijf.
Maak altijd een back-up van uw database
Maak in dit geval altijd een back-up van uw gegevens. U kunt tools gebruiken zoals mariabackup of mydumper of, als u een ClusterControl-gebruiker bent, de Database Backup Management-tool. Als u nog niet weet welk type back-up u nodig heeft, moet u wellicht de best practices controleren bij het maken van een back-up.
Test...Test... en test opnieuw
Terwijl back-up gegevens levert om te voeden voor het geval je de primaire staat moet herstellen als er onvoorziene problemen optreden, moet het upgraden naar een belangrijke release eerst worden getest in een ontwikkelings- of staging-machine. Voor grote ondernemingen is het gebruikelijk om altijd een regressietest uit te voeren op een gerichte QA-omgeving of staging-omgeving waar eerst de upgrade van de databaseservers naar de hoofdversie moet worden uitgevoerd. Alle systemen van applicatie en database moeten doorgaan met een regressietest of een reeks QA-testen totdat alles is geslaagd. Het is geen goed idee om een testcase van uw applicatie naar de databasesystemen te vereenvoudigen en gewoon uit te sluiten dat alles in orde is, zolang de database niet crasht of slechts een korte tijd is bewezen waar de test is kortom, een zeer eenvoudige test die slechts een klein percentage van uw totale systeem dekt. Het testen van uw upgrade eerst op een staging- of QA-omgeving moet zo geprioriteerd worden dat het de perfect goede vorm van uw applicatie moet bereiken zonder de zakelijke kant en ook de gebruikers die uw applicatie gaan gebruiken te beïnvloeden, dan pas laat te beseffen dat de database-upgrade zorgt ervoor dat uw systeem zich abnormaal gedraagt als gevolg van wijzigingen die u nog niet heeft ontdekt.
Een herstelprocedure voorbereiden
Alles moet worden gepland tijdens de upgrade van uw database. Wanneer back-up beschikbaar is en testen sterke en veelbelovende resultaten opleveren, voelt het altijd veilig en voorspelbaar voor het geval er onverwachte uitdagingen optreden tijdens het upgraden van uw MariaDB-productiedatabaseservers. Schrijf en bereid in dit geval altijd een procedure voor die ervoor zorgt dat alles soepel en naadloos weer normaal wordt.
Als uw onderhoudsperiode niet te lang is, kan het voorbereiden van een herstelprocedure met geautomatiseerde tools zoals Ansible, Chef, Puppet, SaltStack of Terraform een goede keuze zijn voor de herstelprocedure. Het minimaliseert menselijke fouten en biedt snelheid en flexibiliteit om vitale taken uit te voeren. Hoewel het schade kan veroorzaken als er een enkele fout optreedt als het automatiseringsscript faalt, betekent dat ook dat u de mogelijkheid dat dit kan gebeuren niet kunt negeren. Daarom wijst dit er ook op dat het herstellen naadloos moet zijn en goed is getest, zodat het in een geldige procedure kan worden hersteld.
MariaDB-upgradeprocedures
Het upgraden van je MariaDB-versie 10.4 naar 10.5 is geen gedoe, maar wel eenvoudig. Hieronder staan de stappen die u kunt volgen om te upgraden naar de nieuwste versie van MariaDB 10.5.
Maak uw opslagplaats gereed
Het is begrijpelijk dat je MariaDB 10.4 hebt, dus het is een aanname dat er een huidige repository is in je huidige MariaDB-serverknooppunten. Anders kun je toch een repository toevoegen en dat is heel eenvoudig.
Ubuntu/Debian
Voor op Ubuntu/Debian gebaseerde systemen, voor een bestaande mariadb-repository, kunt u de repository bewerken. U kunt mogelijk controleren of de bestaande repository's zich in uw host bevinden of dat er ergens een bestaande MariaDB-repository is. Om dat te doen, gewoon,
$ grep ^[^#] /etc/apt/sources.list /etc/apt/sources.list.d/*
Normaal gesproken heb je een opslagplaats voor mariadb.list. In mijn setup in Ubuntu 18.0 (Bionic) ziet dit er als volgt uit:
[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
Voer gewoon de volgende opdrachtregel uit om de MariaDB 10.5-repository toe te voegen,
. /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
Voordat MariaDB-pakketten kunnen worden geïnstalleerd, moeten de te installeren pakketten worden geïmporteerd met de openbare GPG-sleutel die wordt gebruikt om de digitale handtekeningen van de pakketten in hun repository te verifiëren. U kunt uw apt-sleutels als volgt controleren,
$ apt-key list |grep -C2 -i 'mariadb'
Als sleutels niet worden geïmporteerd,
$ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db
of voor nieuwere op Ubuntu/Debian gebaseerde versies, d.w.z. beginnend met Debian 9 (Stretch), en Debian Unstable (Sid), en Ubuntu 16.04 LTS (Xenial),
$ sudo apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
Als je klaar bent, ren je gewoon
$ sudo apt update
CentOS/RHEL
Voor CentOS/RHEL, als je een bestaande repository hebt, kun je het bestand gewoon toevoegen of bewerken. Anders is het voldoende om de onderstaande regels voor de MariaDB 10.5-repository toe te voegen aan de repositoryvereisten (zie mariadb.repo). Ik heb bijvoorbeeld de volgende mariadb.repo in mijn CentOS 8.0-host.
[[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
U kunt controleren of de MariaDB-repository is ingeschakeld en goed werkt:
[[email protected] ~]# dnf --disablerepo=* --enablerepo=mariadb_10.5 repolist
repo id repo name status
mariadb_10.5 MariaDB Repository For 10.5 83
Upgrade uw MariaDB-pakketten
Upgraden met MariaDB is heel eenvoudig. Zorg ervoor dat u eerst de MariaDB-server correct hebt afgesloten.
Voor een drukke en live productieserver moet je ervoor zorgen dat je geen inkomende verbindingen hebt en dat de vuile pagina's correct naar de schijf worden gewist. Voordat u de server afsluit, kunt u het opschonen van vuile pagina's agressief instellen met uw Innodb-opslagengine, zodat alle vuile pagina's allemaal worden gewist en het afsluitproces sneller wordt,
set global innodb_max_dirty_pages_pct = 0;
Bewaak de vuile pagina's dan met het volgende,
$ mysqladmin ext -i10 | grep dirty
| Innodb_buffer_pool_pages_dirty | 0 |
| Innodb_buffer_pool_bytes_dirty | 0 |
Als het goed is, sluit u de MariaDB-instantie af,
systemctl stop mariadb
Voor een master/replica-databasecluster is het een goede gewoonte om uw upgrade altijd op de replica('s) te starten. Zorg er dus vóór de upgrade en na het afsluiten voor dat u het volgende hebt toegevoegd aan uw my.cnf-configuratiebestand,
[mysqld]
….
skip-slave-start
Hiermee kunt u voorkomen dat de replicatiethreads automatisch worden gestart wanneer de MariaDB-server wordt gestart. Dit geeft u meer veiligheid en voorkomt verdere fouten bij de replicatie. Start de replicatiethreads pas handmatig als ze klaar zijn met de volgende instructie,
START SLAVE;
Ubuntu/Debian
Upgraden met op Ubuntu/Debian gebaseerde systemen is vrij eenvoudig,
sudo apt install --only-upgrade mariadb-server mariadb-client mariadb-backup mariadb-common
Natuurlijk niet leveren met de -y optie, zodat u de volgende pakketten kunt bekijken om te worden bijgewerkt.
Centos/RHEL
Net als bij op Ubuntu/Debian gebaseerde systemen, levert de CentOS/RHEL ook geen problemen op voor het upgraden van uw huidige MariaDB 10.4-versie. U kunt de volgende opdracht hieronder uitvoeren om aan het proces te voldoen,
$ dnf --disablerepo=* --enablerepo=mariadb_10.5 upgrade Mariadb-server MariaDB-client MariaDB-backup MariaDB-common Mariadb-shared
Na installatie/pakketupgrade
Zodra de pakketten zijn geüpgraded. Aangezien dit een belangrijke upgrade is, moet u niet vergeten de daemon opnieuw te laden voor systemd. Gewoon rennen,
$ systemctl daemon-reload
Nu je klaar bent, start je de mariadb-service
$ systemctl start mariadb
en voer mysqld_upgrade uit,
$ mysql_upgrade
Controleer tijdens het uitvoeren van de mysql_upgrade altijd het foutenlogboek, zodat u eventuele fouten kunt opvangen voordat u alles uitvoert en start voor uw normale bewerkingen:
tail -5f /var/log/mariadb/mariadb.log
Upgradetips voor ClusterControl-gebruikers
Aangezien ClusterControl geen grote versie-upgrade biedt, moet u bij het uitvoeren van een pakketupgrade altijd niet vergeten de automatische herstelmodi voor uw MariaDB-cluster uit te schakelen. Stel de nodes in op onderhoudsmodus zodat waarschuwingen stil zijn en er geen valse waarschuwingen worden gemeld.