株式会社コーソル

コーソルDatabaseエンジニアのブログ

技術ブログ

VM作成からのOracle Restart 19cインストール手順

Oracle ACEの渡部です。 VirtualBox VMにRestart構成のLinux版Grid Infrastructure/Oracle Database 19cを導入する手順(環境設定、インストール、データベース作成)をまとめておきます。

非常に「いまさら感」がありますが、以下の理由で書いてみようと思いました。

  • ORACLE MASTER Gold DBA 2019の出題範囲にOracle Restartのインストールが含まれるが、新Gold DBA黒本試験対策の観点では必要十分な説明を書いていたが、実際に環境を作成する観点で十分なまでは書けていなかったため
  • Linux版Oracle Restartのインストールおよび使用において「重要な鍵」となる動作環境の準備(VM、OS、仮想ディスク、ネットワークなど)において落とし穴を避けるノウハウを、以前から文書化しておきたいと思っていたため

なお、以前記載した シングル構成のLinux版Oracle Database 19cを導入する手順(前編, 後編 )と、多くの部分が共通であるため、これに対する差分として書いています。

ゲストOS 環境情報

  • OS: Oracle Linux 7.9
  • Oracle Grid Infrastructure 19c (19.3.0)
    • ソフトウェア所有者: gridユーザー
    • Gridベース: /u01/app/grid
    • Gridホーム: /u01/app/grid/product/19.0.0/grid
    • 使用ASMディスクグループ: +DATA
      • ASMディスク: /dev/sdb1, /dev/sdc1, /dev/sdd1
  • Oracel Database 19c (19.3.0)
    • ソフトウェア所有者: oracleユーザー
    • Oracleベース(ORACLE_BASE): /u01/app/oracle
    • Oracleホーム(ORACLE_HOME): /u01/app/oracle/product/19.0.0/dbhome_1
    • グローバルデータベース名: orcl
    • ORACLE_SID: orcl
    • 使用ASMディスクグループ: +DATA (データベースファイル, 高速リカバリ領域)

(1) VirtualBox VMの基本的な設定を実行する

シングル構成のLinux版Oracle Database 19cを導入する手順(前編, 後編 )における以下の手順を実行します。

シングル構成のLinux版Oracle Database 19cを導入する手順 前編

  • (1) Oracle VM VirtualBoxをインストール
  • (2) Oracle Linux 7.9のインストールメディアをoracle.comからダウンロード
  • (3) VirtualBoxでVMを作成
  • (4) VMにOracle Linux 7.9をインストール
  • (5) rootユーザーでゲストOSにSSH接続する
  • (6) /etc/hostsに自ホストの情報を登録する
  • (7) ifcfg-XXXファイルを修正する

シングル構成のLinux版Oracle Database 19cを導入する手順 後編

  • (8) Oracle Linuxのインストールメディアをyumリポジトリとして構成する
  • (9) Oracle Preinstall rpmをインストール

(2) Oracle.comからOracle Grid Infrastructure 19cのインストールファイルをダウンロードする

See Allをクリックして詳細ページに移動

Grid Infrastructure 19cをダウンロード1

Grid Infrastructure 19cをダウンロード2

「Oracle Database ソフトウェア・ダウンロード」ページは https://www.oracle.com/jp/database/technologies/oracle-database-software-downloads.htmlですが、このページからOracle Grid Infrastructure 19cのインストールファイルは直接ダウンロードできず、"See All"をクリックして詳細ページに移動する必要がある点に注意してください。

なお、学習目的であれば、Oracle DatabaseおよびOracle Grid Infrastructureは無償で使用可能です(OTNライセンス)。

(3) ASM関連OSグループおよびgridユーザーを作成する

ASM関連OSグループ(asmadmin, asmdba, asmoper)およびgridユーザーを作成します。rootユーザーで以下のようにコマンドを実行します。

# groupadd -g 54340 asmadmin
# groupadd -g 54341 asmdba
# groupadd -g 54342 asmoper
# useradd -g oinstall -G asmadmin,asmdba,asmoper,dba,racdba grid
# id grid
uid=54322(grid) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54330(racdba),54340(asmadmin),54341(asmdba),54342(asmoper)

また、gridユーザーにパスワードを設定しておきます。

# passwd grid
Changing password for user grid.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
#

(4) oracleユーザーをasmdbaグループに追加する

OracleデータベースでASMを使用する場合、oracleユーザーをasmdbaグループに追加する必要がありますので、追加します。

