- VM作成・OSインストール・OS初期設定(この記事)
- Oracle DB 19c ソフトウェアインストール
- CDB作成・自動起動設定
目次
この記事について
この連載では、Proxmox VE上の仮想マシン1台にOracle Database 19c (19.28 RU) シングルインスタンスのCDB(コンテナ・データベース)を構築する手順を解説します。最終的にはEMCC(Enterprise Manager Cloud Control)の監視対象として登録することを想定した構成です。
想定読者:
- Oracle Database 19c をシングル構成で自宅やラボ環境に構築したい方
- Proxmox VE上にOracleデータベースのVM環境を作りたい方
- CDB(コンテナ・データベース)・PDB(プラガブル・データベース)の構成を体験したい方
前提知識:
- Linux基本操作(コマンドライン・ファイル編集)
- Proxmox VEの基本操作(VM作成・管理画面の操作)
- ネットワークの基礎知識(IPアドレス・VLAN)
連載の全体マップ:
| 記事 | タイトル | 内容 |
|---|---|---|
| 第1回(本記事) | VM作成・OSインストール・OS初期設定 | Proxmox VM作成・OL8インストール・NW/NTP/SELinux/THP設定・前提条件確認・インストーラー展開 |
| 第2回 | Oracle DB 19c ソフトウェアインストール | runInstaller・RU同時適用 |
| 第3回 | CDB作成・自動起動設定 | DBCAによるCDB+PDB作成・systemd自動起動設定 |
構築環境
VM構成
| 項目 | 値 |
|---|---|
| VM名 | ol8-db19-11 |
| OS | Oracle Linux 8.9 |
| CPU | 2 vCPU |
| メモリ | 8 GB |
| ディスク | 100 GB |
| Public IP (VLAN10) | 10.0.10.11 |
| Management IP (VLAN30) | 192.168.30.11 |
ネットワーク構成
| VLAN | ネットワーク | 用途 |
|---|---|---|
| VLAN10 | 10.0.10.0/24 | Public(クライアント接続) |
| VLAN30 | 192.168.30.0/24 | Management(EMCC監視・SSH) |
Oracle DB構成
| 項目 | 値 |
|---|---|
| DBバージョン | 19.28.0.0 |
| 構成 | シングルインスタンス CDB |
| ORACLE_SID | v11c19u |
| PDB名 | SP19U001 |
| Oracle Base | /u01/app/oracle |
| Oracle Home | /u01/app/oracle/product/19.0.0/dbhome_1 |
手順1: Proxmox上でのVM作成
Proxmox VEの管理画面から仮想マシンを作成します。

基本設定(全般タブ)
「VMを作成」をクリックして作成ウィザードを開きます。
| 項目 | 設定値 |
|---|---|
| ノード | pve01 |
| VM名 | ol8-db19-11 |

OSタブ
Oracle Linux 8.9のISOイメージを選択します。
| 項目 | 設定値 |
|---|---|
| ISOイメージ | p-nas-nfs:iso/V1039330-01.iso |
| 種別 | Linux |
| バージョン | 6.x – 2.6 Kernel |

システムタブ
Qemuエージェントを有効化します。ProxmoxがVMのIPアドレスやメモリ情報を取得するために必要です。
ディスクタブ
| 項目 | 設定値 |
|---|---|
| ストレージ | vg-sda |
| ディスクサイズ | 100 GB |

CPUタブ
| 項目 | 設定値 |
|---|---|
| コア数 | 2コア |

メモリタブ
| 項目 | 設定値 |
|---|---|
| メモリ | 8192 MiB(8 GB) |

ネットワークタブ
最初のNICはPublic(VLAN10)に設定します。
| 項目 | 設定値 |
|---|---|
| ブリッジ | vmbr1 |
| VLANタグ | 10 |

VM作成後、「ハードウェア」→「追加」→「ネットデバイス」からManagement NIC(VLAN30)を追加します。
| 項目 | 設定値 |
|---|---|
| ブリッジ | vmbr1 |
| VLANタグ | 30 |




手順2: Oracle Linux 8 インストール
VMを起動してOracle Linux 8.9をインストールします。

インストール言語の選択
言語は「日本語」を選択して「続行」します。

ソフトウェアの選択
「サーバー(GUI使用)」を選択します。GUIが必要なのはOracle DBのGUIインストーラー(runInstaller)を使用するためです。

インストール先(パーティション設定)
「ストレージ設定」を「カスタム」にして手動でパーティションを設定します。
- 「ここをクリックすると自動的に作成します。」をクリック(
/boot・/home・swap・/が自動作成) /homeを削除- swap を 8 GiB に変更
- 残り全てを
/に割り当て






