So installieren Sie einen neuen Percona-Server oder ersetzen MySQL

Einführung

Percona Server ist ein Drop-In-Ersatz für das MySQL-Projekt. Percona strebt eine bessere Leistung, Konsistenz und Skalierbarkeit aller Hardware an. Dieses Tutorial führt Sie durch das Ersetzen einer aktuellen MySQL- oder MariaDB-Installation durch die neueste Percona Server-Version oder durch die Neuinstallation von Percona Server auf einem neuen Droplet.

Leistungen

Percona Server bietet gegenüber einer einfachen MySQL-Installation eine Reihe von Vorteilen:

  • * XtraDB *: Einer der Hauptvorteile des Wechsels zu Percona Server ist XtraDB, eine abwärtskompatible Abzweigung der InnoDB-Engine mit erheblichen Verbesserungen bei Leistung und Effizienz. So erhalten Sie einen besseren Abfragedurchsatz von Ihrer aktuellen Hardware. Da es auf InnoDB aufbaut, werden Ihre aktuellen InnoDB-Tabellen ohne Migrationsprozesse transparent über XtraDB geladen.

  • * Stabilität und Konsistenz *: Percona Server führt unter Last eine gleichmäßigere Ausführung von http://www.percona.com/software/percona-server/benchmarks‹ durch. Dies bedeutet, dass Ihre Anwendungen weniger anfällig für zeitweilige Ausfälle oder Verlangsamungen sind.

  • * Metriken *: Percona Server verfügt über eine Reihe zusätzlicher integrierter Leistungsmetriken, mit denen Sie genau feststellen können, welche Benutzer, Tabellen, Indizes oder Abfragen Sie verlangsamen. Das Erreichen einer hervorragenden Leistung von Ihrem Server wird wissenschaftlicher und weniger von Rätselraten abhängig.

  • * PAM-Authentifizierung *: In der Regel eine für MySQL Enterprise Edition reservierte Funktion. Mit Percona Server können Sie Ihr Authentifizierungsschema an Ihren Datenbankzugriff binden.

  • * Kompatibilität *: Da der Percona-Server ein Ersatz für MySQL ist, profitieren Sie auch von den üblichen Vorteilen der weit verbreiteten Popularität von MySQL und der großen Benutzergemeinschaft. Dies bedeutet, dass jede für MySQL entwickelte Anwendung Percona Server ohne Änderungen verwenden kann.

Voraussetzungen

  • * Debian-, Ubuntu- oder CentOS-Cloud-Server *: Andere Distributionen werden derzeit nicht unterstützt. Es werden nur die CentOS-Versionen 5 und 6 unterstützt. CentOS 7 wird zum Zeitpunkt des Schreibens nicht unterstützt.

  • * Entweder ein neues Droplet oder eine aktuelle MySQL / MariaDB-Installation *: Percona Server kann entweder von Grund auf auf einem neuen Droplet oder als Ersatz für eine aktuelle MySQL / MariaDB-Installation installiert werden. Je nachdem, in welcher dieser Situationen Sie sich befinden, sind einige Schritte in diesem Artikel möglicherweise nur für einen Fall relevant und mit * (Nur neu) * oder * (Nur Ersatz) * gekennzeichnet. Alle nicht markierten Abschnitte oder Absätze sollten in beiden Fällen verwendet werden.

  • * Root-Zugriff *: Alle Befehle in diesem Artikel sollten als root ausgeführt werden.

  • * Arbeitsspeicher *: Für eine Standardinstallation benötigen Sie * mindestens 1 GB Droplet *. Andernfalls können Installationsfehler auftreten, da nicht genügend Arbeitsspeicher für die Pufferpoolzuweisung vorhanden ist. Wenn Sie ein 512-MB-Droplet mit swap space zugewiesen haben, erhalten Sie möglicherweise auch eine erfolgreiche Installation, wenn auch mit unterdurchschnittlicher Leistung.

  • * Datensicherung (nur Ersatz) *: Bevor Sie Änderungen an Ihrem Datenbankserver-Setup vornehmen, stellen Sie sicher, dass Sie über eine Sicherung aller Ihrer aktuellen Daten verfügen. In diesem Tutorial werden alle Datendateien beibehalten und nur die MySQL-Binärdateien und die zugehörigen Tools entfernt. Es ist jedoch immer ideal, eine Sicherungskopie zu erstellen, falls etwas schief geht. Wir haben eine Anzahl der Artikel hier auf DigitalOcean, die das Sichern Ihrer Datenbankdateien abdeckt.

  • * Konfigurationssicherung (nur Ersatz) *: Ebenso wird empfohlen, dass Sie eine Kopie Ihrer aktuellen MySQL / MariaDB-Konfiguration erstellen, wenn Sie eine aktuelle Installation ersetzen. Diese Datei befindet sich auf Debian / Ubuntu-Systemen und auf CentOS-Systemen unter + / etc / my.cnf +. Unter CentOS entfernt das MariaDB-Paket die Konfigurationsdatei bei der Deinstallation. Dieser Schritt ist daher auf diesen Systemen besonders wichtig.

