Oracle Autonomous Transaction Processingを利用してOracle WebCenter Content 14c(14.1.2.0.0)をインストール・構成する際のポイントをまとめてみた

# はじめに
先日公開した以下の記事では、データベースとして**OCI Base Database**を利用し、Oracle WebCenter Content 14c(14.1.2.0.0)の環境をOCI上に作成しました

https://qiita.com/nakasato310/items/195ce0b4e49f87f581a7

今回は、データベースとしてOracle Autonomous Databaseの**Autonomous Transaction Processing-Serverless** (以降**ATP-S**)を利用し、Oracle WebCenter Content 14c(14.1.2.0.0)をインストール・構成する手順を紹介します

Oracle Autonomous Database - Serverlessについては、以下のスライドをご確認ください

https://speakerdeck.com/oracle4engineer/adb-s-technical-detail-jp

# この記事で紹介すること、しないこと

この記事では、ATP-Sのインストールや構成、WCCとの接続・設定に関するポイントのみを記載します。

Oracle WebCenter Content 14c(以降**WCC**)全体のインストール・構成の手順は、[先日公開した記事](https://qiita.com/nakasato310/items/195ce0b4e49f87f581a7)をご確認ください

# ATP-S利用時のポイント

## データベースの作成

:::note info
オリジナルの記事はこちら → [1.2 データベースの作成](https://qiita.com/nakasato310/items/195ce0b4e49f87f581a7#12-%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%E3%81%AE%E4%BD%9C%E6%88%90)
:::

ATP-Sインスタンスを作成します。ATP-Sインスタンスは、BaseDB作成時と同じく**プライベート・サブネット(=プライベート・エンドポイント)** 内に配置します。

ATP-Sをプライベート・エンドポイントで作成する場合のチュートリアルはこちら（↓）です。まずはその内容をご確認ください

https://oracle-japan.github.io/ocitutorials/adb/adb109-private-endpoint/

今回は以下の条件で作成しました

- 基本情報
    - 表示名: **wcc14catp**
    - データベース名: **wcc14catp**
- Workload type: **トランザクション処理**
- Depolyment type: **サーバーレス**
- データベースの構成
    - バージョン: **19c**
    - ECPU数: **2**
    - ストレージ: **20GB**
- 管理者資格証明の作成
    - ユーザー名: ADMIN
    - パスワード: **(条件を満たすパスワード)**
    - パスワードの確認: **(条件を満たすパスワード)**
- ネットワーク・アクセスの選択
    - アクセス・タイプ: **プライベート・エンドポイント・アクセスのみ**
    - 仮想クラウド・ネットワーク: **wcc14cvcn**
    - サブネット: **プライベート・サブネット-wcc14cvcn**

作成されたATP-Sインスタンス``wcc14catp``の**データベース接続**をクリックします

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120110/482b4629-9736-e510-fa56-d730f46fa7df.png)

``クライアント資格証明(ウォレット)のダウンロード``から、ウォレット・タイプで**インスタンス・ウォレット**を選択し、**ウォレットのダウンロード**をクリックします

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120110/5cb53ab3-95df-8559-462b-6349e7616a16.png)

**ウォレット(Wallet_wcc14catp.zip)** がダウンロードされます。これは後の作業（RCUの実行、構成マネージャの実行）で利用します

**接続文字列**を確認します。WCCからの接続はTNS名=**wcc14catp_tp**を利用します。また、ポート番号が**1522**となっていることを確認します（Base DBの接続ポート番号は**1521**です）

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120110/76a9dbda-828e-8a26-362a-1b1dcdaa544b.png)

ATP-Sインスタンスを作成したプライベート・サブネット``プライベート・サブネット-wcc14cvcn``を開き、以下イングレス・ルールを1件追加します

- ソース・タイプ: CIDR
- ソースCIDR: **10.0.0.0/24**
- IPプロトコル: TCP
- ソース・ポート範囲: All
- 宛先ポート: **1522**
- 説明: (任意)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120110/0f5ca442-77b2-6aba-a13e-20a5754e4793.png)

これにより、パブリック・サブネットに配置したWCCインスタンスから、プライベート・サブネット内のATP-Sインスタンスにポート番号1522での接続が可能になります

## スキーマの作成

