EMCCを手早く構築する手順その1 - OS 構成と Oracle Database インストール編

記事タイトルとURLをコピーする

こんにちは、テクニカルサポート課の 佐藤 光晃です。
本ブログは検証を目的とした Oracle Enterprise Manager Cloud Control 13c Release 5 (本記事作成時点で最新バージョン、以下 EMCC) を EC2 インスタンスに手早く構築する手順の内、OS での前提条件クリア、および、Oracle Database をインストールするブログとなります。
■手順
1) EC2 インスタンス、および、OS 側の準備 ★
2) Oracle Database のインストール ★

3) 管理リポジトリ・データベースの作成
4) EMCC のインストール
5) EMCC に RDS for Oracle の登録
★印が本ブログの内容となります。
また、本手順では EMCC を目的としていない、Oracle Database on EC2 の作成自体も可能となっております。

Oracle Enterprise Manager Cloud Control 13c Release 5 (EMCC) について

EMCC は Oracle で提供しているエンタープライズ IT 管理製品で、オンプレミス、クラウド環境の運用に使用することができます。
EMCC ですが、AWS や他でも使われているような用語が独自の意味を持っている場合があるので、AWS コンソールを使いこなしている人ほど紛らわしい点は感じられます。そのため、細かい意味の差分確認も含めて詳細は Oracle 社ドキュメントをご参照いただきたく存じます。

EMCC は一般的に Oracle のオンプレミス環境や Exadata のようなアプライアンス製品、OCI などの Oracle に関わる製品を管理するために用いられることが多いと思います。
AWS RDS には RDS for Oracle や RDS Custom for Oracle がありますが、こちらも例にもれず管理対象とすることが可能となっております。
ただし、AWS ドキュメントにも記載のとおりマルチテナントではサポートされないものですので、EMCC で管理対象となる DB は非マルチテナントでの運用前提となります。

docs.aws.amazon.com

EC2 インスタンス準備

本ブログにおいては、XWindow System を利用しますので、接続元のクライアントには XWindow を可能とするソフト (Xming など) をご準備ください。 ※VNC など GUI で接続する場合は「sudo dnf groupinstall "Server with GUI"」と VNC サーバーソフトウェアをインストールする必要があります。 EMCC は最小規模のインストールでも RAM の前提が 10GB とそれなりに必要となっています。
本検証では t2.xlarge (16 GiB メモリ) インスタンスタイプでインストールを進めております。

Enterprise Manager Cloud Controlのハードウェア要件

OS については対応 OS の一つである Red Hat 8.x で進めていきます。

Enterprise Manager Cloud Controlのパッケージ、カーネル・パラメータおよびライブラリ要件

また、EMCC 関連のデータを格納する管理リポジトリ・データベースを同インスタンス内で作成しますので、Oracle Database インストールの要件も同時に満たしていきます。
Oracle Database はリスナーに関するファイルでホスト名や IP アドレスを記述しており、実際のホスト名や IP アドレスと合致しないと接続できないという問題があるため、本ブログでは IP アドレスとホスト名をこちら[1]を参考に固定しております。

[1] RHEL 7 または CentOS 7 のプライベート EC2 インスタンスに静的ホスト名を割り当てる | AWS re:Post

インスタンス起動後、下記ディレクトリに Oracle Database と EMCC のインストーラーを配置します。

mkdir -p /tmp/oracle/installer/
# インストーラー配置
$ ls
 19_11_0_0_0_Database_Template_for_EM13_5_0_0_0_Linux_x64.zip → EMCC 管理リポジトリ・データベース作成用の DBCA テンプレート
'Oracle Database 19.3.0.0.0 for Linux x86-64.zip' → Oracle Database 19c インストーラー
 em13500_linux64-2.zip → EMCC インストールに必要なファイルの一つ
 em13500_linux64-3.zip → 同上
 em13500_linux64-4.zip → 同上
 em13500_linux64-5.zip → 同上
 em13500_linux64.bin → EMCC インストーラー

