[Oracle Cloud] 複数の Autonomous Database に Regional Wallet で接続

# はじめに

Autonomous Database を複数稼働したときに、便利な Regional Wallet を紹介します。

通常の Instance Wallet では、1 Wallet ファイルに、1 Autonomous Database が紐づいています。1個の Autonomous Database に接続するだけのときは、Instance Wallet で十分です。2個以上の Autonomous Database を利用するときは、複数の Wallet ファイルを使わないといけないため、素直に設定が出来ません。

そこで、Regional Wallet を使うことで、同一の OCI アカウント、同一のリージョンの Autonomous Database に対して 1個の Regional Wallet ファイルで接続が出来ます。

異なる リージョンの場合は、別の方法が必要です。[こちら](https://www.oraclesean.com/blog/managing-wallets-for-multiple-oracle-autonomous-databases)を参考にしてみると良いと思います。



# Regional Wallet Download

OCI Console の画面から、DB Connection を押します。

![1599694081062.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/0ad4ea8c-1a45-1008-0361-ee26889d5ac1.png)



Regional Wallet を選択して、Download を押します。

![1599694123351.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/5c99cca4-ea8a-516b-341e-a30c8f03a382.png)



Password を選択して、Download を押します。

![1599694143692.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/3abe69f7-1a8c-f090-614c-d0c20809c198.png)



# Wallet ファイルを配置

ダウンロードしてきた Regional Wallet ファイルを配置します。そもそもの設定方法は[こちら](https://qiita.com/sugimount/items/2c27395c065016f63015) をご欄ください。

![1599694253728.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/104247/5fd16446-7bb7-369e-543f-cbd58011a89d.png)



なお、tnsnames.ora には、次の設定が含まれています。SQL*Plus のログインに使用するため、見ておきましょう。

```
# 1台目
adwsugi_high = (description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=adb.ap-tokyo-1.oraclecloud.com))(connect_data=(service_name=sya6vphk3pzlkhq_adwsugi_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")))
adwsugi_low = (description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=adb.ap-tokyo-1.oraclecloud.com))(connect_data=(service_name=sya6vphk3pzlkhq_adwsugi_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")))
adwsugi_medium = (description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=adb.ap-tokyo-1.oraclecloud.com))(connect_data=(service_name=sya6vphk3pzlkhq_adwsugi_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")))

# 2台目
db202009100320_high = (description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=adb.ap-tokyo-1.oraclecloud.com))(connect_data=(service_name=sya6vphk3pzlkhq_db202009100320_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")))
db202009100320_low = (description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=adb.ap-tokyo-1.oraclecloud.com))(connect_data=(service_name=sya6vphk3pzlkhq_db202009100320_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")))
db202009100320_medium = (description= (retry_count=20)(retry_delay=3)(address=(protocol=tcps)(port=1522)(host=adb.ap-tokyo-1.oraclecloud.com))(connect_data=(service_name=sya6vphk3pzlkhq_db202009100320_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")))
```



2つの Autonomous Database に対して接続を行います。まず、1つ目です。

```
admin@adwsugi_high
```



実行例です。事前に `EXAMPLES` テーブルを作成していたので、テーブル一覧が見えています。

```
Enter user-name: admin@adwsugi_high
Enter password:
Last Successful login time: Wed Sep 09 2020 23:36:12 +00:00

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.5.0.0.0

SQL>
SQL> select table_name from user_tables;

TABLE_NAME
--------------------------------------------------------------------------------
EXAMPLES
EXP_SD_46-13_35_26

SQL>
```



次に2つ目への接続です。

```
admin@db202009100320_high
```



実行例です。こちらは何もテーブルを作っていないため、表示されていません。

```
Enter user-name: admin@db202009100320_high
Enter password:
Last Successful login time: Wed Sep 09 2020 23:33:59 +00:00

Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.5.0.0.0

SQL> select table_name from user_tables;

no rows selected

SQL>
```



# 参考URL

https://www.oraclesean.com/blog/managing-wallets-for-multiple-oracle-autonomous-databases

https://docs.oracle.com/cd/F19136_01/netag/configuring-naming-methods.html#GUID-8C85D289-6AF3-41BC-848B-BF39D32648BA