# id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54330(racdba)
# usermod -a -G asmdba oracle
# id oracle
uid=54321(oracle) gid=54321(oinstall) groups=54321(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54330(racdba),54341(asmdba)

(5) ASMディスク用VirtualBox仮想ディスクを追加する

OSをshutdownした後で、ASMディスク用VirtualBox仮想ディスクを追加します。

ここでは、仮想ディスクの構成は以下を想定します。

仮想ディスクのファイル名  サイズ  OS認識後のデバイスファイル名
------------------------- ------- -------------------------------
asm_data01.vdi            100GB    /dev/sdb
asm_data02.vdi            100GB    /dev/sdc
asm_data03.vdi            100GB    /dev/sdb

対象のVMについて「設定」を選択

「設定」→「ストレージ」を選択

「ハードディスクの追加」を選択

「作成」を選択

ハードディスクのファイルタイプで「次へ」

物理ハードディスクにあるストレージで「次へ」

仮想ディスクのファイル名とサイズを指定

  • ここでは、ファイル名にasm_data01.vdiを、サイズに100GBを指定しています。

作成した仮想ディスクを選択して「選択」

作成した仮想ディスクが接続された

他2つの仮想ディスクが追加された

計3つの仮想ディスクが追加された

(6) 追加したディスクにパーティションを作成する

rootユーザーでpartedコマンドを使用して、追加したディスクにパーティションを作成します。

まず、追加したディスクが、ディスクデバイスとして/dev/sdb、/dev/sdc、/dev/sddと見えることを確認します。

# ls -l /dev/sd*
brw-rw---- 1 root disk 8,   0 Apr  8 22:47 /dev/sda
brw-rw---- 1 root disk 8,   1 Apr  8 22:47 /dev/sda1
brw-rw---- 1 root disk 8,   2 Apr  8 22:47 /dev/sda2
brw-rw---- 1 root disk 8,   3 Apr  8 22:47 /dev/sda3
brw-rw---- 1 root disk 8,   4 Apr  8 22:47 /dev/sda4
brw-rw---- 1 root disk 8,   5 Apr  8 22:47 /dev/sda5
brw-rw---- 1 root disk 8,  16 Apr  8 22:47 /dev/sdb
brw-rw---- 1 root disk 8,  32 Apr  8 22:47 /dev/sdc
brw-rw---- 1 root disk 8,  48 Apr  8 22:47 /dev/sdd

partedコマンドを使用して、まず/dev/sdbにパーティションを作成します。

# parted /dev/sdb mklabel msdos
Information: You may need to update /etc/fstab.

# parted /dev/sdb mkpart primary 2048s 100%
Information: You may need to update /etc/fstab.

# parted /dev/sdb print "unit s"  print
Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start   End     Size    Type     File system  Flags
 1      1049kB  21.5GB  21.5GB  primary

Model: ATA VBOX HARDDISK (scsi)
Disk /dev/sdb: 41943040s
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags:

Number  Start  End        Size       Type     File system  Flags
 1      2048s  41943039s  41940992s  primary

#

/dev/sdbと同様に、以下のディスクデバイスに対しても同様の操作を実行して、パーティションを作成します。

  • /dev/sdc
  • /dev/sdd

この操作により、パーティションに対応する以下のASMディスク用ディスクデバイスが作成されます。

  • /dev/sdb1
  • /dev/sdc1
  • /dev/sdd1

(7) ディスクデバイスの権限設定を行うudevルールを構成する

gridユーザー/asmadminグループがASMディスク用ディスクデバイスにアクセスできるように、権限設定を行うudevルール /etc/udev/rules.d/99-oracle-asmdevices.rules を構成します。

# vi /etc/udev/rules.d/99-oracle-asmdevices.rules
# cat /etc/udev/rules.d/99-oracle-asmdevices.rules
KERNEL=="sdb1", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sdc1", OWNER="grid", GROUP="asmadmin", MODE="0660"
KERNEL=="sdd1", OWNER="grid", GROUP="asmadmin", MODE="0660"
# 
# udevadm control --reload
# udevadm trigger
# ls -l /dev/sd*
brw-rw---- 1 root disk     8,   0 Apr  8 22:47 /dev/sda
brw-rw---- 1 root disk     8,   1 Apr  8 22:47 /dev/sda1
brw-rw---- 1 root disk     8,   2 Apr  8 22:47 /dev/sda2
brw-rw---- 1 root disk     8,   3 Apr  8 22:47 /dev/sda3
brw-rw---- 1 root disk     8,   4 Apr  8 22:47 /dev/sda4
brw-rw---- 1 root disk     8,   5 Apr  8 22:47 /dev/sda5
brw-rw---- 1 root disk     8,  16 Apr  8 22:51 /dev/sdb
brw-rw---- 1 grid asmadmin 8,  17 Apr  8 22:57 /dev/sdb1  ←★
brw-rw---- 1 root disk     8,  32 Apr  8 22:59 /dev/sdc
brw-rw---- 1 grid asmadmin 8,  33 Apr  8 22:59 /dev/sdc1  ←★
brw-rw---- 1 root disk     8,  48 Apr  8 22:59 /dev/sdd
brw-rw---- 1 grid asmadmin 8,  49 Apr  8 22:59 /dev/sdd1  ←★

#

ASMディスク用ディスクデバイス /dev/sdb1/dev/sdc1/dev/sdd1 の権限設定が 「rw-rw---- (=660)」、「grid asmadmin」 になっていればOKです。

udevadm control --reloadおよびudevadm triggerを実行しても、権限設定が行われない場合、OSを再起動してみてみてください。

なお、実は上記のudevルールは簡略版です。ディスクの構成変更にも強いudevルールを構成することもでき、本番運用ではこれが望まれます。 詳細は以下のサポート文書を確認してください。

また、上記以外の方法として、ASMLIBおよびASMFDを使用する方法もあります。

(8) Grid関連ディレクトリを作成する

Grid Infrastructure関連ディレクトリの作成

# mkdir -p /u01/app/grid
# mkdir -p /u01/app/grid/product/19.0.0/grid
# chown -R grid:oinstall /u01/app/grid
# chmod -R 775 /u01/app/grid

インベントリディレクトリの作成

# mkdir /u01/app/oraInventory
# chown -R grid:oinstall /u01/app/oraInventory
# chmod 775 /u01/app/oraInventory

(9) X-Window転送を有効にして、gridユーザーでゲストOSにSSH接続する

シングル構成のLinux版Oracle Database 19cを導入する手順 後編に記載されている以下の手順を参考に、X-Window転送を有効にして、gridユーザーでゲストOSにSSH接続します。

  • (13) X-Window転送を有効にして、oracleユーザーでゲストOSにSSH接続する

(10) ホストOSでX-Windowサーバを起動する

私はXmingを使用しています。

OUIやDBCAなどのX-WindowアプリケーションをゲストOSのコンソールで起動する場合、この作業は不要です。

(11) Oracle Grid Infrastructure 19cのインストールファイルをゲストOSにコピー

シングル構成のLinux版Oracle Database 19cを導入する手順 後編に記載されている以下の手順を参考に、ダウンロードしたOracle Grid Infrastructure 19cのインストールファイルをゲストOSにコピーします。

  • (15) Oracle Database 19cのインストールファイルをゲストOSにコピー

(12) Oracle 19cのインストールファイルをGridホームに解凍

コピーしたGrid Infrastructure 19cのインストールファイル(LINUX.X64_193000_grid_home.zip)を Gridホーム に対応するディレクトリに展開します。インストールファイルはzip形式で圧縮されていますので、unzipコマンドを使って展開します。

[grid@ol79n23 ~]$ cd /u01/app/grid/19.0.0/grid
[grid@ol79n23 ~]$ unzip ~/LINUX.X64_193000_grid_home.zip

Grid Infrastructure 19cのインストールファイル(LINUX.X64_193000_grid_home.zip)は、gridユーザーのホームディレクトリにあると仮定しています。

(13) gridSetup.shを実行してスタンドアロンサーバー用Grid Infrastructureをインストール

gridユーザーで、Gridホーム内にあるgridSetup.shを実行してインストール処理を開始します。

[grid@ol79n23 ~]$ export LANG=ja_JP.utf8
[grid@ol79n23 ~]$ ./gridSetup.sh

構成オプションの選択

  • 「スタンドアロン・サーバー用のOracle Grid Infrastructure(Oracle Restart)の構成」オプションを選択します。

ASMディスクグループの作成

  • ASMディスクグループ名を「DATA」とします。
  • ASMディスクグループを構成するASMディスクとして、/dev/sdb1、 /dev/sdc1、 /dev/sdd1を選択します。

ASMパスワードの指定

管理オプションの指定

権限付きオペレーティングシステムグループ

インストール場所の指定

インベントリの作成

rootスクリプトの実行構成

  • root構成スクリプトのファイル名はorainstRoot.shおよびroot.shです。Grid Infrastructureのインストールでroot権限が必要な処理がroot構成スクリプトとして用意されているため、これをroot権限で実行する必要があります。
  • ここでは「構成スクリプトを自動的に実行」および「sudoの使用」を選択し、root構成スクリプトをsudoコマンドを用いてroot権限で実行することにしています。

前提条件チェックの実行1

前提条件チェックの実行2

前提条件チェックの実行3

  • ここではスワップ・サイズおよびパッケージについて前提条件が満たされていませんが、検証目的では無視可能なので、「すべて無視」にチェック入れて先に進めています。

サマリー

製品のインストール1

root構成スクリプトの実行確認

  • root構成スクリプト実行の確認が求められるため、「はい」を選択して実行します。

製品のインストール2

終了

(14) gridユーザーに環境変数を設定

gridユーザー(Grid Infrastructureソフトウェア所有者)の環境変数に、インストール先ディレクトリや言語設定などのGrid Infrastructureの実行環境に関する情報を設定します。

~/.bash_profileなどのシェル設定ファイルに環境変数を設定するコマンドを記載します。

export ORACLE_BASE=/u01/app/grid
export ORACLE_HOME=/u01/app/grid/product/19.0.0/grid
export ORACLE_SID=+ASM
export NLS_LANG=Japanese_Japan.AL32UTF8

export PATH=$ORACLE_HOME/bin:$PATH

以下の実行例では、~/.bash_profileを評価し、環境変数が設定されたことをprintenvコマンドで確認しています。

[grid@l79n23 ~]$ . ~/bash_profile
[grid@l79n23 ~]$ printenv ORACLE_HOME
/u01/app/grid/product/19.0.0/grid
[grid@l79n23 ~]$ printenv ORACLE_BASE
/u01/app/grid
[grid@l79n23 ~]$ printenv ORACLE_SID
+ASM
[grid@l79n23 ~]$ printenv NLS_LANG
Japanese_Japan.AL32UTF8
[grid@l79n23 ~]$ printenv PATH
/u01/app/grid/product/19.0.0/grid/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/oracle/.local/bin:/home/oracle/bin:/home/oracle/.local/bin:/home/grid/bin
[grid@l79n23 ~]$

(15) Oracleソフトウェアをインストール

シングル構成のLinux版Oracle Database 19cを導入する手順 後編に記載されている以下の手順を実行します。

  • (10) oracleユーザーのパスワードを設定する
  • (11) Oracle.comからOracle Database 19cのインストールファイルをダウンロードする
  • (12) ORACLE_HOMEに相当するディレクトリを作成する
  • (13) X-Window転送を有効にして、oracleユーザーでゲストOSにSSH接続する
  • (14) ホストOSでX-Windowサーバを起動する
  • (15) Oracle Database 19cのインストールファイルをゲストOSにコピー
  • (16) Oracle Database 19cのインストールファイルをORACLE_HOMEに解凍
  • (17) OUIを実行してOracleソフトウェアをインストール
  • (18) oracleユーザーに環境変数を設定

(16) DBCAを実行してデータベースを作成

シングル構成のLinux版Oracle Database 19cを導入する手順 後編の「(19) DBCAを実行してデータベースを作成」に記載されている手順と多くの部分で同様ですが、以下が異なります。

  • 記憶域オプション : データベース構成ファイルをASMディスクグループ「+DATA」に格納します。
  • 高速リカバリ : リカバリ関連ファイルをASMディスクグループ「+DATA」に格納します。
  • ネットワーク : Gridホームのリスナーを使用します。

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

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

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

(17) oracleユーザーに環境変数ORACLE_SIDを設定

oracleユーザーの環境変数に、作成したデータベースのOracleインスタンスの識別子(SID)を設定します。

~/.bash_profileなどのシェル設定ファイルに環境変数を設定するコマンドを記載します。

export ORACLE_SID=orcl

以下の実行例では、~/.bash_profileを評価し、環境変数が設定されたことをprintenvコマンドで確認しています。

[oracle@l79n23 ~]$ . ~/bash_profile
[oracle@l79n23 ~]$ printenv ORACLE_SID
orcl

以上です! 作成したOracle Database環境はORACLE MASTERをはじめとする、Oracle Database学習に役立ててください! 幸運を祈る! 🙂

プロフィール

On7tWW6m1Ul4

渡部 亮太

・Oracle ACE
・AWS Certified Solutions Architect - Associate
・ORACLE MASTER Platinum Oracle Database 11g, 12c 他多数

カテゴリー

アーカイブ