Verbindung zu und Verwaltung von MySQL HeatWave auf OCI herstellen

Eines der coolen Dinge an MySQL HeatWave ist die Möglichkeit, Analysen direkt für Ihre vorhandenen Transaktionsdaten auszuführen. Daher müssen Sie diese Daten nicht in ein separates System mischen, wenn Sie massiv parallele Analysen durchführen müssen. Es ist überraschend einfach.

MySQL HeatWave ist ein vollständig verwalteter Service und ist wie jede andere Datenbank am besten, wenn sie vom öffentlichen Internet abgeschirmt wird. Wir müssen immer noch eine Verbindung herstellen, damit wir mit unseren Daten arbeiten können. Sehen wir uns daher die Verwendung von OCI Cloud Shell (die wir kurz im Leitfaden für die ersten Schritte behandelt haben) an, einem DIY-Bastion-Host und die Verbindung mit MySQL Workbench mit dem OCI-Bastion-Service (lesen Sie mehr über Bastion) als sicheren Tunnel.

Wenn noch kein MySQL HeatWave-System hochgefahren und gestartet ist, gehen Sie zu Erste Schritte mit MySQL HeatWave auf OCI und gehen Sie los. Wenn Sie alle Einstellungen vorgenommen haben, lesen Sie hier weiter, um die verschiedenen Verbindungsoptionen, Techniken zum Laden von Daten und Clustermanagementfunktionen zu untersuchen.

Voraussetzungen

  • Ein OCI-Account (Testversion oder kostenpflichtig)
  • Erfahrungen mit MySQL Shell
  • Ein MySQL HeatWave-DB-System
  • Ein Texteditor

Eine kurze Überprüfung Ihrer Optionen

Für diejenigen, die eine Befehlszeilenschnittstelle bevorzugen, können Sie sich für eine Verbindung über Cloud Shell oder über einen selbstverwalteten Bastionhost entscheiden, wo Sie Ihren bevorzugten Geschmack von Linux nutzen können. Für diejenigen, die das GUI bevorzugen, können Sie zum Abschnitt "Sicherer Tunnel" übergehen. Aber zuerst... ein paar vorbereitende Schritte!

Bevor Sie fortfahren, stellen Sie sicher, dass Sie die erforderlichen Endpunktdetails aus Ihrem DB-System erfasst haben. Sie benötigen die private IP-Adresse und den MySQL-Port, die Sie über "Datenbanken -> DB-Systeme" abrufen können. Dort klicken Sie auf den Namen der zuvor erstellten Datenbank MySQL.

Screenshot von cloud shell

Als Nächstes benötigen Sie einen SSH-Schlüssel für die sichere Verbindung zu den verschiedenen Zwischensystemen (ob Sie Bastion oder einen sicheren Tunnel verwenden). Wir verwenden Cloud Shell, das direkt in der OCI-Konsole verfügbar ist, um den SSH-Schlüssel zu erstellen - praktisch. (Hinweis - wir können auch über Cloud Shell eine Verbindung zur Datenbank herstellen... wir werden in Kürze darauf zugreifen)

Screenshot des Symbols "cloud shell"

Cloud Shell ist wie eine kleine VM, auf der eine Bash-Shell ausgeführt wird. Sie ist mit Features ausgestattet. Tatsächlich sind MySQL und MySQL Shell zusammen mit einer Vielzahl von OCI-Tools bereits installiert. Der Start wird also eine Minute dauern, aber wenn dies der Fall ist, können wir viel innerhalb der CLI direkt in Ihrem Browser tun.

Nachdem die Shell hochgefahren ist, erstellen Sie einen SSH-Schlüssel mit:

ssh-keygen -b 2048 -t rsa

Drücken Sie einfach die Eingabetaste (um den Standarddateinamen zu akzeptieren und ohne Kennwort fortzufahren), und schon sind die öffentlichen (~/.ssh/id_rsa.pub) und privaten (~/.ssh/id_rsa) SSH-Schlüssel bereit.

Also lasst uns cd ~/.ssh und ls -al sehen, was drinnen ist:

Screenshot der cloud shell-Konsole

Wenn Sie zum ersten Mal SSH-Schlüssel in Cloud Shell erstellt haben, werden nur die beiden Dateien angezeigt. Schützen Sie den Private Key und geben Sie ihn nicht weiter. Der Public Key wird für bestimmte Aktivitäten benötigt und kann auf einige Systeme hochgeladen sowie kopiert und eingefügt werden, um eine sichere Kommunikation in der Cloud zu ermöglichen.

