MariaDB
 sql >> Datenbank >  >> RDS >> MariaDB

So aktualisieren Sie von MariaDB 10.4 auf MariaDB 10.5

MariaDB 10.5 wurde im Juni 2020 als GA veröffentlicht. In der Version wurde Unterstützung für Amazon S3 oder alle öffentlichen oder privaten Clouds von Drittanbietern hinzugefügt, die die S3-API unterstützen. Es verfügt auch über eine ausgeklügelte Handhabung von Berechtigungen, die seine Granularität erweitern, was es beispielsweise einem DBA ermöglicht, einem bestimmten Datenbankbenutzer eingeschränkte Berechtigungen für eine strenge Sicherheit Ihrer Datenbank zu gewähren.

MariaDB 10.5 rühmte sich auch seiner Verbesserungen mit der InnoDB-Speicher-Engine für seine Leistung und einige neue Variablen werden ebenfalls vorgestellt, aber wichtige veraltete Variablen wurden als veraltet markiert oder vollständig entfernt. Beachten Sie beispielsweise, dass in MariaDB 10.5 innodb_buffer_pool_instances bereits als veraltet markiert wurde, während es in Version 10.6 entfernt werden soll. Wenn Sie neugierig sind, welchen Grund sie nennen, sehen Sie sich bitte MDEV-15058 an.

Bei all diesen Änderungen ist es am besten, diesen Blog bereitzustellen, um eine Anleitung zum Upgrade von MariaDB 10.4 auf MariaDB 10.5 bereitzustellen. Wir erklären Ihnen Schritt für Schritt, was Sie beim Upgrade beachten müssen.

Was Sie vor dem Upgrade benötigen

Es ist nicht immer die beste Methode, Ihre Datenbank live in der Produktion zu aktualisieren, ohne einen Test durchzuführen. Dieser einfache Jargon definiert den Begriff, den wir SNAFU nennen. Sie können Google verwenden, um den Begriff zu finden, aber im Grunde ist es immer am besten, die normale Gesundheit nicht anzufassen, insbesondere die normal funktionierenden Systeme. Es ist jedoch nicht immer so, dass Ihr System konstant bleiben muss, es muss aktualisiert werden, um Sicherheitspatches, Fehlerbehebungen und erweiterte Funktionen zu nutzen, die in den neueren Versionsversionen vorhanden sind. In diesem Fall haben Sie also immer einen Failback-Mechanismus geplant und vor dem Upgrade eingerichtet. Falls die Aktualisierung des Systems unbeachtet gebliebene Probleme aufdeckt, kann dies Auswirkungen auf Ihr Unternehmen haben.

Erstellen Sie immer ein Backup Ihrer Datenbank

Führen Sie in diesem Fall immer eine Datensicherung durch. Sie können Tools wie mariabackup oder mydumper verwenden oder, wenn Sie ein ClusterControl-Benutzer sind, das Database Backup Management-Tool verwenden. Wenn Sie noch nicht darauf vorbereitet sind, welche Art von Sicherung Sie benötigen, müssen Sie möglicherweise die bewährten Verfahren zum Erstellen einer Sicherung überprüfen.

Testen ... Testen ... und erneut testen

Während die Sicherung Daten bereitstellt, die eingespeist werden können, falls Sie bei unvorhergesehenen Problemen den ursprünglichen Zustand wiederherstellen müssen, muss ein Upgrade auf eine Hauptversion zuerst auf einem Entwicklungs- oder Staging-Rechner getestet werden. Für große Unternehmen ist es üblich, immer einen Regressionstest in einer gezielten QA-Umgebung oder Staging-Umgebung durchzuführen, in der das Upgrade der Datenbankserver auf die Hauptversion zuerst angewendet werden muss. Alle Systeme aus Anwendung und Datenbank müssen einen Regressionstest oder eine Reihe von QA-Tests durchlaufen, bis alles bestanden ist. Es ist keine gute Idee, einen Testfall Ihrer Anwendung zu vereinfachen, indem Sie auf die Datenbanksysteme gehen und einfach ausschließen, dass alles in Ordnung ist, solange die Datenbank nicht abstürzt oder nur für kurze Zeit nachgewiesen wurde, wo Test ist Kurz gesagt, ein sehr einfacher Test, der nur einen kleinen Prozentsatz Ihres Gesamtsystems abdeckt. Das Testen Ihres Upgrades zuerst in einer Staging- oder QA-Umgebung muss so priorisiert werden, dass es die perfekte Form Ihrer Anwendung erreicht, ohne die Geschäftsseite und auch die Benutzer zu beeinträchtigen, die Ihre Anwendung verwenden werden, als zu spät zu erkennen, dass das Datenbank-Upgrade erfolgt führt dazu, dass sich Ihr System aufgrund von Änderungen, die Sie noch nicht entdeckt haben, abnormal verhält.