Oracle Database 19c インストーラーは Oracle Software Delivery Cloud からダウンロードしております。
EMCC インストールに必要なファイルはこちらからダウンロードしております。 管理リポジトリ・データベース作成用の DBCA テンプレートはこちらからのダウンロードしております。

Linux OS で上での準備

EMCC の管理リポジトリは Oracle Database で構成されます。そのため、Oracle Database と EMCC をインストールするための前提を満たしていく必要があります。
今回は検証環境を手早く構築するために、事前にコマンドをいくつか準備しました。

コマンド一覧

以下コマンドはすべて ec2-user で行っております。本来は手動で設定すべき箇所ですが、検証用のためコマンド一つひとつで設定できるようにしております。

■ファイアウォールと SELinux の無効化

# firewalld 無効化と再起動後 SELinux 無効化
sudo systemctl stop firewalld
sudo systemctl disable firewalld
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

※上記反映されたか下記コマンドで確認できます。

systemctl is-enabled firewalld

firewalld がインストールされていない場合の結果

$ systemctl is-enabled firewalld
systemctl is-enabled firewalldFailed to disable unit: Unit file firewalld.service does not exist.

firewalld が無効となっている場合の結果

$ systemctl is-enabled firewalld
disabled

※当該環境では EC2 のセキュリティグループで管理を通信の制御を行うため、ファイアウォールを無効としております。firewalld がインストールされて無ければそれはそれで OK です。SELinux 無効化は次回再起動後に反映されます。

■スワップファイルの作成

# スワップファイルの作成
sudo dd if=/dev/zero of=/swapfile bs=128M count=128
sudo chmod 600 /swapfile
sudo mkswap /swapfile 
sudo swapon /swapfile
echo "/swapfile swap swap defaults 0 0" | sudo tee -a /etc/fstab

※上記反映されたか下記コマンドで確認できます。

free -m
cat  /etc/fstab
$ free -m
              total        used        free      shared  buff/cache   available
Mem:          15825         161       15437          17         226       15383
Swap:         16383           0       16383
[ec2-user@oemcc ~]$ cat  /etc/fstab

$ cat  /etc/fstab
UUID=<ファイルシステム ID>       /       xfs     defaults        0       0
/swapfile swap swap defaults 0 0

■透過的な HugePages の無効化

# 透過的な HugePages を無効化します。(Oracle 推奨)
echo never | sudo tee -a /sys/kernel/mm/transparent_hugepage/enabled

※上記反映されたか下記コマンドで確認できます。

cat /sys/kernel/mm/transparent_hugepage/enabled

透過的な HugePages が無効となっている場合の結果

always madvise [never]

■ホスト名の固定[1]、および、名前解決の設定

# ホスト名の固定
sudo hostnamectl set-hostname --static oemcc.testdomain
# 上記反映のために一度再起動します。
sudo shutdown -r now
# /etc/hosts に名前解決用の IP アドレス、ホスト名、FQDN 記述
echo `ip -4 addr show eth0 | grep -oP '(?<=inet\s)\d+(\.\d+){3}'` `hostname` `hostname -s` | sudo tee -a /etc/hosts

※上記反映されたか下記コマンドで確認できます。(ついでに SELinux の状態も)

hostname
cat /etc/hosts
getenforce
$ hostname
oemcc.testdomain

$ cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
<プライベート IP アドレス> oemcc.testdomain oemcc

$ getenforce
Disabled

■XWindow と unzip のインストール
今回、XWindow System による GUI 画面でインストール作業を進めるため、事前にパッケージを入れます。また、unzip も必要なので unzip もインストールします。

sudo dnf install -y xorg-x11-xauth xorg-x11-utils
sudo dnf install -y unzip

■Oracle Database 19.3 前提条件のパッケージインストール
Oracle 社公式ドキュメント に記載のパッケージは大概のものは既に入っていますが、入ってないのも一部あるので、別途インストールを実施しております。

sudo dnf install -y /lib64/libnsl.so.1
sudo dnf install -y libstdc++-devel
sudo dnf install -y sysstat
sudo dnf install -y ksh
sudo dnf install -y make
sudo dnf install -y glibc-devel
sudo dnf install -y libaio-devel
sudo dnf install -y smartmontools
sudo dnf install -y net-tools

