株式会社コーソル

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

技術ブログ

VM作成からのOracle 19cインストール手順 前編(Linuxシングル)

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

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

  • 私が執筆したORACLE MASTER黒本で、Linux版Oracleのインストールについて試験対策の観点では必要十分な説明を書いていたが、実際に環境を作成する観点で十分なまでは書けていなかったため
  • これまでリリースごとに日本オラクルさんからインストール手順書が提供されていた(12c R1, 12c R2)が、19c向けの手順書が提供されていないため
  • Linux版Oracleのインストールおよび使用において「重要な鍵」となる動作環境の準備(VM、OS、ネットワークなど)において落とし穴を避けるノウハウを、以前から文書化しておきたいと思っていたため

長くなってしまったので、2つの記事に分けます。

  1. VMの作成とOracle Linuxのインストール (本記事)
  2. Oracle Database向けセットアップとインストール、データベース作成

想定および前提

ORACLE MASTER学習などの目的で、インストール時にOUIやDBCAで指定する内容を理解したい、手っ取り早く手元にOracle Databaseが動作する環境を用意したい人を想定します。本番環境向けのOracle導入などの目的で、キチンとしたOracle Databaseの動作環境を作る状況は対象外とします。

  • OUI/DBCAを使用 / rpmインストールは使用しない
    • 学習の観点で、OUI/DBCAの入力項目を説明したい、理解しておいたほうがよいため
    • 依然として、現在の主流はOUI/DBCAを使用した方法であるため
  • OSはOracle Linux 7.9
    • ORACLE MASTER対策、および実務上で良く使われる観点で、Linux
    • Oracle Database稼働における現時点の主流としてRHEL 7系
    • 無償で使用可能 / 導入の簡単さ (preinstall rpmが使える)のため、Oracle Linux
    • Oracle Linux 7系列の2021年6月時点の最新はOracle Linux 7.9
  • Oracle Databaseの構成はシングル構成の19c
  • Oracle VM VirtualBox上に導入
    • 手元PCがWindowsまたはMAC OSである場合、仮想化環境上にLinuxを構成するのが妥当であるため
    • Oracle VM VirtualBoxは無償で利用できるため
  • 対象マシン(VirtualBoxを動作させるマシン、ホストOS)のOSはWindowsとする
  • SSHクライアントとして、TeraTermを使用
    • Windows環境で広く一般的に使用されているSSHクライアント
    • X-Window転送、SCPに対応している
  • 対象マシン(ホストOS)にX-Windowサーバを導入してあること
    • どのX-Windowサーバでもよい、私はXmingを使用
  • Unicode(UTF-8) を前提

繰り返しになりますが、本記事で紹介する手順および構成は、全ての環境において推奨される手順ではありません。 あくまでも、トラブルに遭遇する可能性を減らして、手っ取り早く手元に環境を用意したい ケースにおいて「有用」と私が判断した手順および構成です。

ゲストOS 環境情報

  • ホスト名: l79n23.domain
  • IPアドレス: 192.168.56.23
  • OS: Oracle Linux 7.9
  • ORACLE_BASE: /u01/app/oracle
  • ORACLE_HOME: /u01/app/oracle/product/19.0.0/dbhome_1
  • グローバルデータベース名: orcl.world
  • ORACLE_SID: orcl

(1) Oracle VM VirtualBoxをインストール

以下の記事などを参考に、Oracle VM VirtualBox(以下単に「VirtualBox」)をインストールしてください。

VirtualBox以外の仮想化ソフトウェアを使ってもOKですが、本記事ではVirtualBoxの使用を前提に説明します。

(2) Oracle Linux 7.9のインストールメディアをoracle.comからダウンロード

Oracle Linux 7.9のインストールメディア(ISOイメージファイル)を https://yum.oracle.com/oracle-linux-isos.html からダウンロードします。 ISOイメージファイルのファイル名は OracleLinux-R7-U9-Server-x86_64-dvd.iso です。

(3) VirtualBoxでVMを作成

VirtualBoxでVMを作成し、Oracle Linux 7.9をインストールします。

VM(ゲストOS)の構成は様々なパターンが考えられますが、シンプルさや、使いやすさ、トラブル遭遇しにくさなどを考慮して、今回は以下を前提とします。

メモリサイズはホストOSが許す範囲で大きめに

  • メモリサイズはホストOSが許す範囲で大きめに割り当てる。本記事では2048MBを指定

ディスクサイズと"/"パーティションも大きめに

  • VM作成時のディスクサイズは100GB以上など、大きなサイズにしておく
    • あとからディスクを追加したり、サイズを拡張することも可能だが、楽でトラブルフリーなので
    • 100GBのディスクを構成しても、実際に使用しない限り、ホストOSのストレージ領域は消費しませんのでご安心あれ
    • "/パーティション"に大き目のサイズを割り当てる

