株式会社コーソル

コーソル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向けセットアップとインストール、データベース作成 (本記事)

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

yumでパッケージを追加する場合がありますが、 パッケージの取得元となるyumリポジトリを Oracle Linuxのインストールメディアで構成しておくと、以下の利点が得られます。

  • パッケージ間の不整合が発生する可能性が極めて少ない
  • パッケージのダウンロードが不要なため、早い
  • パッケージ構成=インストールメディアという形になるため、ソフトウェア構成が分かりやすい

なお、本番環境などでは、セキュリティ脆弱性や不具合対応がなされた最新のパッケージを導入すべき状況が多いでしょうから、 最新のパッケージが提供されるインターネット上のyumリポジトリを指定する形になるでしょう。

インストールメディアをCD-ROMに設定する

VirtualBoxマネージャで、VMのCD-ROMにOracle Linux 7.9のインストールメディアを設定します。 VMの起動中に実行可能です。

VM設定変更 - インストールメディアの指定

なお、CD-ROMにインストールメディアを設定した状態だと、 OSを再起動すると、OSインストール画面に遷移してしまいます。以下で回避可能です。

  • VMの「設定」→「システム」→「マザーボード」→「起動順序」でCD-ROMのブート順を小さくしておく
  • インストールメディアが不要になったタイミング(今回の場合、Oracle Preinstall rpmをインストールの終了後)で、CD-ROMへインストールメディアの設定を解除する

ゲストOSでCD-ROMをmountする

[root@ol79n23 ~]# mount -t iso9660 /dev/cdrom /mnt
mount: /dev/sr0 is write-protected, mounting read-only
[root@ol79n23 ~]# ls /mnt
addons  EULA  images    LiveOS    RELEASE-NOTES-U9-en       repodata     RPM-GPG-KEY-oracle
EFI     GPL   isolinux  Packages  RELEASE-NOTES-U9-en.html  RPM-GPG-KEY  TRANS.TBL

Oracle Linuxのインストールメディアをyumリポジトリとして構成する

Oracle Linuxのインストールメディアをyumリポジトリとして構成する設定ファイル /etc/yum.repos.d/local-oel-dvd.repo を配置します。

yumリポジトリの名称は local-oel-dvd です。

[root@ol79n23 ~]# vi /etc/yum.repos.d/local-oel-dvd.repo
[root@ol79n23 ~]# cat /etc/yum.repos.d/local-oel-dvd.repo
[local-oel-dvd]
name=local-oel-dvd
baseurl=file:///mnt
enabled=1
gpgcheck=0

不要なyumリポジトリを無効化します

Oracle Linuxのインストールメディアに対応するyumリポジトリ以外のyumリポジトリを無効化します。

[root@ol79n23 ~]# yum-config-manager -q --disable 'ol7*'
============================================================ repo: ol7_MODRHCK =============================================================
[ol7_MODRHCK]
async = True
bandwidth = 0
base_persistdir = /var/lib/yum/repos/x86_64/7Server
  : 
timeout = 30.0
ui_id = ol7_u9_base/x86_64
ui_repoid_vars = releasever,
   basearch
username =

[root@ol79n23 ~]# yum repolist
Loaded plugins: langpacks, ulninfo
local-oel-dvd                                                                                                        | 3.6 kB  00:00:00
(1/2): local-oel-dvd/group_gz                                                                                        | 131 kB  00:00:00
(2/2): local-oel-dvd/primary_db                                                                                      | 5.2 MB  00:00:00
repo id                                                            repo name                                                          status
local-oel-dvd                                                      local-oel-dvd                                                      5,210
repolist: 5,210

yum repolistで、local-oel-dvd のみが表示されていることから、 Oracle Linuxのインストールメディアに対応するyumリポジトリ以外のyumリポジトリを無効化できたことが分かります。

(9) Oracle Preinstall rpmをインストール

Oracle Linuxのインストールメディア(およびPublic Yumリポジトリ)には、Oracle Database向けの構成を自動化するRPMである Oracle Preinstall rpmがあります。これをyum installコマンドでインストールします。

[root@ol79n23 ~]# yum list |grep preinstall
oracle-database-preinstall-19c.x86_64  1.0-2.el7                   local-oel-dvd
[root@ol79n23 ~]# yum install oracle-database-preinstall-19c.x86_64
Loaded plugins: ulninfo
Resolving Dependencies
--> Running transaction check
---> Package oracle-database-preinstall-19c.x86_64 0:1.0-2.el7 will be installed
--> Processing Dependency: xorg-x11-xauth for package: oracle-database-preinstall-19c-1.0-2.el7.x86_64
--> Processing Dependency: xorg-x11-utils for package: oracle-database-preinstall-19c-1.0-2.el7.x86_64
  : 
  sysstat.x86_64 0:10.1.5-19.el7                                tcp_wrappers.x86_64 0:7.6-77.el7
  unzip.x86_64 0:6.0-21.el7                                     xorg-x11-utils.x86_64 0:7.5-23.el7
  xorg-x11-xauth.x86_64 1:1.0.9-1.el7

