付録: Oracle Server

ディスク容量の割当

この節の例は、ファイルシステム内の表領域にもとづいています。次の表は、Oracle 表領域の標準名の一覧です。

Oracle 表領域
表領域名 機能
SYSTEMシステムテーブル
Temp作業用表領域
SYSAUXOracle Enterprise Manager などの補助プログラムの表領域
UndoTBS元に戻す処理に関する情報の表領域
Datspace LN テーブル
Idxspace LN インデックス

 

次の表は、Oracle インストールおよび表領域の予想されるディスク容量の一覧です。これは、ユーザが約 100 人の場合を目安としています。

ユーザが 100 人の場合に予想される表領域要件
dbspaceディスク容量記述
SYSTEM512 MB全テーブルについての情報を格納します。サイズは会社数に依存します。
SYSAUX1 GBStatspack の情報が格納されるほか、Oracle Enterprise Manager の情報が保存されます。
Redolog3 × 128 MBロールフォーワードデータ用の領域
UndoTBS300 MB未完了トランザクションのための領域
Temp200 MBソートなどの作業用の領域
Datspace2 GBデモテーブルおよび会社 000 の表領域。サイズは、データの量と会社の数によって異なります。2 GB の場合、会社 000 といくつかのデモ会社を含めることができます。
Idxspace2 GBデモテーブルおよび会社 000 の表領域。サイズは、データの量と会社の数によって異なります。2 GB の場合、会社 000 といくつかのデモ会社を含めることができます。

 

注意

日本語 (マルチバイト) または UNICODE 用のインストールの場合は、DATSPACE に最低 2 GB、IDXSPACE に最低 2 GB のディスク容量が必要です。

最適なパフォーマンスを得るには、複数のディスクに表領域を分散します。たとえば、Oracle およびデータベースに 4 台のハードディスクを使用可能な場合は、以下のように構成するとよいでしょう。

  • ディスク 1: Oracle、システム表領域、作業領域、redolog ファイル
  • ディスク 2、ディスク 3、ディスク 4: データファイルおよびインデックスファイル
Oracle 環境変数

LN のインストール中、Oracle の環境変数をいくつか設定する必要があります。これらの設定についての詳細は、LN Installation Wizard のオンラインヘルプを参照してください。

インストール後の Oracle 環境の構成

以下の節では、Oracle を正しくインストールした後に行う必要がある Oracle 構成作業について説明します。

Oracle パラメータの修正

Oracle が正常に動作するようにするには、標準のインスタンスの作成後に、いくつかの Oracle パラメータを修正する必要があります。oracle ユーザとしてログオンする必要があります。

パラメータの変更は、以下のように SQL*Plus で行うことができます。

SQL> alter system set sga_max_size = 1G scope=spfile;

これ以外のすべての調整作業については、指定したユーザ数をシステムのカーネルが処理できるかどうかを検証する必要があります。『Oracle Installation and Configuration Guide』のインストール前作業についての章も参照してください。

spfile のパラメータを変更した場合は、データベースを再起動して変更を有効にする必要があります。

注意

ここで説明しているパラメータの値は、いずれも初期値として適切です。後で追加の調整作業がシステムで必要になることがあります。ERP LN のインストール環境にはカスタマイズや差異があるため、最適な値を本書に掲載するのは困難です。