Erster Schritt - Überprüfen der Versionen (nur Ersatz)

Percona Server-Versionen sind nur mit den entsprechenden MySQL-Versionen kompatibel. i.e. MySQL 5.6 sollte nur durch Percona Server 5.6 ersetzt werden. Der Versuch, nicht übereinstimmende Versionen zu verwenden, kann zu einer Beschädigung der Tabelle führen oder den Server am Starten hindern.

Um zu überprüfen, welche Version Sie gerade ausführen, stellen Sie zunächst mit Ihrem aktuellen root-Passwort eine Verbindung zu MySQL her:

mysql -u root -p

Dann finden Sie die aktuell installierte Version:

SHOW VARIABLES LIKE "version";

Dies sollte anzeigen, ob Sie Percona Server 5.5 oder 5.6 installieren müssen. Der Einzelfall ist, wenn Sie MariaDB 10.0 ausführen, das durch Percona Server 5.6 ersetzt werden sollte. Wenn Sie eine Version von MySQL ausführen, die älter als 5.5 ist, sollten Sie zuerst ein Upgrade von MySQL auf 5.5 oder höher durchführen, bevor Sie fortfahren.

Schritt Zwei - Entfernen von MySQL (nur Ersatz)

Bevor wir den Percona-Server installieren, müssen wir alle derzeit installierten MySQL- oder MariaDB-Pakete entfernen, da Sie nicht versuchen sollten, beide gleichzeitig auf denselben Daten auszuführen.

Sie sollten eine Sicherungskopie Ihrer Daten und Ihrer Konfigurationsdateien erstellen, bevor Sie fortfahren.

Vor der Deinstallation von MySQL wird empfohlen, den Datenbankserver anzuhalten, um eine Beschädigung der Daten zu verhindern, falls der Prozess während der Paketentfernung nicht sicher gestoppt wird:

service mysql stop

Für Debian- und Ubuntu-basierte Server müssen die MySQL-Server- und -Client-Pakete entfernt werden:

apt-get remove mysql-server mysql-client mysql-common
apt-get autoremove

Für CentOS-Systeme lautet die Standarddatenbank jetzt MariaDB, die wie folgt deinstalliert werden kann:

yum remove MariaDB-server MariaDB-client MariaDB-shared

Weitere Variationen entnehmen Sie bitte Ihrer Dokumentation zur Deinstallation.

Dritter Schritt - Installation von Percona Server

Percona Server ist wahrscheinlich nicht in den Standardrepositorys Ihrer Linux-Distribution enthalten, da Percona ihre eigenen Repos verwaltet, um sicherzustellen, dass Updates so schnell wie möglich an die Benutzer übertragen werden. Daher müssen wir die Percona APT- oder yum-Repositorys vor der Installation manuell hinzufügen. Befolgen Sie die nachstehenden Anweisungen für das Betriebssystem Ihres Servers.

Debian und Ubuntu (Apt)

Die von Percona veröffentlichten Debian- und Ubuntu-Pakete sind signiert, was bedeutet, dass APT über den neuen Signaturschlüssel informiert werden muss:

apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A

Stellen Sie vor dem nächsten Schritt sicher, dass Sie die aktuell verwendete Distribution kennen. Für Debian wird dies eine der folgenden sein:

  • drücken

  • keuchend

Ebenso sind für Ubuntu die unterstützten Distributionen:

  • klar

  • präzise

  • frech

  • vertrauenswürdig

Wenn Sie sich nicht sicher sind, welche Distributionsversion Sie verwenden, können Sie den folgenden Befehl ausführen:

lsb_release -c

Sobald Sie sicher sind, welche Distribution Sie ausführen, können Sie die neuen Percona-Repositorys hinzufügen, indem Sie die folgenden Zeilen an die Datei anhängen:

nano /etc/apt/sources.list