Complete!

Oracle Preinstall rpmをインストールすることで実行される主な処理は以下の通りです。

  • oracleユーザーの作成
  • Oracleインストールに必要なRPMパッケージのインストール
  • Kernelパラメータの設定
  • シェル制限(ulimit)の設定

(10) oracleユーザーのパスワードを設定する

Oracle Preinstall rpmのインストール時に作成されたoracleユーザーのパスワードを設定します。

[root@l79n23 ~]# passwd oracle
Changing password for user oracle.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[root@l79n23 ~]#

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

Oracle.comからOracle Database 19cのインストールファイルをダウンロードします。

なお、学習目的であれば、Oracle Databaseは無償で使用可能です(OTNライセンス)。学習以外の目的でない限り、あえてOracle Databaseの無償版であるOracle Database Express Editionを使用する必要はありません。

(12) ORACLE_HOMEに相当するディレクトリを作成する

rootユーザーで以下のコマンドを実行してORACLE_HOMEに相当するディレクトリを作成します。

[root@ol79n23 ~]# mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
[root@ol79n23 ~]# chown -R oracle:oinstall /u01/app

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

TeraTermを起動した状態で、「設定」→「SSH転送」を選択し、X-Window転送を有効にします。

X-Window転送を有効にしたあとで、oracleユーザーでゲストOSにSSH接続すると、そのSSH接続内でX-Windowアプリケーションを転送できるようになります。

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

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

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

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

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

ダウンロードしたOracle Database 19cのインストールファイルをゲストOSにコピーします。

以下の例では、TeraTermのSCP機能を使用してファイルをコピーしています。 コピーしたファイルは、デフォルトでoracleユーザーのホームディレクトリに配置されます。

WinSCPなどのSCPクライアントを使用してもよいです。

(16) Oracle Database 19cのインストールファイルをORACLE_HOMEに解凍

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

[oracle@ol79n23 ~]$ cd /u01/app/oracle/product/19.0.0/dbhome_1
[oracle@ol79n23 ~]$ unzip ~/LINUX.X64_193000_db_home.zip

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

(17) OUIを実行してOracleソフトウェアをインストール

oracleユーザーで、ORACLE_HOME内にあるrunInstallerを実行してインストール処理を開始します。

[oracle@ol79n23 ~]$ export LANG=ja_JP.utf8
[oracle@ol79n23 ~]$ ./runInstaller

export LANG=ja_JP.utf8は、言語環境を示す環境変数LANGに日本語設定を行うものです。 これにより、OUIの画面表示が日本語となります。

この記事で紹介したのとは異なる手順でOracle Linuxをセットアップした場合、OUIで日本語の文字がうまく表示されない場合があります(日本語の文字が□に文字化けする)。このときは、以下のコマンドを実行して、英語表示でrunInstallerを起動してください。

$ export LANG=C
$ ./runInstaller

構成オプションの選択

OUIを起動すると、最初に[構成オプションの選択]画面が表示されます。

Oracleのインストールだけを行うか([ソフトウェアのみの設定])、インストールと同時にデータベースも作成するか([単一インスタンス・データベースを作成および構成します])を指定します。「単一インスタンス・データベース」とは、いわる「シングル構成」のことです。

今回は[ソフトウェアのみの設定]を選択し、Oracleソフトウェアのインストールだけを行います。この場合、ソフトウェアインストール後にDBCAを実行してデータベースを作成できます。

インストールオプションの選択

デフォルトの選択内容を受け入れて、[次へ] ボタンをクリックします。

データベースエディションの選択

デフォルトの選択内容を受け入れて、[次へ] ボタンをクリックします。

インストール場所の指定

「Oracleベース」に、 環境変数ORACLE_BASE に設定したディレクトリパスを指定します。ここでは、/u01/app/oracleを指定しています。

「ソフトウェアの場所」には、runInstallerを起動した ORACLE_HOME のディレクトリパスが表示されているはずです。

インベントリの作成

「インベントリディレクトリ」は、デフォルトの選択内容を受け入れます。 インベントリディレクトリ とは、そのマシンにインストールしたOracle製品の情報を記録するディレクトリです。 「oraInventoryグループ名」には、 Oracleインベントリグループ として作成したOSグループを指定します。通常 oinstall となります。

