Oracle Database をインストール

Oracle Databaseのインストール過程

Oracle Database は、非常に高価ではありますが「データベース」シェアトップのシステムになります。

今回は、このデータベースをインストールする過程のご紹介として、Linux環境にOracle Database19cをインストールします。

ディストリビューションは、「Oracle Linux Server release 8.3」 を選択し、VMwareの仮想マシンにインストールします。

ISOファイルの準備

オラクルのサイトからインストール用のISOファイルを取得します。

Englishになっていたら、日本語を選びサインインします。アカウントがなければ作りましょう。

Oracle Linuxで検索します。カートに入れるような感じなので注意が必要です。続行をクリックして進みます。

プラットフォームなどを選びます。今回はx86用にしました。続行を押して次に進みます。

ライセンス契約に同意を求められます。将来の有料化の布石…かもしれません。

ダウンロードするファイルを選択します。V1004253-01.iso があればいいので、こちらを選択します。

選択すると、ダウンロードされるのは Oracle_SSN_DLM_********.exe という実行ファイルで、実行すると、ファイルがダウンロードできます。 

これでファイルがダウンロードされます

Complete になれば完了です。

 

仮想マシンの準備

ちなみに、このVMwareは、Ubuntuにインストールしたものなので、表示が英語になっています。

VMwareの仮想マシン新規作成を選択します。マシンの詳細を設定するので、ここではOSインストールしないを選択します。

ゲストOS選択で、Oracle Linuxを選択します。

名前と、仮想マシンの保存場所を選択します

仮想マシンの容量と、ファイルを1つにするよう設定します。

デフォルトだと、メモリが1Gしかありません。カスタマイズボタンで変更します。

メモリを8Gに、プロセッサを2個に、CD/DVDに、Oracle Linuxのインストール用isoファイルに設定します。
またネットワークがデフォルトだとNATなので、Bridgeにします。

仮想マシンが準備できたら、起動します。


Oracle Linuxインストール

CD/DVDに設定したISOを読み込んで立ち上がります。見た目はCentOS8とほぼ違いがありません。

GUI画面が立ち上がったら、まず言語を日本語に設定します。

仮想マシンなので、右が少し切れています。
ストレージとユーザーに警告が表示されています。

ストレージは、そのまま選択すればOKです

rootのパスワード設定です。

root以外にもユーザーが必要なので、一人作成します。

設定してインストール開始して、暫く待ちます。完了したらシステムの再起動をクリックします。

再起動が完了すると、警告がでます。
一応、Oracle Linuxは無料で使用できますが、ライセンス契約が必要です。
将来の有料化の布石……ですかね

契約に同意します。

これでインストール完了ですが、「Oracle Linux」なんて名前なので、Oracle社がOracleデータベース向けに用意したディストリビューションなのでは? という甘い期待は、ものの見事に裏切られました。

$ java -version
bash: java: コマンドが見つかりませんでした...

Oracleデータベースをインストールするのに必要な、javaすら標準インストールでは用意されていません。

このあとのインストールは、本当に大変でした。

Oracle 19cインストール

上記のOracle LinuxをダウンロードしたOracleのサイトから、LINUX.X64_193000_db_home.zip を入手し、これをインストールします。

手順はまったく同一です。

まずインストール時にoracleユーザーを作成していなかった場合は、ユーザーの作成はGUI画面で行った方が良いようです。
最終的にGUIインストールするためです。

ユーザーを追加したら、グループを作成し、先ほどのoracleユーザーをグループに所属させます。

# id -a oracle
uid=1000(oracle) gid=1000(oracle) groups=1000(oracle) ←最初はデフォルトのグループです

# groupadd -g 54421 oinstall
# groupadd -g 54322 dba
# groupadd -g 54323 oper
# groupadd -g 54324 backupdba
# groupadd -g 54325 dgdba
# groupadd -g 54326 kmdba
# groupadd -g 54327 asmdba
# groupadd -g 54328 asmoper
# groupadd -g 54329 asmadmin
# groupadd -g 54330 racdba

# usermod -g oinstall oracle
# usermod -G dba,oper,backupdba,dgdba,kmdba,asmdba,racdba oracle