Fügen Sie diese Zeilen am Ende der Datei hinzu und stellen Sie dabei sicher, dass Sie "+ DIST +" durch Ihren Distributionsnamen ersetzen (dh Sie würden "* DIST " durch " wheezy " oder " trusty *" usw. ersetzen):

deb http://repo.percona.com/apt  main
deb-src http://repo.percona.com/apt  main

Nachdem Sie die Quelldatei gespeichert haben, sollten Sie die Percona-Pakete als Nächstes fixieren, um sicherzustellen, dass die Pakete von Percona immer Vorrang vor Paketen aus den Standardrepositorys Ihrer Distribution haben. Dazu erstellen wir zunächst eine neue Einstellungsdatei für APT:

touch /etc/apt/preferences.d/00percona.pref

Öffnen Sie nun diese Datei mit dem von Ihnen gewählten Texteditor (Vim, Nano usw.), fügen Sie die folgenden Zeilen hinzu und speichern Sie sie:

Package: *
Pin: release o=Percona Development Team
Pin-Priority: 1001

Sobald die Quellen hinzugefügt und angeheftet sind, kann die Paketliste aktualisiert und das Percona Server-Paket installiert werden.

  • (Nur neu) * Für ein neues Droplet wird empfohlen, das virtuelle Paket zu installieren, mit dem die vom Percona-Team empfohlene Version von Percona Server installiert wird:

apt-get update
apt-get install percona-server-server
  • (Nur Ersatz) * Beziehen Sie sich auf die MySQL- oder MariaDB-Version, die Sie zuvor gefunden haben. Verwenden Sie zum Ersetzen von Version 5.5 das Paket und für 5.6. MariaDB 10.0 sollte durch Percona Server 5.6 ersetzt werden.

apt-get update
apt-get install percona-server-server-

Wenn dieser Befehl fehlerfrei ausgeführt wird, wird Percona Server installiert und erfolgreich ausgeführt. Wenn Sie jedoch während der Installation Fehler feststellen, vergewissern Sie sich, dass Sie über ausreichend freien Speicherplatz verfügen (siehe oben, Voraussetzungen). Weitere Informationen zu Startfehlern finden Sie in der Protokolldatei von Percona Server unter.

  • (Nur neu) * Bei der Installation auf einem neuen System werden Sie möglicherweise während des Installationsvorgangs aufgefordert, ein Benutzerpasswort für die Root-Datenbank festzulegen. Es wird auch in dieser Situation empfohlen, auszuführen, um sicherzustellen, dass keine offensichtlichen Sicherheitsprobleme verbleiben:

/usr/bin/mysql_secure_installation

CentOS (Yum)

Derzeit werden nur die CentOS-Versionen 5 und 6 von Percona unterstützt. CentOS 7 wird derzeit nicht unterstützt.

Der erste Schritt für CentOS-Systeme ist die Installation der Percona-Repository-Pakete auf yum.

Für 64-Bit-CentOS-Systeme:

yum install http://www.percona.com/downloads/percona-release/percona-release-0.0-1.x86_64.rpm

Für 32-Bit-CentOS-Systeme:

yum install http://www.percona.com/downloads/percona-release/percona-release-0.0-1.i386.rpm

Sobald dies abgeschlossen ist, können wir die richtige Version des Percona Server-Pakets installieren.

  • (Nur neu) * Bei der Neuinstallation wird empfohlen, das Paket Percona Server 5.6 zu verwenden:

yum install Percona-Server-client-56 Percona-Server-server-56
  • (Nur Ersatz) * Verwenden Sie beim Ersetzen einer früheren Installation die Versionsnummer aus dem obigen Abschnitt zur Versionsprüfung, um das richtige Paket von oder auszuwählen. MariaDB 10.0 sollte durch Percona Server 5.6 ersetzt werden.

yum install Percona-Server-client- Percona-Server-server-

Sie werden aufgefordert, die Pakete zu akzeptieren und anschließend den Paketsignierungsschlüssel zu akzeptieren - stimmen Sie beiden zu. Nach kurzer Zeit sollte die Installation ohne Fehler abgeschlossen sein. Wenn Sie während der Installation Transaktionsfehler erhalten, stellen Sie sicher, dass Sie alle MySQL / MariaDB-Pakete vollständig entfernt haben, bevor Sie es erneut versuchen.

Nach der Installation des Pakets muss der Server als letzter Installationsschritt gestartet werden:

service mysql start

