Comme le titre l'indique, Autonomous DB (ADW / ATP) avec JDBC Thin Driver de Java J'essaierai de me connecter. Essayez-le avec la configuration suivante 彡 (゜) (゜)
Compute(Java, JDBC Thin Driver) ⇒ Autonomous DB(ADW/ATP)
Ceci est une continuation de l'article précédent.
Avec le pilote léger JDBC de Java sur la base de données OCI (DBaaS) PDB Essayez de vous connecter. (Oracle Cloud Infrastructure) https://qiita.com/ora_gonsuke777/items/0e6c7d25d9977de45531
Autonomous DB est un service cloud pour les bases de données entièrement gérées fourni par ORACLE.
Avec ADW (Autonomous Data Warehouse) pour DWH Il existe ATP (Autonomous Transaction Processing) adapté à OLTP. 彡 (゚) (゚)
Autonomous Data Warehouse https://docs.oracle.com/cd/E83857_01/paas/autonomous-data-warehouse-cloud/
Autonomous Transaction Processing https://docs.oracle.com/cd/E83857_01/paas/atp-cloud/
La différence entre la connexion à une base de données Oracle standard et la connexion à une base de données autonome (ADW / ATP) Un point est que la communication cryptée à l'aide d'un portefeuille est essentielle.
À propos de la connexion à l'instance Autonomous Data Warehouse https://docs.oracle.com/cd/E83857_01/paas/autonomous-data-warehouse-cloud/user/connect-intorduction.html#GUID-CD4C10A6-1C1E-4969-8F67-1433B6CE626A
À propos de la connexion à l'instance de traitement de transaction autonome https://docs.oracle.com/cd/E83857_01/paas/atp-cloud/atpug/connect-intorduction.html#GUID-CD4C10A6-1C1E-4969-8F67-1433B6CE626A
Pour la connexion avec sqlplus ou SQL Developer, reportez-vous au manuel suivant 彡 (゚) (゚)
Connectez-vous avec Oracle SQL Developer (18.2) ou supérieur https://docs.oracle.com/cd/E83857_01/paas/autonomous-data-warehouse-cloud/user/connect-sql-dev182.html#GUID-14217939-3E8F-4782-BFF2-021199A908FD
Connect with SQL*Plus https://docs.oracle.com/cd/E83857_01/paas/autonomous-data-warehouse-cloud/user/connect-sqlplus.html#GUID-A3005A6E-9ECF-40CB-8EFC-D1CFF664EC5A
Spécifier le portefeuille par certains moyens est une condition essentielle pour la connexion ADW / ATP. Dans cet article, je vais essayer quelques connexions avec le pilote JDBC Thin + TNS_ADMIN.
Il y a plusieurs étapes, mais exécutez "Plain JDBC using Oracle Wallets" dans le manuel suivant.
Java Connectivity with Autonomous Database (ATP or ADW) using 18.3 JDBC https://www.oracle.com/technetwork/database/application-development/jdbc/documentation/atp-5073445.html
Veuillez vous référer à ce qui suit pour télécharger et agrandir le portefeuille.
Se connecter à une base de données autonome (Autonomous Transaction Processing) à l'aide de Golang https://qiita.com/sugimount/items/69e11c116a895c9feb97
#Déployer le portefeuille pour la base de données autonome
unzip Wallet_xxxxxx.zip
La dernière version (18.3) du pilote JDBC est la suivante pour le moment (2019/2/26), mais veuillez vous référer à la dernière version.
Oracle Database 18c (18.3) JDBC Driver & UCP Downloads https://www.oracle.com/technetwork/database/application-development/jdbc/downloads/jdbc-ucp-183-5013470.html
Téléchargez ojdbc8-full.tar.gz et décompressez-le sur Compute (tar xvzf ~).
#Version complète du pilote JDBC déployé
tar xvzf ojdbc8-full.tar.gz
Le portefeuille se trouve dans /home/opc/app/opc/product/18.0.0/client_1/network/admin, Il est supposé que le pilote JDBC est étendu à / home / opc / work / ojdbc8-full respectivement.
# Wallet(TNS_ADMIN)
ls -la /home/opc/app/opc/product/18.0.0/client_1/network/admin
total 76
drwxr-xr-x. 3 opc opc 4096 Feb 25 16:26 .
drwxr-xr-x. 10 opc opc 4096 Jan 17 06:46 ..
-rw-rw-r--. 1 opc opc 6661 Feb 25 15:01 cwallet.sso
-rw-rw-r--. 1 opc opc 6616 Feb 25 15:01 ewallet.p12
-rw-rw-r--. 1 opc opc 3242 Feb 25 15:01 keystore.jks
-rw-rw-r--. 1 opc opc 87 Feb 25 15:01 ojdbc.properties
drwxr-xr-x. 2 opc opc 4096 Jan 17 06:44 samples
-rw-r--r--. 1 opc opc 1441 Aug 26 2015 shrept.lst
-rw-rw-r--. 1 opc opc 114 Feb 25 15:01 sqlnet.ora
-rw-rw-r--. 1 opc opc 155 Feb 4 11:23 sqlnet.ora.bak
-rw-rw-r--. 1 opc opc 2771 Feb 25 15:01 tnsnames.ora
-rw-rw-r--. 1 opc opc 3336 Feb 25 15:01 truststore.jks
-rw-rw-r--. 1 opc opc 19823 Feb 25 15:01 Wallet_xxxxxx.zip
# JDBC Driver full
ls -la /home/opc/work/ojdbc8-full
total 8328
drwx------. 2 opc opc 4096 Aug 20 2018 .
drwxrwxr-x. 22 opc opc 4096 Feb 25 15:33 ..
-r--r--r--. 1 opc opc 4161744 Aug 2 2018 ojdbc8.jar
-r-xr-xr-x. 1 opc opc 11596 Aug 2 2018 ojdbc.policy
-r--r--r--. 1 opc opc 144428 Aug 2 2018 ons.jar
-r--r--r--. 1 opc opc 307817 Aug 2 2018 oraclepki.jar
-r--r--r--. 1 opc opc 1661545 Aug 2 2018 orai18n.jar
-r--r--r--. 1 opc opc 205152 Aug 2 2018 osdt_cert.jar
-r--r--r--. 1 opc opc 306854 Aug 2 2018 osdt_core.jar
-rw-r--r--. 1 opc opc 2595 Aug 20 2018 README.txt
-r--r--r--. 1 opc opc 29103 Aug 2 2018 simplefan.jar
-r--r--r--. 1 opc opc 1398331 Aug 2 2018 ucp.jar
-r--r--r--. 1 opc opc 262415 Aug 2 2018 xdb6.jar
Dans JDBC 18.3, le chemin du portefeuille est TNS_ADMIN Il peut être décrit dans l'URL JDBC.
Spécifié dans l'URL. Voici un exemple: https://docs.oracle.com/cd/E83857_01/paas/atp-cloud/atpug/connect-jdbc-thin-wallet.html#GUID-F1D7452F-5E67-4418-B16B-B6A7B92F26A4 final static String DB_URL="jdbc:oracle:thin:@atpconnection_low?TNS_ADMIN=.";
Dans cet écrit, la chaîne de connexion utilise le descripteur dans tnsnames.ora. L'échantillon est ci-dessous
import java.sql.*;
public class GetContainerName {
public static void main(String[] args) {
final String path = "jdbc:oracle:thin:@xxxxxx_high?TNS_ADMIN=/home/opc/app/opc/product/18.0.0/client_1/network/admin";
final String id = "ADMIN"; //ID
final String pw = "xxxxxxxxxxxxx"; //password
try (
Connection conn = DriverManager.getConnection(path, id, pw);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT NAME FROM V$CONTAINERS");
) {
while (rs.next()) {
String cn = rs.getString("name");
System.out.println("Container Name => " + cn);
}
} catch(SQLException ex) {
ex.printStackTrace(); //Error
}
}
}
Compilez et exécutez ci-dessous. Description de Manual Rue oraclepki.jar, Incluez osdt_core.jar et osdt_cert.jar dans le chemin de classe. 彡 (゚) (゚)
export JAVA_HOME=/home/opc/work/jdk-11.0.2
export PATH=${JAVA_HOME}/bin:${PATH}
javac GetContainerName.java
java -classpath /home/opc/work/ojdbc8-full/ojdbc8.jar:\
/home/opc/work/ojdbc8-full/ucp.jar:\
/home/opc/work/ojdbc8-full/oraclepki.jar:\
/home/opc/work/ojdbc8-full/osdt_core.jar:\
/home/opc/work/ojdbc8-full/osdt_cert.jar:. \
GetContainerName
Container Name => VRWV9351YZ4NXNS_XXXXXX
Succès (`・ ω ・) Ъ
Spécifiez le chemin du portefeuille dans la variable d'environnement TNS_ADMIN. Dans ce cas, il n'est pas nécessaire de décrire TNS_ADMIN dans l'URL JDBC, et la source est la suivante 彡 (゚) (゚)
import java.sql.*;
public class GetContainerName {
public static void main(String[] args) {
final String path = "jdbc:oracle:thin:@xxxxxx_high";
final String id = "ADMIN"; //ID
final String pw = "xxxxxxxxxxxxx"; //password
try (
Connection conn = DriverManager.getConnection(path, id, pw);
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery("SELECT NAME FROM V$CONTAINERS");
) {
while (rs.next()) {
String cn = rs.getString("name");
System.out.println("Container Name => " + cn);
}
} catch(SQLException ex) {
ex.printStackTrace(); //Error
}
}
}
Les résultats de la compilation et de l'exécution sont les suivants.
export JAVA_HOME=/home/opc/work/jdk-11.0.2
export PATH=${JAVA_HOME}/bin:${PATH}
javac GetContainerName.java
export TNS_ADMIN=/home/opc/app/opc/product/18.0.0/client_1/network/admin
java -classpath /home/opc/work/ojdbc8-full/ojdbc8.jar:\
/home/opc/work/ojdbc8-full/ucp.jar:\
/home/opc/work/ojdbc8-full/oraclepki.jar:\
/home/opc/work/ojdbc8-full/osdt_core.jar:\
/home/opc/work/ojdbc8-full/osdt_cert.jar:. \
GetContainerName
Container Name => VRWV9351YZ4NXNS_XXXXXX
Réussir à nouveau (`・ ω ・) Ъ
Définissez le chemin du portefeuille comme propriété système oracle.net.tns_admin Spécifiez avec l'option -D. La source java est la même que 5. ci-dessus, elle est donc omise.
La commande d'exécution est la suivante.
export JAVA_HOME=/home/opc/work/jdk-11.0.2
export PATH=${JAVA_HOME}/bin:${PATH}
javac GetContainerName.java
unset TNS_ADMIN
java -classpath /home/opc/work/ojdbc8-full/ojdbc8.jar:\
/home/opc/work/ojdbc8-full/ucp.jar:\
/home/opc/work/ojdbc8-full/oraclepki.jar:\
/home/opc/work/ojdbc8-full/osdt_core.jar:\
/home/opc/work/ojdbc8-full/osdt_cert.jar:. \
-Doracle.net.tns_admin=/home/opc/app/opc/product/18.0.0/client_1/network/admin \
GetContainerName
Container Name => VRWV9351YZ4NXNS_XXXXXX
Succès trois fois (`・ ω ・) Ъ
En spécifiant le chemin de classe de oraclepki.jar, osdt_core.jar, osdt_cert.jar J'en suis accro ... Tout d'abord, la voie royale est de suivre le manuel. 彡 (-) (-)