Effizientes Anweisungsrouting verwenden, indem ProxySQL in Autonomous Database aktiviert wird
Mit ProxySQL können Sie auf mehrere autonome Datenbanken zugreifen, indem Sie Anweisungen für DML und Abfragen weiterleiten. Außerdem müssen Sie nicht alle Daten physisch in einer einzigen Datenbank konsolidieren.
Themen
- Effizientes Anweisungsrouting mit ProxySQL in Autonomous Database
ProxySQL in Autonomous Database ermöglicht die Verwendung mehrerer Autonomous Database-Instanzen und erleichtert den Zugriff auf und die Analyse von Daten, als ob sie an nur einem Ort gespeichert wären. - Anweisungsrouting aktivieren und Schemazuordnung definieren
In diesem Abschnitt wird erläutert, wie Sie ProxySQL für das automatische Anweisungsrouting von einem Haupt-Router zu einer oder mehreren Zieldatenbankinstanzen einrichten. - Anweisungen über ProxySQL weiterleiten
Um das automatische Anweisungsrouting zu nutzen, müssen Sie eine Verbindung herstellen und Ihre Anweisungen an die Routerinstanz weiterleiten, die von ProxySQL verwaltet wird. - Routinganweisungen zu einer Zielinstanz stoppen
Führen Sie diese Schritte in einer Autonomous Database-Zielinstanz aus, um zu verhindern, dass sie geroutete Anweisungen vom ProxySQL-Router akzeptiert. - Schema- oder Objektzuordnung aus Router-Instanz entfernen
Führt die Schritte zum Entfernen einer bestimmten Zuordnung aus der Router-Datenbank bereit, die von ProxySQL verwaltet wird. - Anweisungsrouting deaktivieren
Zeigt die Schritte zum automatischen Anweisungsrouting an, indem ProxySQL deaktiviert wird. - Automatisches Anweisungsrouting mit ProxySQL-Hinweisen
Listet Einschränkungen und wichtige Hinweise zum automatischen Anweisungsrouting auf, wenn ProxySQL aktiviert ist.
Übergeordnetes Thema: Elastische Pools in Autonomous Database verwenden und verwalten
Effizientes Anweisungsrouting mit ProxySQL in Autonomous Database
ProxySQL auf Autonomous Database ermöglicht Ihnen die Verwendung mehrerer Autonomous Database-Instanzen und erleichtert den Zugriff auf und die Analyse von Daten, als ob sie an nur einem Ort gespeichert wären.
Sie können ProxySQL verwenden, wenn Sie mit einem umfangreichen Setup arbeiten müssen, das mehrere autonome Datenbanken umfasst. Mit ProxySQL erhalten Sie einheitlichen Zugriff auf verschiedene Datenbanken, und es ist nicht mehr erforderlich, Daten physisch an einen Ort zu verschieben.
Wenn Sie ProxySQL aktivieren, geben Sie eine Autonomous Database-Instanz als Routerinstanz und eine oder mehrere Autonomous Database-Instanzen als Zielinstanzen an. Die Router-Instanz enthält eine Routing-Tabelle, die bestimmt, wie eine Anweisung an eine oder mehrere Zielinstanzen verteilt (zugeordnet) wird. Eine Zielinstanz enthält eine Akzeptanztabelle. Die Akzeptanztabelle ähnelt der Routing-Tabelle und enthält Einträge, die angeben, dass die Instanz Anweisungsumleitungen vom Router akzeptiert.
Je nach gewählter Routing-Methode werden Anweisungen automatisch von der Router-Instanz einer oder mehreren Zielinstanzen zugeordnet. Eine Anwendung stellt eine Verbindung zur Routerinstanz her und wird auf der Routerinstanz ausgeführt. Autonomous Database leitet Anweisungen zu einer oder mehreren Zielinstanzen um.
Im Folgenden sind einige der Vorteile der Aktivierung von ProxySQL im Vergleich zur Verwendung einer einzelnen sehr großen Autonomous Database aufgeführt:
-
ProxySQL bietet Datenbankautonomie und Unabhängigkeit für Vorgänge wie Lebenszyklusmanagement und Admin-Aufgaben. Beispiel: Mit ProxySQL werden Datenbankvorgänge, einschließlich Backup und Restore, und Features wie Autonomous Data Guard unabhängig in jeder Autonomous Database-Instanz verwaltet.
-
Mit ProxySQL können Sie sehr große Datenbanken effizient verwalten, indem Sie Daten auf mehrere Autonomous Database-Instanzen aufteilen.
Wenn Sie mit ProxySQL arbeiten, müssen Sie mehrere Begriffe kennen:
Routerinstanz: Wenn Sie ProxySQL aktivieren, wird eine Routerinstanz angegeben. Eine Routing-Tabelle bestimmt, wie eine Anweisung an eine oder mehrere Zielinstanzen verteilt (zugeordnet) wird. Je nach angegebener Routingmethode werden Anweisungen aus der Routerinstanz automatisch einer oder mehreren Zielinstanzen zugeordnet.
Zielinstanz: Die Zielinstanz wird angegeben, wenn Sie eine Zuordnung auf der Routerinstanz erstellen. Auf jeder Zielinstanz wird eine Akzeptanztabelle hinzugefügt.
Routing-Tabelle: Eine Routing-Tabelle enthält Ziel-Mapping-Einträge, die angeben, an welche Instanz Anweisungen automatisch weitergeleitet werden.
Akzeptanztabelle: Eine Akzeptanztabelle enthält Einträge, die angeben, dass die Instanz Anweisungsumleitungen vom Router akzeptiert.
Voraussetzungen für die Verwendung von ProxySQL
Die folgenden Anforderungen gelten für ProxySQL:
-
Die Aktivierung von ProxySQL wird nur für Autonomous Database-Instanzen unterstützt, die sich in einem elastischen Pool befinden. Die Routerinstanz und alle Zielinstanzen müssen Mitglieder desselben elastischen Pools sein.
-
Die Routerinstanz und alle Zielinstanzen müssen sich in derselben Region befinden.
-
Die Metadaten für die Objekte, die Sie weiterleiten, müssen auf Router- und Zielinstanzen übereinstimmen. Der Anwendungsdesigner ist dafür verantwortlich, dass die Metadaten für Objekte, die in einer Zielinstanz vorhanden sind, auch in der Routerinstanz vorhanden sind. Beispiel: Wenn in der Zielinstanz eine Tabelle mit dem Namen
EMPLOYEES
vorhanden ist, muss in der Routerinstanz auch eine Tabelle mit übereinstimmenden Metadaten mit dem NamenEMPLOYEES
vorhanden sein. Die Tabelle in der Routerinstanz muss nicht leer sein (nur Metadaten).
Empfehlung zum Aktivieren von ProxySQL
Die Instanzen, die Sie als Router und als Ziele hinzufügen, können einen beliebigen Autonomous Database-Workload-Typ aufweisen. Wenn Einträge in der Routing-(Mapping-)Tabelle vorhanden sind, werden Anweisungen zu Objekten, die in diesen Einträgen angegeben sind, ungeachtet des Workload-Typs des Ziels an die entsprechenden Zielinstanzen weitergeleitet. Oracle empfiehlt, dass alle theAutonomous-Datenbankinstanzen den Workload-Typ "Data Warehouse" verwenden.
Automatic Statement Routing mit aktiviertem ProxySQL
Mit ProxySQL können Sie Anweisungen mit einer der unterstützten Routingmethoden auf Ziele verteilen.
Unabhängig von der Routingmethode (Zuordnung), die Sie verwenden möchten, ist der Anwendungsschemadesigner dafür verantwortlich, sicherzustellen, dass Metadaten für Objekte, die in einer Zielinstanz platziert sind, auch in der Routerinstanz verfügbar sind. Beispiel: Wenn in der Zielinstanz eine Tabelle mit dem Namen
EMPLOYEES
vorhanden ist, muss in der Routerinstanz auch eine Tabelle mit übereinstimmenden Metadaten mit dem Namen EMPLOYEES
vorhanden sein. Die Tabelle in der Routerinstanz muss nicht leer sein.
-
Routing auf Schemaebene: Alle Objekte eines Schemas werden einer einzelnen Zielinstanz zugeordnet. Sie können einer einzelnen Zielinstanz mehrere Schemas zuordnen. Die Anweisungen für ein Schema können jedoch nicht über mehrere Zielinstanzen hinweg zugeordnet werden. Das bedeutet, dass dasselbe Schema nicht sowohl für das Schema- als auch für das Objektrouting verwendet werden kann.
Um Routing auf Schemaebene anzugeben, rufen Sie die Prozedur
DBMS_PROXY_SQL.ADD_MAPPING
auf, wobei derobject_name
-Parameter auf den Wert "*" gesetzt ist.
Beschreibung der Abbildung proxysql-schema.png
In diesem Beispiel sind die Metadaten für Objekte in Schema A sowohl in Ziel-Autonomous Database 1 als auch in der Routerinstanz vorhanden. Die Metadaten für Objekte in Schema B sind sowohl in Ziel-Autonomous Database 2 als auch in der Routerinstanz usw. vorhanden.
-
Routing auf Objektebene: Objekte in einem Schema werden über mehrere Zielinstanzen hinweg zugeordnet.
Um das Routing auf Objektebene anzugeben, rufen Sie die Prozedur
DBMS_PROXY_SQL.ADD_MAPPING
auf, wobei derobject_name
-Parameter auf einen Tabellennamen gesetzt ist.
Beschreibung der Abbildung proxysql-object.png
In diesem Beispiel sind die Metadaten für Tabelle A sowohl in Ziel 1 als auch in der Routerinstanz vorhanden, und die Metadaten für Tabelle B sind sowohl in Ziel 2 als auch in der Routerinstanz usw. vorhanden.
-
Hybrid-Routing: Objekte eines Schemas werden mit einer Kombination aus Routing auf Schemaebene und Routing auf Objektebene weitergeleitet.
Beschreibung der Abbildung proxysql-hybrid.png
In diesem Beispiel sind die Metadaten für Schema A sowohl in Ziel-Autonomous Database 1 als auch in der Routerinstanz vorhanden. Die Metadaten für Tabelle B (in Schema B) sind sowohl in Ziel-Autonomous Database 2 als auch in der Routerinstanz usw. vorhanden.
Servicezuordnung mit automatischer Auszugsweiterleitung, wenn ProxySQL aktiviert ist
Wenn die Routing-Tabelle eine Zuordnung zu einer Zieldatenbank angibt, wird für den Datenzugriff in der Zieldatenbank derselbe Service verwendet, bei dem Sie mit der Router-Datenbank verbunden sind.
Beispiel: Wenn eine Session mit dem HIGH-Service auf der Routerinstanz verbunden ist, verwendet ein an eine Zielinstanz geroutetes Anweisungs- oder Anweisungsfragment auch den HIGH-Service. Wenn eine Sitzung mit dem MEDIUM-Dienst auf der Routerinstanz verbunden ist, verwendet eine an eine Zielinstanz weitergeleitete Anweisung den MEDIUM-Dienst.
Wenn der für die Verbindung mit der Routerinstanz verwendete Service auf einer Zielinstanz nicht verfügbar ist, verwendet das an die Zielinstanz weitergeleitete Anweisungs- oder Anweisungsfragment den MEDIUM-Service (die verfügbaren Services hängen vom Workload-Typ von Autonomous Database ab).
Anweisungsweiterleitung aktivieren und Schemazuordnung definieren
In diesem Abschnitt wird erläutert, wie Sie ProxySQL für das automatische Anweisungsrouting von einem Haupt-Router zu einer oder mehreren Zieldatenbankinstanzen einrichten.
- Anweisungsrouting aktivieren und Objektzuordnung von Router zu Zielinstanzen definieren
Um Anweisungsrouting einzurichten, aktivieren Sie ProxySQL auf der Routerinstanz und definieren das Schema oder die Objekte, deren Anweisungen Zieldatenbanken zugeordnet (gesendet) werden. - Anweisungsrouting auf Zielinstanzen akzeptieren
Sie müssen das Anweisungsrouting auf einer Zielinstanz akzeptieren, um die Zuordnung von der Routerinstanz zuzulassen.
Anweisungsrouting aktivieren und Objektzuordnung von Router zu Zielinstanzen definieren
Um das Anweisungsrouting einzurichten, aktivieren Sie ProxySQL auf der Routerinstanz und definieren das Schema oder die Objekte, deren Anweisungen Zieldatenbanken zugeordnet (gesendet) werden.
Folgende Voraussetzungen sind erforderlich, um das automatische Anweisungs-Routing zu aktivieren:
-
Erstellen Sie die Autonomous Database-Instanz, die Sie für die Routerinstanz verwenden möchten, oder identifizieren Sie eine vorhandene Autonomous Database-Instanz als Routerinstanz.
-
Erstellen Sie die Zielinstanzen, oder identifizieren Sie die Zielinstanzen aus vorhandenen Autonomous Database-Instanzen.
-
Stellen Sie sicher, dass die Routerinstanz und jede Zielinstanz, in die Sie Abfragen umleiten, übereinstimmende Metadaten für alle Objekte aufweisen, die Sie vom Router einem Ziel zuordnen.
Unabhängig von der Routingmethode (Zuordnung), die Sie verwenden möchten, ist der Anwendungsschemadesigner dafür verantwortlich, sicherzustellen, dass Metadaten für Objekte, die in einer Zielinstanz platziert sind, auch in der Routerinstanz verfügbar sind. Beispiel: Wenn in der Zielinstanz eine Tabelle mit dem Namen
EMPLOYEES
vorhanden ist, muss in der Routerinstanz auch eine Tabelle mit übereinstimmenden Metadaten mit dem NamenEMPLOYEES
vorhanden sein. Die Tabelle in der Routerinstanz muss nicht leer sein. -
Bestimmen Sie anhand der verfügbaren Optionen den Typ der Anweisungsweiterleitung, die Sie verwenden möchten: Routing auf Schemaebene, Routing auf Objektebene oder Hybridrouting.
So aktivieren Sie das automatische Anweisungs-Routing und fügen der Routing-Tabelle Ziel-Mapping-Einträge hinzu:
Sie können die Ansicht DBA_PROXY_SQL_MAPPINGS
abfragen, um die Datensätze in der Routing-Tabelle aufzulisten. Weitere Informationen finden Sie in der Ansicht DBA_PROXY_SQL_MAPPINGS.
Übergeordnetes Thema: Anweisungsrouting aktivieren und Schemazuordnung definieren
Auszugsweiterleitung in Zielinstanzen akzeptieren
Sie müssen das Anweisungsrouting auf einer Zielinstanz akzeptieren, um die Zuordnung von der Routerinstanz zuzulassen.
So lassen Sie (Akzeptieren-)Anweisungen von der Routerinstanz zu einer Zielinstanz umleiten:
Übergeordnetes Thema: Anweisungsrouting aktivieren und Schemazuordnung definieren
Auszüge über ProxySQL weiterleiten
Um das automatische Anweisungsrouting zu nutzen, müssen Sie eine Verbindung herstellen und Ihre Anweisungen an die von ProxySQL verwaltete Routerinstanz weiterleiten.
Wenn Sie Abfragen und DML mit aktiviertem ProxySQL senden, müssen Sie eine Verbindung zur Routerinstanz herstellen, um das automatische Anweisungsrouting zu nutzen.
Routinganweisungen zu einer Zielinstanz stoppen
Führen Sie diese Schritte in einer Autonomous Database-Zielinstanz aus, um sie daran zu hindern, weitergeleitete Anweisungen vom ProxySQL-Router zu akzeptieren.
Weitere Informationen finden Sie unter Prozedur REJECT_MAPPING.
Schema- oder Objektzuordnung aus Router-Instanz entfernen
Enthält die Schritte zum Entfernen einer bestimmten Zuordnung aus der Router-Datenbank, die von ProxySQL verwaltet wird.
Auszugsweiterleitung deaktivieren
Zeigt die Schritte zum automatischen Anweisungsrouting an, indem ProxySQL deaktiviert wird.
Führen Sie DBMS_PROXY_SQL.DISABLE_ROUTING
auf der Routerinstanz aus, um ProxySQL zu deaktivieren und das automatische Anweisungsrouting an Zielinstanzen zu deaktivieren.
Beispiel:
BEGIN
DBMS_PROXY_SQL.DISABLE_ROUTING
;
END;
/
Dadurch wird ProxySQL deaktiviert und das automatische Anweisungsrouting auf dem Router deaktiviert.
Wenn Sie ProxySQL deaktivieren, werden die Einträge der Anweisungszuordnung in der Routing-Tabelle der Router-Instanz nicht gelöscht. Das heißt, wenn Sie ProxySQL erneut aktivieren und die Routing-Tabelle vorhandene Einträge enthält, leitet das automatische Anweisungsrouting Anweisungen an Zielinstanzen weiter, wie in der Routing-Tabelle angegeben. Verwenden Sie die Prozedur DBMS_PROXY_SQL.REMOVE_MAPPING
, wenn Sie vorhandene Routingtabelleneinträge entfernen möchten, bevor Sie ProxySQL erneut aktivieren.
Weitere Informationen finden Sie unter Prozedur DISABLE_ROUTING.
Automatic Statement Routing mit ProxySQL Notes
Listet Einschränkungen und wichtige Hinweise zum automatischen Anweisungsrouting auf, wenn ProxySQL aktiviert ist.
-
Der Benutzer
ADMIN
verfügt über die Berechtigungen zum Verwalten von ProxySQL. Wenn Sie einen anderen Benutzer aktivieren möchten, müssen Sie die folgenden Berechtigungen erteilen:-
Berechtigung
EXECUTE
für PackageDBMS_PROXY_SQL
. -
Berechtigung
READ
für die AnsichtDBA_PROXY_SQL_MAPPINGS
. -
Berechtigung
READ
für die AnsichtDBA_PROXY_SQL_ACCEPTED_MAPPINGS
.
-
-
Das automatische Anweisungs-Routing wird nahtlos fortgesetzt, wenn:
-
Die Autonomous Database-Zielinstanz wird auf eine lokale Autonomous Data Guard-Standbyinstanz übertragen.
-
Sie führen einen Switchover für eine Autonomous Database-Zielinstanz zu einer lokalen Autonomous Data Guard-Standbydatenbank aus.
Das automatische Anweisungsrouting wird jedoch nach einem Failover oder Switchover zu einer regionsübergreifenden Autonomous Data Guard-Standbydatenbank gestoppt.
-