技術ブログ
目次
Oracle ACEの渡部です。 VirtualBox VMにRestart構成のLinux版Grid Infrastructure/Oracle Database 19cを導入する手順(環境設定、インストール、データベース作成)をまとめておきます。
お願い
非常に「いまさら感」がありますが、以下の理由で書いてみようと思いました。
なお、以前記載した シングル構成のLinux版Oracle Database 19cを導入する手順(前編, 後編 )と、多くの部分が共通であるため、これに対する差分として書いています。
シングル構成のLinux版Oracle Database 19cを導入する手順(前編, 後編 )における以下の手順を実行します。
シングル構成のLinux版Oracle Database 19cを導入する手順 前編
シングル構成のLinux版Oracle Database 19cを導入する手順 後編
「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ライセンス)。
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.
#
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)
OSをshutdownした後で、ASMディスク用VirtualBox仮想ディスクを追加します。
ここでは、仮想ディスクの構成は以下を想定します。
仮想ディスクのファイル名 サイズ OS認識後のデバイスファイル名
------------------------- ------- -------------------------------
asm_data01.vdi 100GB /dev/sdb
asm_data02.vdi 100GB /dev/sdc
asm_data03.vdi 100GB /dev/sdb
asm_data01.vdi
を、サイズに100GB
を指定しています。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と同様に、以下のディスクデバイスに対しても同様の操作を実行して、パーティションを作成します。
この操作により、パーティションに対応する以下のASMディスク用ディスクデバイスが作成されます。
お願い
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を使用する方法もあります。
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
シングル構成のLinux版Oracle Database 19cを導入する手順 後編に記載されている以下の手順を参考に、X-Window転送を有効にして、gridユーザーでゲストOSにSSH接続します。
私はXmingを使用しています。
OUIやDBCAなどのX-WindowアプリケーションをゲストOSのコンソールで起動する場合、この作業は不要です。
シングル構成のLinux版Oracle Database 19cを導入する手順 後編に記載されている以下の手順を参考に、ダウンロードしたOracle Grid Infrastructure 19cのインストールファイルをゲストOSにコピーします。
コピーした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ユーザーのホームディレクトリにあると仮定しています。
gridユーザーで、Gridホーム内にあるgridSetup.shを実行してインストール処理を開始します。
[grid@ol79n23 ~]$ export LANG=ja_JP.utf8
[grid@ol79n23 ~]$ ./gridSetup.sh
orainstRoot.sh
およびroot.sh
です。Grid Infrastructureのインストールでroot権限が必要な処理がroot構成スクリプトとして用意されているため、これをroot権限で実行する必要があります。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 ~]$
シングル構成のLinux版Oracle Database 19cを導入する手順 後編に記載されている以下の手順を実行します。
シングル構成のLinux版Oracle Database 19cを導入する手順 後編の「(19) DBCAを実行してデータベースを作成」に記載されている手順と多くの部分で同様ですが、以下が異なります。
お願い
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学習に役立ててください! 幸運を祈る! 🙂