Écrivons comment créer une URL JDBC (Oracle Database, Thin) 彡 (゚) (゚)
La description du manuel est la suivante.
8.2 URL de base de données et spécificateur de base de données https://docs.oracle.com/cd/E96517_01/jjdbc/data-sources-and-URLs.html#GUID-C4F2CA86-0F68-400C-95DA-30171C9FB8F0 L'URL de la base de données est une chaîne. La syntaxe complète de l'URL est: jdbc:oracle:driver_type:[username/password]@database_specifier
8.2.4 Syntaxe des noms de service au format fin https://docs.oracle.com/cd/E96517_01/jjdbc/data-sources-and-URLs.html#GUID-EF07727C-50AB-4DCE-8EDC-57F0927FF61A Les noms de service au format fin ne sont pris en charge que par le pilote JDBC Thin. La syntaxe est la suivante: @//host_name:port_number/service_name
Puisque la description ci-dessus est la connexion simple (EZ CONNECT) elle-même, le manuel de la connexion simple est également lié. 彡 (゚) (゚)
8.1 Comprendre les méthodes de dénomination de connexion simples 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]
En règle générale, vous pouvez créer une URL JDBC en spécifiant le nom d'hôte / numéro de port / nom de service. Puisque c'est l'auditeur qui les gère, d'abord une brève explication du rôle de l'auditeur.
L'écouteur est un processus qui réside sur le serveur et effectue des demandes de connexion à partir des clients. Processus d'écoute et de gestion / autorisation des connexions à la base de données Oracle.
Ceci est un exemple de connexion à un serveur dédié, mais l'article suivant est facile à comprendre comment fonctionne l'auditeur.
Qu'est-ce qu'une connexion? https://www.oracle.com/technetwork/jp/articles/chapter5-1-101584-ja.html#p01b
Un ou plusieurs ensembles de nom d'hôte (adresse IP) / numéro de port sont définis pour l'écouteur, Le service de base de données est enregistré dynamiquement avec cet écouteur.
Lorsque la commande lsnrctl status <nom de l'écouteur> est exécutée, le nom d'hôte (adresse IP) / numéro de port et Vous pouvez vérifier les services de base de données enregistrés. Ce qui suit est un exemple 彡 (゜) (゜)
$ 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)))★ Nom d'hôte et numéro de port
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost)(PORT=8081))(Presentation=HTTP)(Session=RAW))
:
Services Summary...
Service "64a52f53a7683286e053cda9e80aed76" has 1 instance(s).★ Services enregistrés en tant qu'auditeurs
Instance "orclcdb", status READY, has 1 handler(s) for this service...
Service "784ac9d638bb5f59e0530100007f6047" has 1 instance(s).★ Services enregistrés en tant qu'auditeurs
Instance "orclcdb", status READY, has 1 handler(s) for this service...
Service "AYSTEST" has 1 instance(s).★ Services enregistrés en tant qu'auditeurs
Instance "orclcdb", status READY, has 1 handler(s) for this service...
Service "orcl" has 1 instance(s).★ Services enregistrés en tant qu'auditeurs
Instance "orclcdb", status READY, has 1 handler(s) for this service...
Service "orclcdb" has 2 instance(s).★ Services enregistrés en tant qu'auditeurs
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).★ Services enregistrés en tant qu'auditeurs
Instance "orclcdb", status READY, has 1 handler(s) for this service...
The command completed successfully
Les services de base de données sont utilisés pour identifier les charges de travail Oracle Database. Il recevra un alias logique. Vous pouvez créer plusieurs services dans un même environnement Oracle Database.
L'article suivant est facile à comprendre Yade 彡 (゜) (゜)
Partie 3 Se connecter via le réseau https://www.oracle.com/technetwork/jp/database/articles/kusakabe/kusakabe-3-4490049-ja.html 4.2 Services Jusqu'à Oracle8 ... (Omis) ... C'était le SID qui est l'identifiant de l'instance Oracle ... (Omis) ... Oracle Database 10g étend le concept de services aux charges de travail abstraites ... (...) ... Le service ajouté est enregistré auprès de l'écouteur Oracle par le mécanisme d'enregistrement de service dynamique.
Décrivez ce nom de service de base de données comme destination de connexion, par exemple URL JDBC / tnsnames.ora / Easy Connection (EZCONNECT).
Essayez d'écrire un exemple d'URL JDBC avec sqlcl (version en ligne de commande de SQL Developer) 彡 (゚) (゚) Essayez de vous connecter au service AYTEST dans 2. ci-dessus. L'URL JDBC pour ce cas est:
jdbc:oracle:driver_type:[username/password]@//host_name:port_number/service_name ↓ jdbc:oracle:thin:@//0.0.0.0:1521/AYTEST
L'exemple d'exécution est illustré ci-dessous. L'URL JDBC se trouve après la marque @ immédiatement après le nom d'utilisateur de la commande CONNECT. Vous pouvez également vérifier l'URL JDBC avec la commande SHOW JDBC de sqlcl.
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
:
J'écrirai un exemple pour me connecter à la CDB de OCI (Oracle Cloud Infrastructure) DB (DBaaS) avec sqlcl JDBC URL 彡 (゚) (゚) Essayez d'utiliser l'exemple de l'article ci-dessous.
Essayez de vous connecter à la base de données OCI (DBaaS) PDB avec sqlplus. (Oracle Cloud Infrastructure) https://gonsuke777.hatenablog.com/entry/2019/02/19/211953 : Chaîne de connexion au service de gestion (CDB) (connexion simple): dbname.subnetname.vcnname.oraclevcn.com:1521/dbname_cdb32r.subnetname.vcnname.oraclevcn.com :
L'URL JDBC dans le cas ci-dessus est la suivante.
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
L'échantillon de connexion par sqlcl est le suivant 彡 (゜) (゜)
./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
:
Reportez-vous à l'article suivant pour l'URL JDBC pour la base de données autonome (ADW / ATP) 彡 (゚) (゚)
Essayez de vous connecter à Autonomous DB (ADW / ATP) avec JDBC Thin Driver de Java. (OCI, infrastructure Oracle Cloud) https://gonsuke777.hatenablog.com/entry/2019/02/26/023534
Spécifiez l'emplacement de stockage du portefeuille dans TNS_ADMIN d'une manière ou d'une autre. Si vous écrivez TNS_ADMIN directement dans l'URL JDBC, 彡 (゚) (゚)
- Méthode 1: écrivez le chemin du portefeuille (TNS_ADMIN) dans l'URL JDBC 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
:
★ Ce qui suit est l'URL JDBC jdbc:oracle:thin:@xxxxxx_high?TNS_ADMIN=/home/opc/app/opc/product/18.0.0/client_1/network/admin
:
Voir l'article pour les résultats.
Comme décrit dans Manual Vous pouvez également écrire l'URL JDBC comme tnsnames.ora. Voici l'exemple 彡 (゜) (゜)
* En fait décrit en une seule ligne
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))
)
)
L'exemple de connexion avec sqlcl est le suivant: 彡 (゚) (゚) command long.
./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))))
:
Je me demande s'il a mauvaise réputation car je peux écrire quelque chose comme 7. ci-dessus (゜) (゜)
Cette zone fait partie de Oracle MAA (Architecture de disponibilité maximale). Basculement au moment de la connexion, équilibre de la charge côté client, etc. Je suis conscient que c'est le cas, il faut donc faire un effort pour le comprendre (゜ ε ゜)
Si vous comprenez la connexion simple (EZ CONNECT), vous devriez avoir peur! Connecter (?) De plus en plus 彡 (^) (^)
Pour sqlcl, spécifiez le portefeuille avec la commande set cloudconfig. Ce qui suit sera utile.
Oracle Cloud: j'ai essayé la connexion SQLcl à Autonomous Database https://qiita.com/shirok/items/86355be72a47a840d10e
L'URL JDBC après avoir défini cloudconfig est la suivante, quelque chose de compliqué (゜) (゜)
./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=…")) )
: