技術ブログ
目次
Oracle ACEの渡部です。 VirtualBox VMにシングル構成のLinux版Oracle Database 19cを導入する手順(環境設定、インストール、データベース作成)をまとめておきます。
お願い
非常に「いまさら感」がありますが、以下の理由で書いてみようと思いました。
長くなってしまったので、2つの記事に分けます。
yumでパッケージを追加する場合がありますが、 パッケージの取得元となるyumリポジトリを Oracle Linuxのインストールメディアで構成しておくと、以下の利点が得られます。
なお、本番環境などでは、セキュリティ脆弱性や不具合対応がなされた最新のパッケージを導入すべき状況が多いでしょうから、 最新のパッケージが提供されるインターネット上のyumリポジトリを指定する形になるでしょう。
VirtualBoxマネージャで、VMのCD-ROMにOracle Linux 7.9のインストールメディアを設定します。 VMの起動中に実行可能です。
なお、CD-ROMにインストールメディアを設定した状態だと、 OSを再起動すると、OSインストール画面に遷移してしまいます。以下で回避可能です。
[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リポジトリとして構成する設定ファイル /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
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リポジトリを無効化できたことが分かります。
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 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 ~]#
Oracle.comからOracle Database 19cのインストールファイルをダウンロードします。
なお、学習目的であれば、Oracle Databaseは無償で使用可能です(OTNライセンス)。学習以外の目的でない限り、あえてOracle Databaseの無償版であるOracle Database Express Editionを使用する必要はありません。
rootユーザーで以下のコマンドを実行してORACLE_HOMEに相当するディレクトリを作成します。
[root@ol79n23 ~]# mkdir -p /u01/app/oracle/product/19.0.0/dbhome_1
[root@ol79n23 ~]# chown -R oracle:oinstall /u01/app
TeraTermを起動した状態で、「設定」→「SSH転送」を選択し、X-Window転送を有効にします。
X-Window転送を有効にしたあとで、oracleユーザーでゲストOSにSSH接続すると、そのSSH接続内でX-Windowアプリケーションを転送できるようになります。
OUIやDBCAなどのX-WindowアプリケーションをゲストOSのコンソールで起動する場合、この作業は不要です。
私はXmingを使用しています。
OUIやDBCAなどのX-WindowアプリケーションをゲストOSのコンソールで起動する場合、この作業は不要です。
ダウンロードしたOracle Database 19cのインストールファイルをゲストOSにコピーします。
以下の例では、TeraTermのSCP機能を使用してファイルをコピーしています。 コピーしたファイルは、デフォルトでoracleユーザーのホームディレクトリに配置されます。
WinSCPなどのSCPクライアントを使用してもよいです。
お願い
コピーした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ユーザーのホームディレクトリにあると仮定しています。
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ユーザーの資格証明を使用]を選択し、[パスワード]にrootユーザーのパスワードを入力しています。これにより、スクリプトをrootユーザーで実行できるようになります。
なお、[構成スクリプトを自動的に実行]を選択しない場合、ソフトウェアのインストール処理の終了後に、rootスクリプトをrootユーザーで手動実行する必要があります。
前提条件が満たされているかがチェックされ、結果が表示されます。
ここでは、スワップ・サイズ(スワップ領域のサイズ)が要件を満たしてないとして警告が表示されていますが、 「Oracle Databaseの動作を確認する」という観点で影響はないため、「すべて無視」にチェックして次に進みます。
このとき、
[INS-13016] このインストールで、前提条件の一部を無視することが選択されました。製品構成に影響する可能性があります。
続行しますか。
という警告が表示されますが、無視します。
[サマリー]画面に、これまで入力した項目のサマリーが表示されます。入力項目に誤りがなければ、[インストール]ボタンをクリックして、 Oracleソフトウェアのインストールを開始します。
インストールの進捗状況が表示されます。
「構成スクリプトを自動的に実行」を選択した場合、構成スクリプトの実行の確認画面が表示されるので[はい] で実行します。
「構成スクリプトを自動的に実行」を選択しなかった場合、rootスクリプトの実行が促されるので、rootユーザーで表示されたrootスクリプトを実行し、実行したら、[OK]を押します。
インストールが正常に完了すると 、[終了]画面が表示されます。[閉じる ] ボタンをクリックします。
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 ~]$
お願い
OUIを使用したソフトウェアのインストールが完了したら、データベースを作成します。
データベースを作成するには、Oracleソフトウェアに含まれる Oracle Database Configuration Assistant (以下、 DBCA)を使用します。 DBCAを起動するには、dbcaコマンドを実行します。
$ export LANG=ja_JP.UTF8
$ dbca
まず、DBCAで実行する操作を選択します。ここでは、[データベースの作成] を選択します。
デフォルトの[標準構成] でデータベースを作成するか、[拡張構成] を使用してデータベースを作成するか選択できます。
[標準構成]を選択すると、指定する項目が少なくなるため、詳細な知識を持たない利用者が一般的な構成のデータベースを簡単に作成できます。
[拡張構成]を選択すると、記憶域の場所、初期化パラメータ 、管理オプション、データベースオプションおよび管理用ユーザーアカウントのパスワードなどをカスタマイズできます。
ここでは、[拡張構成]を選択します。
データベースを作成するために使用するデータベーステンプレートを指定します。
データベースの識別子として、グローバルデータベース名とインスタンスSIDを指定します。
グローバルデータベース名は、リモート接続における接続先データベースの識別子およびリスナーへのサービス登録におけるデータベースサービス名に使用されます。
インスタンスSIDは、ローカル接続における接続先インスタンスの識別子に使用されます。
併せて、マルチテナントコンテナデータベースとして作成するかどうかを指定します。
データベースファイルの配置を指定します。
また、Oracle Managed Filesを使用するかを指定できます。OMFは、Oracleが自動的にデータベースファイルのファイル名の命名、作成、削除を行う機能です。
この画面では、高速リカバリ領域の場所およびサイズを指定します。併せて、ARCHIVELOGモードにするかどうか(アーカイブ有効化)を指定します。
作成したOracleデータベースのリモート接続に使用するリスナーを選択します。
リスナーを新規に作成することも可能です。
オプション機能であるOracle Database Vault、Oracle Label Securityを使用するかを指定します。
Oracleデータベースのその他の構成を指定します。設定項目ごとにタブで分類されています。
作成したデータベースに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] ウィンドウが表示されます。 このウィンドウから、次の情報を確認できます。
[終了] ボタンをクリックするとウィンドウが閉じます。
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学習に役立ててください! 幸運を祈る! 🙂
ORACLE MASTER Gold DBAの試験範囲に含まれる Oracle Restartの導入手順をまとめました。
VM作成からのOracle Restart 19cインストール手順