なお、このマシンにOracle製品をインストール済みの場合、この画面はスキップされます。

権限のあるオペレーティング・システム・グループ

インストール前に作成したOSグループを指定します。デフォルトの選択内容を受け入れて、[次へ] ボタンをクリックします。

rootスクリプトの実行構成

[構成スクリプトを自動的に実行]を選択すると、ソフトウェアのインストール処理中に、以下のrootスクリプトがrootユーザーで実行されます。

  • orainstRoot.sh: インベントリポインタファイル(/etc/oraInst.loc)が作成される。インベントリポインタファイルには、インベントリ(インストールした Oracleソフトウェア)の場所と管理グループが記録される
  • root.sh: oraenv スクリプトと coraenv スクリプト、dbhome スクリプトが指定したディレクトリにコピーされる。また、/etc/oratab ファイルが作成または編集される

ここでは、[rootユーザーの資格証明を使用]を選択し、[パスワード]にrootユーザーのパスワードを入力しています。これにより、スクリプトをrootユーザーで実行できるようになります。

なお、[構成スクリプトを自動的に実行]を選択しない場合、ソフトウェアのインストール処理の終了後に、rootスクリプトをrootユーザーで手動実行する必要があります。

前提条件チェックの実行

前提条件が満たされているかがチェックされ、結果が表示されます。

ここでは、スワップ・サイズ(スワップ領域のサイズ)が要件を満たしてないとして警告が表示されていますが、 「Oracle Databaseの動作を確認する」という観点で影響はないため、「すべて無視」にチェックして次に進みます。

このとき、

[INS-13016] このインストールで、前提条件の一部を無視することが選択されました。製品構成に影響する可能性があります。

続行しますか。

という警告が表示されますが、無視します。

サマリー

[サマリー]画面に、これまで入力した項目のサマリーが表示されます。入力項目に誤りがなければ、[インストール]ボタンをクリックして、 Oracleソフトウェアのインストールを開始します。

製品のインストール

インストールの進捗状況が表示されます。

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

「構成スクリプトを自動的に実行」を選択した場合、構成スクリプトの実行の確認画面が表示されるので[はい] で実行します。

「構成スクリプトを自動的に実行」を選択しなかった場合、rootスクリプトの実行が促されるので、rootユーザーで表示されたrootスクリプトを実行し、実行したら、[OK]を押します。

完了

インストールが正常に完了すると 、[終了]画面が表示されます。[閉じる ] ボタンをクリックします。

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

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

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

export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
export NLS_LANG=Japanese_Japan.AL32UTF8

export PATH=$ORACLE_HOME/bin:$PATH

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

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

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

OUIを使用したソフトウェアのインストールが完了したら、データベースを作成します。

データベースを作成するには、Oracleソフトウェアに含まれる Oracle Database Configuration Assistant (以下、 DBCA)を使用します。 DBCAを起動するには、dbcaコマンドを実行します。

$ export LANG=ja_JP.UTF8
$ dbca

データベース操作の選択

まず、DBCAで実行する操作を選択します。ここでは、[データベースの作成] を選択します。

DBCA - データベース操作の選択

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

デフォルトの[標準構成] でデータベースを作成するか、[拡張構成] を使用してデータベースを作成するか選択できます。

[標準構成]を選択すると、指定する項目が少なくなるため、詳細な知識を持たない利用者が一般的な構成のデータベースを簡単に作成できます。

[拡張構成]を選択すると、記憶域の場所、初期化パラメータ 、管理オプション、データベースオプションおよび管理用ユーザーアカウントのパスワードなどをカスタマイズできます。

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

ここでは、[拡張構成]を選択します。

デプロイメントタイプ

データベースを作成するために使用するデータベーステンプレートを指定します。

DBCA - データベースデプロイメントタイプの選択

データベース識別情報

データベースの識別子として、グローバルデータベース名とインスタンスSIDを指定します。

グローバルデータベース名は、リモート接続における接続先データベースの識別子およびリスナーへのサービス登録におけるデータベースサービス名に使用されます。

インスタンスSIDは、ローカル接続における接続先インスタンスの識別子に使用されます。

併せて、マルチテナントコンテナデータベースとして作成するかどうかを指定します。

DBCA - データベースIDの詳細の指定

記憶域オプション

