データベースについて調べてみた

データベースについて調べたことのメモ。Oracle要素多めになる予定。

オンプレ版Oracle AI Database 26aiをインストールしてみた ~ DB作成編 ~

前回までで、ASMを使用したシングルインスタンスを構成できる様にOracle AI Database 26aiのインストールが完了しましたが、今回はインストールした環境にDBを作成する手順について紹介します。

 

インストール環境(再掲)

下記の様にDBサーバ内にASMインスタンスとDBインスタンスを各1つ起動させるシングルインスタンス構成(非RAC構成)ができるように、Oracle製品をインストールしていきます。なおOSは、x86-64版のOracle Linux 8.10を使用します。

インストール作業の大まかな流れは以下の通りとなります。

  1. インストールに向けた準備作業
  2. Oracle Grid Infrastructure 26aiのインストール
  3. Oracle AI Database 26aiのインストール
  4. データベースの作成 ← ★今回はここの紹介

 

4. データベースの作成

データベースの作成作業として、以下を実施します。

  1. DBCAの実行
  2. 環境変数の設定
  3. PDBの自動起動設定
  4. (参考)Hugepagesの利用設定

 

4.1 DBCAの実行

今回はデータベースの作成にDBCA(DataBase Configuration Assistant)を使用します。DBCAを起動する際はGUI環境で起動する必要があるため、oracleユーザのGUI環境でターミナルを起動して、そこで以下の様にDBCAを起動します。

oracle$ dbca

 

DBCAによるデータベースの作成は、以下のステップで進んでいきます。

  1. データベース操作の選択
  2. データベース作成モードの選択
  3. データベース・デプロイメント・タイプの選択
  4. データベースIDの指定
  5. データベース記憶域オプションの選択
  6. 高速リカバリ・オプションの選択
  7. ネットワーク構成詳細の指定
  8. データベースオプションの選択
  9. 構成オプションの指定
  10. 管理オプションの指定
  11. データベース・ユーザー資格証明の指定
  12. データベース作成オプションの選択
  13. サマリー
  14. 終了

 

4.1.1 データベース操作の選択

DBCAはデータベースの作成だけでなく、削除やPDBの管理などできるため、何の操作をするか選択します。今回はデータベースを作成するため、「データベースの作成」を選択して「次へ」をクリックします。

 

4.1.2 データベース作成モードの選択

データベースを作成するにあたって、予めDBCAで規定されている標準構成で作成するか、様々な設定をして作成するか選択します。今回は設定したいため、「拡張構成」を選択して「次へ」をクリックします。

 

4.1.3 データベース・デプロイメント・タイプの選択

作成するデータベースの可用性構成がRACかRAC OneNodeかシングルインスタンスかを選択し、データベースの作成に使用するテンプレートを選択します。今回はシングルインスタンスで、ASM内にデータベースを作成したいため、データベース・タイプは「Oracle単一インスタンス・データベース」を、テンプレートは「カスタム・データベース」を選択し、「次へ」をクリックします。

 

4.1.4 データベースIDの指定

作成するデータベース名やSID名の指定と、作成するPDB数とその名称を指定します。PDBについてローカルUNDOを使用するか指定できますが、ローカルUNDOを構成するのが推奨構成なので、「PDB用のローカルUNDO表領域の使用」をチェックした上で「次へ」をクリックします。

 

4.1.5 データベース記憶域オプションの選択

データベースをASMに格納したいため、「データベース記憶域属性に次を使用」を選択し、「データベース・ファイル記憶域タイプ」に「自動ストレージ管理(ASM)」を選択します。データファイルの位置を変更したい場合やOMFを使用したい場合はここで選択して「次へ」をクリックします。

OMFの使用を選択しない場合、以下のようなダイアログが出ますので「はい」をクリックして続行させます。

 

4.1.6 高速リカバリ・オプションの選択

フラッシュバック領域や、アーカイブログモードを使用する場合はここで設定しますが、今回は設定せずに「次へ」をクリックします。

 

4.1.7 ネットワーク構成詳細の指定

