Wenn ich den folgenden Befehl ausführe:
apt list --upgradable
dann gibt es zahlreiche Pakete, die aktualisiert werden müssen:
Listing... Done
grub-common/bionic-updates 2.02-2ubuntu8.23 amd64 [upgradable from: 2.02-2ubuntu8.21]
grub-pc/bionic-updates 2.02-2ubuntu8.23 amd64 [upgradable from: 2.02-2ubuntu8.21]
grub-pc-bin/bionic-updates 2.02-2ubuntu8.23 amd64 [upgradable from: 2.02-2ubuntu8.21]
grub2-common/bionic-updates 2.02-2ubuntu8.23 amd64 [upgradable from: 2.02-2ubuntu8.21]
initramfs-tools/bionic-updates,bionic-updates 0.130ubuntu3.12 all [upgradable from: 0.130ubuntu3.11]
initramfs-tools-bin/bionic-updates 0.130ubuntu3.12 amd64 [upgradable from: 0.130ubuntu3.11]
initramfs-tools-core/bionic-updates,bionic-updates 0.130ubuntu3.12 all [upgradable from: 0.130ubuntu3.11]
intel-microcode/bionic-updates,bionic-security 3.20210216.0ubuntu0.18.04.1 amd64 [upgradable from: 3.20201110.0ubuntu0.18.04.2]
libmysqlclient20/bionic-updates,bionic-security 5.7.34-0ubuntu0.18.04.1 amd64 [upgradable from: 5.7.33-0ubuntu0.18.04.1]
libnss-systemd/bionic-updates 237-3ubuntu10.47 amd64 [upgradable from: 237-3ubuntu10.46]
libpam-systemd/bionic-updates 237-3ubuntu10.47 amd64 [upgradable from: 237-3ubuntu10.46]
libsystemd0/bionic-updates 237-3ubuntu10.47 amd64 [upgradable from: 237-3ubuntu10.46]
libudev1/bionic-updates 237-3ubuntu10.47 amd64 [upgradable from: 237-3ubuntu10.46]
linux-generic/bionic-updates,bionic-security 4.15.0.143.130 amd64 [upgradable from: 4.15.0.142.129]
linux-headers-generic/bionic-updates,bionic-security 4.15.0.143.130 amd64 [upgradable from: 4.15.0.142.129]
linux-image-generic/bionic-updates,bionic-security 4.15.0.143.130 amd64 [upgradable from: 4.15.0.142.129]
linux-libc-dev/bionic-updates,bionic-security 4.15.0-143.147 amd64 [upgradable from: 4.15.0-142.146]
mysql-client-5.7/bionic-updates,bionic-security 5.7.34-0ubuntu0.18.04.1 amd64 [upgradable from: 5.7.33-0ubuntu0.18.04.1]
mysql-client-core-5.7/bionic-updates,bionic-security 5.7.34-0ubuntu0.18.04.1 amd64 [upgradable from: 5.7.33-0ubuntu0.18.04.1]
mysql-server/bionic-updates,bionic-updates,bionic-security,bionic-security 5.7.34-0ubuntu0.18.04.1 all [upgradable from: 5.7.33-0ubuntu0.18.04.1]
mysql-server-5.7/bionic-updates,bionic-security 5.7.34-0ubuntu0.18.04.1 amd64 [upgradable from: 5.7.33-0ubuntu0.18.04.1]
mysql-server-core-5.7/bionic-updates,bionic-security 5.7.34-0ubuntu0.18.04.1 amd64 [upgradable from: 5.7.33-0ubuntu0.18.04.1]
systemd/bionic-updates 237-3ubuntu10.47 amd64 [upgradable from: 237-3ubuntu10.46]
systemd-sysv/bionic-updates 237-3ubuntu10.47 amd64 [upgradable from: 237-3ubuntu10.46]
ubuntu-advantage-tools/bionic-updates 27.0.2~18.04.1 all [upgradable from: 17]
udev/bionic-updates 237-3ubuntu10.47 amd64 [upgradable from: 237-3ubuntu10.46]
Früher, als wir alle Pakete mit aktualisierten apt upgrade
, bemerkten wir, dass MySQL ausfiel und wir warten mussten, bis alle Pakete aktualisiert waren, bevor MySQL neu gestartet wurde. Dies dauerte mehrere Minuten und alle Websites auf diesem Server fielen aus, während wir auf den Neustart von MySQL warteten.
Wie können wir also die MySQL-Ausfallzeit minimieren, während wir alle Pakete auf dem Server aktualisieren?
Ich denke beispielsweise darüber nach, nur MySQL-Pakete mit den folgenden Befehlen zu aktualisieren:
apt --only-upgrade install mysql-client-5.7
apt --only-upgrade install mysql-client-core-5.7
apt --only-upgrade install mysql-server
apt --only-upgrade install mysql-server-5.7
apt --only-upgrade install mysql-server-core-5.7
und aktualisieren Sie dann, nachdem die MySQL-Pakete aktualisiert wurden, alle anderen Pakete mit einem einfachen apt upgrade
Befehl.
Ist dies ein guter Ansatz zur Minimierung von MySQL-Ausfallzeiten?
Antwort1
Im Allgemeinen erstelle ich mit Produktionsservern, die für eine Datenbank-Engine bestimmt sind, hold
ein Paket, das deren Aktualisierung verhindert, bis ich genügend Zeit hatte, die Aktualisierung in den Entwicklungs- und/oder Staging-Umgebungen zu testen.
apt
Sie können dies folgendermaßen tun :
sudo apt-mark hold {package}
Dadurch ist es möglich, alle anderen Updates für ein System zu installieren, ohne möglicherweise etwas in der Datenbank zu beschädigen. Wenn Sie bereit sind, MySQL zu aktualisieren, können Sie die Sperre wie folgt aufheben:
sudo apt-mark unhold {package}
Das Schöne an dieser Methode ist, dass Updates und Sicherheitspatches wöchentlich auf den Server angewendet werden können, während die Datenbankupdates nur während geplanter Wartungsfenster einmal im Quartal durchgeführt werden. (Es sei denn natürlich, es muss etwas wirklich Wichtiges herausgebracht werden.)