Connection Load und Security Management mit dem Oracle Connection Manager Database Proxy
Architektur
Diese Architektur beschreibt eine grundlegende Konfiguration. Es gibt andere erweiterte Verbindungsmodi für PRCP (Proxy Resident Connection Pooling) und Threaded-Modi, mit denen die Performance von CMAN-TDM gesteigert wird. Diese Funktionen optimieren die Nutzung von Datenbankressourcen durch dynamisches Load Balancing und intelligentes Poolmanagement.
In der folgenden Beispielarchitektur befindet sich Oracle Autonomous Database Serverless in Oracle Cloud. Das gleiche Prinzip gilt jedoch für eine Cloud eines Drittanbieters.
Diese Architektur unterstützt die folgenden Komponenten:
- CMAN-TDM
Oracle Connection Manager (CMAN) ist ein Proxyserver, der Verbindungsanforderungen an Datenbanken oder andere Proxyserver weiterleitet. Die Verbindung und die Daten werden bei der Authentifizierung zwischen der Datenbank und dem Client übertragen. CMAN wird auf Sessionebene ausgeführt und befindet sich normalerweise auf einem Computer, der vom Datenbankserver und vom Clientcomputer getrennt ist.
CMAN stellt Folgendes bereit:- Zugriffskontrolle: Mit der regelbasierten Konfiguration können Sie benutzerdefinierte Clientanforderungen filtern und andere annehmen.
- Session-Multiplexing: So leiten Sie mehrere Clientsitzungen über eine Netzwerkverbindung zu einem Shared Server-Ziel weiter.
Traffic Director Mode (TDM) ist ein optionales Intelligence-Feature von CMAN, das als Datenbankproxy für die Anwendung fungiert. TDM fügt die zusätzlichen Dimensionen von transparenter High Availability (HA) durch Ausfallunterstützung, erweiterte Sicherheitsfunktionen in der Cloud (DoS und rätselhafter Angriffsschutz, Mandantenisolierung usw.) und Leistungsoptimierungsfunktionen hinzu.
Mit CMAN-TDM kann jede Client-App eine Verbindung zu Oracle Database (sowohl On-Premises als auch in der Cloud) herstellen, ohne die zugrunde liegenden Datenbankdetails für den Client verfügbar zu machen. Sie ist mit verschiedenen Versionen von Oracle Database kompatibel.
- Oracle Call Interface (OCI)
Oracle Call Interface ist eine umfassende, leistungsstarke, native C-Sprachschnittstelle zu Oracle Database für benutzerdefinierte oder in einem Package integrierte Anwendungen.
Die APIs bieten eine Schnittstelle zu Oracle Database, um Datenbankadministrationsaufgaben auszuführen. Sie bilden die Grundlage für weitere sprachspezifische Schnittstellen. Beispiel: Oracle Data Provider for Net-Core (ODP.Net, Unmanaged), Oracle Precompiler (Pro*C), Oracle ODBC, Oracle C++ Call Interface (OCCI) und Scripting Language-Treiber für
node-oracledbundpython-oracledb. CMAN-TDM funktioniert auch mit PHP OCI8, ROracle, Godror, ruby-oci8, rust-oracle usw. - Java Database Connectivity (JDBC)
Der Java Database Connectivity-Treiber stellt Java-APIs bereit, die Java-Programme aktivieren. Es bietet Java-Anwendungen eine Standardmethode, um eine Verbindung zu Daten in relationalen Datenbanken und anderen tabellarischen Datenquellen herzustellen und diese zu bearbeiten. JDBC verwendet einen "Treiber", um diese Interaktion zu erleichtern, wobei verschiedene Treibertypen unterschiedliche Leistungsniveaus und Plattformabhängigkeit bieten.
-
JDBC Thin
Der JDBC Thin-Treiber ist ein reiner Java-Treiber vom Typ IV. Der Treiber bietet eine hohe Performance, die mit der Performance des JDBC-Oracle Call Interface-Treibers vergleichbar ist. Der JDBC-Thin-Treiber wird vollständig in Java geschrieben, ist leichtgewichtig, plattformunabhängig und erfordert keine zusätzliche Oracle-Software auf der Clientseite.
Der JDBC-Thin-Treiber kommuniziert mit dem Server über TTC, ein von Oracle entwickeltes Protokoll für den Zugriff auf Daten aus Oracle Database. Sie kann sowohl für Anwendungsserver als auch für Applets verwendet werden. Der Treiber ermöglicht eine direkte Verbindung zur Datenbank, indem er eine Implementierung von TCP/IP bereitstellt, die Oracle Net und TTC zusätzlich zu Java-Sockets implementiert. Beide Protokolle sind einfache Implementierungsversionen ihrer Pendants auf dem Server. Das Oracle Net-Protokoll wird nur über TCP/IP ausgeführt.
Sie können den JDBC Thin-Treiber sowohl auf der Client- als auch auf der Serverseite verwenden. Auf der Client-Seite werden Treiber in Java-Anwendungen oder Java-Applets verwendet, die entweder auf dem Client oder in der Middle Tier einer Three-Tier-Konfiguration ausgeführt werden. Auf der Serverseite wird dieser Treiber für den Zugriff auf eine Remote-Oracle Database-Instanz oder eine andere Session in derselben Datenbank verwendet.
node-oracledbnode-oracledbist derNode.js-Treiber für die Verbindung zu Oracle Database.python-oracledbpython-oracledbist der Python-Treiber für die Verbindung zu Oracle Database.- Oracle Data Provider for .NET (ODP.NET)
Oracle Data Provider for .NET-Funktionen optimierten den ADO.NET-Datenzugriff auf die Oracle Database. Mit ODP.NET können Entwickler die Vorteile der erweiterten Oracle Database-Funktionalität nutzen, einschließlich Oracle Real Application Clusters (Oracle RAC), Self-Tuning-Anweisungscache, Application Continuity und Fast Connection Failover.
Es gibt drei Treibertypen:- ODP.NET Core: Entwickelt für plattformübergreifende .NET-(Core-)Anwendungen
- ODP.NET, verwalteter Treiber: .NET Framework-Provider mit 100% verwaltetem Code. Entwickler stellen eine einzelne Assemblierung in einem Deployment Package bereit, das kleiner als 10 MB ist.
- ODP.NET, nicht verwalteter Treiber: Herkömmlicher Oracle ADO.NET-Provider, der den Oracle Database-Client verwendet.
- Proxy Resident Connection Pooling (PRCP)
Das Proxy Resident Connection Pooling ist die Pooling-Funktion von CMAN-TDM.
Es verwendet die Sessionpoolfunktion von Oracle Call Interface, um eine große Anzahl von Clientverbindungen zu spiegeln. Dadurch können mehrere eingehende Verbindungen von Clientprozessen einen Pool ausgehender Verbindungen verwenden, die mit Datenbankprozessen verbunden sind. Diese sind mit Sessions in der Schicht CMAN-TDM verknüpft. PRCP bietet einen Trichter für Anwendungsverbindungen ohne Datenbank-Overhead oder die Notwendigkeit von Multithread-Clients. Verschiedene Anwendungsinstanzen können Sessions gemeinsam verwenden.
Informationen zu erforderlichen Produkten und Rollen
Für diese Lösung sind die folgenden Produkte und Rollen erforderlich:
- Oracle Cloud Infrastructure
-
Oracle Autonomous Database
- Oracle Database-Client 21c oder höher unter Oracle Linux
-
CMAN-TDM, Version 21.3.0.0.0 oder höher
-
SQL*Plus-Clientanwendung: Release 21.3 oder höher
Dies sind die Rollen, die für jedes Produkt oder jede Dienstleistung erforderlich sind.
| Servicename: Rolle | Erforderlich für... |
|---|---|
Oracle Autonomous Database: root |
Erstellen Sie die Benutzer-, Basis- und Home-Verzeichnisse oracle zur Ausführung von CMAN. Installieren Sie die Librarys vor der Installation der neuesten Oracle Database-Version, um den Benutzer oracle in Linux einzurichten.
Außerdem müssen Sie den Port öffnen und die CMAN-TDM-Adresse für den CMAN-TDM-Server in der Datei |
Oracle Autonomous Database: admin |
Prüfen Sie die Datenbankverbindung zu CMAN, erstellen Sie den Datenbankproxybenutzer, erstellen Sie das Datenbankproxybenutzer-Wallet, erstellen Sie einen CMAN-TDM-Anwendungsbenutzer für allgemeinen Anwendungszugriff, und fügen Sie allen Anwendungsbenutzern, die Zugriff auf Oracle Autonomous Database benötigen, über CMAN-TDM die tdm-Berechtigungen des Datenbankproxybenutzers hinzu.
|
Oracle Autonomous Database: oracle |
Legen Sie die Umgebungsvariable TNS_ADMIN fest, konfigurieren Sie CMAN-TDM, um eine Verbindung zu Oracle Autonomous Database herzustellen |
| Oracle Cloud Infrastructure: Oracle Cloud-Account | stellen Sie eine Verbindung zu Oracle Cloud her und erstellen Sie Services, einschließlich Oracle Autonomous Database. |
CMAN: Benutzer app
|
über CMAN-TDM eine Verbindung zur Datenbank herstellen. Der Benutzer app muss bei Oracle Autonomous Database registriert sein.
|
Informationen zu Ihren Anforderungen finden Sie unter Produkte, Lösungen und Services von Oracle.
