Wie der Titel schon sagt, Autonomous DB (ADW / ATP) mit Javas JDBC Thin Driver Ich werde versuchen, eine Verbindung herzustellen. Versuchen Sie es mit der folgenden Konfiguration 彡 (゜) (゜)
Compute(Java, JDBC Thin Driver) ⇒ Autonomous DB(ADW/ATP)
Dies ist eine Fortsetzung des vorherigen Artikels.
Mit Javas JDBC Thin Driver auf OCA Database (DBaaS) PDB Versuchen Sie eine Verbindung herzustellen. (Oracle Cloud Infrastructure) https://qiita.com/ora_gonsuke777/items/0e6c7d25d9977de45531
Autonomous DB ist ein Cloud-Dienst für vollständig verwaltete Datenbanken, die von ORACLE bereitgestellt werden.
Mit ADW (Autonomous Data Warehouse) für DWH Es gibt ATP (Autonomous Transaction Processing), das für OLTP geeignet ist. 彡 (゚) (゚)
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/
Der Unterschied zwischen der Verbindung zu einer regulären Oracle-Datenbank und der Verbindung zu einer autonomen Datenbank (ADW / ATP) Ein Punkt ist, dass eine verschlüsselte Kommunikation mit einer Brieftasche unerlässlich ist.
Informationen zum Herstellen einer Verbindung zur Autonomous Data Warehouse-Instanz https://docs.oracle.com/cd/E83857_01/paas/autonomous-data-warehouse-cloud/user/connect-intorduction.html#GUID-CD4C10A6-1C1E-4969-8F67-1433B6CE626A
Informationen zum Herstellen einer Verbindung zur Instanz für die autonome Transaktionsverarbeitung https://docs.oracle.com/cd/E83857_01/paas/atp-cloud/atpug/connect-intorduction.html#GUID-CD4C10A6-1C1E-4969-8F67-1433B6CE626A
Informationen zur Verbindung mit sqlplus oder SQL Developer finden Sie im folgenden Handbuch 彡 (゚) (゚)
Stellen Sie eine Verbindung mit Oracle SQL Developer (18.2) oder höher her 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
Die Angabe der Brieftasche auf irgendeine Weise ist eine wesentliche Voraussetzung für die ADW / ATP-Verbindung. In diesem Artikel werde ich einige Verbindungen mit JDBC Thin Treiber + TNS_ADMIN versuchen. 彡 (゚) (゚)
Es gibt mehrere Schritte, aber führen Sie "Plain JDBC using Oracle Wallets" im folgenden Handbuch aus.
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
Informationen zum Herunterladen und Erweitern der Brieftasche finden Sie im Folgenden.
Stellen Sie mit Golang eine Verbindung zu einer autonomen Datenbank (Autonomous Transaction Processing) her https://qiita.com/sugimount/items/69e11c116a895c9feb97
#Stellen Sie Wallet for Autonomous DB bereit
unzip Wallet_xxxxxx.zip
Die neueste Version (18.3) des JDBC-Treibers ist derzeit (26. Februar 2019) wie folgt, beziehen Sie sich jedoch auf die neueste 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
Laden Sie ojdbc8-full.tar.gz herunter und extrahieren Sie es auf Compute (tar xvzf ~).
#Bereitgestellter JDBC-Treiber Vollversion
tar xvzf ojdbc8-full.tar.gz
Die Brieftasche befindet sich in /home/opc/app/opc/product/18.0.0/client_1/network/admin. Es wird davon ausgegangen, dass der JDBC-Treiber auf / home / opc / work / ojdbc8-full erweitert ist.
# 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
In JDBC 18.3 lautet der Wallet-Pfad TNS_ADMIN Es kann in der JDBC-URL beschrieben werden.
In der URL angegeben. Hier ist ein Beispiel: 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=.";
In diesem Schreiben verwendet die Verbindungszeichenfolge den Deskriptor in tnsnames.ora. Das Beispiel ist unten
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
}
}
}
Kompilieren und unten ausführen. Beschreibung von Handbuch Straße oraclepki.jar, Fügen Sie osdt_core.jar und osdt_cert.jar in den Klassenpfad ein. 彡 (゚) (゚)
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
Erfolg (`・ ω ・) Ъ
Geben Sie den Wallet-Pfad in der Umgebungsvariablen TNS_ADMIN an. In diesem Fall ist es nicht erforderlich, TNS_ADMIN in der JDBC-URL zu beschreiben, und die Quelle lautet wie folgt: 彡 (゚) (゚)
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
}
}
}
Die Kompilierungs- und Ausführungsergebnisse sind wie folgt.
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
Wieder Erfolg (`・ ω ・) Ъ
Legen Sie den Wallet-Pfad als Systemeigenschaft oracle.net.tns_admin fest Geben Sie mit der Option -D an. Die Java-Quelle ist die gleiche wie oben, daher wird sie weggelassen.
Der Ausführungsbefehl lautet wie folgt.
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
Erfolg dreimal (`・ ω ・) Ъ
Durch Angabe des Klassenpfads von oraclepki.jar, osdt_core.jar, osdt_cert.jar Ich bin süchtig danach ... Zunächst muss der königliche Weg dem Handbuch folgen. 彡 (-) (-)
Recommended Posts