Bevor wir die Cloud Shell verlassen, sollten wir den Public Key abrufen. Öffnen Sie einen Texteditor wie Notepad. Wenn Sie sich noch in Cloud Shell befinden, kopieren Sie den id_rsa.pub-Inhalt mit cat ~/.ssh/id_rsa.pub, wählen Sie diesen Textabschnitt (das ist Ihr Schlüssel) aus, und fügen Sie ihn in den Texteditor Ihrer Wahl ein. Es sollte mit ssh-rsa beginnen. Sie können auch auf das Kettenrad in der oberen rechten Ecke von Cloud Shell klicken und "Herunterladen" auswählen. Geben Sie den Pfad zum Public Key ein:

Screenshot des cloud shell-Downloads

Der Public Key wird in dem Ordner abgelegt, der von Ihrem Betriebssystem für heruntergeladene Dateien angegeben wird. Führen Sie dasselbe für .ssh/id_rsa (den Private Key) aus, und speichern Sie es an einem sicheren Ort. Stellen Sie unter Mac oder Linux sicher, dass Sie die Private-Key-Datei 400 chmod verwenden.

OCI Cloud Shell

Da Sie sich bereits in der Cloud Shell befinden, beginnen wir hier mit einer schnellen Aktualisierung. Da die Tools bereits installiert sind, können Sie eine Verbindung mit dem MySQL-Client oder der Shell herstellen. In unserem Beispiel wird MySQL Shell verwendet.

Zunächst müssen Sie die Netzwerkeinstellung für Cloud Shell in "Privat" ändern.

Screenshot der Netzwerkeinstellung von cloud shell

Wenn Sie dazu aufgefordert werden, wählen Sie das VCN und das Subnetz aus, in dem Sie die MySQL-Instanz bereitgestellt haben, und klicken Sie auf [Verbindung zu diesem Netzwerk herstellen].

HINWEIS: Diese Funktion befindet sich in Ihrer Hauptregion. Wenn Sie MySQL dort nicht bereitgestellt haben, können Sie die Anweisungen in der Eingabeaufforderung befolgen, um Remote-VCN-Peering einzurichten.

Zeit für die Anmeldung bei der Datenbank:

mysqlsh -uadmin -p -h 10.0.1.... --sql

Geben Sie bei entsprechender Aufforderung das Kennwort ein, das Sie beim Erstellen des DB-Systems angegeben haben.

Wenn Sie die Beispieldaten beim Erstellen der Datenbank geladen haben, können Sie eine Schnellabfrage ausführen, um den Inhalt der Datenbank zu validieren:

SELECT table_name, table_rows FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'airportdb';

DIY Bastion-Host

Rechenzeit! Gehen Sie zu "Computing > Instanzen". Bleiben Sie im selben Compartment wie zuvor, und klicken Sie auf "Instanz erstellen". Geben Sie einen Namen an, behalten Sie die ausgewählte Availability-Domain und Ausprägung bei. Wählen Sie das Bild für Ihren bevorzugten Linux-Aroma aus. In diesem Beispiel wird Oracle Linux 8 verwendet.

Hier ist es wichtig, das zuvor eingerichtete VCN zu verwenden. Wählen Sie das erstellte öffentliche Subnetz aus, und stellen Sie sicher, dass "Öffentliche IP-Adresse zuweisen" auf "Ja" gesetzt ist.

Fügen Sie im Abschnitt "SSH-Schlüssel hinzufügen" den Public Key aus dem Notizblock ein.

Klicken Sie dann auf Erstellen, um es zu starten! Es dauert natürlich ein paar Minuten.

Wenn die Anzeige grün ist und ausgeführt wird, zeigt die Instanzseite eine öffentliche IP-Adresse und eine private IP unter "Instanzzugriff" an.

Kopieren und speichern Sie die öffentliche IP.

Jetzt stellen wir über den Bastionhost eine Verbindung zum DB-System MySQL her.

Jetzt haben Sie also die öffentliche IP der Compute-Instanz, den privaten SSH-Schlüssel und die private IP des DB-Systems. Wir werden die ersten beiden zusammenstellen, um eine Verbindung über SSH herzustellen. Zeigen Sie darauf, wo sich der Private Key befindet, und der Benutzername lautet opc.