Vorbereiten eines Wiederherstellungsverfahrens

Während des Upgrades Ihrer Datenbank muss alles geplant werden. Wann immer ein Backup verfügbar ist und Tests starke und vielversprechende Ergebnisse zeigen, fühlt es sich immer sicher und vorhersehbar an, falls beim Upgrade Ihrer MariaDB-Datenbankserver unerwartete Herausforderungen auftreten. Schreiben und bereiten Sie in diesem Fall immer ein Verfahren vor, das dafür sorgt, dass die Dinge reibungslos und nahtlos wieder normal werden.

Wenn Ihr Wartungsfenster nicht zu lang ist, kann das Vorbereiten eines Wiederherstellungsverfahrens mit automatisierten Tools wie Ansible, Chef, Puppet, SaltStack oder Terraform eine gute Wahl für das Wiederherstellungsverfahren sein. Es minimiert menschliche Fehler und bietet Geschwindigkeit und Agilität, um wichtige Aufgaben auszuführen. Obwohl es Schaden anrichten kann, falls ein einzelner Fehler auftritt, wenn das Automatisierungsskript fehlschlägt, bedeutet dies auch, dass Sie die Möglichkeit, dass dies passieren kann, nicht ignorieren können. Daher weist dies auch darauf hin, dass die Wiederherstellung nahtlos sein muss und ordnungsgemäß getestet wurde, damit sie in einem gültigen Verfahren wiederhergestellt werden kann.

MariaDB-Upgrade-Verfahren

Das Upgrade Ihrer MariaDB-Version 10.4 auf 10.5 ist kein Problem, aber dennoch unkompliziert. Unten sind die Schritte aufgeführt, die Sie befolgen können, um auf die neueste Version von MariaDB 10.5 zu aktualisieren.

Bereiten Sie Ihr Repository vor

Es ist verständlich, dass Sie MariaDB 10.4 haben, daher wird davon ausgegangen, dass es in Ihren aktuellen MariaDB-Serverknoten ein vorhandenes Repository gibt. Andernfalls können Sie trotzdem ein Repository hinzufügen, und das ist ganz einfach.

Ubuntu/Debian

Für Ubuntu/Debian-basierte Systeme können Sie für ein vorhandenes Mariadb-Repository das Repository bearbeiten. Möglicherweise können Sie überprüfen, ob sich die vorhandenen Repositorys auf Ihrem Host befinden, oder feststellen, ob es irgendwo ein vorhandenes MariaDB-Repository gibt. Dazu einfach,

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

Normalerweise haben Sie ein mariadb.list-Repository. In meinem Setup in Ubuntu 18.0 (Bionic) zeigt sich dies wie folgt:

