Lassen Sie uns schreiben, wie eine JDBC-URL erstellt wird (Oracle Database, Thin) 彡 (゚) (゚)
Die Beschreibung des Handbuchs lautet wie folgt.
8.2 Datenbank-URL und Datenbankspezifizierer https://docs.oracle.com/cd/E96517_01/jjdbc/data-sources-and-URLs.html#GUID-C4F2CA86-0F68-400C-95DA-30171C9FB8F0 Die Datenbank-URL ist eine Zeichenfolge. Die vollständige URL-Syntax lautet: jdbc:oracle:driver_type:[username/password]@database_specifier
8.2.4 Syntax für Dienstnamen mit dünnem Format https://docs.oracle.com/cd/E96517_01/jjdbc/data-sources-and-URLs.html#GUID-EF07727C-50AB-4DCE-8EDC-57F0927FF61A Thin-Format-Dienstnamen werden nur vom JDBC-Thin-Treiber unterstützt. Die Syntax lautet wie folgt: @//host_name:port_number/service_name
Da es sich bei der obigen Beschreibung um die einfache Verbindung (EZ CONNECT) selbst handelt, ist auch das Handbuch für die einfache Verbindung verknüpft. 彡 (゚) (゚)
8.1 Grundlegendes zu einfachen Verbindungsbenennungsmethoden https://docs.oracle.com/cd/E96517_01/netag/configuring-naming-methods.html#GUID-B0437826-43C1-49EC-A94D-B650B6A4A6EE CONNECT username@[//]host[:port][/service_name][:server][/instance_name]
In der Regel können Sie eine JDBC-URL erstellen, indem Sie den Hostnamen / die Portnummer / den Dienstnamen angeben. Da es der Hörer ist, der diese verwaltet, zunächst eine kurze Erklärung der Rolle des Hörers.
Der Listener ist ein Prozess, der sich auf dem Server befindet und Verbindungsanforderungen von Clients stellt. Der Prozess des Abhörens und Verwaltens / Zulassens von Verbindungen zur Oracle-Datenbank.
Dies ist ein Beispiel für eine dedizierte Serververbindung. Der folgende Artikel ist jedoch leicht zu verstehen, wie der Listener funktioniert.
Was ist eine Verbindung? https://www.oracle.com/technetwork/jp/articles/chapter5-1-101584-ja.html#p01b
Ein oder mehrere Sätze von Hostnamen (IP-Adresse) / Portnummer sind für den Listener definiert. Der Datenbankdienst wird dynamisch bei diesem Listener registriert.
Wenn der Befehl lsnrctl status
$ lsnrctl status LISTENER
LSNRCTL for Linux: Version 18.0.0.0.0 - Production on 30-APR-2019 23:39:27
:
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=0.0.0.0)(PORT=1521)))★ Hostname und Portnummer
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=8081))(Presentation=HTTP)(Session=RAW))
:
Services Summary...
Service "64a52f53a7683286e053cda9e80aed76" has 1 instance(s).★ Als Hörer registrierte Dienste
Instance "orclcdb", status READY, has 1 handler(s) for this service...
Service "784ac9d638bb5f59e0530100007f6047" has 1 instance(s).★ Als Hörer registrierte Dienste
Instance "orclcdb", status READY, has 1 handler(s) for this service...
Service "AYSTEST" has 1 instance(s).★ Als Hörer registrierte Dienste
Instance "orclcdb", status READY, has 1 handler(s) for this service...
Service "orcl" has 1 instance(s).★ Als Hörer registrierte Dienste
Instance "orclcdb", status READY, has 1 handler(s) for this service...
Service "orclcdb" has 2 instance(s).★ Als Hörer registrierte Dienste
Instance "orclcdb", status UNKNOWN, has 1 handler(s) for this service...
Instance "orclcdb", status READY, has 1 handler(s) for this service...
Service "orclcdbXDB" has 1 instance(s).★ Als Hörer registrierte Dienste
Instance "orclcdb", status READY, has 1 handler(s) for this service...
The command completed successfully
Datenbankdienste werden verwendet, um Oracle Database-Workloads zu identifizieren. Es wird ein logischer Alias vergeben. Sie können mehrere Services in einer Oracle-Datenbankumgebung erstellen.
Der folgende Artikel ist leicht zu verstehen Yade 彡 (゜) (゜)
Teil 3 Verbindung über Netzwerk herstellen https://www.oracle.com/technetwork/jp/database/articles/kusakabe/kusakabe-3-4490049-ja.html 4.2 Dienste Bis Oracle8 ... (Ausgelassen) ... Es war die SID, die die Oracle-Instanzkennung darstellt ... (Ausgelassen) ... Oracle Database 10g erweitert das Konzept von Diensten auf abstrakte Workloads ... (...) ... Der hinzugefügte Dienst wird vom dynamischen Dienstregistrierungsmechanismus beim Oracle-Listener registriert.
Beschreiben Sie diesen Datenbankdienstnamen als Verbindungsziel, z. B. JDBC-URL / tnsnames.ora / Easy Connection (EZCONNECT).
Versuchen Sie, eine JDBC-Beispiel-URL mit sqlcl (Befehlszeilenversion von SQL Developer) zu schreiben. 彡 (゚) (゚) Versuchen Sie, eine Verbindung zum AYTEST-Dienst in 2. oben herzustellen. Die JDBC-URL für diesen Fall lautet:
jdbc:oracle:driver_type:[username/password]@//host_name:port_number/service_name ↓ jdbc:oracle:thin:@//0.0.0.0:1521/AYTEST
Das Ausführungsbeispiel ist unten dargestellt. Die JDBC-URL befindet sich unmittelbar nach dem Benutzernamen des Befehls CONNECT hinter der Markierung @. Sie können die JDBC-URL auch mit dem Befehl sqlcl SHOW JDBC überprüfen.
cd /home/oracle/sqldeveloper/sqldeveloper/bin
./sql /nolog
CONNECT AYSHIBAT@jdbc:oracle:thin:@//0.0.0.0:1521/AYSTEST
SHOW JDBC
SQLcl: Release 18.3 Production on Wed May 01 01:06:43 2019
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Password? (**********?) ********
Connected.
-- Database Info --
Database Product Name: Oracle
:
-- Driver Info --
Driver Name: Oracle JDBC driver
Driver Version: 18.3.0.0.0
Driver Major Version: 18
Driver Minor Version: 3
Driver URL: jdbc:oracle:thin:@//0.0.0.0:1521/AYSTEST ★JDBC URL
:
Ich werde ein Beispiel schreiben, um eine Verbindung zur CDB der OCI-Datenbank (Oracle Cloud Infrastructure) (DBaaS) mit der SQLBC-JDBC-URL 彡 (゚) (゚) herzustellen. Versuchen Sie es mit dem Beispiel aus dem folgenden Artikel.
Versuchen Sie, mit sqlplus eine Verbindung zum OCA-Datenbank-PDB (DBaaS) herzustellen. (Oracle Cloud Infrastructure) https://gonsuke777.hatenablog.com/entry/2019/02/19/211953 : Verbindungszeichenfolge zum Verwaltungsdienst (CDB) (einfache Verbindung): dbname.subnetname.vcnname.oraclevcn.com:1521/dbname_cdb32r.subnetname.vcnname.oraclevcn.com :
Die JDBC-URL lautet im obigen Fall wie folgt.
jdbc:oracle:driver_type:[username/password]@//host_name:port_number/service_name ↓ jdbc:oracle:thin:@//dbname.subnetname.vcnname.oraclevcn.com:1521/dbname_cdb32r.subnetname.vcnname.oraclevcn.com
Das Verbindungsbeispiel von sqlcl lautet wie folgt: 彡 (゜) (゜)
./sql /nolog
CONNECT SYSTEM@jdbc:oracle:thin:@//dbname.subnetname.vcnname.oraclevcn.com:1521/dbname_iad32r.subnetname.vcnname.oraclevcn.com
SHOW JDBC;
Password? (**********?) ********
Connected.
-- Database Info --
Database Product Name: Oracle
:
-- Driver Info --
Driver Name: Oracle JDBC driver
Driver Version: 12.2.0.1.0
Driver Major Version: 12
Driver Minor Version: 2
Driver URL: jdbc:oracle:thin:@//dbname.subnetname.vcnname.oraclevcn.com:1521/dbname_iad32r.subnetname.vcnname.oraclevcn.com ★JDBC URL
:
Die JDBC-URL für autonome DB (ADW / ATP) finden Sie im folgenden Artikel 彡 (゚) (゚)
Versuchen Sie, mit Javas JDBC Thin Driver eine Verbindung zur autonomen Datenbank (ADW / ATP) herzustellen. (OCI, Oracle Cloud Infrastructure) https://gonsuke777.hatenablog.com/entry/2019/02/26/023534
Geben Sie den Speicherort der Brieftasche in TNS_ADMIN in irgendeiner Weise an. Wenn Sie TNS_ADMIN direkt in die JDBC-URL schreiben, 彡 (゚) (゚)
- Methode 1: Schreiben Sie den Wallet-Pfad (TNS_ADMIN) in die JDBC-URL https://gonsuke777.hatenablog.com/entry/2019/02/26/023534#4-%E6%96%B9%E6%B3%951%E3%82%A6%E3%82%A9%E3%83%AC%E3%83%83%E3%83%88%E3%81%AE%E3%83%91%E3%82%B9TNS_ADMIN-%E3%82%92-JDBC-URL-%E3%81%AB%E8%A8%98%E8%BF%B0
:
★ Das Folgende ist die JDBC-URL jdbc:oracle:thin:@xxxxxx_high?TNS_ADMIN=/home/opc/app/opc/product/18.0.0/client_1/network/admin
:
Siehe den Artikel für die Ergebnisse.
Wie in [Handbuch] beschrieben (https://docs.oracle.com/cd/E96517_01/jjdbc/data-sources-and-URLs.html#GUID-6F729E4D-064B-4FD9-AE92-1BD44B8BE5EF) Die JDBC-URL kann auch wie tnsnames.ora geschrieben werden. Das Folgende ist das Beispiel 彡 (゜) (゜)
* Eigentlich in einer Zeile beschrieben
jdbc:oracle:thin:@
(DESCRIPTION_LIST=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=dbname.subnetname.vcnname.oraclevcn.com)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=dbname_iad32r.subnetname.vcnname.oraclevcn.com))
)
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=dbname-scan.subnetname.vcnname.oraclevcn.com)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=dbname_iad32r.subnetname.vcnname.oraclevcn.com))
)
)
Das Verbindungsbeispiel mit sqlcl lautet wie folgt: long (゚) (゚) Befehl lang.
./sql /nolog
CONNECT SYSTEM@jdbc:oracle:thin:@(DESCRIPTION_LIST=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbname_iad32r.subnetname.vcnname.oraclevcn.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=aysdb121_iad1rn.sub12070931430.vcnname.oraclevcn.com)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbname-scan.subnetname.vcnname.oraclevcn.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=dbname_iad32r.subnetname.vcnname.oraclevcn.com))))
SHOW JDBC
SQLcl: Release 19.1 Production on Wed May 01 06:20:39 2019
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Password? (**********?) ***************
Connected.
-- Database Info --
Database Product Name: Oracle
:
-- Driver Info --
Driver Name: Oracle JDBC driver
Driver Version: 18.3.0.0.0
Driver Major Version: 18
Driver Minor Version: 3
Driver URL: jdbc:oracle:thin:@(DESCRIPTION_LIST=(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbname_iad32r.subnetname.vcnname.oraclevcn.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=aysdb121_iad1rn.sub12070931430.vcnname.oraclevcn.com)))(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=dbname-scan.subnetname.vcnname.oraclevcn.com)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=dbname_iad32r.subnetname.vcnname.oraclevcn.com))))
:
Ich frage mich, ob es einen schlechten Ruf hat, weil ich so etwas wie 7. oben schreiben kann (゜) (゜)
Dieser Bereich ist Teil von Oracle MAA (Maximum Availability Architecture). Failover der Verbindungszeit, clientseitiger Lastausgleich usw. Mir ist bewusst, dass dies der Fall ist, daher ist es notwendig, sich zu bemühen, dies zu verstehen (゜ ε ゜).
Wenn Sie die einfache Verbindung (EZ CONNECT) verstehen, sollten Sie Angst haben! Verbinden (?) Immer mehr 彡 (^) (^)
Geben Sie für sqlcl die Brieftasche mit dem Befehl set cloudconfig an. Folgendes wird hilfreich sein.
Oracle Cloud: Ich habe versucht, eine SQLcl-Verbindung zur autonomen Datenbank herzustellen https://qiita.com/shirok/items/86355be72a47a840d10e
Die JDBC-URL nach dem Festlegen von cloudconfig lautet wie folgt, etwas Kompliziertes (゜) (゜)
./sql /nolog
set cloudconfig /home/opc/app/opc/product/18.0.0/client_1/network/admin/Wallet_aysatp01.zip
CONNECT ADMIN@aysatp01_low
SHOW JDBC
SQLcl: Release 19.1 Production on Wed May 01 05:58:28 2019
Copyright (c) 1982, 2019, Oracle. All rights reserved.
Operation is successfully completed.
Operation is successfully completed.
Using temp directory:/tmp/oracle_cloud_config4416493815228189719
Password? (**********?) *************
Connected.
-- Database Info --
Database Product Name: Oracle
:
-- Driver Info --
Driver Name: Oracle JDBC driver
Driver Version: 18.3.0.0.0
Driver Major Version: 18
Driver Minor Version: 3
Driver URL: jdbc:oracle:thin:@(description= (address=(protocol=tcps)(port=1522)(host=xxxx.xxxx.xxxxxxxx.com))(connect_data=(service_name=xxxxxx_low.xxxx.xxxxxxxx.com))(security=(ssl_server_cert_dn="CN=xxxx.xxxx.xxxxxxxx.com,OU=…,O=…,L=…,ST=…,C=…")) )
:
Recommended Posts