■EMCC 前提条件のパッケージインストール

sudo dnf install -y gcc
sudo dnf install -y glibc-devel*.i686

■OS グループ・ユーザー関連の設定

sudo groupadd -g 54321 oinstall
sudo groupadd -g 54322 dba
sudo groupadd -g 54323 oper
sudo groupadd -g 54324 backupdba
sudo groupadd -g 54325 dgdba
sudo groupadd -g 54326 kmdba
sudo groupadd -g 54331 racdba
sudo useradd -u 54321 -g oinstall -G dba,oper,backupdba,dgdba,kmdba,racdba oracle

※ユーザーとグループが作成されたか下記コマンドで確認できます。

id oracle
$ id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54331(racdba)

■カーネルパラメータの設定

echo -e \
"# Oracle Database\n\
fs.file-max = 6815744\n\
net.core.rmem_default = 262144\n\
net.core.rmem_max = 4194304\n\
net.core.wmem_default = 262144\n\
net.core.wmem_max = 1048576\n\
fs.aio-max-nr = 1048576" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

※sysctl -p で反映、および、結果の確認ができます。

$ sudo sysctl -p
fs.file-max = 6815744
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
fs.aio-max-nr = 1048576

■リソース制限関連の設定

echo -e \
"# Oracle Database\n\
oracle soft nproc  2047\n\
oracle hard nproc  16384\n\
oracle soft nofile 1024\n\
oracle hard nofile 65536\n\
oracle soft stack  10240\n\
oracle hard stack  32768" | sudo tee -a /etc/security/limits.conf

※oracle ユーザーにスイッチ後、下記コマンドで上記設定を確認できます。

ulimit -Sn
ulimit -Hn
ulimit -Su
ulimit -Hu
ulimit -Ss
ulimit -Hs
$ ulimit -Sn
1024
$ ulimit -Hn
65536
$ ulimit -Su
2047
$ ulimit -Hu
16384
$ ulimit -Ss
10240
$ ulimit -Hs
32768

■oracle ユーザーに環境変数の設定

echo -e \
"# Oracle Database and Enterprise Manager Cloud Control\n\
export ORACLE_BASE=/u01/app/oracle\n\
export ORACLE_HOME=\$ORACLE_BASE/product/19.3.0/dbhome_1\n\
export PATH=\$ORACLE_HOME/bin:\$ORACLE_HOME/jdk/bin:\$PATH\n\
export NLS_LANG=JAPANESE_JAPAN.UTF8\n\
export LANG=ja_JP.UTF-8\n\
export ORACLE_UNQNAME=orcl\n\
export ORACLE_SID=orcl\n\
export ORACLE_HOSTNAME=`hostname`\n\
export OMS_HOME=/u01/app/oracle/middleware\n\
export AGENT_HOME=/u01/app/oracle/agent/agent_13.5.0.0.0" | sudo tee -a /home/oracle/.bash_profile

※oracle ユーザーにスイッチ後、下記コマンドで上記設定を確認できます。

env | grep ora など
$ env |grep ora
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
OMS_HOME=/u01/app/oracle/middleware
USER=oracle
PWD=/home/oracle
HOME=/home/oracle
MAIL=/var/spool/mail/oracle
LOGNAME=oracle
PATH=/u01/app/oracle/product/19.3.0/dbhome_1/bin:/u01/app/oracle/product/19.3.0/dbhome_1/jdk/bin:/home/oracle/.local/bin:/home/oracle/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin
AGENT_HOME=/u01/app/oracle/agent/agent_13.5.0.0.0

■ORACLE_HOME 作成やインストーラーの解凍

# ORACLE_HOME 作成します。
sudo mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1

# EMCC で必要なディレクトリ作成します。
sudo mkdir /u01/app/oracle/middleware
sudo mkdir /u01/app/oracle/agent
sudo mkdir /u01/app/oracle/gc_inst
sudo mkdir /u01/app/oracle/swlib

