概要
Oracle Cloud Infrastructure(以下、OCI)には、Autonomous Databaseという自律型データベースサービスがある。
これは事前構成済のデータベース環境であり、ハードウェアの構成や管理、ソフトウェアのインストールを行う必要がない。
また、運用フェーズに入っても、これまでDBAでが行っていたデータベースのチューニング、セキュリティ、バックアップ、更新などの日常的な管理タスクを自動的に行なってくれるDBaaSである。
無料で使用できるAlways FreeではAutonomous Databaseを2つまで使用できるので、今回はこれを使ってAutonomous Databaseを作成し、Oracle Clientをインストール・設定したVMからSQL*Plus接続するところまでやってみる。
システム環境
作成してみる
前提
ネットワーク環境(VCN、サブネットなど)や、SQL*Plus接続元となるVMは事前に作成しておく。
Autonomous Databaseの作成
OCIコンソールの左メニューより「Oracle Database」→「Autonomous Database」を選択する。
「Autonomous Databaseの作成」を選択する。
任意の「表示名」「データベース名」を入力する。
ワークロード・タイプとデプロイメント・タイプを選択する。
今回は「トランザクション処理」と「共有インフラストラクチャ」を選択する。
無料(Always Free)で使用したい場合、「Always Freeの構成オプションのみを表示」チェックを有効化する。
管理者権限(ADMIN)のパスワードを入力する。
データベースにアクセス可能なネットワークを指定する。
今回はSQL*Plus接続元VMのパブリックIPアドレスを指定した。
最後にページ下部の「Autonomous Databaseの作成」を選択する。
「プロビジョニング中」となり、データベースが作成される。
無料(Always Free)で使用したい場合、データベース名の右に「Always Free」アイコンが表示されていることを確認する。
状態が「使用可能」に変化すれば、データベースの作成は完了。
VMにOracle Clientインストール・設定
今回使用するVMのOSは「Oracle Linux Server release 8.5」である。
[root@testvm999 ~]# cat /etc/system-release
Oracle Linux Server release 8.5
[root@testvm999 ~]#
yum installコマンドを使用し、Oracle Instant Clientのyumリポジトリを設定する。
[root@testvm999 ~]# yum install oracle-instantclient-release-el8.x86_64
Last metadata expiration check: 0:03:17 ago on Wed 23 Feb 2022 08:05:56 AM GMT.
Dependencies resolved.
=========================================================================================================
Package Architecture Version Repository Size
=========================================================================================================
Installing:
oracle-instantclient-release-el8 x86_64 1.0-1.el8 ol8_baseos_latest 16 k
Transaction Summary
=========================================================================================================
Install 1 Package
Total download size: 16 k
Installed size: 18 k
Is this ok [y/N]: y
Downloading Packages:
oracle-instantclient-release-el8-1.0-1.el8.x86_64.rpm 8.9 kB/s | 16 kB 00:01
---------------------------------------------------------------------------------------------------------
Total 8.9 kB/s | 16 kB 00:01
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : oracle-instantclient-release-el8-1.0-1.el8.x86_64 1/1
Running scriptlet: oracle-instantclient-release-el8-1.0-1.el8.x86_64 1/1
Verifying : oracle-instantclient-release-el8-1.0-1.el8.x86_64 1/1
Installed:
oracle-instantclient-release-el8-1.0-1.el8.x86_64
Complete!
[root@testvm999 ~]#
続けてyum installコマンドで「oracle-instantclient-basic.x86_64」と「oracle-instantclient-sqlplus.x86_64」をインストールする。
[root@testvm999 ~]# yum install oracle-instantclient-basic.x86_64 oracle-instantclient-sqlplus.x86_64
Last metadata expiration check: 0:04:03 ago on Wed 23 Feb 2022 08:10:38 AM GMT.
Dependencies resolved.
=========================================================================================================
Package Arch Version Repository Size
=========================================================================================================
Installing:
oracle-instantclient-basic x86_64 21.5.0.0.0-1 ol8_oracle_instantclient21 53 M
oracle-instantclient-sqlplus x86_64 21.5.0.0.0-1 ol8_oracle_instantclient21 710 k
Transaction Summary
=========================================================================================================
Install 2 Packages
Total download size: 54 M
Installed size: 241 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): oracle-instantclient-sqlplus-21.5.0.0.0-1.x86_64.rpm 3.4 MB/s | 710 kB 00:00
(2/2): oracle-instantclient-basic-21.5.0.0.0-1.x86_64.rpm 30 MB/s | 53 MB 00:01
---------------------------------------------------------------------------------------------------------
Total 30 MB/s | 54 MB 00:01
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Installing : oracle-instantclient-basic-21.5.0.0.0-1.x86_64 1/2
Running scriptlet: oracle-instantclient-basic-21.5.0.0.0-1.x86_64 1/2
Installing : oracle-instantclient-sqlplus-21.5.0.0.0-1.x86_64 2/2
Running scriptlet: oracle-instantclient-sqlplus-21.5.0.0.0-1.x86_64 2/2
Verifying : oracle-instantclient-basic-21.5.0.0.0-1.x86_64 1/2
Verifying : oracle-instantclient-sqlplus-21.5.0.0.0-1.x86_64 2/2
Installed:
oracle-instantclient-basic-21.5.0.0.0-1.x86_64 oracle-instantclient-sqlplus-21.5.0.0.0-1.x86_64
Complete!
[root@testvm999 ~]#
OCIコンソールより「DB接続」を選択する。
「ウォレットのダウンロード」を選択する。
パスワードを入力し、「ダウンロード」を選択する。
ダウンロードした「Wallet_TESTDB.zip」を、VMにアップロードして解凍する。
[opc@testvm999 admin]$ pwd
/home/opc/network/admin
[opc@testvm999 admin]$ ls -l
total 24
-rw-r--r--. 1 opc opc 21644 Feb 23 08:35 Wallet_TESTDB.zip
[opc@testvm999 admin]$ unzip Wallet_TESTDB.zip
Archive: Wallet_TESTDB.zip
inflating: README
inflating: cwallet.sso
inflating: tnsnames.ora
inflating: truststore.jks
inflating: ojdbc.properties
inflating: sqlnet.ora
inflating: ewallet.p12
inflating: keystore.jks
[opc@testvm999 admin]$ ls -l
total 64
-rw-rw-r--. 1 opc opc 3157 Feb 23 08:33 README
-rw-r--r--. 1 opc opc 21644 Feb 23 08:35 Wallet_TESTDB.zip
-rw-rw-r--. 1 opc opc 6701 Feb 23 08:33 cwallet.sso
-rw-rw-r--. 1 opc opc 6656 Feb 23 08:33 ewallet.p12
-rw-rw-r--. 1 opc opc 3191 Feb 23 08:33 keystore.jks
-rw-rw-r--. 1 opc opc 691 Feb 23 08:33 ojdbc.properties
-rw-rw-r--. 1 opc opc 114 Feb 23 08:33 sqlnet.ora
-rw-rw-r--. 1 opc opc 1830 Feb 23 08:33 tnsnames.ora
-rw-rw-r--. 1 opc opc 3378 Feb 23 08:33 truststore.jks
[opc@testvm999 admin]$
「sqlnet.ora」のディレクトリ指定を変更する。
「Wallet_TESTDB.zip」を解凍したファイルを配置した場所に変更する。
[opc@testvm999 admin]$ vi sqlnet.ora
WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY="?/network/admin")))
↓
WALLET_LOCATION = (SOURCE = (METHOD = file) (METHOD_DATA = (DIRECTORY="/home/opc/network/admin")))
[opc@testvm999 admin]$
Oracle接続用に環境変数を設定する。「/etc/profile」に記述しておく。
※TNS_ADMINの設定は、「Wallet_TESTDB.zip」を解凍したファイルを配置した場所にする。
[root@testvm999 ~]# vi /etc/profile
〜〜〜省略〜〜〜
export PATH=/usr/lib/oracle/21/client64/bin:$PATH
export LD_LIBRARY_PATH=/usr/lib/oracle/21/client64/lib:$LD_LIBRARY_PATH
export TNS_ADMIN=/home/opc/network/admin
[root@testvm999 ~]#
SQL*Plus接続確認
再ログインor環境変数を設定し、sqlplus64コマンドでSQL*Plus接続する。
[opc@testvm999 ~]$ export PATH=/usr/lib/oracle/21/client64/bin:$PATH
[opc@testvm999 ~]$ export LD_LIBRARY_PATH=/usr/lib/oracle/21/client64/lib:$LD_LIBRARY_PATH
[opc@testvm999 ~]$ export TNS_ADMIN=/home/opc/network/admin
[opc@testvm999 ~]$
[opc@testvm999 ~]$ sqlplus64 ADMIN/<データベース作成時に入力したパスワード>@testdb_medium
SQL*Plus: Release 21.0.0.0.0 - Production on Wed Feb 23 09:23:39 2022
Version 21.5.0.0.0
Copyright (c) 1982, 2021, Oracle. All rights reserved.
Last Successful login time: Wed Feb 23 2022 09:13:07 +00:00
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.14.0.1.0
SQL>
尚、接続識別子(@testdb_medium)は、「Wallet_TESTDB.zip」を解凍して出てきた「tnsnames.ora」に記述されている。
いくつか種類があり、パフォーマンスと同時実行数によって使い分ける。