# id -a oracle
uid=1000(oracle) gid=54421(oinstall) groups=54421(oinstall),54322(dba),54323(oper),54324(backupdba),54325(dgdba),54326(kmdba),54327(asmdba),54330(racdba)

次に、Oracleデータベースを展開するフォルダを作成します。

# mkdir -p /u01/app/oracle/product/19.3.0/dbhome_1
# chown -R oracle:oracle /u01

次に、環境変数を設定します。
oracleユーザーに切り換えてから、

$ vi .bash_profile

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs ←この下に追加

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.3.0/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=orcl

一度ログアウトして、envコマンドで上記の環境変数が設定されている事を確認します。

次に、開発環境のインストールが必須です。
前述の通り、Javaも入っていないほか、開発用のプログラムも入っていません。

もう一度rootになり、

# dnf group install “Development Tools”
# dnf install -y libaio libnsl

これらをインストールしておかないと、インストーラーが立ち上がりません。

環境が整ったら、インストーラーの展開です。
LINUX.X64_193000_db_home.zip をダウンロードしたフォルダに移動し、

$ cp LINUX.X64_193000_db_home.zip /u01/app/oracle/product/19.3.0/dbhome_1
$ cd /u01/app/oracle/product/19.3.0/dbhome_1
$ unzip LINUX.X64_193000_db_home.zip

でファイルを解凍します。

かなりファイル数が多いですので注意してください。

インストールの実行と、文字化け問題

$ cd /u01/app/oracle/product/19.3.0/dbhome_1
$ ./runInstaller

のコマンドでインストールできるとの情報なのですが、実際には上記のような開発環境を忘れるとエラーが表示されるほか、開発環境をインストールしても妙な事になります。

文字の部分が□になってしまっています。「トーフ問題」というやつですね。

これも呆れるしかないのですが、LINUX.X64_193000_db_home.zip ファイルにはインストーラーを動作させるためのjava実行環境が入っているのですが、その中にインストーラーが表示に使用するフォントが入っていないのです。

このため、フォントは外部から取得してくる必要があります。

手順としましては、こちらのサイト様が参考になりました。

さざなみフォントダウンロードサイトからファイルを取得し、適当な場所に展開します。

# tar -jxvf sazanami-20040629.tar.bz2
sazanami-20040629/
sazanami-20040629/README
sazanami-20040629/sazanami-mincho.ttf
sazanami-20040629/sazanami-gothic.ttf
sazanami-20040629/doc/
sazanami-20040629/doc/oradano/
sazanami-20040629/doc/oradano/README.txt
sazanami-20040629/doc/misaki/
sazanami-20040629/doc/misaki/misakib8.txt
sazanami-20040629/doc/mplus/
sazanami-20040629/doc/mplus/LICENSE_J
sazanami-20040629/doc/shinonome/
sazanami-20040629/doc/shinonome/LICENSE
sazanami-20040629/doc/ayu/
sazanami-20040629/doc/ayu/README.txt
sazanami-20040629/doc/kappa/
sazanami-20040629/doc/kappa/README

すると、sazanami-gothic.ttf sazanami-mincho.ttf というフォントファイルができています。

$ cd /u01/app/oracle/product/19.3.0/dbhome_1/jdk/jre/lib/fonts
$ mkdir fallback

作成したフォルダに、sazanami-gothic.ttf sazanami-mincho.ttfをコピーします。

再度、./runInstallerを実行すると、インストーラーに日本語が表示されます。

INS-08101エラー対策

日本語は表示されたものの、[INS-08101]というエラーが表示されました。

その解決策は、こちらのサイトにありましたが、下記を実行してから、インストーラーを起動すると正常になりました。

$ cat /etc/os-release | grep VERSION_ID | awk -F”\”” ‘{print $2}’
$ export CV_ASSUME_DISTID=OEL8.2

これで

とインストーラーが起動しました。

しかし、まだまだトラブルが続きます。

SWAP足らない問題

試しにインストールを進行させると、警告が表示されました。

インストール時に特にディスク構成は弄らず、自動でおこなったのですが、その結果、SWAPサイズが不足したようです。

