Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Dies ist ein erster Entwurf und noch nicht als fertige Anleitung zu verstehen.

Dieser Artikel enthält wichtige Informationen zum Umstieg das neue mariadb110-Paket.

Vorbemerkungen

Unter eisfair ist es möglich, verschiedene Versionslinien der Datenbanksysteme mysql und mariadb parallel zu installieren und zu betreiben. Derzeit sind dies folgende eisfair-Pakete:

  • mysql4112mysql4122: MySQL 4.1.1222 (EOL)
  • mysql5173: MySQL 5.1.73 (EOL)
  • mariadb55: MariaDB: 5.5.x (EOL)
  • mariadb100: MariaDB 10.0.x (EOL)
  • mariadb102: MariaDB 10.2.x (EOL)
  • mariadbdb103mariadb103: MariaDB 10.3.x
  • mariadb100: MariaDB 11.0.x

Upgrades werden nur innerhalb einer Versionslinie vorgenommen, so dass eine Umstieg auf eine andere Versionslinie manuell vorzunehmen ist, was hier im folgenden an einem Beispiel beschrieben werden soll.

...

Jede Versionslinie der Datenbanksysteme besitzen jedoch eigene systemweite Konfigurationsdatei, Socket, Datenbankverzeichnis und Datenbankbackupverzeichnis:

DatenbankKonfigurationsdateiSocket

Datenbankverzeichnis

(konfigurierbar)

Datenbankbackupverzeichnis

(konfigurierbar)

mysql4112
mysql4122/etc/mysql/
my4112
my4122.cnf

/run/mysql/

4112

4122/mysql.sock

/srv/mysql/
4112
4122/srv/mysql_backup/
4112
4122
mysql5173/etc/mysql/my5173.cnf/run/mysql/5173/mysql.sock/srv/mysql/5173/srv/mysql_backup/5173
mariadb55/etc/mysql/my55.cnf/run/mysql/55/mysql.sock/srv/mysql/55/srv/mysql_backup/55
mariadb100/etc/mysql/my100.cnf/run/mysql/100/mysql.sock/srv/mysql/100/srv/mysql_backup/100
mariadb102/etc/mysql/my102.cnf/run/mysql/102/mysql.sock/srv/mysql/102/srv/mysql_backup/102
mariadb103/etc/mysql/my103.cnf/run/mysql/103/mysql.sock/srv/mysql/103

/srv/mysql_backup/103

mariadb110/etc/mysql/my110.cnf/run/mysql/110/mysql.sock/srv/mysql/110/srv/mysql_backup/110

Die Links /etc/my.cnf und /run/mysql/mysql.sock zeigen jeweils auf die Standard-Datenbankversion, also diejenige, auf die ohne zusätzliche Parameter mit Datenbankprogrammen zugegriffen werden kann, z. B.:

...

Nun sind alle lokalen Prozesse wie z. B. owncloud,  nextcloud oder nextcloudein Webserver, die lokal auf die Datenbanken z. B. über Cronjobs zugreifen, bis zum Abschluss der Arbeiten zu beenden. Dies geschieht durch "Abschalten" dieser Pakete in deren Konfiguration. Externe Clients dürfen nun auch nicht mehr auf die Datenbanken zugreifen.

...

  • Port: 3307
  • Socket: /run/mysql/103/mysql.sock
  • Konfigurationsdatei: /etc/mysql/my103.cnf
  • Datenbankverzeichnis: /srv/mysql/103
  • Datenbankbackupverzeichnis: /srv/mysql_backup/103

Datenbanksystem mariadb102 stoppen und Datenbankbackups erstellen

Nun stoppen wir das mariadb102-Datenbanksystem

Bis auf

Code Block
languagebash
MARIADB103_CONNECT_PORT='3307'         # MARIADB103 remote port  default=3306
                                       # /etc/init.d/mariadb102 stop

...

connect port is also uniq indentifier

MARIADB103_DATADIR='/srv/mysql/103'    # empty: default /srv/mysql/103 or datadir

MARIADB103_BACKUP_TARGET='/srv/mysql_backup/103'
                                       # backup target directory

können die weiteren Einstellungen für mariadb103 aus der mariadb102-Konfiguration (manuell) übernommen werden.