NICは2つ、NATとHost-Only Networkに接続

  • ゲストOSのNICは2つとし、VirtualBoxのネットワークモードはそれぞれ"NAT","Host-Only Network"とする
    • ゲストOSのNIC#2には、固定IPアドレス 192.168.56.x (192.168.56.2-99の範囲内から選択)を静的に割り当てる
    • ホストOSからゲストOSにアクセスするときに、NIC#2に指定したIPアドレスを指定します。
    • DHCPも使用できますが、IPアドレス固定の方がなにかと楽なハズです。
    • 192.168.56.1はホストOSが使用するため、ゲストOSには使用できません。

ゲストOSのNICを2つとし、VirtualBoxのネットワークモードをそれぞれ"NAT","Host-Only Network"に接続する理由は、以下の通りです。

  • NIC#1 の"NAT"経由で、ゲストOSから外部ネットワークへの通信(インターネットへの通信)を可能にするため
    • yumやファイルのダウンロードなどで有用
    • 可能になるのは、ゲストOS→外部ネットワーク の方向の接続による通信のみであることに注意。とはいえ、大抵これのみで十分なはず
      • 外部ネットワーク→ゲストOSの報告の接続による通信はデフォルトではNG(追加設定が必要だが、本記事では触れていない)。
  • NIC#2 の"Host-Only Network"経由で、ホストOSとゲストOSでネットワーク接続を可能にするため
    • ホストOSでTeraTermなどのSSHクライアントを起動して、ゲストOSにSSH接続が可能
    • ホストOSでWinSCPなどを起動して、ゲストOSに対してSCPでファイルコピーが可能
    • SSHのX-Window転送機能を使用して、OUIやDBCAなどのOracleのX-WindowアプリケーションをホストOSに表示可能(XmingなどのX-Windowサーバーも使用)

以下の記事も参考になります。

VMの作成

作成したVMの設定を変更

VM設定変更 - ネットワークアダプタの設定

VM設定変更 - ネットワークアダプタの設定

VM設定変更 - ネットワークアダプタの設定

(4) VMにOracle Linux 7.9をインストール

VMを起動

Oracle Linux 7.9のインストールプロセス

以後は、VirtualBoxのVM仮想コンソール内で、Oracle Linux 7.9のインストーラを操作して進めてゆきます。

このとき、VirtualBoxのVM仮想コンソールのウィンドウをクリックして、VirtualBoxのVM仮想コンソール内の画面を操作すると、 VirtualBoxのHostキー(デフォルトは右Ctrlキー)を押さないと、マウスのポインターをVirtualBoxのVM仮想コンソールの外に出せないことに注意してください。

なお、VirtualBoxのHostキーとしてどのキーが割り当てられているかは、VirtualBoxのVM仮想コンソールのウィンドウの右下に表示されています。

インストールパッケージの指定

インストールパッケージ - Server with GUI

  • Server with GUI は、X-Windowグラフィカルデスクトップ環境を提供するパッケージグループです。
  • Oracle Databaseを利用するにあたり、X-Windowグラフィカルデスクトップ環境は必須ではありませんが、以下の理由でインストールします。
    • ネットワーク接続やX-Window転送がうまく行かない場合など、X-Windowグラフィカルデスクトップ環境があると便利な時がある
    • インストール後に"Server with GUI"を追加しようとすると、たまにトラブルになるときがある

ディスクレイアウトの指定

ディスクレイアウトの指定

ディスクレイアウトの指定 - /homeを小さく

ディスクレイアウトの指定 - /を大きく

ネットワーク設定

ネットワーク設定 - NIC設定のまとめ

ネットワーク設定 - NIC#1

  • 「Automatically connect to this network when it is available」を選択し忘れないように!

ネットワーク設定 - NIC#2

  • 「Automatically connect to this network when it is available」を選択し忘れないように!

  • 「IPv4 Settings」→「Method」に「Manual」を選択
    • IPアドレスを静的に設定するため

ネットワーク設定 - NIC#2

  • IPアドレス 192.168.56.x (192.168.56.2-99の範囲内から選択) を入力
  • Gatewayは「空」で良い

ネットワーク設定 - ホスト名

再起動後の初期設定

デスクトップ環境の設定

ディスプレイ解像度の変更

(5) rootユーザーでゲストOSにSSH接続する

固定IPアドレス 192.168.56.xを割り当てているはずなので、このIPアドレスとrootユーザー、インストール時に指定したパスワードでSSH接続できます。

ゲストOS NIC#2のIPアドレスを指定

  • ゲストOSのNIC#2に対して静的に割り当てたIPアドレス 192.168.56.x を指定

  • Oracle Linuxインストール時に指定したrootユーザーのパスワードを指定

(6) /etc/hostsに自ホストの情報を登録する

