以下のような環境で構築する
- OSはOracle Linux 8.6
- リポジトリデータベースとOMSを同一マシン上に構築
- リポジトリデータベースは19.16を利用
今回は検証用のため、ESXiの仮想マシンを用意。スペックは以下としている。評価用であればこの程度で十分。
- 4コアCPU
- メモリ12GB
- ストレージ120GB
リポジトリDBの準備
通常通りに19cのソフトウェアをインストールして、データベースを作成する。詳細は割愛するが、一般的な空っぽのデータベースを一つ作ればよい。作成時にメモリ周りだけ以下の設定としている。
- SGA_TARGET=2G
- PGA_AGGREGATE_TARGET=1G
余談だが、Oracle Linux 8やRHEL8に19cをインストールする場合はインストール時に19.7以降の適用が必要。可能ならGIRUのほうを適用したほうが良い。runInstaller起動時のINS-08101の発生を防げる。
初期化パラメータの変更
データベース作成後、主にオプティマイザ関連のパラメータを修正、リセットして再起動しておく。
SQL> alter system reset "_optimizer_nlj_hj_adaptive_join" scope=both sid='*';
SQL> alter system reset "_optimizer_strans_adaptive_pruning" scope=both sid='*';
SQL> alter system reset "_px_adaptive_dist_method" scope=both sid='*';
SQL> alter system reset "_sql_plan_directive_mgmt_control" scope=both sid='*';
SQL> alter system reset "_optimizer_dsdir_usage_control" scope=both sid='*';
SQL> alter system reset "_optimizer_use_feedback" scope=both sid='*';
SQL> alter system reset "_optimizer_gather_feedback" scope=both sid='*';
SQL> alter system reset "_optimizer_performance_feedback" scope=both sid='*';
SQL> alter system set "_allow_insert_with_update_check"=true scope=both;
SQL> alter system set session_cached_cursors=200 scope=spfile;
SQL> shu immediate
SQL> startup
OS起動時に自動起動するように設定
EMはOS起動時に自動起動するよう設定されるため、リポジトリデータベースも自動起動させる必要がある。
/etc/oratab で該当するインスタンスの末尾を N → Y に変更する。
emrep:/u01/app/oracle/product/19.0.0/dbhome_1:Y
/etc/init.d/dbora を作成して、以下のうち ORA_HOME、ORA_OWNERを環境に応じて修正したものを保存する。
#! /bin/sh
# description: Oracle auto start-stop script.
#
# Set ORA_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORA_OWNER to the user id of the owner of the
# Oracle database in ORACLE_HOME.
ORA_HOME=/u01/app/oracle/product/19.0.0/dbhome_1
ORA_OWNER=oracle
case "$1" in
'start')
# Start the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
# Remove "&" if you don't want startup as a background process.
su - $ORA_OWNER -c "$ORA_HOME/bin/dbstart $ORA_HOME" &
touch /var/lock/subsys/dbora
;;
'stop')
# Stop the Oracle databases:
# The following command assumes that the oracle login
# will not prompt the user for any values
su - $ORA_OWNER -c "$ORA_HOME/bin/dbshut $ORA_HOME" &
rm -f /var/lock/subsys/dbora
;;
esac
作成した /etc/init.d/dbora の権限を修正し、起動スクリプトのシンボリックリンクを作成する。
# chgrp dba /etc/init.d/dbora
# chmod 750 /etc/init.d/dbora
# ln -s /etc/init.d/dbora /etc/rc.d/rc0.d/K01dbora
# ln -s /etc/init.d/dbora /etc/rc.d/rc3.d/S99dbora
# ln -s /etc/init.d/dbora /etc/rc.d/rc5.d/S99dbora
今時はsystemd管理なのでかなり古臭い書き方ではあるが、Oracleはいまだにこの方法を正としているのでそのやり方に合わせている。
OS側の設定変更
リポジトリデータベースの作成でPreinstallation RPMを使っていると、必要なパッケージやカーネルパラメータなどの修正が自動で入っているが、EM側の要件と一部異なる部分があるので修正する。
以下パッケージを追加インストールする。
# dnf install gcc
# dnf install glibc-devel.i686
/etc/sysctl.conf の ip_local_port_range を 11000 から 65000 に設定する。
net.ipv4.ip_local_port_range = 11000 65000
設定値を反映させておく。
# sysctl -p
インストール実行
セットアップファイルは実行ファイルの.binファイルと、zipファイルが4つで構成されている。
これらを一つの作業ディレクトリに配置して、おもむろに .binファイルを実行すればインストールが始まる。
ORACLE_HOMEやORACLE_SIDなどの環境変数がデータベース側に設定されている場合は事前に解除してから行うこと。社内環境などでプロキシの設定がされている場合も併せて解除しておく。
また、13cR5は日本語環境で実行するとインストールが失敗する不具合があるので、環境変数LANG=C を設定しておく。
$ unset ORACLE_BASE
$ unset ORACLE_HOME
$ unset ORACLE_SID
$ unset HTTP_PROXY
$ unset HTTPS_PROXY
$ unset http_proxy
$ unset https_proxy
$ export LANG=C
$ chmod 775 em13500_linux64.bin
$ ./em13500_linux64.bin
今回は、「Simple install」で進める。
何もなければ、全ての前提条件チェックは成功するはず。問題があればその場で修正する。
インストール先と、ホスト名を指定する。ディレクトリなどは事前に作成する必要はないが、適切なパーミッションの場所を選択のこと。
ここで指定したパスワードは、画面にログインするためのSYSMANのパスワードになる。
リポジトリデータベースの接続情報も入力する。
リポジトリデータベースの要件チェックが行われる。自動修正可能なものは「Auto Fix」ボタンで修正する。shared_pool_size の警告は、今回は無視する。
キャラクタセットに関するメッセージが出るが、19cはデフォルトでUTF8のデータベースが作成されているので問題はないはず。
ここは特に設定変更せず次へ。
最終確認画面。特に問題なければインストール開始。
リポジトリの構成などに非常に時間がかかるので気長に待つ。
root出のスクリプト実行が求められたら実行する。
インストール完了。表示されているURLにWebからログインできることが確認できればOK。
コメント