Oracle CloudでAutonomous Databaseを作成してみた

IT技術

概要

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」に記述されている。
いくつか種類があり、パフォーマンスと同時実行数によって使い分ける。

タイトルとURLをコピーしました