ネットワークとホスト名
インストール時はManagement NIC(VLAN30)のみ設定します。Public NICはインストール後に nmcli で設定します。
- 左ペインからManagement NIC(net1)を選択してオンにする
- 「設定」→「全般」タブ → 「優先的に自動接続する」にチェック(未チェックだと起動時にNICが上がらない)
- 「設定」→「IPv4設定」タブ → 方式: 手動
| 項目 | 設定値 |
|---|---|
| アドレス | 192.168.30.11 |
| プレフィックス | 24 |
| ゲートウェイ | 空欄 |




rootパスワード設定
任意のrootパスワードを設定します。

インストール開始
設定を確認して「インストールの開始」をクリックします。


タイムゾーン・Public NIC・ホスト名はインストール後に
timedatectl/nmcli/hostnamectlで設定します。
インストール後の初回起動確認
再起動後、踏み台(ol8-bastion-254)からSSH接続できることを確認します。
ssh root@192.168.30.11
手順3: OS初期設定
対象: rootユーザー
su - root
hostname && whoami
3-1. NICとVLANの対応確認(MACアドレス突き合わせ)
複数NICを持つVMでは、OSのインタフェース名(ens18/ens19)とProxmoxのNIC(net0/net1)の対応をMACアドレスで確認してから設定します。
① Proxmox WebUI でMACアドレスを確認
「ハードウェア」タブ → ネットワークデバイスを1つずつクリックして確認します。