Wenn Sie einen Fehler bezüglich der PID-Datei erhalten, kann der Server nicht gestartet werden. Wie in den Voraussetzungen erwähnt, tritt dies häufig auf Servern mit niedrigem Arbeitsspeicher auf, bei denen die Speicherbegrenzung die Zuweisung des XtraDB-Pufferpools verhindert. Ist dies nicht der Fall, suchen Sie nach weiteren Fehlermeldungen und stellen Sie sicher, dass Sie die Versionen von MariaDB und Percona Server ordnungsgemäß abgeglichen haben.

  • Hinweis: * Wenn Sie ein Upgrade von MariaDB durchführen und eine solche Fehlermeldung erhalten:

Can't read dir of '/etc/my.cnf.d' (Errcode: 2 - No such file or directory)
Fatal error in defaults handling. Program aborted
Starting MySQL (Percona Server). ERROR! The server quit without updating PID file (/var/lib/mysql/percona-centos.pid).

Sie sollten in der Lage sein, das entsprechende Verzeichnis mit dem Befehl zu erstellen. Versuchen Sie dann, den Server zu starten.

  • (Nur neu) * Bei der Installation auf einem neuen System wird Ihrem Percona Server-Root-Benutzer kein Kennwort zugewiesen, und daher sind Ihre Datenbanken nicht sicher. Es wird daher dringend empfohlen, ein neues Kennwort und andere Sicherheitsoptionen einzurichten. Wenn Sie aufgefordert werden, das aktuelle Root-Passwort einzugeben, drücken Sie einfach die Eingabetaste.

/usr/bin/mysql_secure_installation

Vierter Schritt - Konfiguration

Wenn Sie eine vorhandene MySQL-Installation ersetzt haben, sollten Sie eine Kopie Ihrer Konfigurationsdatei erstellt haben, die jetzt zurückkopiert werden kann. Sie können diesen Abschnitt wahrscheinlich überspringen, obwohl Sie die Beispieleinstellungen möglicherweise nützlich finden.

Wenn Sie Percona Server jedoch auf einem neuen Droplet installieren, müssen Sie eine Konfigurationsdatei hinzufügen, da Percona Server derzeit mit Standardwerten ausgeführt wird, die für Ihr Droplet möglicherweise nicht optimal sind. Bevor wir die Konfiguration zum ersten Mal aktualisieren, wird empfohlen, Percona Server zu stoppen, da sich der Speicherort der PID-Datei möglicherweise ändert. Für zukünftige Konfigurationsänderungen sollte ein einfacher Neustart ausreichen, nachdem Änderungen vorgenommen wurden.

service mysql stop

Unten finden Sie eine Beispielkonfigurationsdatei für ein 1-GB-Droplet mit einem aus Kompatibilitätsgründen relativ kleinen Pufferpool. Unter Debian / Ubuntu sollte in diese Datei geschrieben werden. Unter CentOS sollte in diese Datei geschrieben werden. Die Datei enthält Inline-Kommentare, um zu erklären, was die verschiedenen Abschnitte tun.

# Generated by Percona Configuration Wizard (http://tools.percona.com/) version REL5-20120208
[mysql]

# CLIENT #
# Configure default options for clients
port                           = 3306

[mysqld]

# GENERAL #
# Choose user for execution, default storage engine and location of the PID file
user                           = mysql
default-storage-engine         = InnoDB
pid-file                       = /var/lib/mysql/mysql.pid

# MyISAM #
# Setup MyISAM options with a minimal config, as InnoDB is our default engine
key-buffer-size                = 32M
myisam-recover                 = FORCE,BACKUP

# SAFETY #
# Enforce limits and safety checks
max-allowed-packet             = 16M
max-connect-errors             = 1000000
innodb                         = FORCE

# DATA STORAGE #
# Select location for database files
datadir                        = /var/lib/mysql/

# BINARY LOGGING #
# Enable and setup the binary log
log-bin                        = /var/lib/mysql/mysql-bin
expire-logs-days               = 14
sync-binlog                    = 1

# CACHES AND LIMITS #
# Configure reasonable default limits throughout Percona Server
tmp-table-size                 = 32M
max-heap-table-size            = 32M
query-cache-type               = 0
query-cache-size               = 0
max-connections                = 500
thread-cache-size              = 50
open-files-limit               = 65535
table-definition-cache         = 1024
table-open-cache               = 2048

