Auf einen Blick |
|
Katalog |
System |
Kategorie |
Datenbank-Appliances |
Benutzer-Volumes |
ja |
Min. Speicher |
160 MB |
Betriebssystem |
Linux |
Fragen/Kommentare |
MYSQLR64 ist eine Datenbank-Appliance, die auf dem MySQL-Datenbankmodul (http://www.mysql.org) basiert. Sie bietet eine einfache Möglichkeit, eine Datenbank zu jeder beliebigen Anwendung hinzuzufügen. Die Appliances können auch in komplexen MYSQL-Replikationsszenarien verwendet werden. Die Appliances basieren auf MYSQL5 gestellt (CentOS 6.3/MySQL 5), sind aber auch für die Datenbankreplikation verantwortlich.
Die Datenbankreplikation ermöglicht die Replikation von Daten von einem MySQL-Datenbankserver ("Master" genannt) auf einen oder mehrere MySQL-Datenbankserver ("Slaves" genannt). Die MYSQLR64-Appliances können für die Master-Slave- wie auch für die Master-Master-Replikation und die Replikation mit mehr als zwei Mastern eingerichtet werden.
Die Replikationseinrichtung, -verwaltung und -überwachung erfolgt über eine Webschnittstelle. Die Webschnittstelle ermöglicht das einfach Starten der Replikation mit nahezu keinen Ausfallzeiten auf dem Master. Ferner kann sie zur Behebung eines Replikationsfehlers verwendet werden. Die Webschnittstelle kann für das Kopieren von Datenbanken aus älteren Datenbank-Appliances wie MYSQL und MYSQL5 verwendet werden. MYSQLR64 ermöglicht auch das problemlose Verwalten und Durchsuchen Ihrer Datenbank (basierend auf phpMyAdmin).
Die Replikation ist in einigen Fällen nützlich:
In seiner Standardkonfiguration funktioniert MYSQLR64 genau wie eine MYSQL5-Appliance mit einer Webschnittstelle für die Verwaltung. Für den Einsatz bei Replikationsszenarien benötigen Sie mindestens zwei MYSQLR64-Appliances mit einer entsprechenden Konfiguration (siehe Typische Verwendung).
MYSQLR64 speichert die Datenbank auf einem anwendungsdefinierten Volume, das auf jeder MYSQL64-Instanz konfiguriert werden kann. MYSQLR64 erstellt automatisch eine leere Datenbank, wenn es mit einem leeren Volume gestartet wird.
Name |
Aktuelle Version |
Betriebssystem |
!MySQL |
MYSQLR |
3.0.7-1 |
CentOS 6.3 |
5.5.28 |
MYSQLR64 |
3.0.7-1 |
CentOS 6.3 (64 bit) |
5.5.28 |
Wichtig! Sie sollten 32-Bit- und 64-Bit-MYSQLR-Appliances nicht mischen, wenn Sie beim Kopieren von Datenbankdateien vom Master zum Slave Replikation verwenden. Ferner sollten Sie keine Daten-Volumes aus der 32-Bit Version der Appliance mit einer 64-Bit-Version der gleichen Appliance verwenden (und umgekehrt). Zum Migrieren einer Datenbank zwischen den 32-Bit- und 64-Bit-MYSQLR-Versionen sichern Sie die Datenbanken auf einen Host und importieren Sie sie auf dem anderen Host, wie im Abschnitt Migrieren nach oder von MySQL beschrieben. Um auf den Abschnitt zuzugreifen, klicken Sie hier.
Ressource |
Minimum |
Maximum |
Standard |
CPU |
0.10 |
16 |
0.40 |
Speicher |
160 MB |
32 G |
512 MB |
Bandbreite |
1 Mbit/s |
2 Gbit/s |
250 Mbit/s |
Name |
Verz. |
Protokoll |
Description |
in |
in |
MYSQL |
Empfängt MySQL-Datenbankanfragen. |
rin |
in |
Alle |
MYSQLR64-Slave-Appliances, die die Appliance als Master verwenden, schließen an dieses Terminal an. |
ui |
in |
HTTP |
Bietet Zugriff auf die Webschnittstelle von MYSQLR64. |
log |
out |
CIFS |
Verbinden Sie sich zum Speichern von Fehlerprotokollen mit einer NAS-Appliance. Dieses Terminal kann ohne Verbindung bleiben, wenn es nicht verwendet wird. |
rout |
out |
Alle |
Stellt eine Verbindung zu einem MYSQLR64-Masterserver her. Dieses Terminal kann unverbunden gelassen werden und sollte nur in Replikationsszenarien verwendet werden. |
mon |
out |
CCE |
Sendet Leistungs- und Ressourcenverwendungsstatistik. Dieses Terminal kann unverbunden gelassen werden. |
Die Standardschnittstelle. Sie ist für Diagnostik und Fehlersuche vorgesehen (über SSH). Künftige Versionen dieser Appliance können den SSH-Zugriff möglicherweise deaktivieren.
Wichtig! Die Terminals "rin" und "rout" werden für SSH (tcp 22)- und für MYSQL (tcp 3306)-Daten verwendet. Wenn Gateways/VPN für den Anschluss an diese Terminals verwendet wird, müssen die Firewalls so konfiguriert werden, dass beide Ports zugelassen sind.
Volume |
Description |
Daten |
Volume für die Datenbankdatenspeicherung. Dieses Volume ist obligatorisch. |
binlogs |
Volume für binäre Protokolle bei Ausführung im Replikationsmodus (als Master oder Slave). Dieses Volume ist nicht obligatorisch. Wenn Sie die Appliance jedoch im Replikationsmodus verwenden (für "rpl_mode" muss ein anderer Wert als "none" festgelegt sein) und Sie kein binlogs-Volume angeben, kann die Appliance nicht starten. |
Das Daten-Volume kann optional die Datei my.cnf in seinem Verzeichnis der obersten Ebene enthalten, die MYSQL-Konfigurationsoptionen enthält Nähere Informationen hierzu finden Sie im Abschnitt "Benutzerdefinierte Konfiguration". Diese Funktion ist in MYSQLR64 1.6.1 oder höher verfügbar.
Wichtig!
Eigenschaftsname |
Typ |
Description |
auto_create |
Ganzzahl |
Ob die Datenbank erstellt werden soll, wenn sie nicht vorhanden ist. Mögliche Werte sind 1 zum Erstellen und 0, um die automatische Erstellung zu unterbinden (um im Fall von beschädigten Volumes ein versehentliches Überschreiben zu vermeiden). Wenn "0" festgelegt ist und keine Datenbank auf dem Daten-Volume vorhanden ist, startet die Appliance im Wartungsmodus. (Die Appliance wird richtig gestartet, aber der MySQL-Deamon wird nicht gestartet, sodass der Benutzer das Problem überprüfen kann.) Der Standardwert lautet 1. |
error_log_filename |
Zeichenfolge |
Name für die Fehlerprotokolldatei, relativ zum Protokolldateisystem (zum Beispiel "/mysql_logs/my.log"). Verzeichnisse im Pfad werden automatisch erstellt. Wenn leer, wird das Fehlerprotokoll zum Daten-Volume geschrieben (/mnt/data/error.log). Standard: (leer). |
error_log_level |
Zeichenfolge |
Fehlerprotokollierungsebene. Mögliche Werte sind: "error" protokolliert nur Fehler, "warn" protokolliert sowohl Warnungen als auch Fehler. Bei dieser Eigenschaft wird die Groß-/Kleinschreibung ignoriert. Standard: error |
timezone |
Zeichenfolge |
Gibt die in der Appliance verwendete Zeitzone an. Wenn diese Eigenschaft leer ist, wird die Zeitzone nicht geändert, sondern im Ist-Zustand beibehalten. Hier ist eine Liste der unterstützten Zeitzonen verfügbar. |
Wichtig!
Eigenschaftsname |
Typ |
Description |
server_id |
Ganzzahl |
Server-ID. Mögliche Werte reichen von 1 bis 10. Hier wird die ID des Servers beim Ausführen einer Replikation angegeben. Stellen Sie sicher, dass Sie eindeutige IDs für all Ihre Server einrichten, die Bestandteil der Replikation sind. Standard: 1 |
rpl_mode |
Zeichenfolge |
Replikationsmodus. Mögliche Werte sind "none" (keine Replikation), "master", "slave" und "master_and_slave" (für Multi-Master-Replikationsszenarien, wo ein Server gleichzeitig ein Master und ein Slave ist). Standard: Keine |
web_pwd |
Zeichenfolge |
Kennwort für Authentifizierung beim Zugriff auf die Webschnittstelle. Diese Eigenschaft ist optional. Wenn diese Eigenschaft festgelegt wird, wird der HTTP-Server der Appliance gestartet und die Webschnittstelle wird sowohl auf dem Terminal "ui" als auch auf der Standardschnittstelle angezeigt, wo der Zugriff über die (Web-)Anmeldeoption im CA AppLogic®-Editor möglich ist. Standard: (leer). |
Diese Funktion ist in MYSQLR64 1.6.1 oder höher verfügbar.
In MYSQLR64 ist die Verwendung einer benutzerdefinierten MYSQL-Konfigurationsdatei möglich, die zusätzliche Konfigurationsoptionen enthalten oder eine bestehende, in /etc/my.cnf festgelegte Konfiguration überschreiben kann.
Um eine benutzerdefinierte Konfiguration zu verwenden, erstellen Sie eine Datei namens my.cnf und fügen sie auf dem Daten-Volume in das Verzeichnis der obersten Ebene ein. Das Format der Datei muss der Syntax der MYSQL-Optionsdatei entsprechen, wie in der MYSQL-Dokumentation beschrieben.
Das folgende Beispiel zeigt, wie die Leistung von MYSQLR64 bei Verwendung von InnoDB gesteigert werden kann (die MYSQLR64-Standardkonfiguration wird für MyISAM optimiert). Das Beispiel beruht auf der Verwendung eines Speichers von 512 M (Standard für MYSQLR64).
[mysqld] # Shrink down MyISAM buffers key_buffer = 512K myisam_sort_buffer_size = 512K # Make InnoDB the default storage engine (optional) default-storage-engine = INNODB # Set InnoDB buffer size innodb_buffer_pool_size=350M innodb_log_file_size=128M innodb_log_buffer_size=4M innodb_thread_concurrency=8 # If you do not have too many tables use this option, so you will not have uncontrolled innodb main tablespace growth which you can’t reclaim. innodb_file_per_table=1
Wichtig! Bei Verwendung im Replikationsmodus synchronisiert MYSQLR64 auch die Datei "my.cnf" auf dem Daten-Volume, wenn Sie die Replikation reparieren/initiieren. Auf diese Weise verfügen Slave und Master über identische Daten.
MYSQLR64 stellt eine Webschnittstelle bereit, auf die sowohl vom Terminal "ui" als auch von der Standardschnittstelle aus über die (Web)-Anmeldeoption im CA AppLogic®-Editor zugegriffen werden kann. Bei Verwendung der Webschnittstelle ist eine HTTP-Authentifizierung erforderlich. Lassen Sie den Benutzernamen leer, und verwenden Sie den Wert von "web_pwd" als Kennwort. Die Schnittstelle hat die folgenden Funktionen:
Mit CA AppLogic® können Sie Master-Slave-Replikationen ohne Datenverlust zu vorhandenen MYSQLR64-Appliances hinzufügen.
So fügen Sie Master-Slave-Replikationen zu MYSQLR64-Appliances hinzu:
Mit CA AppLogic® können Sie neue MYSQLR64-Appliances ohne Datenverlust zu vorhandenen Master-Master-Replikationen hinzufügen.
So fügen Sie MYSQLR64-Appliances zu Master-Slave-Replikationen hinzu:
Mit CA AppLogic® können Sie Replikationen in einer Master-Slave-Einstellung ohne Datenverlust reparieren.
So reparieren Sie Replikationen in Master-Slave-Konfigurationen:
Mit CA AppLogic® können Sie Replikationen in einer Master-Master-Einstellung ohne Datenverlust reparieren.
So reparieren Sie Replikationen in Master-Master-Konfigurationen:
Wichtig! Alle Daten auf dieser Appliance werden vom Master aus initialisiert. Aktualisierungen der Datenbank auf der aktuellen Appliance gehen verloren, da die Replikation unterbrochen wurde. In diesem Fall müssen Sie das Problem manuell lösen.
Es gibt einen Cron-Job, der die Replikation zwischen MYSQLR64-Appliances überwacht. Falls die Replikation aktiviert wird, wird der Cron-Job alle zwei Minuten ausgeführt und sendet in den folgenden Fällen Warnungen an das Grid-Dashboard:
In solchen Fällen sollte der Benutzer das Problem manuell lösen.
Wenn die Replikation fehlschlägt, können Sie sie über die Webschnittstelle reparieren, wie im Abschnitt oben beschrieben.
Die MYSQLR64-Appliance meldet die folgenden benutzerdefinierten Zähler über das Terminal "mon".
Die folgenden Indikatoren gehören zur MySql-Indikatorgruppe:
Zählername |
Beschreibung |
Aborted Clients (Abgebrochene Clients) |
Anzahl der Clients, die vom Server abgebrochen wurden |
Aborted Connections (Abgebrochene Verbindungen) |
Anzahl der Verbindungen, die vom Server abgebrochen wurden |
Btes Received (Bytes empfangen) |
Anzahl der empfangenen Bytes |
Bytes Sent (Bytes gesendet) |
Anzahl der gesendeten Bytes |
Total Connections (Verbindungen gesamt) |
Anzahl der Verbindungen |
Questions (Fragen) |
Gesamtzahl der Fragen |
Slow Queries (Langsame Abfragen) |
Anzahl der langsamen Abfragen |
Threads Created (Threads erstellt) |
Anzahl der erstellten Threads |
Threads Connected (Threads verbunden) |
Anzahl der verbundenen Threads |
Threads Running (Ausgeführte Threads) |
Anzahl derzeit ausgeführter Threads |
Max Used Connections (Maximum verwendeter Verbindungen) |
Anzahl der maximal verwendeten Verbindungen |
Open Files (Geöffnete Dateien) |
Anzahl der geöffneten Dateien |
Admin Commands (Admin-Befehle) |
Anzahl der Admin-Befehle |
Alter Table Commands (Alter Table-Befehle) |
Anzahl der Alter Table-Befehle |
Analyze Commands (Analyze-Befehle) |
Anzahl der Analyze-Befehle |
Change DB Commands (Change DB-Befehle) |
Anzahl der Change DB-Befehle |
Change Master Commands (Change Master-Befehle) |
Anzahl der Change Master-Befehle |
Check Commands (Check-Befehle) |
Anzahl der Check-Befehle |
Commit Commands (Commit-Befehle) |
Anzahl der Commit-Befehle |
Create DB Commands (Create DB-Befehle) |
Anzahl der Create DB-Befehle |
Create Function Commands (Create Function-Befehle) |
Anzahl der Create Function-Befehle |
Create Index Commands (Create Index-Befehle) |
Anzahl der Create Index-Befehle |
Create Table Commands (Create Table-Befehle) |
Anzahl der Create Table-Befehle |
Delete Commands (Delete-Befehle) |
Anzahl der Delete-Befehle |
Drop DB Commands (Drop DB-Befehle) |
Anzahl der Drop DB-Befehle |
Drop Function Commands (Drop Function-Befehle) |
Anzahl der Drop Function-Befehle |
Drop Index Commands (Drop Index-Befehle) |
Anzahl der Drop Index-Befehle |
Drop Table Commands (Drop Table-Befehle) |
Anzahl der Drop Table-Befehle |
Flush Commands (Flush-Befehle) |
Anzahl der Flush-Befehle |
Grant Commands (Grant-Befehle) |
Anzahl der Grant-Befehle |
Insert Commands (Insert-Befehle) |
Anzahl der Insert-Befehle |
Insert Select Commands (Insert Select-Befehle) |
Anzahl der Insert Select-Befehle |
Kill Commands (Kill-Befehle) |
Anzahl der Kill-Befehle |
Load Commands (Load-Befehle) |
Anzahl der Load-Befehle |
Lock Tables Commands (Lock Tables-Befehle) |
Anzahl der Lock Tables-Befehle |
Optimize Commands (Optimize-Befehle) |
Anzahl der Optimize-Befehle |
Purge Commands (Purge-Befehle) |
Anzahl der Purge-Befehle |
Rename Table Commands (Rename Table-Befehle) |
Anzahl der Rename Table-Befehle |
Repair Commands (Repair-Befehle) |
Anzahl der Repair-Befehle |
Replace Commands (Replace-Befehle) |
Anzahl der Replace-Befehle |
Replace Select Commands (Replace Select-Befehle) |
Anzahl der Replace Select-Befehle |
Reset Commands (Reset-Befehle) |
Anzahl der Reset-Befehle |
Revoke Commands (Revoke-Befehle) |
Anzahl der Revoke-Befehle |
Rollback Commands (Rollback-Befehle) |
Anzahl der Rollback-Befehle |
Select Commands (Select-Befehle) |
Anzahl der Select-Befehle |
Set Option Commands (Set Option-Befehle) |
Anzahl der Set Option-Befehle |
Truncate Commands (Truncate-Befehle) |
Anzahl der Truncate-Befehle |
Unlock Tables Commands (Unlock Tables-Befehle) |
Anzahl der Unlock Tables-Befehle |
Update Commands (Update-Befehle) |
Anzahl der Update-Befehle |
Die folgenden Meldungen können entweder in der Appliance-Protokolldatei oder im Systemprotokoll der Grid-Steuerung angezeigt werden, wenn die Appliance nicht startet:
Fehlermeldung |
Beschreibung |
Failed to set timezone! |
Die Appliance-Zeitzone konnte nicht entsprechend der Konfiguration der Eigenschaft timezone festgelegt werden. |
Appliance is running in [$rpl_mode] replication mode but binlogs volume is missing |
Die Appliance ist so konfiguriert, dass sie als Master, Slave oder Master und Slave ausgeführt wird, es wurde jedoch ein Binlogs-Volume angegeben. |
Appliance is running in [$rpl_mode] replication mode but the 'rout' terminal is not connected |
Die Appliance ist so konfiguriert, dass sie als Slave doer Master und Slave ausgeführt wird, es ist jedoch kein Terminal "rout" angeschlossen. |
The 'rout' terminal is connected, but the [rpl_mode] property is set to 'none'. Either configure replication via the [rpl_mode] property or disconnect the 'rout' terminal |
Das Terminal "rout" ist angeschlossen, für die Eigenschaft "[rpl_mode]" wurde jedoch "none" festgelegt. Konfigurieren Sie die Replikation über die Eigenschaft "[rpl_mode]", oder trennen Sie die Verbindung zum Terminal "rout". |
Failed to start mysql due to error_log_filename set and log terminal not connected! |
Die Eigenschaft "error_log_filename" ist konfiguriert, das Protokollterminal ist jedoch nicht angeschlossen. |
Failed to mount share through log terminal! |
Die Appliance wurde so konfiguriert, dass Protokolle auf das Protokoll-Terminal geschrieben werden, die Freigabe auf dem Protokoll-Terminal wurde jedoch nicht geladen. |
The share through the log terminal is not writeable! |
In die Freigabe auf dem Protokoll-Terminal kann nicht geschrieben werden. |
Failed to create logdir [$logdir] on the log terminal! |
Failed to create logdir [$logdir] on the log terminal! |
The logdir [$logdir] is not writeable! |
In das Protokollverzeichnis [$logdir] auf dem Protokoll-Terminal kann nicht geschrieben werden. |
The logfile [$error_log] is not writable! |
In die Protokolldatei [$error_log] auf dem Protokoll-Terminal kann nicht geschrieben werden. |
Failed to create database! |
Appliance wurde ohne Datenbank gestartet. Es wurden keine Mysql-Datenbanken installiert. |
Failed to setup replication! |
Appliance konnte die Replikation nicht konfigurieren. |
Failed to start mysql! |
Der MySQL-Daemon konnte nicht gestartet werden. |
Insufficient permissions in the mysql database! |
Entweder sind die Berechtigungen für "root'@'%" nicht ausreichend oder "replication_user'@'%" verfügt nicht über ausreichend Berechtigungen, um eine MySQL-Replikation auszuführen (bei Verwendung im Replikationsmodus). |
Webschnittstelle konnte nicht gestartet werden! |
Webschnittstelle konnte nicht gestartet werden! |
The data volume size should be at least 100Mb |
Die Größe des Daten-Volumes sollte mindestens 100 Megabyte betragen. Siehe Hinweise zu Volume-Anforderungen. |
Zudem können die folgenden Fehler auf dem Grid-Dashboard angezeigt werden, während die Appliance ausgeführt wird:
Fehlermeldung |
Beschreibung |
Wenig freier Speicherplatz auf dem Daten-Volume, bitte überprüfen. |
Auf dem Daten-Volume sind weniger als 20 % freier Speicherplatz verfügbar. |
Replikation des Masterservers wird nicht ausgeführt, bitte überprüfen. |
Replikation des Masterservers wird nicht ausgeführt. |
Replikation von Slave liegt zu weit hinter Master zurück, bitte überprüfen. |
Replikation von Slave liegt zu weit hinter Master zurück. |
Wenig freier Speicherplatz auf dem binlogs-Volume, bitte überprüfen. |
Freier Speicherplatz auf dem Binlogs-Volume liegt unter 20 %. |
Das folgende Diagramm zeigt eine typische Verwendung der MYSQLR64-Appliance in einer Zwei-Ebenen-Webanwendung:
Verwendete Appliances:
Clientanfrage trifft am Benutzer-Gateway ein. Das Gateway leitet die Anfragen an den Webserver weiter, der die Anfrage verarbeitet. Wenn Skripte (z. B. Perl oder PHP) auf den Webservern auf persistente Daten zugreifen müssen, wird die db-Appliance über das out-Terminal des Webservers verwendet. Die db-Appliance wird so konfiguriert, dass sie ihre Protokolldateien innerhalb des Stammverzeichnisses der von logs zur Verfügung gestellten Freigabe speichern.
Mithilfe eines Browsers können Administratoren eine Verbindung zum admin-Gateway herstellen, um die mysql- oder Webserver-Protokolldateien anzuzeigen. Das admin-Gateway leitet die Anfragen an die Protokoll-NAS-Appliance weiter.
Beispiel-Eigenschaftskonfiguration (Eigenschaften, die nicht aufgelistet werden, sollten mit den Standardwerten belassen werden):
Eigenschaftsname |
Wert |
Hinweise |
auto_create |
1 |
Datenbank erstellen, wenn die Volumes leer sind. |
error_log_filename |
db.error |
Name der Fehlerprotokolldatei, die auf dem Protokolldaten-Volume gespeichert werden soll. |
error_log_level |
Fehler |
Fehlerprotokollierungs-Ebene |
Hinweis: Das Daten-Volume muss auch auf der db-appliance und auf den Appliances logs, content und mon konfiguriert werden. Informationen zum Erstellen von Anwendungsvolumes, die hier verwendet werden können, finden Sie im Benutzerhandbuch zu Grid.
Das folgende Diagramm zeigt eine typische Verwendung der MYSQLR64-Appliance in einer Zwei-Ebenen-Webanwendung, bei der die Datenbank für die gemeinsame Verwendung von Status und Daten zwischen mehreren Webservern mit Lastenausgleich dient. Außerdem wird in diesem Beispiel eine getrennte Eingabe für die Wartung verwendet, über die ein Administrator sich anmelden und auf die Datenbank für die Wartung zugreifen kann, sowie eine Eingabe, über die ein Administrator sich anmelden und das MySql-Fehlerprotokoll anzeigen kann.
Verwendete Appliances:
Clientanfrage trifft am Benutzer-Gateway ein. Die Gateway leitet die Anfrage an das Lastenausgleichsmodul "web_lb" weiter, das die Anfrage an einen der Webserver "web1" und "web2" leitet. Die Webserver greifen auf die db-Datenbank zu.
Die db-Datenbank und web1- und web2-Server schreiben ihre Protokolldateien über die Protokoll-Terminals in die logs-Appliance. Außerdem kann sich ein Administrator über das maint-Gateway bei der logs-Appliance anmelden und die Datenbankfehler-Protokolldateien anzeigen.
Zusätzlich kann sich ein Administrator über SSH und das maint-Gateway beim admin-Server anmelden (private/öffentliche Schlüssel müssen konfiguriert werden). Vom Server admin kann der Administrator auf die Datenbank db zugreifen, um Statistikdaten anzuzeigen oder das Datenbankschema zu ändern. Der Server admin kann über das Gateway gway auf das Internet zugreifen, um zum Beispiel eine neuere Bibliotheksversion oder das Datenbankschema herunterzuladen.
Beispiel-Eigenschaftskonfiguration (Eigenschaften, die nicht aufgelistet werden, sollten mit den Standardwerten belassen werden):
Eigenschaftsname |
Wert |
Hinweise |
auto_create |
1 |
Datenbank erstellen, wenn die Volumes leer sind. |
error_log_filename |
db.error |
Name der Fehlerprotokolldatei, die auf dem Protokolldaten-Volume gespeichert werden soll. |
error_log_level |
Fehler |
Fehlerprotokollierungs-Ebene |
Hinweise:
Das folgende Diagramm zeigt eine typische Verwendung der MYSQL-Appliance in einer Webanwendung, bei der die Datenbank für einen Slaveserver repliziert wird. Der Slaveserver kann verwendet werden, um konsistente Sicherungen der Daten zu machen, ohne den Masterserver anzuhalten, wodurch keine Ausfallzeiten entstehen.
Verwendete Appliances:
Clientanfrage trifft am Benutzer-Gateway ein. Die Gateway leitet die Anfrage an das Lastenausgleichsmodul "web_lb" weiter, das die Anfrage an einen der Webserver "web1" und "web2" leitet. Die Webserver greifen auf die Masterdatenbank zu.
Die Slave-Appliance ist mit dem Master verbunden und repliziert seine Daten. Der Slave kann jederzeit angehalten werden, um konsistente Sicherungen der SQL-Daten oder komplexe Analytikvorgänge auszuführen, ohne die Leistung der Master-Appliance und den Rest der Anwendung zu beeinträchtigen.
Webzugriff auf Master und Slave ist verfügbar über das admin-Gateway auf Port 8080 und 8081.
Die Appliances master, slave, web1 und web2 werden so konfiguriert, dass sie ihre Protokolldateien innerhalb des Stammverzeichnisses der von logs zur Verfügung gestellten Freigabe speichern. Überdies können Administratoren über das Admin-Gateway Protokolldateien anzeigen.
Beispiel-Eigenschaftskonfiguration (Eigenschaften, die nicht aufgelistet werden, sollten mit den Standardwerten belassen werden):
master
Eigenschaftsname |
Wert |
Hinweise |
auto_create |
1 |
Datenbank erstellen, wenn die Volumes leer sind. |
error_log_filename |
master-db.error |
Name der Fehlerprotokolldatei, die auf dem Protokolldaten-Volume gespeichert werden soll. |
error_log_level |
Fehler |
Fehlerprotokollierungs-Ebene |
server_id |
1 |
Masterserver (muss nicht 1 sein, sollte einen anderen Wert als die server_id auf dem Slave haben) |
rpl_mode |
master |
Binäre Protokolle schreiben, um die Replikation zu ermöglichen |
slave
Eigenschaftsname |
Wert |
Hinweise |
auto_create |
1 |
Datenbank erstellen, wenn die Volumes leer sind. |
error_log_filename |
slave-db.error |
Name der Fehlerprotokolldatei, die auf dem Protokolldaten-Volume gespeichert werden soll. |
error_log_level |
Fehler |
Fehlerprotokollierungs-Ebene |
server_id |
2 |
Masterserver (muss nicht 2 sein, sollte einen anderen Wert als die server_id auf dem Slave haben) |
rpl_mode |
slave |
Verbindung mit Master herstellen |
Hinweise:
Das folgende Diagramm zeigt eine typische Verwendung der MYSQLR64-Appliance in einer Webanwendung, bei der die Datenbank für zwei Server in einem Master-Master-Replikatonsszenario repliziert wird. In diesem Verwendungsfall verwendet die Anwendung sowohl WEB- als auch MYSQLR64-Server für den Lastenausgleich. Auch in dem Fall, in dem eine der WEB/MYSQLR64-Instanzen fehlschlägt, kann die andere WEB/MYSQLR64-Instanz verwendet werden, um Anwendungsausfallzeit zu verhindern.
Verwendete Appliances:
Clientanfrage trifft am Benutzer-Gateway ein. Die Gateway leitet die Anfrage an das Lastenausgleichsmodul "web_lb" weiter, das die Anfrage an einen der Webserver "web1" und "web2" leitet. web1 verwendet die db1-Datenbank-Appliance, web2 verwendet die db2-Datenbank-Appliance. db1 und db2 werden verbunden, um die Aktualisierungen zu replizieren, die die Webserver an der Datenbank vornehmen. Jede MYSQLR64-Appliance verwendet ein Offset (das ihrer server_id entspricht) für ihre auto_increment-Spalten, sodass keine doppelten Einträge auftreten.
Webzugriff auf db1 und db2 ist verfügbar über das admin-Gateway auf Port 8080 und 8081.
Die Appliances db1, db2, web1 und web2 werden so konfiguriert, dass sie ihre Protokolldateien innerhalb des Stammverzeichnisses der von logs zur Verfügung gestellten Freigabe speichern. Überdies können Administratoren über das Admin-Gateway Protokolldateien anzeigen.
Beispiel-Eigenschaftskonfiguration (Eigenschaften, die nicht aufgelistet werden, sollten mit den Standardwerten belassen werden):
db1
Eigenschaftsname |
Wert |
Hinweise |
auto_create |
1 |
Datenbank erstellen, wenn die Volumes leer sind. |
error_log_filename |
db1.error |
Name der Fehlerprotokolldatei, die auf dem Protokolldaten-Volume gespeichert werden soll. |
error_log_level |
Fehler |
Fehlerprotokollierungs-Ebene |
server_id |
1 |
Masterserver (muss nicht 1 sein, sollte einen anderen Wert als die server_id auf dem Slave haben) |
rpl_mode |
master_and_slave |
Master und Slave |
db2
Eigenschaftsname |
Wert |
Hinweise |
auto_create |
1 |
Datenbank erstellen, wenn die Volumes leer sind. |
error_log_filename |
db2.error |
Name der Fehlerprotokolldatei, die auf dem Protokolldaten-Volume gespeichert werden soll. |
error_log_level |
Fehler |
Fehlerprotokollierungs-Ebene |
server_id |
2 |
Masterserver (muss nicht 1 sein, sollte einen anderen Wert als die server_id auf dem Slave haben) |
rpl_mode |
master_and_slave |
Master und Slave |
Hinweise:
Das folgende Diagramm zeigt eine typische Verwendung der MYSQLR64-Appliance in einer Webanwendung, bei der die Datenbank für vier Server in einem Master-Master-Replikatonsszenario repliziert wird. In diesem Verwendungsfall verwendet die Anwendung alle WEB- und MYSQLR64-Server für den Lastenausgleich. Auch in dem Fall, in dem eine der WEB/MYSQLR64-Instanzen fehlschlägt, kann die andere WEB/MYSQLR64-Instanz verwendet werden, um Anwendungsausfallzeit zu verhindern (MYSQLR64 ist nicht für Fehler zuständig).
Verwendete Appliances:
Clientanfrage trifft am Benutzer-Gateway ein. Die Gateway leitet die Anfrage an das Lastenausgleichsmodul "web_lb" weiter, das die Anfrage an den Webserver "web1", "web2", "web3" oder "web4" umleitet. Jeder Webserver verwendet seine eigene Datenbank-Appliance. Alle Datenbank-Appliances werden zirkulär verbunden, um die Aktualisierungen zu replizieren, die die Webserver von der Datenbank machen. So wird beispielsweise eine Aktualisierung von db1 nach db2, db3 und db4 repliziert. Jede MYSQLR64-Appliance verwendet ein Offset (das ihrer server_id entspricht) für ihre auto_increment-Spalten, sodass keine doppelten Einträge auftreten.
Der Webzugriff auf db1, db2, db3 und db4 erfolgt über admin-Gateway auf Port 8080, 8081, 8082 und 8083.
Die Appliances db1, db2, web1 und web2 werden so konfiguriert, dass sie ihre Protokolldateien innerhalb des Stammverzeichnisses der von logs zur Verfügung gestellten Freigabe speichern. Überdies können Administratoren über das Admin-Gateway Protokolldateien anzeigen.
Beispiel-Eigenschaftskonfiguration (Eigenschaften, die nicht aufgelistet werden, sollten mit den Standardwerten belassen werden):
db1
Eigenschaftsname |
Wert |
Hinweise |
auto_create |
1 |
Datenbank erstellen, wenn die Volumes leer sind. |
error_log_filename |
db1.error |
Name der Fehlerprotokolldatei, die auf dem Protokolldaten-Volume gespeichert werden soll. |
error_log_level |
Fehler |
Fehlerprotokollierungs-Ebene |
server_id |
1 |
Masterserver 1 |
rpl_mode |
master_and_slave |
Master und Slave |
db2
Eigenschaftsname |
Wert |
Hinweise |
auto_create |
1 |
Datenbank erstellen, wenn die Volumes leer sind. |
error_log_filename |
db2.error |
Name der Fehlerprotokolldatei, die auf dem Protokolldaten-Volume gespeichert werden soll. |
error_log_level |
Fehler |
Fehlerprotokollierungs-Ebene |
server_id |
2 |
Masterserver 2 |
rpl_mode |
master_and_slave |
Master und Slave |
db3
Eigenschaftsname |
Wert |
Hinweise |
auto_create |
1 |
Datenbank erstellen, wenn die Volumes leer sind. |
error_log_filename |
db3.error |
Name der Fehlerprotokolldatei, die auf dem Protokolldaten-Volume gespeichert werden soll. |
error_log_level |
Fehler |
Fehlerprotokollierungs-Ebene |
server_id |
3 |
Masterserver 3 |
rpl_mode |
master_and_slave |
Master und Slave |
db4
Eigenschaftsname |
Wert |
Hinweise |
auto_create |
1 |
Datenbank erstellen, wenn die Volumes leer sind. |
error_log_filename |
db4.error |
Name der Fehlerprotokolldatei, die auf dem Protokolldaten-Volume gespeichert werden soll. |
error_log_level |
Fehler |
Fehlerprotokollierungs-Ebene |
server_id |
4 |
Masterserver 4 |
rpl_mode |
master_and_slave |
Master und Slave |
Hinweise:
Das folgende Diagramm zeigt eine typische Verwendung der MYSQLR64-Appliance in einer Webanwendung, die in mehr als einer Einrichtung ausgeführt wird. Bei diesem Setup können Sie zwei oder mehr identische Anwendungen in unterschiedlichen Einrichtungen ausführen, wobei die Datenbank auf alle Anwendungen im Master-Master-Setup repliziert wird. Dies ist in zwei Fällen nützlich:
Master-Anwendung
Slave-Anwendung
Verwendete Appliances:
Clientanfrage kommt auf der Benutzer-Gateway an. Die Gateway leitet die Anfrage an das Lastenausgleichsmodul "web_lb" weiter, das die Anfrage an einen der Webserver "web1" und "web2" leitet. Die Webserver greifen auf die Masterdatenbank zu. Die master-Appliance ist mit der Remote-(Slave-)Anwendung verbunden (die eine identische Kopie ist, der einzige Unterschied besteht in der server_id "slave" und der Netzwerkeinrichtung), um die Datenbank zu replizieren. Die Remote-Anwendung ist mit der Master-Appliance über das vpn-Gateway verbunden, das so konfiguriert ist, dass nur der Anschluss vom vpn-Gateway der Remote-Anwendung möglich ist. Die Master- und Slave-Appliances in den beiden Anwendungen werden in einer Master-Master-Einrichtung ausgeführt, sodass sie immer über identische Daten verfügen.
Beispiel-Eigenschaftskonfiguration (Eigenschaften, die nicht aufgelistet werden, sollten mit den Standardwerten belassen werden):
Der Webzugriff erfolgt über admin-Gateway auf Port 8080.
master
Eigenschaftsname |
Wert |
Hinweise |
auto_create |
1 |
Datenbank erstellen, wenn die Volumes leer sind. |
error_log_filename |
master-db.error |
Name der Fehlerprotokolldatei, die auf dem Protokolldaten-Volume gespeichert werden soll. |
error_log_level |
Fehler |
Fehlerprotokollierungs-Ebene |
server_id |
1 |
Masterserver (muss nicht 1 sein, sollte einen anderen Wert als die server_id auf dem Slave haben) |
rpl_mode |
master |
Binäre Protokolle schreiben, um die Replikation zu ermöglichen |
master vpn
Eigenschaftsname |
Wert |
Hinweise |
mode |
Server |
Als Server funktionieren. |
tunnel |
certificates |
Verwendung von SSL-Zertifikaten. |
tcp_ports |
3306,22 |
Von MYSQLR64 benötigte Ports zulassen. |
ip_addr |
master_vpn_ip |
IP-Adresse des VPN in der Master-Anwendung. |
remote_host |
slave_vpn_ip |
IP-Adresse des VPN in der Slave-Anwendung. |
slave
Eigenschaftsname |
Wert |
Hinweise |
auto_create |
1 |
Datenbank erstellen, wenn die Volumes leer sind. |
error_log_filename |
slave-db.error |
Name der Fehlerprotokolldatei, die auf dem Protokolldaten-Volume gespeichert werden soll. |
error_log_level |
Fehler |
Fehlerprotokollierungs-Ebene |
server_id |
2 |
Masterserver (muss nicht 2 sein, sollte einen anderen Wert als die server_id auf dem Slave haben) |
rpl_mode |
slave |
Verbindung mit Master herstellen |
slave vpn
Eigenschaftsname |
Wert |
Hinweise |
mode |
Client |
Als Client funktionieren. |
tunnel |
certificates |
Verwendung von SSL-Zertifikaten. |
auth_path |
"client1" |
Pfad zur SSL-Zertifikatdatei. |
ip_addr |
slave_vpn_ip |
IP-Adresse des VPN in der Slave-Anwendung. |
remote_host |
master_vpn_ip |
IP-Adresse des VPN in der Master-Anwendung. |
Die Remote-Anwendung ist eine genaue Kopie, der einzige Unterschied besteht in der Netzwerkeinrichtung der Benutzer-, Admin- und VPN-Appliances, Verbindungen zwischen der VPN-Appliance und Master=/=Slave und der server_id und Master=/=Slave-Appliance (sollte eindeutig sein).
Wenn Sie von MYSQLR nach MYSQLR64 migrieren müssen (und umgekehrt), sollten Sie nicht nur die Volumes von der 32-Bit-Appliance auf einer 64-Bit-Version (oder umgekehrt) verwenden, da dies Datenbeschädigungen verursachen könnte. Es wird empfohlen, die Datenbank auf der alten Appliance zu sichern, die gesicherte Datei auf die neue Appliance zu übertragen und die Datenbank dann in die neue Appliance zu importieren.
Der gleiche Vorgang kann verwendet werden, um eine Datenbank aus einer älteren Datenbank-Appliance (MYSQL, MYSQL5, MYSQL64) oder eine MySQL-Datenbank zu migrieren, die nicht auf einer CA AppLogic®-Appliance ausgeführt werden.
So migrieren Sie die Datenbank:
Beachten Sie Folgendes:
Wichtig! Stellen Sie bei der Erstellung von Benutzern für die Datenbank sicher, dass alle Benutzer ohne Einschränkungen auf dem Host erstellt werden, von dem aus sie sich verbinden. Zum Beispiel:
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%' -> IDENTIFIED BY 'some_pass' WITH GRANT OPTION;
MYSQLR64 verwendet zusätzlich zu den Drittanbieter-Open-Source-Paketen der jeweiligen Basisklasse LUX64 die folgenden Drittanbieter-Open-Source-Pakete.
Software |
Version |
Geändert |
Lizenz |
Hinweise |
|
aspell |
0.60.6-12 |
Nein |
LGPLv2.1 |
N/A |
|
aspell-En |
6.0-11 |
Nein |
LGPLv2.1 |
N/A |
|
curl |
7.19.7-26.el6_2.4 |
Nein |
MIT |
N/A |
|
device-mapper-event |
1.02.74-10 |
Nein |
GPLv2 |
N/A |
|
freetype |
2.3.11-6 |
Nein |
FTL |
N/A |
|
gmp |
4.3.1-7.el6_2.2 |
Nein |
LGPLV2.1 |
N/A |
|
libidn |
1.18-2 |
Nein |
LGPLv2.1 |
N/A |
|
libjpeg |
6b-46 |
Nein |
Distributable |
N/A |
|
libpng |
1.2.49-1.el6_2 |
Nein |
zlib/libpng |
N/A |
|
lvm2 |
2.02.95-10 |
Nein |
GPLv2.0 |
N/A |
|
mysql |
5.5.28-1 |
Nein |
GPL |
N/A |
|
mysql-server |
5.5.28-1 |
Nein |
GPLv2 |
N/A |
|
perl-DBD-MySQL |
3.0007-2.3t |
Nein |
Artistic |
N/A |
|
perl-DBI |
1.615-1 |
Nein |
Artistic |
N/A |
|
php-cli |
5.3.3-14.el6_3 |
Nein |
PHPv3.01 |
N/A |
|
php-common |
5.3.3-14.el6_3 |
Nein |
PHPv3.01 |
N/A |
|
php-gd |
5.3.3-14.el6_3 |
Nein |
PHPv3.01 |
N/A |
|
php-mbstring |
5.3.3-14.el6_3 |
Nein |
PHPv3.01 |
N/A |
|
php-mysql |
5.3.3-14.el6_3 |
Nein |
PHPv3.01 |
N/A |
|
php-pdo |
5.3.3-14.el6_3 |
Nein |
PHPv3.01 |
N/A |
|
rsync |
3.0.6-9 |
Nein |
GPLv2 |
N/A |
|
samba-client |
3.5.10-125 |
Nein |
GPLv2 |
N/A |
|
samba-common |
3.5.10-125 |
Nein |
GPLv2 |
N/A |
|
sudo |
1.7.4p5-13.el6_3 |
Nein |
ISC |
N/A |
|
lighttpd |
1.4.31-1 |
Nein |
BSD |
N/A |
|
perl-IPC-Run |
0.84-1.3t |
Nein |
Artistic |
N/A |
|
perl-Time-Duration |
1.06-1.3t |
Nein |
Artistic |
N/A |
|
phpMyAdmin |
3.5.2.2-1 |
Nein |
GPLv2 |
N/A |
MYSQLR-Appliance "hängt" beim Neustart
Ab MYSQLR 1.6.2 können Sie ein Kennwort für das Stammdatenbankkonto festlegen/ändern. Allerdings hat die MSYQLR-Appliance ein paar Stammkonten mit unterschiedlichen Hostnamen. Zum Festlegen/Ändern eines Kennworts sollten Sie immer das Konto "root@%" verwenden. Das Konto "root@%" ist das Konto, das Appliances, die mit dem Eingabe-Terminal von MYSQLR verbunden sind, für die Authentifizierung verwenden. Die anderen Stammkonten werden nur von lokalen Benutzern verwendet. Für diese Konten sollte niemals ein Kennwort festgelegt werden, da die MYSQLR-Appliance anderenfalls nicht gestartet werden kann.
Hinweis: Wenn Sie für das Konto "root@localhost" kein Kennwort festlegen, stellt dies kein Sicherheitsproblem dar, weil dieses Konto nur von lokalen Benutzern auf der Appliance verwendet werden kann und jeder Benutzer mit Zugriff auf die Appliance das Kennwort ändern kann.
Wiederherstellen einer MYSQLR-Appliance, die nach dem Ändern des Stammdatenbankkennworts nicht gestartet werden kann
Um eine Appliance wiederherzustellen, die durch Ändern des Kennworts für die Stammdatenbank nicht gestartet werden kann, führen Sie die folgenden Schritte aus:
comp start main.MYSQLR --debug
app start --debug
Einige Minuten nach dem Starten der Appliance sollte die Anmeldung bei der Appliance möglich sein. Sie müssen warten, bis das Zeitlimit für die Appliance einsetzt.
mysql -p -e "update mysql.user set Password='' where User='root'" mysqladmin -p flush-privileges mysql -e 'update mysql.user set password=PASSWORD("NEWPASSWORD") where User="root" and Host="%"' mysqladmin flush-privileges
Copyright © 2013 CA.
Alle Rechte vorbehalten.
|
|