| Proxmox NIC | VLANタグ | 用途 |
|---|---|---|
| net0 | 10 | Public |
| net1 | 30 | Management |
② OS側でMACアドレスを確認
ip link show
③ MACアドレスを突き合わせてインタフェース名を確定
| OSインタフェース | Proxmox NIC | VLAN | 用途 |
|---|---|---|---|
| ens18 | net0 | 10 | Public |
| ens19 | net1 | 30 | Management |
順番が異なる場合は、以降のコマンド中の
ens18/ens19を実際の名前に読み替えて実行してください。
3-2. ネットワーク・ホスト名設定
# 接続プロファイル名を確認
nmcli con show
# ens18 (VLAN10 / Public)
nmcli con mod ens18 \
ipv4.addresses 10.0.10.11/24 \
ipv4.method manual \
ipv4.gateway "" \
ipv6.method disabled \
connection.autoconnect yes
nmcli con up ens18
# ens19 (VLAN30 / Management) — インストール時に設定済みだが正規化する
nmcli con mod ens19 \
ipv4.addresses 192.168.30.11/24 \
ipv4.method manual \
ipv4.gateway "" \
ipv6.method disabled \
connection.autoconnect yes
nmcli con up ens19
# ホスト名
hostnamectl set-hostname ol8-db19-11
# 確認
ip a && hostname
3-3. インストーラー用ファイルの準備
インストールファイルの格納先となる作業用ディレクトリを作成し、以下のファイルをアップロードします。アップロード方法はSCP・WinSCP・Proxmoxのファイルブラウザなど任意です。
mkdir -p /tmp/oracle-install
chmod 777 /tmp/oracle-install
| ファイル | 種別 |
|---|---|
oracle-database-preinstall-19c-*.rpm | Oracle DB 19c 前提条件自動設定パッケージ |
rlwrap-*.rpm | SQL*Plus操作改善ツール |
V982063-01.zip | Oracle Database 19c インストーラー |
p6880880_190000_Linux-x86-64.zip | OPatch 最新版 |
p37960098_190000_Linux-x86-64.zip | Release Update 19.28.0.0 |
3-4. タイムゾーン設定
# 変更前確認
timedatectl
# タイムゾーンをJST(UTC+9)に設定
timedatectl set-timezone Asia/Tokyo
# 変更後確認
timedatectl
3-5. NTP設定
# バックアップ取得
work_date=$(date +%Y%m%d)
cp -p /etc/chrony.conf{,.${work_date}}
# NTPサーバ(ol8-bastion-254)を追記
echo "server 192.168.30.254 iburst" >> /etc/chrony.conf
# 差分確認
diff /etc/chrony.conf{,.${work_date}}
# chronydを再起動して設定を反映
systemctl restart chronyd
# 時刻を即時強制同期
chronyc makestep
# 同期確認(Reference IDが 192.168.30.254 になっていること)
chronyc tracking
3-6. DNFメディアリポジトリの登録
インターネット接続がない環境のため、OSインストールDVDをローカルリポジトリとして登録します。
# CD-ROMマウント
mount /dev/cdrom /media
df | grep media
# DVDメディアをローカルリポジトリとして登録
cat > /etc/yum.repos.d/local-oel-dvd.repo << 'EOF'
[dvd-appstreams]
name=dvd-appstreams
baseurl=file:///media/AppStream
enabled=1
gpgcheck=0
[dvd-baseos]
name=dvd-baseos
baseurl=file:///media/BaseOS
enabled=1
gpgcheck=0
EOF
# デフォルトのOL8オンラインリポジトリを無効化
dnf config-manager -q --disable 'ol8*'
dnf clean all
dnf makecache
dnf repolist
3-7. root の .bashrc 設定
work_date=$(date +%Y%m%d)
cp -p ~/.bashrc{,.${work_date}}
# rootユーザーのプロンプトを黄色に設定
echo "export PS1='\[\e[1;33m\]\u@\h:\W#\[\e[m\] '" >> ~/.bashrc
diff ~/.bashrc{,.${work_date}}
source ~/.bashrc
3-8. firewalld 無効化
Oracle DBはfirewalldと競合するため無効化します。
systemctl stop firewalld
systemctl disable firewalld
# 確認(inactive かつ disabled になっていること)
systemctl status firewalld --no-pager
3-9. SELinux permissive 設定・THP無効化
SELinuxとTHP無効化は再起動が必要なため、まとめて設定して1回のrebootで反映します。
# SELinux permissive(Oracle DBはSELinux enforcing非対応)
work_date=$(date +%Y%m%d)
cp -p /etc/selinux/config{,.${work_date}}
sed -i 's/^SELINUX=.*/SELINUX=permissive/' /etc/selinux/config
diff /etc/selinux/config{,.${work_date}}
grep '^SELINUX=' /etc/selinux/config
# → SELINUX=permissive
# THP無効化(THP有効だとOracle DBのパフォーマンス低下・フリーズが発生する)
grubby --update-kernel=ALL --args="transparent_hugepage=never"
reboot
再起動後に確認します。
# SELinux確認
getenforce
# → Permissive
# THP確認([never] になっていること)
cat /sys/kernel/mm/transparent_hugepage/enabled
# → always madvise [never]
# ホスト名確認
hostname
# → ol8-db19-11
プロンプトが
localhostのままでもhostnameコマンドがol8-db19-11を返せばホスト名は正しく設定されています。source ~/.bashrcまたは再ログインで反映されます。
3-10. CD-ROM 再マウント
再起動後は CDROM がアンマウントされているため、再度マウントします。
mount /dev/cdrom /media
3-11. パッケージインストール
# Oracle DB 19c の前提条件を自動設定するRPM
dnf install -y /tmp/oracle-install/oracle-database-preinstall-19c-1.0-2.el8.x86_64.rpm
# SQL*Plus操作改善ツール
dnf install -y /tmp/oracle-install/rlwrap-0.46.1-1.el8.x86_64.rpm
# Oracle DB 19c 公式要件パッケージ
# https://docs.oracle.com/cd/F19136_01/ladbi/supported-oracle-linux-8-distributions-for-x86-64.html
dnf install -y bc binutils compat-openssl10
dnf install -y elfutils-libelf elfutils-libelf-devel
dnf install -y fontconfig
dnf install -y glibc glibc-devel
dnf install -y ksh
dnf install -y libaio libaio-devel
dnf install -y libX11 libXau libXi libXrender libXtst
dnf install -y libasan liblsan
dnf install -y libgcc libstdc++ libstdc++-devel
dnf install -y libibverbs librdmacm libxcb
dnf install -y libnsl
dnf install -y make
dnf install -y policycoreutils policycoreutils-python-utils
dnf install -y rng-tools smartmontools sysstat
# 作業用ユーティリティ
dnf install -y wget unzip zip tar bzip2 net-tools lsof
dnf install -y libnsl2
# X11フォワーディング(GUIインストーラー用)
dnf install -y xorg-x11-xauth xorg-x11-utils
# インストール確認
rpm -q \
oracle-database-preinstall-19c rlwrap \
bc binutils compat-openssl10 \
elfutils-libelf elfutils-libelf-devel \
fontconfig glibc glibc-devel ksh \
libaio libaio-devel \
libX11 libXau libXi libXrender libXtst \
libasan liblsan libgcc libstdc++ libstdc++-devel \
libibverbs librdmacm libxcb \
libnsl libnsl2 make \
policycoreutils policycoreutils-python-utils \
rng-tools smartmontools sysstat \
wget unzip zip tar bzip2 net-tools lsof \
xorg-x11-xauth xorg-x11-utils
3-12. /etc/hosts 設定
# バックアップ取得
work_date=$(date +%Y%m%d)
cp -p /etc/hosts{,.${work_date}}
cat >> /etc/hosts << 'EOF'
# ol8-db19-11
10.0.10.11 ol8-db19-11
192.168.30.11 ol8-db19-mgmt-11
EOF
# 差分確認
diff /etc/hosts{,.${work_date}}
# 追記確認
grep ol8-db19 /etc/hosts
# → 10.0.10.11 ol8-db19-11
# → 192.168.30.11 ol8-db19-mgmt-11
3-13. oracle ユーザー・ディレクトリ設定
oracle-database-preinstall-19c により oracle ユーザー・oinstall/dba グループは自動作成済みです。
# 確認
id oracle
# → uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),...
# パスワード設定
passwd oracle
# Oracle HomeとoraInventoryのディレクトリ作成
mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
mkdir -p /u01/app/oraInventory
chown -R oracle:oinstall /u01
chmod -R 775 /u01
3-14. oracle ユーザー環境変数設定
su - oracle
hostname && whoami
# .bashrc(プロンプト・エイリアス)
work_date=$(date +%Y%m%d)
cp -p ~/.bashrc{,.${work_date}}
cat >> ~/.bashrc << 'EOF'
export PS1='\[\e[1;32m\]\u@\h:\W$\[\e[m\] '
alias sqlplus='rlwrap sqlplus'
alias rman='rlwrap rman'
EOF
diff ~/.bashrc{,.${work_date}}
source ~/.bashrc
# .bash_profile(環境変数)
work_date=$(date +%Y%m%d)
cp -p ~/.bash_profile{,.${work_date}}
cat >> ~/.bash_profile << 'EOF'
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export ORACLE_SID=v11c19u
export PATH=$ORACLE_HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export NLS_DATE_FORMAT="YYYY-MM-DD HH24:MI:SS"
export NLS_LANG=JAPANESE_JAPAN.AL32UTF8
EOF
diff ~/.bash_profile{,.${work_date}}
source ~/.bash_profile
手順4: 前提条件の確認
対象: rootユーザー
su - root
hostname && whoami
カーネルパラメータ確認
oracle-database-preinstall-19c が設定済みのはずですが、念のため確認します。
sysctl -a | grep -E 'shmmax|shmmni|shmall|sem|file-max|ip_local|rmem|wmem'
/etc/security/limits.conf 確認
oracle-database-preinstall-19c は /etc/security/limits.conf ではなく専用ファイルに設定します。
cat /etc/security/limits.d/oracle-database-preinstall-19c.conf
oracle ユーザーの nofile・nproc・stack が設定されていることを確認します。
ディスク・メモリ確認
df -h /u01
# → 50GB以上あること
df -h /tmp
# → 5GB以上あること
free -h
# → swap 8GB あること
チェックリスト
手順5: インストーラー展開・スナップショット取得
5-1. インストーラー展開
対象: oracleユーザー
su - oracle
hostname && whoami
export TMP_DIR=/tmp/oracle-install
# DB 19c インストーラーを Oracle Home に展開
cd ${TMP_DIR}
unzip -q V982063-01.zip -d ${ORACLE_HOME}
# OPatch をアップデート(RU 適用前に最新版が必要)
work_date=$(date +%Y%m%d)
mv ${ORACLE_HOME}/OPatch ${ORACLE_HOME}/OPatch.${work_date}
unzip -q p6880880_190000_Linux-x86-64.zip -d ${ORACLE_HOME}
# OPatch バージョン確認
${ORACLE_HOME}/OPatch/opatch version
# RU パッチを展開(runInstaller -applyRU で同時適用するため)
unzip -q p37960098_190000_Linux-x86-64.zip
# 展開後のパッチディレクトリを確認
ls -d ${TMP_DIR}/37960098
5-2. スナップショット取得(展開後・インストール前)
Proxmox WebUI から ol8-db19-11 のスナップショットを取得します。
「スナップショット」タブ → 「スナップショットの取得」:
| 項目 | 値 |
|---|---|
| 名前 | before-db19c-install |
| 説明 | 手順4完了・ファイル展開済み・DB19cインストール前 |
| RAMを含める | チェック外す |
まとめ
この記事では以下を実施しました。
- Proxmox VE上にOracle DB 19c用VM(2vCPU / 8GB / 100GB)を作成
- Oracle Linux 8.9をインストールし、Management NICのみインストール時に設定
- OS初期設定としてNW・NTP・SELinux permissive・THP無効化・必要パッケージのインストールを実施
- インストール前提条件を確認し、インストーラーファイルを展開
次回は runInstaller でOracle Database 19c ソフトウェアをRU 19.28.0.0 と同時にインストールします。








