背景と目的
Azure VM 上の Oracle Database を本番環境として使う場合は、Ultra Disk を使ったり Oracle Data Guard を構成したりしなければなりませんが、今回は検証環境を用意する目的で単一仮想マシン内に Oracle Database Express Edition をインストールしてみました。なお、Oracle Database は OTN 開発者ライセンスに基づいて使用します。
前提条件
コマンドの実施環境は、Mac + Azure CLI です。
bash
$ sw_vers
ProductName: macOS
ProductVersion: 12.3.1
BuildVersion: 21E258
$ az version
{
"azure-cli": "2.35.0",
"azure-cli-core": "2.35.0",
"azure-cli-telemetry": "1.0.6",
"extensions": {}
}
検証用の仮想マシンを作る
bash
# 環境変数をセットします
region=japaneast
prefix=mnrora
# リソースグループを作成します
az group create \
--name ${prefix}-rg \
--location $region
# パスワードを生成します
vmpass=$(openssl rand -base64 8)
echo $vmpass
# 仮想マシンを作成します
az vm create \
--resource-group ${prefix}-rg \
--name ${prefix}-vm \
--os-disk-name ${prefix}-vmOSDisk \
--image CentOS \
--size Standard_DS2_v2 \
--admin-username azureuser \
--admin-password $vmpass \
--nsg-rule NONE \
--public-ip-address-dns-name ${prefix} \
--storage-sku StandardSSD_LRS
# SSH 用ポートを自身の IP アドレスから許可します
az network nsg rule create \
--resource-group ${prefix}-rg \
--name Allow-SSH \
--nsg-name ${prefix}-vmNSG \
--priority 100 \
--source-address-prefixes $(curl -s inet-ip.info) \
--destination-port-ranges 22 \
--access Allow \
--protocol Tcp
# Oracle Enterprise Manager 用ポートを自身の IP アドレスから許可します
az network nsg rule create \
--resource-group ${prefix}-rg \
--name Allow-EM \
--nsg-name ${prefix}-vmNSG \
--priority 200 \
--source-address-prefixes $(curl -s inet-ip.info) \
--destination-port-ranges 5500 \
--access Allow \
--protocol Tcp
# SSH 接続します
ssh azureuser@${prefix}.$region.cloudapp.azure.com
Oracle Database をインストール
bash
# root で作業します
sudo su -
# RPM をダウンロードします
wget https://yum.oracle.com/repo/OracleLinux/OL7/latest/x86_64/getPackage/oracle-database-preinstall-21c-1.0-1.el7.x86_64.rpm
wget https://download.oracle.com/otn-pub/otn_software/db-express/oracle-database-xe-21c-1.0-1.ol7.x86_64.rpm
# Oracle Database をインストールします
yum -y localinstall oracle-database-pre*
yum -y localinstall oracle-database-xe*
# Oracle Database を初期設定します(任意のパスワードを入力します)
/etc/init.d/oracle-xe-21c configure
# oracle ユーザーで動作確認します
su - oracle
# 環境変数をセットします
export ORACLE_SID=XE
export ORAENV_ASK=NO
. /opt/oracle/product/21c/dbhomeXE/bin/oraenv
# oracle ユーザーに SYSDBA 特権が付与されているのを確認します
sqlplus / as sysdba
# リスナーの起動状態を確認します
lsnrctl status
# system ユーザーでログインします(初期設定時のパスワードを入力します)
sqlplus system@localhost:1521
# Oracle Enterprise Manager をローカル以外からも接続出来るようにします
sqlplus system
EXEC DBMS_XDB.SETLISTENERLOCALACCESS(FALSE);
# oracle ユーザーから抜けます
exit
# システムステータスを確認します
/etc/init.d/oracle-xe-21c status
# システム起動時に Oracle Database が自動起動するようにします
systemctl daemon-reload
systemctl enable oracle-xe-21c
参考
bash
# リソースグループを削除します
az group delete \
--name ${prefix}-rg \
--yes