# INNODB #
# Setup InnoDB/XtraDB engine a 300MB buffer pool and 32MB log file size
innodb-flush-method            = O_DIRECT
innodb-log-files-in-group      = 2
innodb-log-file-size           = 32M
innodb-flush-log-at-trx-commit = 1
innodb-file-per-table          = 1
innodb-buffer-pool-size        = 300M

# LOGGING #
# Setup log file locations for error log and slow log
# Slow log may be disabled on production setups to prevent extra IO
log-error                      = /var/lib/mysql/mysql-error.log
log-queries-not-using-indexes  = 1
slow-query-log                 = 1
slow-query-log-file            = /var/lib/mysql/mysql-slow.log

Für größere Droplets oder als Ausgangspunkt für Ihre angepasste Konfigurationsdatei können Sie den Percona-Konfigurationsassistenten verwenden, um eine geeignete Basis für Ihre Konfigurationsdatei zu erstellen.

Nachdem Sie die Datei gespeichert haben, können Sie Percona Server neu starten:

service mysql restart

Wenn der Server mit dieser Konfiguration nicht startet, reduzieren Sie den Wert auf einen kleineren Wert und wiederholen Sie den obigen Befehl.

Fünfter Schritt - Überprüfung Ihrer Installation

Nachdem Percona Server nun installiert ist und ausgeführt wird, können wir mit ein paar abschließenden Überprüfungen sicherstellen, dass alles wie geplant verlaufen ist. Stellen Sie zunächst über den Client eine Verbindung zur Datenbank her, und melden Sie sich mit Ihrem Datenbank-Root-Benutzerkennwort an:

mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 45
Server version: 5.5.38-35.2 Percona Server (GPL), Release 35.2, Revision 674

Copyright (c) 2009-2014 Percona LLC and/or its affiliates
Copyright (c) 2000, 2014, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Ab sofort sehen wir, dass die Serverversion im Verbindungstext nun Percona Server angibt. Mit dem Befehl SHOW VARIABLES können wir weitere Details zur installierten Version abrufen:

SHOW VARIABLES LIKE "version%";
+-------------------------+--------------------------------------------------+
| Variable_name           | Value                                            |
+-------------------------+--------------------------------------------------+
| version                 | 5.5.38-35.2                                      |
| version_comment         | Percona Server (GPL), Release 35.2, Revision 674 |
| version_compile_machine | x86_64                                           |
| version_compile_os      | debian-linux-gnu                                 |
+-------------------------+--------------------------------------------------+
4 rows in set (0.00 sec)

Die genauen Werte und Versionen können in Ihrer Installation variieren. Der entscheidende Punkt ist jedoch, dass Percona Server jetzt ausgeführt wird und nicht mehr MySQL.

Als nächstes können wir überprüfen, ob wir XtraDB für alle InnoDB-basierten Tabellen nutzen:

SHOW STORAGE ENGINES\G

Das Ergebnis zeigt diesen Block unter anderem:

...

*************************** 8. row ***************************
     Engine: InnoDB
    Support: DEFAULT
    Comment: Percona-XtraDB, Supports transactions, row-level locking, and foreign keys
Transactions: YES
         XA: YES
 Savepoints: YES

...

9 rows in set (0.00 sec)

Das Kommentarfeld in der Antwort zeigt, dass die XtraDB-Engine als Engine für InnoDB-basierte Tabellen geladen wurde. Als letzte Überprüfung wird empfohlen, dass Sie sicherstellen, dass alle Ihre Datenbanken und Tabellen auf dem neuen Server ordnungsgemäß gelesen werden.

Wenn alle diese Prüfungen bestanden wurden, wird Percona Server jetzt erfolgreich ausgeführt. Wenn eine dieser Prüfungen jedoch nicht erfolgreich war, vergewissern Sie sich, dass Sie alle vorherigen Schritte dieses Lernprogramms ordnungsgemäß ausgeführt haben, und achten Sie insbesondere darauf, dass die MySQL-Versionsnummern den Versionsnummern von Percona Server entsprechen.

Nächste Schritte

Da Percona Drop-In-kompatibel mit MySQL ist, können alle DigitalOcean-Tutorials zu MySQL problemlos mit Percona Server verwendet werden. Wenn Sie eine Verbindung zur Datenbank herstellen, funktionieren Ihre Anwendungen weiterhin auf die gleiche Weise, auch wenn die Leistung von Percona Server und XtraDB jetzt hoffentlich gesteigert wird.

MySQL-Befehle funktionieren genauso wie zuvor.