Beispiel (Mac OS oder Linux-Terminal; PowerShell unter Windows):

ssh -i ~/.ssh/id_rsa opc@<your_compute_instance_ip></your_compute_instance_ip>

Installieren Sie MySQL Shell mit (und antworten Sie weiterhin mit y auf alle Eingabeaufforderungen):

sudo yum install mysql-shell -y

Ihr Endpunkt ist die private IP, die Sie zuvor in Ihren Notizblock kopiert haben. Sie benötigen natürlich auch das Passwort für die Datenbank, die Sie zuvor erstellt haben.

Beispiel:

mysqlsh -uadmin -p -h 10.0.1.... --sql

Geben Sie bei entsprechender Aufforderung das Kennwort ein, das Sie beim Erstellen des DB-Systems angegeben haben.

Wenn Sie die Beispieldaten beim Erstellen der Datenbank geladen haben, können Sie eine Schnellabfrage ausführen, um den Inhalt der Datenbank zu validieren:

SELECT table_name, table_rows FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = 'airportdb';

Von OCI verwaltete Bastion

Mit dem OCI Bastion-Service können Sie ganz einfach sichere, temporäre Verbindungen zu den privaten Ressourcen in Ihrem virtuellen Cloud-Netzwerk erstellen. Da MySQL ein vollständig verwaltetes DB-System ist, können keine Verbindungen zum BS hergestellt werden. Stattdessen erstellen wir einen sicheren Tunnel über den Bastion-Service und verwenden die MySQL Workbench für die Verbindung.

Navigieren Sie zunächst in der OCI-Konsole zu "Sicherheit -> Bastion". Bastioninstanz erstellen - Dies ist im Wesentlichen ein Container für bestimmte Sessionkonfigurationen.

Erstellen Sie als Nächstes eine Session. Der Typ lautet "SSH-Portweiterleitungssitzung". Sie müssen die private IP-Adresse der Instanz MySQL zusammen mit dem DB-Port (standardmäßig 3306) eingeben. Für diese Übung können Sie das zuvor generierte SSH-Schlüsselpaar verwenden. In der realen Welt sollten Sie wahrscheinlich verschiedene Schlüsselpaare generieren.

Klicken Sie auf [Session erstellen].

Wenn die Session erfolgreich erstellt wurde, können Sie auf das 3-Punkt-Menü rechts klicken, um SSH-Befehle anzuzeigen. Kopieren Sie den Befehl in einen Texteditor, und ersetzen Sie durch den vollständigen Pfad zu dem Schlüssel, der zuvor erstellt/heruntergeladen wurde. Ersetzen Sie durch den lokalen Port auf dem Rechner, von dem aus Sie eine Verbindung herstellen möchten. Sie können jeden verfügbaren Port verwenden.

Für Mac oder Linux können Sie ein Terminalfenster öffnen und den Befehl ausführen. Verwenden Sie unter Windows PowerShell. Wenn Sie aufgefordert werden, mit der Verbindung fortzufahren, geben Sie "Yes" ein, und drücken Sie die Eingabetaste.

Öffnen Sie als Nächstes den Datenbankclient (d.h. MySQL Workbench), und konfigurieren Sie die Verbindung.

  • Hostname: 127.0.0.1
  • Port: 3306
  • Benutzername: admin (in meinem Fall)
  • Passwort: [Store in Vault ...]

Klicken Sie auf [Verbindung testen] - wenn alles gut läuft, sollten Sie Folgendes sehen:

Screenshot von mysql workbench - erfolgreiche Verbindung

Speichern Sie die Einstellungen, und öffnen Sie die Verbindung. Jetzt können Sie an vorhandenen Daten herumstöbern und/oder neue Daten laden.

Daten in HeatWave-Cluster laden

An diesem Punkt sind wir bereit, Daten aus der InnoDB in die HeatWave zu laden, damit wir die Dinge wirklich in Schwung bringen können.

Gehen wir zurück in die MySQL-Shell, damit wir den Dataload starten können.

In der Befehlszeile:

mysqlsh -uadmin -p -h 10.0.1... --sql

Geben Sie Ihr Datenbankkennwort ein.