以下の変数および指定値は、init.ora<number> ファイルで追加または変更を行う必要があります。

  • db_files:
    • これは、ポートに固有の変数ですが、通常は 32 または 64 です。これを小さすぎる値や大きすぎる値に設定すると、Oracle バッファキャッシュのパフォーマンスに悪影響を及ぼすことがあります。
  • db_file_multiblock_read_count:
    • この値は 8 に設定する必要があります。
    • このパラメータは完全スキャンおよび範囲スキャンに役立ちます。このパラメータの設定は、オプティマイザに影響します。この値が大きければ、オプティマイザによって完全スキャンおよび範囲スキャンのコストを軽減できる場合があります。
  • sga max size:
    • このパラメータの説明については、この章で後述する 「sga_max_size and sga_target パラメータ」 を参照してください。
  • sga target:
    • このパラメータの説明については、この章で後述する 「sga_max_size and sga_target パラメータ」 を参照してください。
  • log_checkpoint_interval:
    • インストールには、99999999 の値を使用します。チェックポイントの頻度を決定するには、redo log ファイルのサイズを考慮してください。デフォルト値は 10000 ですが、値を大きくすると、移行やインストールを短時間で実行できます。値が非常に大きく、redo log ファイルが大きければ、より大きなログファイルをスキャンしなくてはならないため、正しくシャットダウンされなかったデータベースの起動に時間がかかります。
  • log_buffer:
    • デフォルトは 8K (8192) です。移行/インストールには、より大きな値が必要です。通常、次の公式で log_buffer のサイズを求めることができます。
    • 3/2 × (各 TX の redo の平均サイズ × 同時 TX)
    • 1M2M の値に設定するのは、それほど的外れではありません。
  • open_cursors:
    • この値は 5000 に増やします。会社がアップロードされたら、値を 500 に下げることができます。
  • cursor_space_for_time:
    • この値は TRUE に設定します。この設定によって、ライブラリキャッシュラッチのラッチ競合を減少できます。このパラメータには、より大きな共有スプール (shared_pool_size) が必要になるといった副作用がある場合があります。このため、このパラメータを TRUE に設定するのは大規模なシステム構成の場合にのみ有効です。shared_pool_size パラメータのサイズが 100M よりも小さい場合は、cursor_space_for_time パラメータを FALSE に設定する必要があります。Oracle エラー [Ora-4031] が表示される場合、cursor_space_for_time パラメータを FALSE に戻す必要があることを示している場合があります。
  • sort_area_size:
    • デフォルトは 64K (65536) です。この値を大きくすると、ディスクへのソート数やソートがディスクに送られる回数を減少できる場合があります。ただし、大きな値を設定すると、すべての Oracle 処理に影響し、データベースサーバのメモリ要件に影響を及ぼすことがあります。通常、ソートは Oracle バッファキャッシュを通ります。sort_direct_writes=AUTO に設定するとディスクに直接書き込まれます。
  • timed_statistics:
    • デフォルトは FALSE です。これを TRUE に設定すると、パフォーマンスが多少低下する場合があります (プラットフォームによって 1 から 3 パーセント) が、詳細なタイミング情報が提供され、後でパフォーマンスに関する問題が発生した場合に役立ちます。この設定を行っていないと、データベースインスタンスを再開してインスタンスを有効にする必要があります。
  • async I/O:
    • このパラメータの名前もデフォルト値もプラットフォームによって異なります。最適な結果を得るため、各プラットフォームで非同期 I/O を有効にする必要があります。このパラメータの名前およびデフォルト値については、各プラットフォーム用の Oracle 文書を参照してください。ディスクへの書込みを同期化させた状態でも、DBWR プロセスについては非同期書込みを有効にしてください。
  • db_block_lru_latches:
    • デフォルト値はプラットフォームによって異なります。このパラメータによって、システム内のバッファキャッシュ LRU の数が決まります。値の適切な範囲は 2 から 4 です。設定した値が大きすぎると、Oracle バッファキャッシュのパフォーマンスに悪影響を及ぼすことがあります。
sga_max_size および sga_target parameters

db_block_buffers および shared_pool_size の 2 つのパラメータは、マシンのメモリ消費に大きく影響します。したがって、会社数、インストールのタイプ、プロセス数、および内部メモリに応じて、サイズ決定を行う必要があります。

算出された値は、より大規模なインストール用の値と考えてください。必ずしもそうとは限りませんが、小規模なインストールではこれらの値を小さくすることができます。これらを算出する公式は次のとおりです。

  • Ib = メモリの基準量
  • Ig = GUI ユーザごとのメモリ量
  • P= 接続されている ERP ユーザの数

サイズ設定のガイドによると、LN を Oracle バージョン 10 と組み合わせる場合は、以下の設定が適切です。

64 ビット OSホストモードOracle C/S
2 Tier Arch3 Tier Arch
Oraclelb= 512 MBlg= 65 MBlb= 512 MBlg= 25 MB

 

この表では、システムごとのメモリ量が説明されています。ホストモードの環境では、Ig は LN のメモリ量と、Oracle に要求されるメモリ量の合計です。データベースサーバの場合、これは Oracle プロセスと Oracle 共有メモリに消費されるメモリ量の合計です。

メモリサイズを計算するには、以下の式を使用します。

It = Ib + (P × Ig) = 512 + (30 × 65) = 2462 Mb

システムに 3 GB 指定します。

Oracle によって使用されると思われるサイズは以下のとおりです。

It = (P × lg 3 Tier) = 30 × 25 = 750 MB

最初は sga_target と sga_max_size を 512 MB にするとよいでしょう。メモリには、他のメモリを使用するものもあるので、さらに調整を行うと、512 MB が十分な値であるかどうかがわかります。

メモリサイズを計算するには、以下の式を使用します。

