Хороший способ обновить множество пакетов с минимальным временем простоя MySQL.

Хороший способ обновить множество пакетов с минимальным временем простоя MySQL.

Если я выполню следующую команду:

apt list --upgradable

затем есть множество пакетов, которые необходимо обновить:

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]

Раньше, когда мы обновляли все пакеты с помощью apt upgrade, мы замечали, что MySQL выходил из строя, и нам приходилось ждать, пока все пакеты будут обновлены, прежде чем MySQL перезагрузится. Это занимало несколько минут, и все веб-сайты на этом сервере выходили из строя, ожидая перезагрузки MySQL.

Итак, как можно минимизировать время простоя MySQL при обновлении всех пакетов на сервере?

Например, я рассматриваю возможность обновления только пакетов MySQL с помощью следующих команд:

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

а затем, после обновления пакетов MySQL, обновите все остальные пакеты с помощью простой apt upgradeкоманды.

Хороший ли это подход к минимизации времени простоя MySQL?

решение1

Обычно я использую пакет для обновления рабочих серверов, выделенных для ядра базы данных hold, чтобы предотвратить их обновление до тех пор, пока у меня не будет достаточно времени для тестирования обновления в средах разработки и/или промежуточных средах.

Это можно сделать aptтак:

sudo apt-mark hold {package}

Это позволяет устанавливать все остальные обновления для системы, не нарушая при этом что-либо в базе данных. Когда вы будете готовы обновить MySQL, вы можете снять удержание следующим образом:

sudo apt-mark unhold {package}

Преимущество этого метода в том, что обновления и исправления безопасности можно применять к серверу еженедельно, тогда как обновления базы данных выполняются только во время запланированных периодов обслуживания каждый квартал. (Если, конечно, не нужно выпустить что-то действительно важное).

Связанный контент