Oracle Database 19c シングルCDBを構築する — CDB作成・自動起動設定

Oracle Database 19c シングルCDBを構築する — CDB作成・自動起動設定
【連載】Oracle Database 19c シングルCDBを構築する
  1. VM作成・OSインストール・OS初期設定
  2. Oracle DB 19c ソフトウェアインストール
  3. CDB作成・自動起動設定(この記事)

この記事について

この連載では、Proxmox VE上の仮想マシン1台にOracle Database 19c (19.28 RU) シングルインスタンスのCDB(コンテナ・データベース)を構築する手順を解説します。

連載の全体マップ:

記事タイトル内容
第1回VM作成・OSインストール・OS初期設定Proxmox VM作成・OL8インストール・NW/NTP/SELinux/THP設定・前提条件確認・インストーラー展開
第2回Oracle DB 19c ソフトウェアインストールrunInstaller・RU同時適用
第3回(本記事)CDB作成・自動起動設定DBCAによるCDB+PDB作成・systemd自動起動設定

構築環境

項目
VM名ol8-db19-11
OSOracle Linux 8.9
DBバージョン19.28.0.0
ORACLE_SIDv11c19u
PDB名SP19U001
Oracle Base/u01/app/oracle
Oracle Home/u01/app/oracle/product/19.0.0/dbhome_1

手順6: DBCAでシングルCDB作成(GUI)

DBCA(Database Configuration Assistant)はGUIアプリケーションです。Proxmox の noVNC コンソールから oracle ユーザーでGNOMEにログインして操作します。

6-1. DBCAの起動

GNOMEデスクトップで端末(ターミナル)を起動します。

GNOMEデスクトップ - 端末を起動

ターミナルで以下を実行します。

su - oracle
dbca

ターミナル - dbcaコマンドを実行

6-2. DBCAウィザード

① ステップ1: データベース操作の選択

「データベースの作成」を選択して「次へ」をクリックします。

ステップ1 - 「データベースの作成」を選択

② ステップ2: データベース作成モードの選択

「拡張構成」を選択して「次へ」をクリックします。

ステップ2 - 「拡張構成」を選択

③ ステップ3: デプロイ・タイプの選択

項目設定値
データベース・タイプOracle単一インスタンス・データベース
テンプレート汎用またはトランザクション処理

「次へ」をクリックします。

ステップ3 - デプロイ・タイプ(Oracle単一インスタンス・汎用テンプレート)

④ ステップ4: データベースIDの詳細の指定

項目設定値
グローバル・データベース名v11c19u
SIDv11c19u
コンテナ・データベースとして作成チェックあり
PDB用のローカルUNDO表領域の使用チェックあり
作成タイプ1つ以上のPDBを含むコンテナ・データベースの作成
PDB名SP19U001
PDB数1

「次へ」をクリックします。

ステップ4 - データベースID(v11c19u・CDB・SP19U001)

⑤ ステップ5: データベース記憶域オプションの選択

「データベース記憶域属性にテンプレート・ファイルを使用」(デフォルト)のまま「次へ」をクリックします。

ステップ5 - データベース記憶域オプション(テンプレート・ファイルを使用・デフォルト)

⑥ ステップ6: 高速リカバリ・オプションの選択

項目設定値
高速リカバリ領域の指定チェックあり
リカバリ・ファイルの記憶域タイプファイルシステム
高速リカバリ領域のサイズ5120 MB
アーカイブ有効化チェックなし

「次へ」をクリックします。

ステップ6 - 高速リカバリ・オプション(FRAサイズ 5120 MB)

「[DBT-06801] 指定された高速リカバリ領域サイズ(5,120 MB)は、推奨値に満たないサイズです。続行しますか?」のダイアログが表示されます。検証環境のため「はい」をクリックして続行します。

ステップ6 - DBT-06801 警告(「はい」をクリック)

⑦ ステップ7: ネットワーク構成詳細の指定

項目設定値
新規リスナーの作成チェックあり
リスナー名LISTENER
リスナー・ポート1521

「次へ」をクリックします。

ステップ7 - ネットワーク構成(LISTENER・1521)

⑧ ステップ8: Oracle Data Vault構成オプションの選択

すべてチェックなしのまま「次へ」をクリックします。

ステップ8 - Oracle Data Vault構成(すべてチェックなし)

⑨ ステップ9: 構成オプションの指定

5つのタブで設定を行います。

メモリータブ:

項目設定値
メモリー管理自動共有メモリー管理を使用
SGAサイズ1024 MB
PGAサイズ512 MB

ステップ9 - メモリータブ(SGA: 1024 MB・PGA: 512 MB)

サイズ設定タブ:

項目設定値
ブロック・サイズ8192 BYTES(デフォルト・変更不可)
処理300

ステップ9 - サイズ設定タブ(処理: 300)

キャラクタ・セットタブ:

項目設定値
データベース文字セットUnicode(AL32UTF8)
各国語文字セットAL16UTF16
デフォルト言語日本語
デフォルト地域日本

ステップ9 - キャラクタ・セットタブ(AL32UTF8・日本語)

接続モードタブ:

「専用サーバー・モード」を選択します。

ステップ9 - 接続モードタブ(専用サーバー・モード)

サンプル・スキーマタブ:

「データベースにサンプル・スキーマを追加」はチェックなしのまま「次へ」をクリックします。

ステップ9 - サンプル・スキーマタブ(チェックなし)

⑩ ステップ10: 管理オプションの指定

「Enterprise Manager (EM) Database Expressの構成」のチェックを外して「次へ」をクリックします。

EMCCで監視するため、EM Database Expressは使用しません。

ステップ10 - 管理オプション(EM Database Expressチェックなし)