[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

Führen Sie einfach die folgende Befehlszeile aus, um das MariaDB 10.5-Repository hinzuzufügen,

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

Bevor MariaDB-Pakete installiert werden können, müssen die zu installierenden Pakete mit dem öffentlichen GPG-Schlüssel importiert werden, der verwendet wird, um die digitalen Signaturen der Pakete in ihrem Repository zu verifizieren. Sie können Ihre apt-Schlüssel folgendermaßen überprüfen:

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

Wenn Schlüssel nicht importiert werden, 

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

oder für neuere Ubuntu/Debian-basierte Versionen, d. h. beginnend mit Debian 9 (Stretch) und Debian Unstable (Sid) und Ubuntu 16.04 LTS (Xenial),

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

Wenn Sie fertig sind, starten Sie einfach

$ sudo apt update

CentOS/RHEL

Wenn Sie für CentOS/RHEL ein vorhandenes Repository haben, können Sie die Datei einfach hinzufügen oder bearbeiten. Andernfalls reicht das Hinzufügen der folgenden Zeilen für das MariaDB 10.5-Repository aus, um die Repository-Anforderungen zu erfüllen (siehe mariadb.repo). Ich habe zum Beispiel die folgende mariadb.repo in meinem 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

Sie können überprüfen, ob das MariaDB-Repository aktiviert ist und gut funktioniert:

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

repo id                                repo name                                              status

mariadb_10.5                           MariaDB Repository For 10.5                            83

Aktualisieren Sie Ihre MariaDB-Pakete

Das Upgrade mit MariaDB ist sehr einfach. Stellen Sie sicher, dass Sie den MariaDB-Server zuerst ordnungsgemäß heruntergefahren haben.

Stellen Sie bei einem ausgelasteten und aktiven Produktionsserver sicher, dass Sie keine eingehenden Verbindungen haben und dass die fehlerhaften Seiten ordnungsgemäß auf die Festplatte geschrieben werden. Bevor Sie den Server herunterfahren, können Sie das Leeren von fehlerhaften Seiten mit Ihrer Innodb-Speicher-Engine aggressiv einstellen, sodass alle fehlerhaften Seiten gelöscht werden und der Herunterfahrvorgang beschleunigt wird,

set global innodb_max_dirty_pages_pct = 0;

Überwache dann die schmutzigen Seiten mit dem Folgenden,

$ mysqladmin ext -i10 | grep dirty

| Innodb_buffer_pool_pages_dirty                         | 0                                                |

| Innodb_buffer_pool_bytes_dirty                         | 0                                                |

Sobald alles gut ist, fahren Sie die MariaDB-Instanz herunter,

systemctl stop mariadb

Bei einem Master-/Replikat-Datenbankcluster empfiehlt es sich, das Upgrade immer auf der/den Replik(en) zu beginnen. Stellen Sie also vor dem Upgrade und nach dem Herunterfahren sicher, dass Sie Folgendes in Ihre my.cnf-Konfigurationsdatei eingefügt haben:

[mysqld]

….

skip-slave-start

Dadurch können Sie vermeiden, dass die Replikationsthreads automatisch gestartet werden, wenn der MariaDB-Server gestartet wird. Das gibt Ihnen mehr Sicherheit und vermeidet weitere Fehler bei der Replikation. Starten Sie die Replikationsthreads nur manuell, sobald Sie mit der folgenden Anweisung fertig sind,

START SLAVE;

Ubuntu/Debian

Upgrades mit Ubuntu/Debian-basierten Systemen sind ziemlich einfach,

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

Übergeben Sie natürlich nicht die Option -y, damit Sie die folgenden zu aktualisierenden Pakete überprüfen können.

Centos/RHEL

Genau wie bei Ubuntu/Debian-basierten Systemen zeigt auch CentOS/RHEL keine Probleme beim Upgrade Ihrer aktuellen MariaDB 10.4-Version. Sie können den folgenden Befehl unten ausführen, um den Vorgang abzuschließen,

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

Nach Installation/Paket-Upgrade

Sobald die Pakete aktualisiert wurden. Da es sich um ein größeres Upgrade handelt, vergessen Sie nicht, den Daemon für systemd neu zu laden. Lauf einfach,

$ systemctl daemon-reload

Da Sie nun fertig sind, starten Sie den mariadb-Dienst

$ systemctl start mariadb

 und führen Sie mysqld_upgrade aus

$ mysql_upgrade 

Beobachten Sie während der Ausführung von mysql_upgrade immer das Fehlerprotokoll, damit Sie alle Fehler abfangen können, bevor Sie alles für Ihren normalen Betrieb ausführen und starten:

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

Upgrade-Tipps für ClusterControl-Benutzer

Da ClusterControl kein Upgrade von Hauptversionen bereitstellt, vergessen Sie bei der Durchführung eines Paket-Upgrades immer nicht, die automatischen Wiederherstellungsmodi für Ihren MariaDB-Cluster zu deaktivieren. Versetzen Sie die Knoten in den Wartungsmodus, damit Warnungen stumm sind und keine falschen Warnungen benachrichtigt werden.