Easy Connect Plus in Version 19c
Die Welt vor 19c
Um eine Verbindung zu einer Oracle Datenbank aufzubauen, sind drei Informationen notwendig: der Server, auf dem die Datenbank läuft bzw. der Clustername, der Port auf dem der Listener auf Verbindungen wartet sowie der Servicename zu dem die Verbindung hergestellt werden soll. Normalerweise werden diese Angaben in der TNSNAMES.ORA Datei oder einem zentralen LDAP-Verzeichnis gepflegt und dem Client zur Verfügung gestellt. Dieser verwendet dann lediglich einen Alias zum Herstellen der Verbindung.
SQL> conn marco@testdb
Enter password: ******
Connected.
Ist jedoch kein passender Eintrag vorhanden, so kann mit Easy Connect ebenfalls eine Verbindung hergestellt werden sofern die drei oben genannten Informationen bekannt sind. Gerade für administrative Skripte oder in Data Guard Umgebungen ist das ein gebräuchlicher Weg.
SQL> conn marco@"vm123:1521/testdb"
Enter password: ******
Connected.
Allerdings gerät diese Methode an ihre Grenzen, wenn es sich um eine komplexere Umgebung wie Data Guard oder einen Cluster handelt. Für einen Cluster wurde mit der Einführung des Single Client Access Name (SCAN) ein wenig Abhilfe geschaffen, denn damit gibt es genau einen Servernamen, unter dem der ganze Cluster erreichbar ist. Sind aber mehrere Server bzw. mehrere Cluster im Spiel, wie es bei einer Data Guard Umgebung der Fall ist, dann lässt sich das mit Easy Connect nicht mehr abbilden und man muss auf einen TNSNAMES.ORA Alias zurückgreifen, der über ADDRESS_LIST und/oder DESCRIPTION_LIST das Konstrukt entsprechend abbildet und die verschiedenen Failover- und Timeout-Parameter festlegt.
Neu in Version 19c
In Version 19c hat Oracle nun das sogenannte Easy Connect Plus eingeführt. Nun können auch in einem Easy Connect mehrere Servernamen angegeben sowie Parameter festgelegt werden. Die Syntax orientiert sich dabei an Web-URLs, die Parameter werden hinter einem "?" angegeben und mit "&" getrennt. Eine Verbindung zu einer Data Guard Umgebung funktioniert damit folgendermaßen. Mit der herkömmlichen Methode müsste man sich gezielt gegen die aktuelle Primär-Datenbank verbinden, denn auf der Standby-Datenbank ist der Service nicht verfügbar:
SQL> conn marco@"vm121:1521/orcl112"
Enter password: ******
ERROR:
ORA-12514: TNS:listener does not currently know of service requested in connect descriptor
Warning: You are no longer connected to ORACLE.
Die neue Methode erlaubt es nun, beide Systeme anzugeben und die nötigen Failover-Parameter zu defineren so dass die Verbindung immer zu dem System aufgebaut ist, das gerade den Service ausführt, also Primär ist:
SQL> conn marco@"vm121:1521,vm123:1521/orcl112?failover=on&load_balance=off&retry_count=3&connect_timeout=5&transport_connect_timeout=3"
Enter password: ******
Connected.
Damit hat Oracle eine wesentliche Einschränkung bei der Verwendung von Easy Connect beseitigt. Gerade dann, wenn keine TNSNAMES.ORA Datei oder gar ein zentrales Naming über LDAP verwendet werden kann, ist das eine nicht zu unterschätzende Verbesserung.
Kommentare
Keine Kommentare