Linux-Magazin_-_Januar_2019

(singke) #1

sche Abfragen performant ausführen
kann (Abbildung 1). Außerdem wurden
Module für Mongo DB und My Rocks
hinzugefügt.
Auf der Seite der SQL-Erweiterungen sind
Window Functions (Abfragen über Wer-
tebereiche), rekursive und nicht-rekur-
sive Common Table Expressions (eine
Art explizite Subqueries) und Check
Constraints neu hinzugekommen. Zu-
dem haben die Entwickler im Bereich
GIS, Json und Geo-Json neue Funktionen
hinzugefügt und beim Thema Sicherheit
und Verschlüsselung kamen weitere Ver-
besserungen hinzu.
Nicht zuletzt bietet Maria DB jetzt eigene
Konnektoren (C/ C++, JDBC, ODBC) un-
ter einer neuen Lizenz (LGPL) an. Das
ermöglicht es, diese Konnektoren ohne
Verletzung der GPL-Lizenz auch zu kom-
merziellen Zwecken einzusetzen. Zudem
wurde ein neues Tool fürs Backup – das
Mariabackup – entwickelt, das in etwa
dem MySQL Enterprise Backup entspricht
und ein Branch des bekannten Tools Xtra-
backup ist. Auch ist es jetzt möglich,
mit den Binary Logs ein Flashback der
Daten durchzuführen, also Datenände-
rungen rückgängig zu machen. Zu guter
Letzt wurden erste Vorbereitungen für die
Kompatibilität zur Datenbank von Oracle
in die Wege geleitet.


Die wichtigsten Neuerungen


in der Version 10.3


Wie bereits angedeutet, liefern die Distri-
butionen meist eine etwas ältere Maria-
DB-Version aus. An die neueste Maria
DB 10.3 heranzukommen ist jedoch kein
Hexenwerk. Man bindet einfach das
Repository des Herstellers in die Distri-
bution ein und installiert. Die Listings 1
und 2 zeigt dies exemplarisch für Ubuntu
18.04 und Centos.
Wer in den letzten Jahren die Maria DB
Release Notes aufmerksam verfolgt hat,
wird festgestellt haben, dass immer wie-
der das Stichwort Oracle-Kompatibilität
gefallen ist. Es scheint so zu sein, dass
Maria DB versucht Oracle das Wasser
abzugraben. Neben den zahlreichen klei-
nen Details, die implementiert wurden,
fallen hier besonders die Oracle Style Se-
quences auf.
Sequenzen sind Datenbankobjekte, die
auf Anfrage eine Zahl zurückliefern, die


die Datenbank nach einem bestimmten
Muster bildet. Typischerweise handelt
es sich um eine aufsteigende Integer-
Zahlenfolge, die Lücken aufweisen darf.
Bei Maria DB wurde das bisher verwirk-
licht, indem der Anwender die Funktion
»AUTO_INCREMENT« auf eine Unique-
Spalte angewandt hat. Das war jedoch
weder besonders flexibel noch Oracle-
kompatibel.
Im Unterschied dazu lässt sich eine Se-
quenz nun so beschreiben, wie es das
Listing 3 zeigt. Listing 4 zeigt, wie sich
das Ergebnis nutzen lässt.

Die aus Oracle hinlänglich bekannte Form
SELECT demo_seq.nextval;
funktioniert aber nur, wenn Maria DB
in den Oracle-Modus umgestellt wurde.
Dazu später mehr. Mit der Funktion »last-
val« lässt sich der letzte vergebene Wert
für die aktuelle Verbindung abfragen:
SELECT lastval(demo_seq);.
Zusätzlich lässt sich mit »setval« der Wert
der Sequenz ändern:

SELECT SETVAL(demo_seq, 42);

Abbildung 1: Seit Version 10.2 enthält Maria DB die Inno DB Storage Engine und kann damit auch GIS-Abfragen
performant abarbeiten.

© Knut Hebstreit, 123RF

01 # sudo apt‑get install software‑properties‑common
02 # sudo apt‑key adv ‑‑recv‑keys ‑‑keyserver hkp://keyserver.ubuntu.com:80 0xF1656F24C74CD1D8
03 # sudo add‑apt‑repository 'deb [arch=amd64,arm64,ppc64el] http://mirror.mva‑n.net/mariadb/repo/10.3/
ubuntu bionic main'
04 # sudo apt update
05 # sudo apt install mariadb‑server

Listing 1: Maria DB 10.3 unter Ubuntu installieren

01 # sudo cat > /etc/yum.repos.d/mariadb.repo <<
_EOL
02 [mariadb]
03 name = Maria DB
04 baseurl = http://yum.mariadb.org/10.3/
centos7‑amd64

05 gpgkey=https://yum.mariadb.org/
RPM‑GPG‑KEY‑Maria DB
06 gpgcheck=1
07 _EOL
08 # sudo yum install Maria DB‑server Maria
DB‑client

Listing 2: Maria DB 10.3 unter Centos imstallieren

01 SQL> CREATE SEQUENCE demo_seq
02 INCREMENT BY 3
03 MINVALUE = 8
04 MAXVALUE = 99

05 START with 10

06 ENGINE = Inno DB

07 COMMENT = 'Demo Sequence';

Listing 3: Eine Sequenz anlegen

67

http://www.linux-magazin.de

Sysadmin

Maria DB 10.3
Free download pdf