ここではデータベースへ接続する際に使用するリスナを設定します。Grid Infrastructureをインストールした際に作成されたリスナが表示されるため、今回はこれを選択しますが、新規にリスナーを作成して使用する場合はリスナの作成も可能です。

 

4.1.8 データベースオプションの選択

ここではデータベースで使用するコンポーネントを選択します。全て不要であれば全てチェックを外して「次へ」をクリックします。今回は後でDatabase Vaultを使いたかったためDatabase Vaultを選択しています(Label SecurityはDatabase Vaultを選択すると強制的に選択させられました)。

コンポーネントを選択すると、各コンポーネントに対応した設定画面が表示されるので、必要な設定を行い「次へ」をクリックします。今回はコンポーネントの設定は別途行うため、何も設定せず「次へ」をクリックしています。

 

4.1.9 構成オプションの指定

ここでは、作成するデータベースインスタンスのメモリサイズやデータベースのブロックサイズ、キャラクタセットや接続モードを指定します。まずは「メモリー」タブ上でインスタンスのメモリ管理方法と使用するサイズを指定します。
メモリ管理方法として自動共有メモリ管理や手動共有メモリ管理、自動メモリ管理を選択できますが、23aiから使用可能となった統合メモリ管理は選択することができません。今回は自動共有メモリ管理を選択しました。

「サイズ設定」タブをクリックすると、データベースのブロックサイズ(db_block_size)とユーザプロセスの最大数(processes)を指定できます。

「文字セット」タブをクリックすると、データベースのキャラクタセットや言語・地域を指定できます。

「接続モード」タブでは、専用サーバ構成か共有サーバ構成を選択します。

4つの構成オプションの設定を全て終えたら、「次へ」をクリックします。

 

4.1.10 管理オプションの指定

Enterprise Manager Cloud Control(EMCC)でデータベースを管理する場合は、EMCCの情報を入力します。今回はEMCCで管理しないため何も入力せず「次へ」をクリックします。

 

4.1.11 データベース・ユーザー資格証明の指定

データベースの管理ユーザ(SYS, SYSTEM, PDBADMIN)のパスワードを設定します。今回は全ユーザに同じパスワードを設定して「次へ」をクリックします。

 

4.1.12 データベース作成オプションの選択

最後にデータベースを作成する際に、データベースを作成できるスクリプトも作成するか、テンプレートも作成するかを選択して「次へ」をクリックします。

 

4.1.13 サマリー

ここまで選択してきた内容が表示されるので、内容を確認して「終了」をクリックします。

データベースの作成が始まるので完了するまで待ちます。今回メモリサイズをあまり大きくしなかったせいか、ディクショナリの作成部分で2h程度時間がかかっていました。

 

4.1.14 終了

データベースの作成処理が完了すると終了画面に遷移するので、「閉じる」をクリックしてDBCAを終了します。

 

 

4.2 環境変数の設定

作成したデータベースにローカル接続できるように、環境変数ORACLE_SIDに作成時に指定したデータベースのSIDを設定します。

oracle$ vi ~/.bash_profile

---
export ORACLE_SID=orcl

 

 

4.3 PDBの自動起動設定

DBCAでデータベースを作成した直後は、CDBを起動(open)してもその上に作成したPDBについては起動されません。マルチテナント構成のときはその方が管理しやすいかもしれませんが、シングルテナント(PDBが1つしかない)構成の場合は、CDBの起動に合わせてPDBも起動させたくなることが多くなるかと思いますので、CDBの起動に合わせてPDBも起動させる設定を行います。

まずはCDBへSYSDBA権限で接続します。PDBの自動起動が設定されているかは、DBA_PDB_SAVED_STATESディクショナリで確認できます。ここではデータベース作成直後でPDBの自動起動設定はないため、このディクショナリに問い合わせをしても、何もレコードが返却されません。

-- CDBへSYSDBA権限での接続
oracle$ sqlplus /nolog

SQL*Plus: Release 23.26.1.0.0 - Production on 火 3月 31 23:48:34 2026
Version 23.26.1.0.0