Datenbankbackups erstellen und Datenbanksystem mariadb102 stoppen

Über den Menüpunkt "Administration of services|Database server administration|MariaDB 10.2 server administration|MariaDB Tools|Backup database" sind für alle vorhandenen Datenbanken, also auch der systeminternen Datenbank mysql, ein aktuelles Backup zu erstellen.

Anschließend wird das mariadb102-Datenbanksystem gestoppt:

Code Block
languagebash
# /usr/sbin/service stop mariadb102

Kopieren/Importieren der Datenbankbackups in das neue Datenbanksystem

...

Code Block
languagebash
# cp -a /srv/mysql_backup/102/* /srv/mysql_backup/103

...


Warning

Backups der systeminternen Datenbank mysql bis einschließlich mariadb103 sind mit mariadb104 und höher nicht kompatibel und müssen vor dem Import mit einem Editor nachbearbeitet werden. Ist auf dem eisfair-Server das mc- und xz-Paket installiert, kann das Backup mit dem integrierten Editor (F4) bearbeitet werden. Wie im folgenden Beispiel eines Backups der mysql-Datenbank aus mariadb102 sind vor dem ersten DROP die beiden roten Zeilen zu ergänzen und danach abzuspeichern (F2):


-- MySQL dump 10.16 Distrib 10.2.24-MariaDB, for Linux (i686)
--
-- Host: localhost Database: mysql
-- ------------------------------------------------------
-- Server version 10.2.24-MariaDB


/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;


DROP TABLE IF EXISTS `global_priv`;

DROP VIEW IF EXISTS `user`;


--
-- Table structure for table `..........`
--

DROP TABLE IF EXISTS `..........`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;

Im Menü "Administration of services|Database server administration|MariaDB 10.3 server administration|MariaDB Tools|Restore database " importieren wir nun über "Restore database" die eben erstellten Datenbankbackups in die neue Datenbankversion und führen nun noch ein Skript zur Durchführung von notwendigen Anpassungen der Datenbanken an die neue mariadb/mysql-Version aus:

...

languagebash

...

anschließend noch den Punkt "Initial database update" aus, welches die Migration der mysql-Datenbank auf MariaDB 10.3 durchführt. Hierbei können durchaus etliche "Errors" auftauchen - bei einer erneuten Ausführung des Menüpunktes sollten keine Fehlermeldungen mehr erscheinen.

mariadb103 als neues Standard-Datenbanksystem setzen

Um mariadb103 als neues Standard-datenbanksystem Datenbanksystem zu setzen, muss dieses noch auf den Port 3306 umgesetzt werden, nachdem vorher mariadb102 auf einen anderen freien Port umgestellt wurde:

...

und auch der Link /run/mysql/mysql.sock zeigt auf diese neue Datenbankversion, für mariadb102 gelten nun folgende Grundeinstellungen:

  • Port: 3308
  • Socket: /run/mysql/102/mysql.sock
  • Konfigurationsdatei: /etc/mysql/my102.cnf
  • Datenbankverzeichnis: /srv/mysql/102
  • Datenbankbackupverzeichnis: /srv/mysql_backup/102

Anpassungen an anderen Paketen

Ist in anderen Paketen z. B. nextcloud, owncloud, phpmyadmin, , apache2_php5, apache2_php7, php7-fpm... /run/mysql/102/mysql.sock als Socket eingetragen, ist dies nun auf /run/mysql/103/mysql.sock zu ändern. Falls der Link auf das Standard-Datenbanksystem /run/mysql/mysql.sock eingetragen ist, kann das in der Regel so bleiben, da dieser nun auf auf mariadb103 zeigt. Es ist zwingend die Konfiguration eines eventuell installierten phpmyadmin55-Paketes aufzurufen, damit die Socketeinstellung korrigiert wird.

Mit folgendem Befehl können Pakete ermittelt werden, in deren Konfiguration der Socket der alten Datenbankversion gesetzt wurde:

...

Neustarten vorab gestoppter Pakete

Due Die zu Beginn der Umstellung gestoppten Pakete wie nextcloud, owncloud oder owncloud ein Webserver können nun wieder gestartet werden. Auch externe Clients dürfen nun wieder das Datenbanksystem nutzen.

...