Hitachi

ノンストップデータベース HiRDB Version 10 システム導入・設計ガイド(UNIX(R)用)


16.1.1 システムログファイルの総容量

〈この項の構成〉

(1) システムログファイルの総容量の求め方

システムログファイルの総容量は,次に示す計算式で求めます。

計算式
全システムログファイルの総容量(単位:バイト)=(↑a÷c↑×3)×b
a:出力されるシステムログ量

求め方については,「システムログ量の求め方」を参照してください。

b:pd_log_rec_lengオペランドで指定するシステムログファイルのレコード長です。

c:次に示す値を代入してください。

pd_log_rec_leng = 1024の場合:1000

pd_log_rec_leng = 2048の場合:2000

pd_log_rec_leng = 4096の場合:4000

  • システムログファイル中に空き領域が発生するため,ここで求めた容量の1.2倍以上の容量を準備することをお勧めします。

  • インナレプリカ機能使用時はログに拡張情報を付加するため,ここで求めた容量の1.1倍の容量を準備してください。

  • ここで得られる総容量を単位時間当たりの容量に変換して,一つのシステムログファイルの容量と数を見積もってください。また,容量と数を見積もるときに,システムログファイルのアンロード間隔についても考慮してください。

注※

システムログファイルの総レコード数を求める計算式です。

(2) システムログ量の求め方

出力されるシステムログ量は,次に示す計算式で求めます。

計算式
出力されるシステムログ量(単位:バイト)=Σ{b+e+↑b÷(a−256)↑×256+d}+c
●回復不要FESの場合だけ加算します。
+f

Σはトランザクションごとの合計を意味します。ただし,実行するトランザクションが次の条件をすべて満たす場合,その分のシステムログは出力されません。

  • 検索をするトランザクションで,かつCOMMIT文で決着する

  • トランザクションを実行するサーバがシングルサーバ,ディクショナリサーバ,又はバックエンドサーバである

a:pd_log_max_data_sizeオペランドの値

b:1336+データベース操作に応じて出力されるシステムログ量

ただし,回復不要FESの場合は0になります。

データベース操作に応じて出力されるシステムログ量は,「表定義時に出力されるシステムログ量」〜「ユティリティによるデータベース作成時に出力されるシステムログ量」で求めたシステムログ量を一つのトランザクション当たりで合計した値です。

c:SQL操作に応じて出力されるシステムログ量

SQL操作に応じて出力されるシステムログ量」を参照してください。

d:サーバ種別ごとに次に示す計算式で算出した値
  • HiRDB/シングルサーバの場合

    2×pd_log_rec_lengオペランドの値

  • HiRDB/パラレルサーバの場合

    ・フロントエンドサーバのとき

    マルチスレッド対応で,X/Openに準拠した接続方式を実現するHiRDBライブラリを使用したUAPの実行,かつトランザクションの移行機能の使用有無

    回復不要FESの使用有無

    計算式

    使用

    未使用(使用できない)

    (↑1336÷pd_log_rec_lengオペランドの値↑+3)×pd_log_rec_lengオペランドの値

    未使用

    使用

    0

    未使用

    未使用

    2×pd_log_rec_lengオペランドの値

    ・バックエンドサーバ又はディクショナリサーバのとき

    システム内の,回復不要FESを使用するフロントエンドサーバの有無

    pd_rpl_reflect_modeオペランドの指定値

    計算式

    あり

    uap

    pd_log_rec_lengオペランドの値+↑{176+128×(一つのトランザクションで更新するBESの最大数+1)}÷pd_log_rec_lengオペランドの値↑×pd_log_rec_lengオペランドの値

    server

    なし

    uap

    server

    2×pd_log_rec_lengオペランドの値

e:
  • HiRDB/パラレルサーバの場合

    フロントエンドサーバのとき:8+72×一つのトランザクションで参照,又は更新するBES及びDSの最大数

    フロントエンドサーバ以外のとき:0

  • HiRDB/シングルサーバの場合:0

f:10×pd_log_rec_lengの値

注 システムログは次に示す操作をする場合に出力されます。
  • 表の定義時

  • インデクスの定義時

  • 表データの更新時

  • ユティリティによるデータベースの作成時

なお,上記の操作によってデータベースを更新中に,ロールバックが発生した場合,それまでデータベースを更新した分のシステムログが新たに追加で出力されます。このことを考慮してシステムログ量を見積もってください。

(3) 容量見積もり時の注意事項

次のSQLを実行すると,システムログを大量に出力します。システムログファイルの容量が不足するおそれがあるため,これらのSQLは出力するシステムログ量を見積もってから実行してください。また,見積もりの結果,システムログファイルの容量が不足する場合は,次に示す方法で容量不足を回避してください。

システムログを大量に出力するSQL

システムログファイル容量不足の回避方法

CREATE INDEX 形式1(インデクス定義)

インデクスオプションにEMPTYを指定してインデクスを定義し,データベース再編成ユティリティ(pdrorg)を使用してインデクスを作成します。そのとき,ログ取得方式に更新前ログ取得モードを指定してインデクスを作成してください。

CREATE INDEX 形式2(インデクス定義)

CREATE INDEX 形式3(部分構造インデクス定義)

ログレスモードで実行してください。

なお,左記のSQL実行時は,特に大量のシステムログを出力します。そのため,システムログファイルの容量の過不足に関係なく,ログレスモードで運用することをお勧めします。ログレスモードでUAP又はユティリティを実行するときの運用については,マニュアル「HiRDB システム運用ガイド」を参照してください。

DROP SCHEMA(スキーマ削除)

指定した認可識別子のスキーマ内の次に示す定義を個別に削除し,一度に出力するシステムログ量を減らしてください。

  • 実表

  • ビュー表(パブリックビューも含む)

  • インデクス

  • アクセス権限

  • ルーチン(DROP SCHEMAで指定した認可識別子が定義したパブリック手続き,パブリック関数を含む)

  • トリガ

  • 抽象データ型

  • インデクス型