:::note info
オリジナルの記事はこちら → [4. スキーマの作成](https://qiita.com/nakasato310/items/195ce0b4e49f87f581a7#4-%E3%82%B9%E3%82%AD%E3%83%BC%E3%83%9E%E3%81%AE%E4%BD%9C%E6%88%90)
:::

**Repository Creation Utility(RCU)** を利用し、WCC14cに必要なデータベース・スキーマを作成します。

RCUでATP-Sインスタンスに接続する場合、前の手順でダウンロードした **ウォレット** を利用します。ウォレットをWCCインスタンス上に展開し、編集することで、RCU実行時に読み込めるようになります


### ウォレットの展開と編集
WCCインスタンスにアクセスし、**oracle**ユーザーに切り替えます。

```
% ssh -i ssh-key-xxx.key opc@XXX.XXX.XXX.XXX
```
```
$ sudo su - oracle
```

``/home/oracle/config``配下にウォレットを格納するディレクトリを作成します。ディレクトリの場所や名前は任意ですが、今回は ``/home/oracle/config/atp/wallet`` とします

```
$ cd /home/oracle/config/
$ mkdir -p atp/wallet
```

`/home/oracle/config/atp/wallet`ディレクトリ直下に、ダウンロードした**ウォレット(Wallet_wcc14catp.zip)** をコピーし、zip形式ファイルを展開します

```
$ unzip Wallet_wcc14catp.zip 
```

9個のファイルが展開されます。この中から**sqlnet.ora**と**ojdbc.properties**の2つのファイルを編集します
```
$ ls
cwallet.sso  ewallet.pem   ojdbc.properties  sqlnet.ora    truststore.jks
ewallet.p12  keystore.jks  README            tnsnames.ora  Wallet_wcc14catp.zip
$ 
```
**sqlnet.ora**を編集します。
``DIRECTORY="?/network/admin"``を、ウォレット格納先のディレクトリ``/home/oracle/config/atp/wallet``に変更します

```bash:変更後のsqlnet.oraファイル
$ cat sqlnet.ora 
WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY="/home/oracle/config/atp/wallet")))
SSL_SERVER_DN_MATCH=no
```

**ojdbc.properties**を編集します。最終行に**SSL_SERVER_DN_MATCH=yes**を追加します

```bash:変更後のojdbc.propertiesファイル
$ cat ojdbc.properties 
# Connection property while using Oracle wallets.
oracle.net.wallet_location=(SOURCE=(METHOD=FILE)(METHOD_DATA=(DIRECTORY=${TNS_ADMIN})))
# FOLLOW THESE STEPS FOR USING JKS
# (1) Uncomment the following properties to use JKS.
# (2) Comment out the oracle.net.wallet_location property above
# (3) Set the correct password for both trustStorePassword and keyStorePassword.
# It's the password you specified when downloading the wallet from OCI Console or the Service Console.
#javax.net.ssl.trustStore=${TNS_ADMIN}/truststore.jks
#javax.net.ssl.trustStorePassword=<password_from_console>
#javax.net.ssl.keyStore=${TNS_ADMIN}/keystore.jks
#javax.net.ssl.keyStorePassword=<password_from_console>
SSL_SERVER_DN_MATCH=yes
```

### RCUの実行

RCUを実行します。ここでは、ATP-Sの設定ポイントについてのみ記載します

- **Database Connection Details** 
    - Database Type: Oracle Database enabled for edition based redefinition *(デフォルト選択)*
    - Connection String Format: **Connection String**
    - Connection String: ``wcc14catp_tp?TNS_ADMIN=/home/oracle/config/atp/wallet``
    - Username: **admin**
    - Password: **(ATP-Sインスタンス作成時に指定したパスワード)**
    - Role: **Normal**
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120110/9f19a9f6-9bba-15fe-b234-f534902dd1be.png)
:::note info
ATP-Sの場合、Role=Normalでスキーマを作成します
::: 

- **Map Tablespaces**
    - すべてのコンポーネントの``Default Tablespace列``を**DATA**に変更する
    - すべてのコンポーネントの``Temp Tablespace列``を**TEMP**に変更する
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120110/1b7b2cc1-d554-704d-33c4-55f3544eca08.png)
:::note info
ATP-Sは表領域管理を自動で行います。そのため、ユーザーによる表領域作成および削除はできず、デフォルトの表領域(**DATA**)と一時表領域(**TEMP**)をそのまま利用します。なお、デフォルトの表領域、一時表領域は必要に応じて自動的に拡張されます
::: 


## WebLogicドメインの作成

:::note info
オリジナルの記事はこちら → [5. WebLogicドメインの作成](https://qiita.com/nakasato310/items/195ce0b4e49f87f581a7#5-weblogic%E3%83%89%E3%83%A1%E3%82%A4%E3%83%B3%E3%81%AE%E4%BD%9C%E6%88%90)
:::

Configuration Wizard(構成ウィザード) を利用し、ドメインを作成します。ここでも、ATP-S指定時のポイントについてのみ記述します

- **Datasources**
    - **mds-WCCUIMDSREPO**を選択します
    - **Connection URL String**を選択
    - URL: ```jdbc:oracle:thin:@wcc14catp_tp?TNS_ADMIN=/home/oracle/config/atp/wallet```
    - Username: **WCC14CATP_MDS**
    - Password: **(ATP-Sインスタンス作成時に指定したパスワード)**
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120110/a640eb81-cbd2-f69f-1a5f-b2541fbe8cb5.png)
- **Database Configuration Type**
    - **RCU Data**を選択
    - **Connection URL String** を選択
    - URL: ```jdbc:oracle:thin:@wcc14catp_tp?TNS_ADMIN=/home/oracle/config/atp/wallet```
    - Username: **WCC14CATP_STB**
    - Password: **(ATP-Sインスタンス作成時に指定したパスワード)**
    ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/120110/2844ae2a-c6dc-f339-b7ad-b8184b2eae88.png)


# おわりに

データベースとして**ATP-S**を利用した場合のOracle WebCenter Content 14c(14.1.2.0.0)をインストール・構成する手順のポイントについて記載しました

製品ドキュメント内にも記載がありますので、あせてご確認ください

**RCU実行時**

https://docs.oracle.com/en/middleware/fusion-middleware/14.1.2/rcuug/repository-creation-utility.html#GUID-22C3AC9D-2F27-49ED-B983-8F4FC94C5501

https://docs.oracle.com/en/middleware/fusion-middleware/14.1.2/rcuug/troubleshooting-repository-creation-utility.html#GUID-DE069979-0500-40DC-A96B-907FC100B87F

**構成ウィザード実行時**

https://docs.oracle.com/en/middleware/fusion-middleware/14.1.2/inecm/configuring-product-domain.html#INECM-GUID-CF606C4C-091F-4EC3-87B8-EB1354B505D7

https://docs.oracle.com/en/middleware/fusion-middleware/14.1.2/inecm/configuring-product-domain.html#INECM-GUID-38B612BA-ACC0-4504-8A21-51A6B5681672