/etc/hostsに自ホストの情報を登録します。

[root@ol79n23 ~]# vi /etc/hosts
[root@ol79n23 ~]# cat /etc/hosts
127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
::1         localhost localhost.localdomain localhost6 localhost6.localdomain6

192.168.56.23   ol79n23.domain ol79n23

(7) ifcfg-XXXファイルを修正する

理由は不明で、Oracle Linuxのバージョンにも依存する動作かもしれませんが、 OSインストール時にNIC#2に対して「IPv4 Settings」→「Method」に「Manual」を選択したにもかかわらず、 NIC#2のifcfg-XXXファイルに

BOOTPROTO=dhcp

と設定されていたため、以下のように修正します。

BOOTPROTO=static

修正後、shutdown -r nowコマンドを実行してOSを再起動しておきます。

なお、修正しなくても動作するようですが、 以下のように、NIC#2に対して2つのIPアドレス(DHCPで動的に割り当てられたIPアドレスと静的に設定したIPアドレス) が割り当てられ、混乱しかねないので修正しておくのが良い気がします。

[root@ol79n23 ~]# ip addr show
  (略)
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:c1:f6:c7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.105/24 brd 192.168.56.255 scope global noprefixroute dynamic enp0s8 <==DHCPで動的に割り当てられたIPアドレス
       valid_lft 462sec preferred_lft 462sec
    inet 192.168.56.23/24 brd 192.168.56.255 scope global secondary noprefixroute enp0s8 <==静的に設定したIPアドレス
       valid_lft forever preferred_lft forever
    inet6 fe80::3902:fc2b:3481:4d84/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
  (略)

OS構成のポイントを確認しておく

設定ミスのチェックもかねて、OS構成のポイントを確認しておきます。 OS構成に関する理解を深めるためにも役立つはずです。

NICの設定 / ifcfg-xxxx

  • /etc/sysconfig/network-scripts/ifcfg-xxxx というファイル名です
    • xxxx の部分は環境により異なる可能性があります。

NIC#1