なんでOracle Linuxが標準でOracle Databaseをインストールするのに足らないSWAPサイズを設定しているのかが全く理解できません。
Oracleが自分のところでディストリビューションとして出す以上、自分達が扱ってるOracle Databaseや、Javaを使う為に選択する事を想定して、インストール時に確認するオプションを設け、選択したらそれに合わせた構成にするくらいできないのでしょうか?

とりあえず、SWAPサイズを増やします。

こちらのサイト、猫ぐらし様の情報が参考になりました。

まず、一度Vmwereの仮想マシンをシャットダウンし、ディスクサイズを2GB追加しました。

次に、gparteをインストールするのですが、Oracle Linux8では、標準では見つかりませんでした。

アクティビティから、ソフトウェアを選びます。

gparteを検索しますが、見つかりません。これは標準の場所に存在しないからで、EPELを有効化する必要があります。

EPELを追加した後、gparteを検索すると、アプリケーションが見つかりますので、クリックシテインストールします。

EPELを設定するのは、下記の手順でした。dnf では見つかりませんでした。

# yum -config-manager --enable epel
# ←なにも見つからない

# dnf -y install epel-release
メタデータの期限切れの最終確認: 0:10:30 時間前の 2021年04月18日 01時38分15秒 に 実施しました。
一致した引数がありません: epel-release
エラー: 一致するものが見つかりません: epel-release

# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y
メタデータの期限切れの最終確認: 0:11:09 時間前の 2021年04月18日 01時38分15秒 に 実施しました。
epel-release-latest-8.noarch.rpm                 22 kB/s |  22 kB     00:00
依存関係が解決しました。
================================================================================
 パッケージ          Arch          バージョン         リポジトリー        サイズ
================================================================================
インストール:
 epel-release        noarch        8-10.el8           @commandline         22 k

トランザクションの概要
================================================================================
インストール  1 パッケージ

合計サイズ: 22 k
インストール済みのサイズ: 32 k
パッケージのダウンロード:
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                        1/1
  インストール     : epel-release-8-10.el8.noarch                           1/1
  scriptletの実行中: epel-release-8-10.el8.noarch                           1/1
  検証             : epel-release-8-10.el8.noarch                           1/1

インストール済み:
  epel-release-8-10.el8.noarch

完了しました!

未割り当てが2GBできました。

右クリックでNewを選択します

ファイルシステムをlvm2 pvにし、追加ボタンを押します。

チェックマークのボタンで、操作を適用します。

ダイアログがでるので、適用します。

パーティションの名前が付き、反映されました。

増えた容量をSWAPに反映します。

# free
              total        used        free      shared  buff/cache   available
Mem:        7856756      530380     6792716       10916      533660     7055960
Swap:       6504444           0     6504444
※今は6G程です。

# vgdisplay -C
  VG #PV #LV #SN Attr   VSize   VFree
  ol   1   3   0 wz--n- <61.00g    0

# vgextend ol /dev/nvme0n1p3 ←GPartedで追加した領域を指定。
  Volume group "ol" successfully extended

# vgdisplay -C
  VG #PV #LV #SN Attr   VSize  VFree
  ol   2   3   0 wz--n- 62.99g <2.00g ←サイズが増えています。

# lvdisplay
  --- Logical volume ---
  LV Path                /dev/ol/swap
  LV Name                swap
  VG Name                ol
  LV UUID                JrCWy5-a1yM-gCNW-5dQn-5v2s-C3uR-AXkbB4
  LV Write Access        read/write
  LV Creation host, time localhost, 2021-04-18 09:57:54 -0400
  LV Status              available
  # open                 2
  LV Size                6.20 GiB
  Current LE             1588
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           252:1

  --- Logical volume ---
  LV Path                /dev/ol/home
  LV Name                home
  VG Name                ol
  LV UUID                78KfVg-5ckL-N4zO-6OcE-thcE-F3et-WbhCzC
  LV Write Access        read/write
  LV Creation host, time localhost, 2021-04-18 09:57:54 -0400
  LV Status              available
  # open                 1
  LV Size                <17.98 GiB
  Current LE             4602
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           252:2

  --- Logical volume ---
  LV Path                /dev/ol/root
  LV Name                root
  VG Name                ol
  LV UUID                xDADTH-o4sJ-5lJc-WdVm-K6Cj-EIKk-MutZn0
  LV Write Access        read/write
  LV Creation host, time localhost, 2021-04-18 09:57:54 -0400
  LV Status              available
  # open                 1
  LV Size                <36.82 GiB
  Current LE             9425
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           252:0