It = Ib + (P × Ig) = 512 + (75 × 25) = 2387 Mb

システムに 3 GB 指定します。

Oracle によって使用されると思われるサイズは以下のとおりです。

It = (P × lg 3 Tier) = 75 × 25 = 1875 Mb

最初は sga_target と sga_max_size を 1500 MB にするとよいでしょう。メモリには、他のメモリを使用するものもあるので、さらに調整を行うと、1500 MB が十分な値であるかどうかがわかります。

oratab ファイルの調整

Root.sh スクリプトの実行中、Oracle 構成ファイル /etc/oratab が作成されます。一部のシステムでは、このファイルは別のディレクトリ (/var/opt/oracle/oratab) にあります。このファイルには、Oracle インストールディレクトリの実際パスが記載されます。Infor ERP のインスタンスについては、次のようなデフォルトエントリが /etc/oratab ファイルに含まれます。

ssa:/usr2/app/oracle/product/<バージョン>:N

このエントリは次のように読み取ります。

  • 先頭フィールドはデータベースのシステム識別子 (ORACLE_SID) です。
  • 2 番目のフィールドはデータベースのホームディレクトリ (ORACLE_HOME) です。
  • 3 番目のフィールドは、システム起動時にデータベースを立ち上げる必要がある (Y) か立ち上げる必要がない (N) かを示します。

3 番目のフィールドの値を N から Y に変更する必要があります。

表領域の拡大

表領域を拡大するのは、たとえば、表領域がほぼいっぱいの場合、あるいは事前に余分の領域を作成する場合です。表領域を拡大するには、既存の表領域に追加のデータファイルを追加します。表領域を拡大するには、DBA 権限が必要です。この章の 「ロールバックセグメントの表示」 で説明したように sysdba として接続してください。

次の例は、表領域を拡大する問合せの構文を示しています。この例では、sqlplus ユーティリティが使用されています。

SQL> alter tablespace 表領域名
2> add datafile ‘ファイル名‘ 
3> size サイズ;

たとえば、/usr2/oracle/dbs の表領域 DATSPACE を 512 MB 拡大するには、以下の問合せを入力します。この例では、sqlplusl ユーティリティが使用されています。

SQL> alter tablespace datspace
2> add datafile ‘/usr2/oracle/dbs/dat02dbf’ 
3> size 512M;

表領域の拡大後、Oracle データベースサーバを再起動する必要はありません。

TNSNAMES.ORA

このパラメータは DESCRIPTION 節に表示されます。

service = (DESCRIPTION= 
(SDU=8192) 
(TDU=8192) 
(ADDRESS= (PROTOCOL=tcp) (PORT=2010) (HOST=abc)) 
(CONNECT_DATA= (SID=ssa)) 
)

SDU の値と異なる値を TDU に設定することができます。ただし、TDU 値は設定しなくても構いません。たとえば、TDU=1024 で SDU=1536 の場合、512 バイトおよび 1024 バイトのデータがトランスポート層に送られます。TDU=2048 で SDU=1536 の場合、1536 バイトのデータがトランスポート層に送られます。

LISTENER.ORA ファイル

Oracle ネットサービスは、選択した名前とプロトコルアドレスを持つリスナーを構成します。また、Oracle ネットサービスは、外部手順のプロトコルアドレスおよびスタティックサービス情報も構成します。このパラメータは SID_DESC 節に表示されます。

SID_LIST_LISTENER = 
(SID_LIST = 
(SID_DESC = 
(SDU = 8192)
(TDU = 8192)
(SID_NAME = ssa) 
(ORACLE_HOME = /oracle/product/<version>) 
) 
)
ネットサービス

ネットサービスを使用するクライアント/サーバのインストールの場合は、設定のいくつかを更新する必要があります。詳細は 『Oracle9i Net Services Administrator's Guide』を参照してください。

ネットサービスの調整

パフォーマンスを向上させるには、ネットワーク層で使用されるパケットサイズを増やす必要があります。サービス層とトランスポート層のバッファをそれぞれコントロールする SDU パラメータと TDU パラメータを使用して、これらのパケットサイズによるコントロールを構成することができます。

これらのサイズは 2K (デフォルト値) より大きく調整できます。SDU および TDU のサイズは 32K まで調整できます。

この調整は、クライアント側 (ファイル TNSNAMES.ORA) とサーバ側 (LISTENER.ORA) で行ってください。システムによって異なりますが、このファイルは etc、/var/opt/oracle または $ORACLE_HOME/network/admin のいずれかのディレクトリにあります。