Copyright (c) 1982, 2025, Oracle.  All rights reserved.

SQL> conn / as sysdba
接続されました。

-- PDB自動起動設定の有無確認
SQL> select con_id, con_name, instance_name, state from dba_pdb_saved_states;

レコードが選択されませんでした。

-- PDBの起動状態確認
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB                        MOUNTED

 

PDBの自動起動設定をするためには、自動起動させたいPDBを起動(OPEN MODEがREAD WRITE)させた状態にして、その起動状態をディクショナリに保存する必要があります。以下は、自動起動させたいPDB(orclpdb)を起動させて、ディクショナリへの保存を実行する例となります。
自動起動が有効になったPDBは、DBA_PDB_SAVED_STATESディクショナリに問い合わせすると表示される様になります。

-- PDBの起動(オープン)
SQL> alter pluggable database orclpdb open;

プラガブル・データベースが変更されました。

-- PDBの起動状態確認
SQL> show pdbs

    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         3 ORCLPDB                        READ WRITE NO

-- PDBの起動状態セーブ
SQL> alter pluggable database all save state;

プラガブル・データベースが変更されました。

-- PDB自動起動設定の有無確認
SQL> select con_id, con_name, instance_name, state from dba_pdb_saved_states;

    CON_ID CON_NAME   INSTANCE_N STATE
---------- ---------- ---------- --------------
         3 ORCLPDB    orcl       OPEN

 

 

4.4 (参考)Hugepagesの設定

SGAをHugePagesで確保する際に、この作業はUEK7以上のカーネルを使用していて透過的HugePagesを有効にしている場合、本来不要な作業なのかもしれませんが、私が実機確認したときは、カーネルパラメータvm.nr_hugepagesを明示的に設定しないと確保できなかったため、参考情報として記載させていただきます。

カーネルパラメータvm.nr_hugepagesに設定する値は、DBインスタンスを起動した状態で確保されている共有メモリサイズを基に決定します。確保されている共有メモリサイズは、以下の様にipcsコマンドを用いて取得できます。

root# ipcs -m

------ 共有メモリセグメント --------
キー     shmid      所有者  権限     バイト  nattch     状態
0x6ab004f0 2          grid       600        81920      35
0x00000000 5          oracle     600        524288     2          削除
0x00000000 17         oracle     600        6291456    69
0x00000000 18         oracle     600        4278190080 69
0x00000000 19         oracle     600        10485760   69
0xb18670fc 20         oracle     600        2097152    69

共有メモリサイズは、ipcsコマンドで出力されるnattchの合計値となります。上記の出力だと、4,297,670,656Bytesとなります。この合計値をHugePagesのページサイズである2MB(2,097,152Bytes)で割った値を若干上回らせた値をvm.nr_hugepagesに設定します。上記の出力では4,297,670,656 / 2,097,152 ≒ 2049.3なので、少し上回らせた2100をvm.nr_hugepagesに設定します。カーネルパラメータの設定は、設定値を/etc/sysctl.confに追記して行うため、以下の様な行を追記します。

vm.nr_hugepages = 2100

追記したカーネルパラメータを反映するためには、下記の様にsysctlコマンドを実行します。

-- 設定の反映
root# sysctl -p

-- HugePagesの確保状況の確認
root# grep HugePages /proc/meminfo
AnonHugePages:         0 kB
ShmemHugePages:        0 kB
FileHugePages:         0 kB
HugePages_Total:    2100
HugePages_Free:     2100
HugePages_Rsvd:        0
HugePages_Surp:        0

Hugepages領域が確保できたので、DBインスタンスを再起動することで、SGAはHugePages領域に構成される様になります。

 

 

さいごに

4回に渡ってオンプレ版Oracle AI Database 26aiをインストールして、データベースを利用できるようにするまでの手順を紹介してきました。Oracle AI Database 26ai環境を構築する際の参考になれば幸いです。

 

 

次の記事:Oracle Database Vaultの構成方法について調べてみた

 

前の記事:オンプレ版Oracle AI Database 26aiをインストールしてみた ~ Oracle AI Database編 ~