[root@ol79n23 ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp0s3
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp  <== DHCPでIPアドレスを取得
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s3
UUID=358075b3-9187-4e58-9351-53eb02bed280
DEVICE=enp0s3
ONBOOT=yes  <== (*1)
IPV6_PRIVACY=no

NIC#2

[root@ol79n23 ~]# cat /etc/sysconfig/network-scripts/ifcfg-enp0s8
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static <== (*2)
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=enp0s8
UUID=50e7abaa-4831-4801-bb34-6fd747180bd8
DEVICE=enp0s8
ONBOOT=yes <==(*1)
IPADDR=192.168.56.23 <== (*3)
PREFIX=24            <== (*3)
IPV6_PRIVACY=no
[root@ol79n23 ~]#
  • (*1) : インストール時に「Automatically connect to this network when it is available」を選択し忘れると、"ONBOOT=no"となり、OS起動時にNICが有効化されない。
  • (*2) : 当初dhcpに設定されていたが、staticに変更した
  • (*3) : インストール時に設定した静的IPアドレス情報が設定されている

ip addr show

[root@ol79n23 ~]# ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host
       valid_lft forever preferred_lft forever
2: enp0s3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:f4:a5:88 brd ff:ff:ff:ff:ff:ff
    inet 10.0.2.15/24 brd 10.0.2.255 scope global noprefixroute dynamic enp0s3 <== (*1)
       valid_lft 86336sec preferred_lft 86336sec
    inet6 fe80::989c:366e:61f6:8efd/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
3: enp0s8: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 08:00:27:c1:f6:c7 brd ff:ff:ff:ff:ff:ff
    inet 192.168.56.23/24 brd 192.168.56.255 scope global noprefixroute enp0s8  <== (*2)
       valid_lft forever preferred_lft forever
    inet6 fe80::3902:fc2b:3481:4d84/64 scope link noprefixroute
       valid_lft forever preferred_lft forever
4: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
    link/ether 52:54:00:e3:e5:a0 brd ff:ff:ff:ff:ff:ff
    inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
       valid_lft forever preferred_lft forever
5: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
    link/ether 52:54:00:e3:e5:a0 brd ff:ff:ff:ff:ff:ff
[root@ol79n23 ~]#
  • (*1) : DHCPでNIC#1に動的に割り当てられたIPアドレス
  • (*2) : 静的にNIC#2に設定したIPアドレス

DNS設定 /etc/resolv.conf

[root@ol79n23 ~]# cat /etc/resolv.conf
# Generated by NetworkManager
search XXXX.jp domain
nameserver 192.168.XX.XX
  • NAT接続したNIC#1から、DHCPでDNSサーバの情報を得ています。
    • VirtualBoxに内蔵されたDHCPサーバは、デフォルトで、ホストOSのDNS情報をゲストOSに対して配布します。
  • "XX"は伏字にしたものです。

route -n / ルーティングテーブル

[root@ol79n23 ~]# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         10.0.2.2        0.0.0.0         UG    100    0        0 enp0s3 <== (*1)
10.0.2.0        0.0.0.0         255.255.255.0   U     100    0        0 enp0s3
192.168.56.0    0.0.0.0         255.255.255.0   U     101    0        0 enp0s8 <== (*2)
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 virbr0
[root@ol79n23 ~]#
  • (*1): NIC#1に対してデフォルトゲートウェイ 10.0.2.2 が設定されています。
    • インターネットを含めた外部ネットワークに対して通信を開始する場合、デフォルトゲートウェイ 10.0.2.2 を経由して通信が行われます。
    • さらに言うと、デフォルトゲートウェイ 10.0.2.2 の先でNATが機能して、ゲストOS→外部ネットワークの向きの接続による通信を中継します。
  • (*2): NIC#2がネットワーク 192.168.56.0/24に接続されており、ホストOS(192.168.56.1)を含めた192.168.56.0/24に接続された端末との通信が可能です。

ファイアウォール設定 / firewalld

[root@ol79n23 ~]# firewall-cmd --state
running
[root@ol79n23 ~]# firewall-cmd --get-active-zone
public
  interfaces: enp0s3 enp0s8
[root@ol79n23 ~]# firewall-cmd --list-services   --permanent
dhcpv6-client ssh <== (*1)
[root@ol79n23 ~]#
  • RHEL7系Linuxでファイアウォール機能を担うfirewalldが構成されています。
  • (*1) : SSH通信は許可されています。
    • Oracle Net(TCP 1521)など、許可されていない通信を行うには、ファイアウォールに対する許可ルール追加が必要です。

SELinux

[root@ol79n23 ~]# getenforce
Enforcing 
  • SELinuxは有効化(Enforcing)されています。
  • Oracle Databaseは、11g R2以降でSELinuxが有効化された状態で動作します。
    • 11g R1以前では、Oracle DatabaseはSELinuxに対応していませんでした。

インターネット通信

NIC#1をNATモードにしているため、以下のように外部ネットワークとの通信(インターネット通信)が可能になっているはずです。

[root@ol79n23 ~]# ping -c 1 www.yahoo.co.jp
PING edge12.g.yimg.jp (182.22.28.252) 56(84) bytes of data.
64 bytes from 182.22.28.252 (182.22.28.252): icmp_seq=1 ttl=53 time=28.5 ms

--- edge12.g.yimg.jp ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 28.545/28.545/28.545/0.000 ms
[root@ol79n23 ~]#

よくあるトラブル

ゲストOSにSSHで接続できない

  • VirtualBoxの仮想コンソールからゲストOSにアクセスし、/etc/sysconfig/network-scripts/ifcfg-xxxxをチェックしてください。
  • 「Automatically connect to this network when it is available」を選択し忘れた結果、"ONBOOT=yes"になっていないことがよくあります。
  • CD-ROMにインストールメディアを設定した場合、OSを再起動した結果、OSインストール画面に遷移してしまうトラブルもたまにあります。
    • 対処a: CD-ROMへのインストールメディアを設定を解除
    • 対処b: VMの「設定」→「システム」→「マザーボード」→「起動順序」でCD-ROMのブート順を小さくしておく

ゲストOSから外部ネットワークにアクセスできない

  • NIC#1に対するIPアドレスの動的割り当てが機能しているか (ip addr show)、デフォルトゲートウェイのIPアドレスの動的割り当てが機能しているか (route -n)、DNSサーバの動的割り当てがが機能しているか ( /etc/resolve.conf)を確認してください。
  • 機能していない場合、インストールプロセスを見直すか、以下のコマンドでNIC#1を再upして状況が改善しないかを確認してください。
 # ip l set [NIC#1の名前] down
 # ip l set [NIC#1の名前] up

マウスのポインターをVirtualBoxのVM仮想コンソールの外に出せない

  • デフォルトでは、 マウスのポインター(カーソル)をVirtualBoxのVM仮想コンソールの外に出せるようにするためには、VirtualBoxのHostキー(デフォルトは右Ctrlキー)を押す必要があります。
    • VirtualBoxのHostキーとしてどのキーが割り当てられているかは、VirtualBoxのVM仮想コンソールのウィンドウの右下に表示されています。
    • ゲストOSに Virtual Box Guest Additions を導入すると、 VirtualBoxのVM仮想コンソールのマウスのポインター出入りがシームレスになりますが、本記事ではVirtual Box Guest Additionsについて取り上げていません。

後編に続く・・・

プロフィール

On7tWW6m1Ul4

渡部 亮太

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

カテゴリー

アーカイブ