Donnerstag, 24. August 2023

RHEL7: MariaDB von 5.5 auf 10.3 aktualisieren

Hier wird der Weg beschrieben, wie man bei einen RHEL7 Server die MariaDB von 5.5 auf 10.3 aktualisieren kann.


5.5 -> 10.0

# Stoppen

systemctl stop mariadb

# Repo aktivieren
subscription-manager repos --enable=rhel-server-rhscl-7-rpms

# Paket installieren
yum install rh-mariadb100-mariadb-server -y

# Daten migrieren
rm -rf /var/opt/rh/rh-mariadb100/lib/mysql/
cp -r /var/lib/mysql/ /var/opt/rh/rh-mariadb100/lib/
chown -R mysql:mysql /var/opt/rh/rh-mariadb100/lib/mysql/
restorecon -R /var/opt/rh/rh-mariadb100/lib/mysql/

# Starten
systemctl start rh-mariadb100-mariadb

# Upgrade starten
scl enable rh-mariadb100 'mysql_upgrade -u root -p'

# Neuen Dienst aktivieren
systemctl enable rh-mariadb100-mariadb

# Alte DB entfernen
yum remove mariadb mariadb-server -y


10.0 -> 10.3

MariaDB103_Upgrade(){
# Version prüfen
if rpm -qa | grep -q "rh-mariadb"; then
echo "Es wurde eine MariaDB aus der RH Collection gefunden! Die Migration auf Version 10.3 wird nun gestartet."
else
echo "Ein Upgrade ist nicht möglich!"
exit
fi

MariaDB_Upgrade(){
# Parameter
oldPackage=$1
newPackage=$2
# Upgrade ankündigen
echo "$oldPackage -> $newPackage"

# Paket installieren
yum install rh-${newPackage}-mariadb-server -y
# Dienst stoppen
systemctl stop rh-${oldPackage}-mariadb
# Daten kopieren und Berechtigungen setzen
cp -r /var/opt/rh/rh-${oldPackage}/lib/mysql/ /var/opt/rh/rh-${newPackage}/lib/
chown -R mysql:mysql /var/opt/rh/rh-${newPackage}/lib/mysql/
restorecon -R /var/opt/rh/rh-${newPackage}/lib/mysql/
# Dienst starten
service rh-${newPackage}-mariadb start
# Upgrade durchführen
scl enable rh-${newPackage} -- mysql_upgrade -p
# Neuen Dienst aktivieren
systemctl enable rh-${newPackage}-mariadb
# Soft Link setzen
ln -sf /opt/rh/rh-${newPackage}/root/bin/mysql /bin/
ln -sf /opt/rh/rh-${newPackage}/root/usr/bin/mysqladmin /bin/
# Alte DB entfernen
yum remove rh-${oldPackage}-* -y
rm -rf /var/opt/rh/rh-${oldPackage}
}
# Upgrade durchführen
if [ "$(systemctl status rh-mariadb100-mariadb)" ]; then
MariaDB_Upgrade mariadb100 mariadb101
fi
if [ "$(systemctl status rh-mariadb101-mariadb)" ]; then
MariaDB_Upgrade mariadb101 mariadb102
fi
if [ "$(systemctl status rh-mariadb102-mariadb)" ]; then
yum install rh-mariadb103-mariadb-server-utils -y # Bug 1738201
MariaDB_Upgrade mariadb102 mariadb103
yum remove rh-mariadb103-mariadb-server-utils -y # Bug 1738201
fi
}
MariaDB103_Upgrade