Amazon Linux 2 に Oracle データベース (ソフトウェア) をインストールする

February 15, 2022

はじめに

今回、ふとしたきっかけから Oracle を勉強しようと思いはじめ、折角なので時間を見つけて ORACLE MASTER の資格取得を目指してみようかと思いました。まずはそのための第一歩として Oracle ソフトウェアをインストールする作業を行いたいと思います。なお、どうやら ORACLE MASTER Bronze DBA では GUI ツールである Oracle Universal Installer (以下、OUI) を用いたデータベースソフトウェアのインストール方法も問われるようなので、OUI を用いたインストールを試みます。

利用する環境について

今回は us-west-2 リージョンの ami-0cf3c6d47cf3ad24a を利用します。Amazon Linux 2 の AMI であるため、サポート外でありそもそも上手く動作しない可能性はありますが、一旦実験的な意味合いも踏まえてこれで進めてみようと思います。ダメだったら普通に RHEL 等を使います。
以下簡単な概要です。

$ uname -r
4.14.252-195.483.amzn2.x86_64
$ cat /etc/os-release 
NAME="Amazon Linux"
VERSION="2"
ID="amzn"
ID_LIKE="centos rhel fedora"
VERSION_ID="2"
PRETTY_NAME="Amazon Linux 2"
ANSI_COLOR="0;33"
CPE_NAME="cpe:2.3:o:amazon:amazon_linux:2"
HOME_URL="https://amazonlinux.com/"

OS グループ / ユーザーの作成

まずは Oracle ソフトウェアをインストールするのに必要な OS グループ及びユーザーを作成します。ここでは Oracle インベントリグループである oinstall と OSDBA グループである dba 、またそれらのグループに所属するユーザーである oracle を作成します。

$ sudo groupadd oinstall
$ sudo groupadd dba
$ sudo useradd oracle -g oinstall -G dba
$ sudo passwd oracle

完了したら、新規ユーザーでログインします。一応所属するグループを確認しておきましょう。

$ su oracle
Password:
$ groups
oinstall dba

環境変数の設定

各種環境変数の設定を行います。そのためにまずは一旦 ec2-user に戻り、ORACLE_BASE となるディレクトリを作成、またそのオーナーを oracle:oinstall に変更しておきます。

$ exit
$ sudo mkdir -p /u01/app/oracle
$ sudo chown -R oracle:oinstall /u01

上記が完了したら再度 oracle でログインし、ORACLE_HOME となるディレクトリも作成しておきます。

$ su oracle
Password:
$ mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1/

ここまでできたら ORACLE_SID も含めた上で、.bashrc に以下の内容を追記します。

.bashrc
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/19.3.0/dbhome_1/
export ORACLE_SID=ora1

ここまでで環境変数の設定は完了です。以下にこれら環境変数について簡単にまとめておきます。

環境変数 説明
ORACLE_BASE Oracle 関連ファイルの基準となるディレクトリパス。データベースファイルやログファイルなどの Oracle に関連するほとんどのファイルがここに配置される
ORACLE_HOME Oracle のソフトウェアを配置するディレクトリパス。ORACLE_HOME は ORACLE_BASE のサブディレクトリに指定する
ORACLE_SID インスタンスの識別子である SID (システム識別子) を設定する。この環境変数により接続先のインスタンスが識別され、原則的に「インスタンスの SID = データベース名」の関係が成り立つ

スワップ領域の作成

Oracle の Database インストレーションガイド にあるように、スワップ領域として確保しなければいけない領域が RAM のサイズに対して相対的に定められています。
今回は 32 GB の RAM が搭載されているため、16GB のスワップ領域を作成します。

$ sudo dd if=/dev/zero of=/swapfile bs=128M count=128
$ sudo chmod 600 /swapfile
$ sudo mkswap /swapfile 
$ sudo swapon /swapfile

ここまでできたら swapon コマンドで手順が正常に完了したことを確認します。

$ sudo swapon -s
Filename				Type		Size	Used	Priority
/swapfile                              	file    	16777212	0	-2

必要なパッケージのインストール

Oracle データベースインストール時に必要なライブラリを含むパッケージを予めインストールしておきます。

$ sudo yum install glibc-devel

これをやらないと make 時に失敗して以下のエラーが出力されます。

/usr/bin/ld: cannot find /usr/lib64/crti.o: No such file or directory
/usr/bin/ld: cannot find /usr/lib64/libc_nonshared.a

Oracle データベースのインストール

それではいよいよインストール作業です。まずは ここ から Database Enterprise/Standard Edition を選択し、Linux x86-64 の ZIP をダウンロードします。その後、一度 ec2-user に戻り対象の EC2 インスタンスに ZIP ファイルをコピーし、$ORACLE_HOME 配下に配置します。

$ exit 
$ sudo cp LINUX.X64_193000_db_home.zip /u01/app/oracle/product/19.3.0/dbhome_1/
$ sudo chown oracle:oinstall /u01/app/oracle/product/19.3.0/dbhome_1/LINUX.X64_193000_db_home.zip

再度 oracle ユーザーに戻り、zip ファイルを解凍します。

$ su oracle
Password:
$ cd /u01/app/oracle/product/19.3.0/dbhome_1/
$ unzip LINUX.X64_193000_db_home.zip

解凍後、runInstaller と呼ばれるシェルスクリプトが展開されているはずなので、XQuartz 等を起動した状態で SSH 接続を行い、これを実行します。

$ ./runInstaller

するとインストールウィザードが起動します。
Select any of the following install options の部分でインストールと同時にデータベースも作成するか、それとも Oracle のインストールのみを行うかを選択します。今回は後でデータベースを作成するため、一旦 Set Up Software Only を選択します。

Select Configuration Option

install oracle 1

次のインストールオプション及びデータベースエディションはデフォルトのままにします。

Select Database Installation Option

install oracle 2

Select Database Edition

install oracle 3

次にインストール場所の指定を行いますが、ここでは $ORACLE_BASE が利用されるため、あらかじめ /u01/app/oracle が指定されているはずです。このままいきます。

Specify Installation Location

install oracle 4

次はインベントリディレクトリの指定ですが、ここはデフォルトのままにします。インベントリディレクトリとは、そのマシンにインストールした Oracle 製品の情報を記録するディレクトリであり、この情報は Oracle ソフトウェアへのパッチ適用やアップグレード、削除のために使用されます。
なお、oraInventory Group Name には Oracle インベントリグループとして作成した OS グループ、つまり oinstall を指定します。

Create Inventory

install oracle 5

OS グループの指定はとりあえずデフォルトにしておきます。OSOPEROSBACKUPDBA 等は作成していないので dba が指定されてます。

Privileged Operation System groups

install oracle 6

次に前提条件をチェックするスクリプトを実行します。root ユーザーで実行されるため、root ユーザーのパスワードを入力します (oracle が sudoers にあればそれでも良いです)。

Root script execution configuration

install oracle 7

チェックが終わると以下のようにサマリーが表示されます。[Install] をクリックしましょう。

Summary

install oracle 8

インストールが完了すると以下の画面が表示されます。

Finish

install oracle 9

お疲れ様でした。次回はデータベースの作成を行ってみたいと思います。


 © 2023, Dealing with Ambiguity