# ORACLE_HOME に Gold Image を解凍します。(所要時間 5分ほど)
sudo unzip /tmp/oracle/installer/Oracle\ Database\ 19.3.0.0.0\ for\ Linux\ x86-64.zip -d /u01/app/oracle/product/19.3.0/dbhome_1

# EMCC の管理リポジトリ作成に必要な DBCA テンプレートを配置します。
sudo unzip /tmp/oracle/installer/19_11_0_0_0_Database_Template_for_EM13_5_0_0_0_Linux_x64.zip -d /u01/app/oracle/product/19.3.0/dbhome_1/assistants/dbca/templates/

# oracle ユーザー用にディレクトリの権限を変更します。
sudo chown -R oracle:oinstall /u01
sudo chmod -R 775 /u01
sudo chown -R oracle:oinstall /tmp/oracle
sudo chmod -R 775 /tmp/oracle

Oracle Database のインストール

oracle ユーザーにスイッチします。事前に XWindow System の準備も含めます。
※CV_ASSUME_DISTID はインストーラーの不具合対応となります。

sudo cp .Xauthority /home/oracle/.Xauthority
sudo chown oracle:oinstall /home/oracle/.Xauthority
# 上記ファイルが見つからない場合はセッションを再接続ください。
sudo su - oracle
export DISPLAY=localhost:10.0
# デフォルトロケールの設定、および、Oracle Database インストールの不具合を回避する環境変数を設定します。
LANG=C
export CV_ASSUME_DISTID='OL7'

# Oracle Database インストーラーを起動します。
/u01/app/oracle/product/19.3.0/dbhome_1/runInstaller

以下は Oracle Database インストーラーの GUI 画面です。

[Set Up Software Only] を選択し、[Next] をクリックします。
[Single instance database installation] を選択し、[Next] をクリックします。
検証用ですので、[Enterprise Edition] を選択し、[Next] をクリックします。
Oracle Base が [/u01/app/oracle] であることを確認して [Next] をクリックします。
Inventory Directory が [/u01/app/oraInventory] であることを確認して [Next] をクリックします。
OS のグループが表示されていれば OK です。[Next] をクリックします。(OS グループに問題がある場合、インストール続行不可です。)
sudo でも OK な root スクリプトを自動で実行するための項目ですが、ec2-user のパスワードが無いのでそのまま [Next] をクリックします。
前提条件チェック画面です。compat-libcap1-1.10 以外が表示されていなければ [Ignore All] にチェックを入れ、[Next] をクリックします。
3.8.4 Bug 29772579
===
Oracle Linux 8およびRed Hat Enterprise Linux 8では、単一インスタンスOracle DatabaseおよびOracle Database Clientのインストール時に、compat-libcap1-1.10パッケージの欠落エラーが発生します。
===
[Yes] をクリックします。
サマリーが表示されます。入力した項目に問題が無ければ [Install] をクリックします。
インストールが進みます。(所要時間 10分ほど)
root スクリプトを実行するよう表示されます。ec2-user で実行します。スクリプト実行後に [OK] をクリックします。

# ec2-user で。
sudo /u01/app/oraInventory/orainstRoot.sh
sudo /u01/app/oracle/product/19.3.0/dbhome_1/root.sh

Oracle Database のインストールが完了しました![Close] をクリックして閉じます。

次回

本ブログは Oracle Database のインストールを EC2 で手早く行う方法の紹介でした。
次回は EMCC の管理リポジトリ・データベースの作成と EMCC のインストールを行っていきます!
■次回手順
1) EC2 インスタンス、および、OS 側の準備 完了
2) Oracle Database のインストール 完了
3) 管理リポジトリ・データベースの作成 ★
4) EMCC のインストール ★

5) EMCC に RDS for Oracle の登録

佐藤 光晃 (記事一覧)

マネージドサービス部・テクニカルサポート課

2022年10月にサーバーワークスに入社しました。
前職でもテクニカルサポートに従事しており、情報収集に役立つサービスやツールに興味があります。AWS資格13冠。