1.はじめに
Autonomous DatabaseはDatabaseの運用管理などが自動化される一方、Base Database等と異なりOSへのログインができないため、LinuxからSQL*Plusで接続できる環境が欲しいといった場合、別途Computeインスタンスを作成し、接続設定を行う必要があります。
この記事ではAutonomous Databaseを作成し、ComputeからSQL*Plusで接続するまでの環境構築手順を記載します。
前提条件
Oracle Cloudへの登録が済んでおり、OCIのWebコンソールへ接続できること。
2.仮想クラウド・ネットワークの作成
ネットワーキング > 仮想クラウド・ネットワーク より、VCNの作成を行います。
その際、「VCNの作成」ではなく、「VCNウィザードの起動」から作成すると以下の関連するリソースも同時に作成されるため便利です。
- パブリック・サブネット
- プライベート・サブネット
- インターネット・ゲートウェイ
- セキュリティ・リスト
- ルート表
※言語を日本語で進めると、関連するリソースが「パブリック・サブネット-VCN_XXX」のような日本語名になるようです。気になる方は言語を英語に変えて作成することを推奨します。
3.Computeインスタンスの作成
コンピュート > インスタンス より、インスタンスの作成を行います。
イメージとシェイプ でComputeインスタンスのイメージ(Linuxのバージョン)を確認し、必要に応じて変更します。※執筆時点のデフォルトはOracle Linux 8でした。
プライマリVNIC情報欄で先ほど作成したVCN及びパブリック・サブネットが設定されていることを確認します。
SSHキーの追加では秘密キーと公開キーをダウンロードしておきます。
作成ができたらパブリックIPを確認しておきます。
4.Autonmous Databaseの作成
Oracle Database > Autonomous Database よりAutonomous Databaseの作成を行います。
データベース・バージョンの選択では23aiを選択しました。
管理者資格証明の作成でADMINユーザーのパスワードを設定します。
作成ができたらデータベース接続より、インスタンス・ウォレットをダウンロードします。
5.Computeインスタンスの設定
5-1.Computeインスタンスへの接続
teratermの設定 > SSH認証で「ユーザ名」に「opc」、「RSA/DSA/ECDSA/ED25519鍵を使う」にComputeインスタンス作成時にダウンロードした秘密鍵を指定し、設定を保存します。
ファイル > 新しい接続より、ComputeインスタンスのパブリックIPを指定して接続します。
5-2.Oracleユーザーの作成
$ sudo su -
# /usr/sbin/groupadd -g 54321 oinstall
# /usr/sbin/useradd -u 54321 -g oinstall oracle
5-3.Oracle Instant Clientのインストール
Oracle Instant ClientはOSやClientのバージョンによりインストール方法が異なります。
以下ページを参考にインストールします。
https://yum.oracle.com/oracle-instant-client.html
# dnf install oracle-instantclient-release-el8
# dnf install -y oracle-instantclient-sqlplus
インストールが完了したら、インストールされたClientのlibディレクトリを/etc/profileに追記します。
oracle-instantclient-release-el8でインストールされるInstant Clientのバージョンは21で、パスは/usr/lib/oracle/21/client64/libです。
# cat <<'EOL' >> /etc/profile
export ORACLE_HOME=/usr/lib/oracle/21/client64/lib
export NLS_LANG=Japanese_Japan.AL32UTF8
export LD_LIBRARY_PATH=$ORACLE_HOME:$LD_LIBRARY_PATH
EOL
# source /etc/profile
5-4.Walletの配置
4章でダウンロードしたADBのウォレットをComputeインスタンスにWinSCPなどで転送して配置します。
Walletファイルを解凍し、sqlnet.oraを編集します。
tnsnames.oraで接続文字列も確認します。
$ cd /home/oracle/wallet
$ unzip Wallet~.zip
$ cat tnsnames.ora
⇒接続文字列を確認
$ vi sqlnet.ora
⇒DIRECTORYの値を$TNS_ADMINに変更
DIRECTORY=$TNS_ADMIN
5-5.接続確認
TNS_ADMINの変数を設定し、接続確認を行います。
export TNS_ADMIN=/home/oracle/wallet
sqlplus admin/<password>@<tnsnames.oraで確認した接続文字列>
接続が確認できたらoracleユーザーの.bashrcなどに記載しておくと便利です。
以上でComputeインスタンスからADBへ接続する環境の構築ができました。