# lvextend -l +100%FREE /dev/ol/swap ←SWAPで使っている論理ボリューム(LV)を拡張します
  Size of logical volume ol/swap changed from 6.20 GiB (1588 extents) to <8.20 GiB (2099 extents).
  Logical volume ol/swap successfully resized.

# swapoff -v /dev/ol/swap 
スワップ /dev/ol/swap を無効化しています

# mkswap /dev/ol/swap
mkswap: /dev/ol/swap: 警告: 古い swap 署名を消去しています。
スワップ空間バージョン 1 を設定します。サイズ = 8.2 GiB (8803840000 バイト)
ラベルはありません, UUID=530a97a1-8f58-4351-97af-50116bc1145d

# swapon -v /dev/ol/swap
swapon: /dev/mapper/ol-swap: 署名が見つかりました: [ページサイズ=4096, 署名=swap]
swapon: /dev/mapper/ol-swap: ページサイズ=4096, スワップサイズ=8803844096, デバ イスサイズ=8803844096
スワップ /dev/mapper/ol-swap を有効化しています

# free
              total        used        free      shared  buff/cache   available
Mem:        7856756      515596     6806604       10876      534556     7070736
Swap:       8597500           0     8597500
※SWAPが増えている事が確認できます。

これでようやく、警告がでなくなりました。Oracle Databaseのインストールを続けます。

正常なインストールの実行

構成オプション。ソフトウェアのみ設定を選択します。

インストールオプション。単一インスタンス・Databaseを選択します。

エディションの選択。Enterpriseを選択します

インストール場所の指定。デフォルトでOKです

インベントリの作成です。デフォルトですが、グループがoinstallである事は確認が必要です

グループの選択です。デフォルトでOKですが、グループ設定がうまくいっていないとこの表示になりません。

rootのパスワードを設定します。

サマリが表示されます。SWAPも調整したので、エラーは解消されています。

インストールが進行します。

インストールが完了しました。

 

 

データベースの作成

インストールが完了したら、データベースを作成します。

$ dbca

今回ははじめてなので、作成かテンプレートしか選択できません。作成を選びます。

作成モードを拡張設定にします。

デプロイタイプは、デフォルトのままです。

コンテナデータベースとして作成のチェックは外します。

記憶域オプションはデフォルトのままです。

リスナーの選択ですが、はじめての作成なのでありません。LISTENERを作成します。

データーボールトはデフォルトのままです。

構成オプションは4つのタブに分かれています。メモリはデフォルトのままです

構成オプションのサイズタブもデフォルトのままです。

構成オプションのキャラクタセットタブは、Unicode であること、日本語であることを確認します。

構成オプションの排他モードは専用サーバーモードであることを確認します。

あまり意味はありませんが、構成オプションのサンプルスキーマーを追加にチェックしました。

管理オプションは、EMを使用するにチェックし、5500を指定します。

全てのアカウントで同一パスワードを使用する設定にします。れます。

短いパスワードなので警告をくらいましたが、本番ではないのでこのままにします。

作成オプションはデータベースの作成を指定します。

サマリが表示されます。ここだけ「終了」で先にすすみます。

データベースの作成が始まりました。けっこう時間がかかります。

データーベースの作成が完了しました と表示されたら、パスワードの管理ボタンをクリックし、HRのチェックを外して適当なパスワードを与えます。

 

全て完了したら、端末からoratbaを編集します。

$ vi /etc/oratab

orcl:/u01/app/oracle/product/19.3.0/dbhome_1:N
 ↓
orcl:/u01/app/oracle/product/19.3.0/dbhome_1:Y

以上でOracleデータベースのインストールと、データベースの作成が完了しました。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です