autonomous databaseに接続してみる

Oracle Cloud always free Advent Calendar 2019の15日目です。

 

今日はalways freeのComputeインスタンスからalways freeのautonomous database(datawarehouse)に接続してみようと思います。
接続はSQLPLUSから行います。
autonomous database(datawarehouse)は作成済みとします。

 

#oracle instant clientのインストール
sudo yum -y install oracle-instantclient18.3-sqlplus


ウォレットのダウンロード
#方法1
Autonomous Database->Autonomous Data Warehouse で接続したいDBを選択
DB接続をクリックし、ウォレットのダウンロードをクリック
パスワードを入力する。

Wallet_datawarehouse.zipがダウンロードされるので、always free Computeインスタンスへアップロードする。(格納先は~/walletとする)

 

#方法2(OCI CLIが使用できることが前提)
oci db autonomous-database listコマンドで接続したいDBのOCIDを確認

oci db autonomous-database list
・・・・
"freeform-tags": {},
"id": "ocid1.autonomousdatabase.oc1.ap-tokyo-1.abxhiljrdouplsv4h3cmqjkyphjr6lkpie72fgrgvr2ehXXXXXXX",
"is-auto-scaling-enabled": false,
"is-dedicated": false,
・・・・
#idがOCID


#ウォレットのダウンロード
mkdir ~/wallet
cd ~/wallet
oci db autonomous-database generate-wallet \
--autonomous-database-id ocid1.autonomousdatabase.oc1.ap-tokyo-1.abxhiljrdouplsv4h3cmqjkyphjr6lkpie72fgrgvr2ehm5i2tiXXXXXX \
--file Wallet_datawarehouse.zip \
--password Passw0rd

 

#ウォレットの解凍
unzip Wallet_datawarehouse.zip


#zipファイルの削除
rm -f Wallet_datawarehouse.zip

 

#接続設定の確認
cat tnsnames.ora
datawarehouse_high = (description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=adb.ap-tokyo-1.oraclecloud.com))(connect_data=(service_name=XX96e1s4zxgj0_datawarehouse_high.adwc.oraclecloud.com))(security=(ssl_server_cert_dn="CN=adb.ap-tokyo-1.oraclecloud.com,OU=Oracle ADB TOKYO,O=Oracle Corporation,L=Redwood City,ST=California,C=US")))

datawarehouse_low = (description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=adb.ap-tokyo-1.oraclecloud.com))(connect_data=(service_name=XXw96e1s4zxgj0_datawarehouse_low.adwc.oraclecloud.com))(security=(ssl_server_cert_dn="CN=adb.ap-tokyo-1.oraclecloud.com,OU=Oracle ADB TOKYO,O=Oracle Corporation,L=Redwood City,ST=California,C=US")))

datawarehouse_medium = (description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=adb.ap-tokyo-1.oraclecloud.com))(connect_data=(service_name=XXsw96e1s4zxgj0_datawarehouse_medium.adwc.oraclecloud.com))(security=(ssl_server_cert_dn="CN=adb.ap-tokyo-1.oraclecloud.com,OU=Oracle ADB TOKYO,O=Oracle Corporation,L=Redwood City,ST=California,C=US")))

 

#sqlnet.oraファイルの編集
#"~"は認識しないので、フルパスで記入する必要あり。
cat << EOF > sqlnet.ora
WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY="/home/opc/wallet")))
SSL_SERVER_DN_MATCH=yes
EOF

 

#環境変数の設定
#必要に応じて以下を~/.bash_profileに追加する
export PATH=/usr/lib/oracle/18.3/client64/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib/oracle/18.3/client64/lib:$LD_LIBRARY_PATH
export TNS_ADMIN=~/wallet

 

#接続
[opc@docker wallet]$ sqlplus ADMIN/XXXXXX@datawarehouse_high

SQL*Plus: Release 18.0.0.0.0 - Production on Mon Nov 18 06:18:43 2019
Version 18.3.0.0.0

Copyright (c) 1982, 2018, Oracle. All rights reserved.

Last Successful login time: Mon Nov 18 2019 06:16:20 +00:00

Connected to:
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.4.0.0.0

SQL>

 

<参考>

itedge.stars.ne.jp

 

www.system-exe.co.jp

 

qiita.com

 

qiita.com

 

docs.oracle.com