Versuchen Sie, mit dem JDBC Thin Driver von Java eine Verbindung zu Autonomous DB (ADW / ATP) herzustellen. (OCI, Oracle Cloud Infrastructure)

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

1. Was ist autonome DB (ADW / ATP)?

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/

2. Punkte beim Herstellen einer Verbindung zur autonomen Datenbank (ADW / ATP) (* Brieftasche erforderlich)

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. 彡 (゚) (゚)

3. Laden Sie die JDBC-Treiber-Vollversion herunter und entpacken Sie sie

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

4. Methode 1: Schreiben Sie den Wallet-Pfad (TNS_ADMIN) in die JDBC-URL

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 (`・ ω ・) Ъ

5. Methode 2: Geben Sie den Wallet-Pfad (TNS_ADMIN) als Umgebungsvariable an

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 (`・ ω ・) Ъ

6. Methode 3: Geben Sie den Wallet-Pfad (TNS_ADMIN) als Systemeigenschaft mit -D an

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 (`・ ω ・) Ъ

7. Zusammenfassung

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

Versuchen Sie, mit dem JDBC Thin Driver von Java eine Verbindung zu Autonomous DB (ADW / ATP) herzustellen. (OCI, Oracle Cloud Infrastructure)
Versuchen Sie, mit JDK6 (Java) + JDBC OCI-Treiber (Typ 2) eine Verbindung zur autonomen Datenbank herzustellen.
Versuchen Sie, mit dem JDBC Thin Driver von Java eine Verbindung zu Autonomous DB (ADW / ATP) herzustellen. (OCI, Oracle Cloud Infrastructure)
Versuchen Sie, mit JDK6 (Java) + JDBC OCI-Treiber (Typ 2) eine Verbindung zur autonomen Datenbank herzustellen.
So erstellen Sie eine JDBC-URL (Oracle Database, Thin)
Herstellen einer Verbindung zu einer Datenbank mit Java (Teil 1) Möglicherweise die grundlegende Methode