データベースファイルの配置を指定します。

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

  • 「データベースの記憶域属性にテンプレートファイルを使用」: テンプレートファイルの設定に従います。
  • 「データベース記憶域属性に次を使用」: データベースファイルをどの記憶域に配置するかを指定します。[ファイルシステム]または[自動ストレージ管理]のいずれかを選択できます。
    • [ファイルシステム]を選択した場合、データベースファイルを格納するディレクトリパスを指定します。
    • [自動ストレージ管理]を選択した場合、ASMディスクグループ名を指定します。ASM(Automatic Storage Management、自動ストレージ管理)は、Oracleのボリュームマネージャ兼ファイルシステムです。記憶域としてASMディスクグループを提供します。

また、Oracle Managed Filesを使用するかを指定できます。OMFは、Oracleが自動的にデータベースファイルのファイル名の命名、作成、削除を行う機能です。

高速リカバリ

この画面では、高速リカバリ領域の場所およびサイズを指定します。併せて、ARCHIVELOGモードにするかどうか(アーカイブ有効化)を指定します。

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

ネットワーク

作成したOracleデータベースのリモート接続に使用するリスナーを選択します。

リスナーを新規に作成することも可能です。

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

Oracle Data Vault

オプション機能であるOracle Database Vault、Oracle Label Securityを使用するかを指定します。

DBCA - Oracle Data Vault構成オプションの選択

構成オプション

Oracleデータベースのその他の構成を指定します。設定項目ごとにタブで分類されています。

  • メモリー: Oracleデータベースで使用する各種メモリー領域のサイズを指定します。

DBCA - 構成オプションの指定 - メモリー

  • サイズ: データブロックのサイズ、起動プロセスの最大数を指定します。なお、作成したテンプレートによってはデータブロックのサイズは変更できません。

DBCA - 構成オプションの指定 - サイズ設定

  • キャラクタセット: データベースに使用するキャラクタセットおよび言語設定、地域設定を選択します。
    • キャラクタセットは、Oracleにおける文字コードに相当する概念です。文字コードとは、コンピューターで文字を取り扱う体系です。デフォルトのAL32UTF8は Unicode(UTF-8)と呼ばれる文字コードに相当します。
    • 言語設定は、各種メッセージの言語、月名や曜日名、文字のソート順に関わる設定です。NLS_LANGUAGE初期化パラメータに相当します。
    • 地域設定は、日時データの表示形式などのさまざまな地域別規則に関わる設定です。NLS_TERRITORY初期化パラメータに相当します。

DBCA - 構成オプションの指定 - キャラクタセット

  • 接続モード: Oracleデータベースに接続する場合に使用する接続モード(接続形態)を指定します。
    • 専用サーバーモード(専用サーバー構成)は、あるセッションにおける処理を、特定のサーバープロセスで実行する接続モードです。
    • 共有サーバーモード(共有サーバー構成)は、あるセッションにおける処理を、複数のプロセスで実行する接続モードです。

  • サンプルスキーマ: デモやSQL学習に使用できるサンプル用の表とデータをインストールするかどうかを指定します。

管理オプション

作成したデータベースにOracle Enterprise Manager Database Expressを構成するかどうかを指定します。

また、作成したデータベースをOracle Enterprise Manager Cloud Controlの管理対象として登録するかどうかを指定します。ただし、Oracle Management Service(OMS、Cloud Controlの管理サービス)が構成済みであり、かつ、データベースサーバーにOracle Management Agent(OMA、Cloud Controlの管理エージェント)が導入済みである必要があります。

ユーザー資格証明

管理用ユーザー(SYS、SYSTEM)のパスワードを入力します。これらの管理用ユーザーは、データベース作成時に自動的に作成されます。

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

データベースを作成する場合、[データベースの作成]にチェックを入れたままにします。

[データベースの作成]のチェックを外し、[データベーステンプレートとして保存]、[データベース作成スクリプトの生成]にチェックを入れると、 データベースを作成せず、テンプレートやスクリプトを作成できます。

サマリー

前提条件チェックの実行後、これまで入力した項目のサマリーが表示されます。入力項目に誤りがなければ、[終了] ボタンを選択するとデータベースの作成が開始されます。

進行状況ページ

データベースの作成が開始されると、[進行状況ページ]画面が表示されます。

データベースの作成が完了すると 、[Database Configuration Assistant] ウィンドウが表示されます。 このウィンドウから、次の情報を確認できます。

  • DBCA ログファイルの場所
  • グローバルデータベース名、SID およびデータベースのサーバーパラメータファイル名

[終了] ボタンをクリックするとウィンドウが閉じます。

(20) 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学習に役立ててください! 幸運を祈る! 🙂

2022/4/11 追記

ORACLE MASTER Gold DBAの試験範囲に含まれる Oracle Restartの導入手順をまとめました。

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

プロフィール

On7tWW6m1Ul4

渡部 亮太

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

カテゴリー

アーカイブ