⑪ ステップ11: データベース・ユーザー資格証明の指定

「すべてのアカウントに同じ管理パスワードを使用」を選択してパスワードを入力し、「次へ」をクリックします。

ステップ11 - ユーザー資格証明(同一パスワード入力)

「[DBT-06208] 入力された’管理者’パスワードが推奨される標準に準拠していません。続行しますか?」のダイアログが表示された場合は「はい」をクリックします。

ステップ11 - DBT-06208 警告(「はい」をクリック)

⑫ ステップ12: データベース作成オプションの選択

「データベースの作成」にチェックが入っていることを確認して「次へ」をクリックします。

ステップ12 - データベース作成オプション(「データベースの作成」チェックあり)

再度「[DBT-06801] 指定された高速リカバリ領域サイズ(5,120 MB)は推奨値に満たないサイズです」のダイアログが表示されます。「はい」をクリックして続行します。

ステップ12 - DBT-06801 警告(「はい」をクリック)

⑬ ステップ13: サマリー

設定内容を確認して「終了」をクリックします。

ステップ13 - サマリー(「終了」をクリック)

6-3. DB作成・完了確認

「終了」をクリックするとDB作成が開始されます。進行状況ページでステータスを確認できます。

ステップ14 - 進行状況ページ(データベース作成中)

「データベースの作成が完了しました。」と表示されたら「閉じる」をクリックします。

ステップ15 - 終了(データベースの作成が完了)

6-4. 作成後の確認

ターミナルで以下を実行して、CDB・PDBが正常に起動していることを確認します。

su - oracle

# DB起動確認
sqlplus / as sysdba <<EOF
SELECT name, open_mode FROM v\$database;
SELECT name, open_mode FROM v\$pdbs;
EOF

期待される出力:

NAME      OPEN_MODE
--------- ----------
V11C19U   READ WRITE

NAME      OPEN_MODE
--------- --------------------
PDB\$SEED READ ONLY
SP19U001  READ WRITE
# リスナー登録確認
lsnrctl status | grep -E 'STATUS|v11c19u'

手順7: 自動起動設定・EMCC事前準備

再起動後もDBが自動起動するよう設定します。以降の作業は root ユーザーで実行します。

7-1. /etc/oratab の変更

DBCAが /etc/oratab にDBエントリを N(自動起動しない)で登録しています。これを Y に変更します。

su - root
hostname && whoami
# 現在の設定確認
grep v11c19u /etc/oratab
# → v11c19u:/u01/app/oracle/product/19.0.0/dbhome_1:N
# バックアップ取得
work_date=$(date +%Y%m%d)
cp -p /etc/oratab{,.${work_date}}

# N を Y に変更
sed -i "s|^v11c19u:\(.*\):N$|v11c19u:\1:Y|" /etc/oratab

# 差分確認
diff /etc/oratab{,.${work_date}}
# → :N → :Y の変更行が表示されること

# 確認
grep v11c19u /etc/oratab
# → v11c19u:/u01/app/oracle/product/19.0.0/dbhome_1:Y

7-2. systemd サービスの登録

dbstart / dbshut を使った systemd サービスを登録して、OS起動時にDB・リスナーが自動起動するようにします。

cat > /etc/systemd/system/oracle-db.service << 'EOF'
[Unit]
Description=Oracle Database Service
After=network.target

[Service]
Type=forking
User=oracle
ExecStart=/u01/app/oracle/product/19.0.0/dbhome_1/bin/dbstart /u01/app/oracle/product/19.0.0/dbhome_1
ExecStop=/u01/app/oracle/product/19.0.0/dbhome_1/bin/dbshut /u01/app/oracle/product/19.0.0/dbhome_1
TimeoutStartSec=600
TimeoutStopSec=600

[Install]
WantedBy=multi-user.target
EOF

systemctl daemon-reload
systemctl enable oracle-db
systemctl status oracle-db --no-pager

Loaded: loaded (...; enabled; ...) と表示されれば有効化されています。

7-3. 再起動テスト

reboot

再起動後、oracle ユーザーで以下を確認します。

su - oracle

# リスナー起動確認
lsnrctl status | grep -E 'STATUS|v11c19u'

# DB起動確認
sqlplus / as sysdba <<EOF
SELECT name, open_mode FROM v\$database;
SELECT name, open_mode FROM v\$pdbs;
EOF

DB・リスナーが起動していれば自動起動設定は完了です。

7-4. dbsnmp アンロック(EMCC事前準備)

EMCCからDBを監視するために必要な dbsnmp ユーザーをアンロックします。

su - oracle
hostname && whoami

sqlplus / as sysdba
-- dbsnmp の状態確認
SELECT username, account_status FROM dba_users WHERE username = 'DBSNMP';
-- LOCKED の場合はアンロック
ALTER USER dbsnmp IDENTIFIED BY <パスワード> ACCOUNT UNLOCK;

-- アンロック確認
SELECT username, account_status FROM dba_users WHERE username = 'DBSNMP';
-- → OPEN になっていること

スナップショット取得(完了後)

Proxmox WebUI から ol8-db19-11 のスナップショットを取得します。

「スナップショット」タブ → 「スナップショットの取得」:

項目
名前after-dbca
説明CDB作成・自動起動設定完了
RAMを含めるチェック外す

まとめ

この記事では以下を実施しました。

  • DBCAでシングルCDB(v11c19u)とPDB(SP19U001)を作成
  • /etc/oratabN → Y に変更し、systemdサービス(oracle-db.service)で自動起動を設定
  • 再起動後にDB・リスナーが正常起動することを確認
  • EMCC登録に向けて dbsnmp ユーザーをアンロック

これで Oracle Database 19c シングルCDBの構築は完了です。