Verwenden Sie den Befehl Auto Parallel Load, um die airportdb-Tabellen in HeatWave zu laden:

CALL sys.heatwave_load(JSON_ARRAY('airportdb'), NULL);

Nur um sicherzustellen, dass die Tabellen im Cluster HeatWave geladen werden. Geladene Tabellen haben den Ladestatus AVAIL_RPDGSTABSTATE.

Auch hier in der Shell MySQL:

USE performance_schema;

Es wird angezeigt, dass das Standardschema auf performance_schema gesetzt wurde.

SELECT NAME, LOAD_STATUS FROM rpd_tables,rpd_table_id WHERE rpd_tables.ID = rpd_table_id.ID;

Natürlich können Sie von hier aus Abfragen ausführen und alle erforderlichen Datenbankfunktionen ausführen. Sie können HeatWave auch ein- und ausschalten, um Abfragezeiten zu vergleichen und zu sehen, wie viel schneller diese mit HeatWave ausgeführt werden.

Verwenden Sie den folgenden Befehl, um zu prüfen, ob HeatWave aktiviert ist:

SHOW VARIABLES LIKE 'use_secondary_engine%';

Um es auszuschalten, verwenden Sie:

SET SESSION use_secondary_engine=OFF;

Um es wieder einzuschalten, verwenden Sie:

SET SESSION use_secondary_engine=ON;

Wenn Sie Tabellen aus dem Cluster HeatWave entladen müssen, ändern Sie die Tabelle wie folgt:

ALTER TABLE flightschedule SECONDARY_UNLOAD;

HeatWave-Cluster verwalten

Nachdem Sie ein HeatWave-Cluster erstellt haben, können Sie weiterhin die Anzahl der Knoten anpassen. Sie können dies tun, indem Sie das Cluster mit der Menüoption HeatWave in DB-Systemen bearbeiten. Beachten Sie, dass die Größe des Clusters online geändert wird, während des Vorgangs keine Ausfallzeit auftritt und die Daten nach der Größenänderung automatisch neu verteilt werden.

Es gibt auch eine Option, um die Anzahl der Knoten zu schätzen, die möglicherweise für die Datenmenge erforderlich sind, die Sie analysieren möchten. Das Generieren einer Schätzung kann einige Minuten dauern, hilft jedoch, die richtige Größe Ihres Clusters zu ermitteln. Wenn der Schätzer eine Änderung an Ihrer Konfiguration vorschlägt, können Sie sie direkt dort anwenden.

Sie können jederzeit das HeatWave-Cluster stoppen (da die Abrechnung ebenfalls gestoppt wird) oder neu starten, um das Cluster aufzufrischen. Wenn ein HeatWave-Cluster durch eine Stopp- oder Neustartaktion gestoppt wird, gehen die im HeatWave-Clusterspeicher geladenen Daten verloren. Wenn Sie das Cluster starten oder neu starten, werden alle zuvor geladenen Daten automatisch neu geladen. Datenänderungen, die in der DB aufgetreten sind, während HeatWave gestoppt wurde, werden in die neu geladenen Daten aufgenommen.

HeatWave-Cluster löschen

Wenn Sie ein HeatWave-Cluster löschen, werden die HeatWave-Clusterknoten dauerhaft entfernt. Das DB-System, dem das Cluster HeatWave zugeordnet ist, ist davon nicht betroffen. Denken Sie daran, dass das Cluster nach dem Löschen erneut von Grund auf neu eingerichtet werden muss. Das bedeutet, dass Daten in HeatWave neu geladen werden.

Zusammenfassung

Damit ist unsere grundlegende Überprüfung der Konnektivitätsstrategien und Verwaltungsfunktionen für MySQL HeatWave auf OCI abgeschlossen. Wir haben gelernt, wie Sie ein DB-System über verschiedene Kanäle verbinden, Daten in HeatWave laden/entladen und die sekundäre Engine ein- und ausschalten. Von hier aus können Sie einige Abfragen ausführen oder sogar Ihre eigenen Daten laden und sehen, wie schnell HeatWave gehen kann!

Weitere Informationen zu MySQL HeatWave finden Sie in den Dokumenten hier.

Möchten Sie mehr erfahren? Nehmen Sie an der Diskussion in unserem öffentlichen Slack-Kanal teil!

Diese Seite wurde maschinell übersetzt.

Oracle Chatbot
Disconnected