...

Informix Dynamic Server 管理者ガイド (日本語版) (PDF:6.1MB)

by user

on
Category: Documents
33

views

Report

Comments

Transcript

Informix Dynamic Server 管理者ガイド (日本語版) (PDF:6.1MB)
DB2 IBM Informix
®
򔻐򗗠򙳰
バージョン 10.0
IBM Informix Dynamic Server 管理者ガイド
GB88-8663-00
(英文原典:G251-2267-00)
DB2 IBM Informix
®
򔻐򗗠򙳰
バージョン 10.0
IBM Informix Dynamic Server 管理者ガイド
GB88-8663-00
(英文原典:G251-2267-00)
お願い
本書および本書で紹介する製品をご使用になる前に、 599 ページの『特記事項』に記載されている情報をお読み
ください。
本書には、IBM の専有情報が含まれています。その情報は、使用許諾条件に基づき提供され、著作権により保護されて
います。本書に記載される情報には、いかなる製品の保証も含まれていません。また、本書で提供されるいかなる記述
も、製品保証として解釈すべきではありません。
本マニュアルに関するご意見やご感想は、次の URL からお送りください。今後の参考にさせていただきます。
http://www.ibm.com/jp/manuals/main/mail.html
なお、日本 IBM 発行のマニュアルはインターネット経由でもご購入いただけます。詳しくは
http://www.ibm.com/jp/manuals/
の「ご注文について」をご覧ください。
(URL は、変更になる場合があります)
お客様の環境によっては、資料中の円記号がバックスラッシュと表示されたり、バックスラッシュが円記号と表示され
たりする場合があります。
原 典:
G251–2267–00
IBM Informix
IBM Informix Dynamic Server Administrator’s Guide
Version 10.0
発 行:
日本アイ・ビー・エム株式会社
担 当:
ナショナル・ランゲージ・サポート
第1刷 2005.1
この文書では、平成明朝体™W3、平成明朝体™W7、平成明朝体™W9、平成角ゴシック体™W3、平成角ゴシック体™
W5、および平成角ゴシック体™W7を使用しています。この(書体*)は、
(財)日本規格協会と使用契約を締結し使用して
いるものです。フォントとして無断複製することは禁止されています。
注*
平成明朝体™W3、平成明朝体™W7、平成明朝体™W9、平成角ゴシック体™W3、
平成角ゴシック体™W5、平成角ゴシック体™W7
© Copyright International Business Machines Corporation 1996, 2004. All rights reserved.
© Copyright IBM Japan 2005
目次
はじめに . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxi
本書について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxii
対象ユーザ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxii
ソフトウェア要件 . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii
ロケールに関する前提事項 . . . . . . . . . . . . . . . . . . . . . . . . xxiii
デモンストレーション データベース . . . . . . . . . . . . . . . . . . . . . xxiii
Dynamic Server バージョン 10.0 の新機能 . . . . . . . . . . . . . . . . . . . . xxiv
データベース サーバのセキュリティおよび有用性の強化 . . . . . . . . . . . . . . xxiv
以前のバージョンの Dynamic Server における新機能 . . . . . . . . . . . . . . . . xxvi
Dynamic Server バージョン 9.4 における機能 . . . . . . . . . . . . . . . . . . xxvi
Dynamic Server バージョン 9.3 における機能 . . . . . . . . . . . . . . . . . . xxvii
Dynamic Server バージョン 9.21 における機能 . . . . . . . . . . . . . . . . . xxviii
バージョン 9.2 でのマニュアルの構成上の変更点 . . . . . . . . . . . . . . . . xxviii
表記規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxviii
文字の表記規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxix
機能、製品、およびプラットフォーム . . . . . . . . . . . . . . . . . . . . . xxx
構文ダイアグラム . . . . . . . . . . . . . . . . . . . . . . . . . . . xxx
コード例の表記規則 . . . . . . . . . . . . . . . . . . . . . . . . . . xxxiv
関連マニュアル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxv
インストール ガイド . . . . . . . . . . . . . . . . . . . . . . . . . . xxxv
オンライン ノート . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxv
Informix エラー メッセージ集. . . . . . . . . . . . . . . . . . . . . . . xxxvii
マニュアル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxviii
オンライン ヘルプ . . . . . . . . . . . . . . . . . . . . . . . . . . xxxviii
アクセシビリティ . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxviii
IBM Informix Dynamic Server バージョン 10.0 および CSDK バージョン 2.90 マニュアル セット xxxix
業界標準への準拠 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xlii
第 1 部 データベース サーバ
. . . . . . . . . . . . . . . . . . . . . . 1
第 1 章 データベース サーバのインストールと構成 . . . . . . . . . . . . . . . . . 3
データベース サーバ構成の計画 . . . . . . . . . . . . . . . . . . . . . . . . 5
優先順位の検討 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
環境に関する注意事項 . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
オペレーティング システムの構成 . . . . . . . . . . . . . . . . . . . . . . . . 7
Windows メモリの構成 . . . . . . . . . . . . . . . . . . . . . . . . . . 7
UNIX カーネル パラメータの変更 . . . . . . . . . . . . . . . . . . . . . . . 7
ディスク領域の割当て . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
ラージ チャンクの使用方法 . . . . . . . . . . . . . . . . . . . . . . . . . 8
UNIX でのチャンク ファイルの作成 . . . . . . . . . . . . . . . . . . . . . . 8
Windows での NTFS パーティションの作成 . . . . . . . . . . . . . . . . . . . 9
© Copyright IBM Corp. 1996, 2004
iii
アクセス権、所有権、およびグループの設定 . . . . . . . . . . . . .
標準デバイス名の作成 (UNIX) . . . . . . . . . . . . . . . . . .
環境変数の設定 . . . . . . . . . . . . . . . . . . . . . . . .
環境変数 GLS の設定 . . . . . . . . . . . . . . . . . . . .
UNIX での環境変数の設定 . . . . . . . . . . . . . . . . . . .
Windows での環境変数の設定 . . . . . . . . . . . . . . . . . .
接続の構成 . . . . . . . . . . . . . . . . . . . . . . . . .
UNIX 上のファイル sqlhosts . . . . . . . . . . . . . . . . . .
Windows のレジストリ sqlhosts . . . . . . . . . . . . . . . . .
ISA を使用する接続の構成 . . . . . . . . . . . . . . . . . . .
データベース サーバの構成 . . . . . . . . . . . . . . . . . . .
ONCONFIG 構成ファイルの準備 . . . . . . . . . . . . . . . . .
ISA のサーバ セットアップを使用する構成のカスタマイズ . . . . . . . .
Informix Server Administrator を使用するファイル ONCONFIG の更新 . . . .
インスタンス マネージャを使用する新規データベース サーバ インスタンスの作成
インスタンス マネージャを使用するデータベース サーバ インスタンスの名前変更
Java サポートの構成 . . . . . . . . . . . . . . . . . . . . .
データベース サーバの起動と管理 . . . . . . . . . . . . . . . . .
データベース サーバの起動とディスク領域の初期化 . . . . . . . . . .
自動起動の準備 . . . . . . . . . . . . . . . . . . . . . . .
アプリケーションへの接続の準備 . . . . . . . . . . . . . . . . .
格納領域およびチャンクの作成 . . . . . . . . . . . . . . . . .
ラージ チャンクのサポート . . . . . . . . . . . . . . . . . .
バックアップ システムおよび格納域のセットアップ . . . . . . . . . .
定型管理タスクの実行 . . . . . . . . . . . . . . . . . . . . .
データベース サーバ モードの変更 . . . . . . . . . . . . . . . .
データと論理ログ ファイルのバックアップ . . . . . . . . . . . . .
動作の監視 . . . . . . . . . . . . . . . . . . . . . . . .
一貫性検査 . . . . . . . . . . . . . . . . . . . . . . . .
追加管理タスクの実行 . . . . . . . . . . . . . . . . . . . . .
ミラーリングの使用方法 . . . . . . . . . . . . . . . . . . . .
データベース ログ機能状態の管理 . . . . . . . . . . . . . . . .
論理ログの管理 . . . . . . . . . . . . . . . . . . . . . . .
物理ログの管理 . . . . . . . . . . . . . . . . . . . . . . .
共有メモリの管理 . . . . . . . . . . . . . . . . . . . . . .
仮想プロセッサの管理 . . . . . . . . . . . . . . . . . . . .
並列データベース問合せの管理 . . . . . . . . . . . . . . . . .
データ レプリケーションの使用方法 . . . . . . . . . . . . . . .
監査機能の使用方法 . . . . . . . . . . . . . . . . . . . . .
分散問合せの使用方法 . . . . . . . . . . . . . . . . . . . .
データベース サーバの動作の監視 . . . . . . . . . . . . . . . . .
イベント アラーム . . . . . . . . . . . . . . . . . . . . .
IBM Informix Server Administrator (ISA) . . . . . . . . . . . . . .
メッセージ ログ . . . . . . . . . . . . . . . . . . . . . .
ON-Monitor (UNIX) . . . . . . . . . . . . . . . . . . . . .
ユーティリティ oncheck . . . . . . . . . . . . . . . . . . . .
iv
IBM Informix Dynamic Server 管理者ガイド
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
(Windows)
(Windows)
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
10
10
11
12
13
14
14
15
16
16
16
16
18
18
18
19
19
20
20
21
23
23
24
24
25
25
25
26
26
26
26
26
27
27
27
28
28
28
29
29
30
30
30
30
31
31
ツール onperf (UNIX). . . . .
ユーティリティ onstat . . . .
SMI 表 . . . . . . . . .
システム コンソール . . . . .
UNIX オペレーティング システム
Windows イベント ビューア . .
Windows パフォーマンス モニタ .
Windows ユーティリティ . . .
. . .
. . .
. . .
. . .
ツール .
. . .
. . .
. . .
第 2 章 構成パラメータ . . . . . . .
データベース サーバ識別パラメータ . . .
ディスク領域パラメータ . . . . . . . .
ルート DB 領域 . . . . . . . . .
ルート DB 領域のミラーリング . . . .
そのほかの領域管理パラメータ . . . .
ログ パラメータ . . . . . . . . . .
論理ログ . . . . . . . . . . . .
物理ログ パラメータ . . . . . . . .
ロールバックおよび復旧パラメータ . . .
パラメータのバックアップと復元 . . . .
メッセージ ログ パラメータ . . . . . .
共有メモリ パラメータ . . . . . . . .
共有メモリ サイズの割当て . . . . .
共有メモリ領域の割当て . . . . . . .
共有メモリ バッファ制御 . . . . . .
SQL 文キャッシュ使用方法. . . . . .
意思決定支援パラメータ . . . . . . . .
データベース サーバ処理パラメータ . . .
仮想プロセッサ パラメータ . . . . .
時間間隔 . . . . . . . . . . . .
復元パラメータ . . . . . . . . . . .
高可用性データ レプリケーション パラメータ
イベント アラーム パラメータ . . . . .
ダンプ パラメータ (UNIX) . . . . . . .
ディレクティブ パラメータ . . . . . .
接続パラメータ . . . . . . . . . . .
セキュリティ関連パラメータ . . . . . .
専用パラメータ . . . . . . . . . . .
監査パラメータ (UNIX) . . . . . . .
光メディア パラメータ . . . . . . .
UNIX パラメータ . . . . . . . . .
構成情報の監視 . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
32
32
32
32
33
33
34
34
. . . . . . . . . . . . . . . . . . . 37
. . . . . . . . . . . . . . . . . . . 38
. . . . . . . . . . . . . . . . . . . 38
. . . . . . . . . . . . . . . . . . . 38
. . . . . . . . . . . . . . . . . . . 39
. . . . . . . . . . . . . . . . . . . 39
. . . . . . . . . . . . . . . . . . . 40
. . . . . . . . . . . . . . . . . . . 40
. . . . . . . . . . . . . . . . . . . 41
. . . . . . . . . . . . . . . . . . . 41
. . . . . . . . . . . . . . . . . . . 42
. . . . . . . . . . . . . . . . . . . 42
. . . . . . . . . . . . . . . . . . . 43
. . . . . . . . . . . . . . . . . . . 43
. . . . . . . . . . . . . . . . . . . 43
. . . . . . . . . . . . . . . . . . . 45
. . . . . . . . . . . . . . . . . . . 45
. . . . . . . . . . . . . . . . . . . 45
. . . . . . . . . . . . . . . . . . . 46
. . . . . . . . . . . . . . . . . . . 46
. . . . . . . . . . . . . . . . . . . 47
. . . . . . . . . . . . . . . . . . . 47
. . . . . . . . . . . . . . . . . . . 48
. . . . . . . . . . . . . . . . . . . 48
. . . . . . . . . . . . . . . . . . . 49
. . . . . . . . . . . . . . . . . . . 49
. . . . . . . . . . . . . . . . . . . 50
. . . . . . . . . . . . . . . . . . . 50
. . . . . . . . . . . . . . . . . . . 50
. . . . . . . . . . . . . . . . . . . 51
. . . . . . . . . . . . . . . . . . . 51
. . . . . . . . . . . . . . . . . . . 51
. . . . . . . . . . . . . . . . . . . 51
第 3 章 クライアント/サーバ通信 . . . . . . . . . . . . . . . . . . . . . . . 53
クライアント/サーバ アーキテクチャ . . . . . . . . . . . . . . . . . . . . . . 54
ネットワーク プロトコル . . . . . . . . . . . . . . . . . . . . . . . . . 55
目次
v
ネットワーク プログラミング インターフェイス . .
Windows ネットワーク ドメイン . . . . . . . .
データベース サーバ接続 . . . . . . . . . .
多重接続 . . . . . . . . . . . . . . . .
データベース サーバでサポートされる接続 . . . . .
ローカル接続 . . . . . . . . . . . . . . .
共有メモリ接続 (UNIX) . . . . . . . . . . .
ストリーム パイプ接続 (UNIX) . . . . . . . .
名前付きパイプ接続 (Windows) . . . . . . . .
ローカル ループバック接続 . . . . . . . . .
通信サポート サービス . . . . . . . . . . . .
接続ファイル . . . . . . . . . . . . . . .
ネットワーク構成ファイル . . . . . . . . . .
ネットワーク セキュリティ ファイル . . . . . .
ファイル sqlhosts およびレジストリ キー SQLHOSTS .
sqlhosts 情報. . . . . . . . . . . . . . . .
接続情報 . . . . . . . . . . . . . . . .
グループ情報 . . . . . . . . . . . . . .
TCP/IP 接続の別の方法 . . . . . . . . . . .
Dynamic Server による IPv6 アドレスのサポート . . .
接続用のパラメータ ONCONFIG . . . . . . . . .
構成パラメータ DBSERVERNAME . . . . . . .
構成パラメータ DBSERVERALIASES . . . . . .
構成パラメータ NETTYPE . . . . . . . . . .
ネットワーク接続用の環境変数 . . . . . . . . .
クライアント/サーバ構成の例 . . . . . . . . . .
共有メモリ接続を使用する場合 (UNIX) . . . . . .
ローカル ループバック接続を使用する場合 . . . .
ネットワーク接続を使用する場合 . . . . . . . .
複数の接続タイプを使用する場合 . . . . . . . .
複数のデータベース サーバにアクセスする場合 . . .
Informix MaxConnect の使用方法 . . . . . . . . .
第 4 章 データベース サーバの初期化 .
初期化のタイプ . . . . . . . . .
ディスク領域の初期化 . . . . . . .
初期化手順 . . . . . . . . . . .
構成ファイルの処理 . . . . . . .
共有メモリ部の作成 . . . . . . .
共有メモリの初期化 . . . . . . .
ディスク領域の初期化 . . . . . .
要求された仮想プロセッサすべての開始
必要な変換の実行 . . . . . . .
高速復旧の開始 . . . . . . . .
チェックポイントの開始 . . . . .
構成変更の記録 . . . . . . . .
vi
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
55
56
57
57
58
60
60
61
61
62
62
63
63
66
68
71
72
85
85
89
90
90
91
91
92
92
93
93
94
96
97
98
. . . . . . . . . . . . . . . . . . . . 101
. . . . . . . . . . . . . . . . . . . . 102
. . . . . . . . . . . . . . . . . . . . 102
. . . . . . . . . . . . . . . . . . . . 104
. . . . . . . . . . . . . . . . . . . . 104
. . . . . . . . . . . . . . . . . . . . 105
. . . . . . . . . . . . . . . . . . . . 106
. . . . . . . . . . . . . . . . . . . . 106
. . . . . . . . . . . . . . . . . . . . 106
. . . . . . . . . . . . . . . . . . . . 106
. . . . . . . . . . . . . . . . . . . . 107
. . . . . . . . . . . . . . . . . . . . 107
. . . . . . . . . . . . . . . . . . . . 107
IBM Informix Dynamic Server 管理者ガイド
ファイル oncfg_servername.servernum の作成 . . . .
一時表領域の削除 . . . . . . . . . . . .
強制常駐の設定 (指定した場合) . . . . . . . .
ユーザへの制御の引渡し . . . . . . . . . .
データベース sysmaster の作成および SMI 表の準備 .
データベース sysutils の作成 . . . . . . . . .
ユーザ接続最大数の監視 . . . . . . . . . .
データベース サーバの動作モード . . . . . . . .
データベース サーバの動作モードの変更 . . . . . .
モードを変更できるユーザ . . . . . . . . .
モードを変更する ISA オプション . . . . . . .
モードを変更する ON-Monitor オプション (UNIX) .
モードを変更するコマンド行オプション . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
107
107
108
108
108
109
109
109
111
112
112
113
113
第 5 章 セキュリティ . . . . . . . . . . . . . . . . . . . . . . . . . . .
UNIX または Linux 開始前のサーバ ユーティリティ セキュリティ . . . . . . . . . . . .
セキュリティ検査の使用不可化 . . . . . . . . . . . . . . . . . . . . . . .
セキュアでない環境をセキュアな環境にする . . . . . . . . . . . . . . . . . .
ユーティリティ セキュリティ検査の警告およびエラー メッセージ . . . . . . . . . . .
INFORMIXDIR ディレクトリの権限 . . . . . . . . . . . . . . . . . . . . .
Dynamic Server ユーティリティを実行するためのユーザとグループのメンバシップ. . . . . .
データベース イベントの監査 . . . . . . . . . . . . . . . . . . . . . . . .
ユーザ ロール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
デフォルト ロール . . . . . . . . . . . . . . . . . . . . . . . . . . .
サービス妨害フラッディング アタックの制限 (UNIX) . . . . . . . . . . . . . . . .
LISTEN_TIMEOUT および MAX_INCOMPLETE_CONNECTIONS パラメータの使用 . . . . .
onmode -wm および onmode -wf オプションを使用したパラメータ値の変更 . . . . . . . .
暗号化 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
暗号化と暗号化オプションの概要 . . . . . . . . . . . . . . . . . . . . . .
パスワードとデータ伝送暗号化用の通信サポート モジュール (CSM) の使用 . . . . . . . .
列レベル暗号化の使用 . . . . . . . . . . . . . . . . . . . . . . . . . .
認証モジュール . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
UNIX または Linux 上で稼働するシステム用の Pluggable Authentication Modules . . . . . .
Windows での LDAP 認証サポート. . . . . . . . . . . . . . . . . . . . . .
認証モジュールに対応したアプリケーション開発 . . . . . . . . . . . . . . . . .
分散トランザクション . . . . . . . . . . . . . . . . . . . . . . . . . .
クライアント API および認証サポート モジュール . . . . . . . . . . . . . . . .
互換性問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
エンタープライズ レプリケーションおよび高可用性データ レプリケーション接続のセキュリティ オ
プション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
外部ルーチン (UDR) のセキュリティ . . . . . . . . . . . . . . . . . . . . . .
119
120
121
122
122
123
124
125
125
125
126
127
127
128
128
129
142
146
146
149
152
154
155
155
156
157
第 2 部 ディスク、メモリ、およびプロセスの管理 . . . . . . . . . . . . . 159
第 6 章 仮想プロセッサとスレッド . . . . . . . . . . . . . . . . . . . . . . 161
仮想プロセッサ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162
目次
vii
スレッド . . . . . . . . . . .
仮想プロセッサのタイプ . . . . . .
仮想プロセッサの利点 . . . . . . .
仮想プロセッサがスレッドを処理する方法 .
制御構造体 . . . . . . . . . . .
コンテキスト スイッチング . . . . .
スタック . . . . . . . . . . .
キュー . . . . . . . . . . . .
ミューテックス . . . . . . . . .
仮想プロセッサのクラス . . . . . . .
CPU 仮想プロセッサ . . . . . . .
仮想プロセッサのユーザ定義クラス . .
Java 仮想プロセッサ. . . . . . . .
ディスク入出力仮想プロセッサ . . . .
ネットワーク仮想プロセッサ . . . . .
通信サポート モジュール仮想プロセッサ .
暗号化仮想プロセッサ . . . . . . .
光仮想プロセッサ . . . . . . . .
監査仮想プロセッサ . . . . . . . .
そのほかの仮想プロセッサ . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
163
164
166
170
170
171
172
173
175
176
176
180
182
182
186
192
192
193
193
193
第 7 章 仮想プロセッサの管理 . . . . . . . . . . . . . . . . . . . . . . . . 195
仮想プロセッサ構成パラメータの設定 . . . . . . . . . . . . . . . . . . . . . . 195
テキスト エディタを使用した仮想プロセッサ パラメータの設定 . . . . . . . . . . . . 196
ISA を使用した仮想プロセッサ パラメータの設定. . . . . . . . . . . . . . . . . 197
ON-Monitor を使用した仮想プロセッサ パラメータの設定 . . . . . . . . . . . . . . 197
仮想プロセッサの起動と停止 . . . . . . . . . . . . . . . . . . . . . . . . . 197
オンライン モードでの仮想プロセッサの追加 . . . . . . . . . . . . . . . . . . 198
CPU およびユーザ定義の仮想プロセッサの削除 . . . . . . . . . . . . . . . . . 199
仮想プロセッサの監視 . . . . . . . . . . . . . . . . . . . . . . . . . . . 200
コマンド行ユーティリティを使用した仮想プロセッサの監視 . . . . . . . . . . . . . 200
SMI 表による仮想プロセッサの監視 . . . . . . . . . . . . . . . . . . . . . 202
第 8 章 共有メモリ . . . . . . . . .
共有メモリ . . . . . . . . . . . . .
共有メモリの使用 . . . . . . . . . .
共有メモリの割当て . . . . . . . . .
共有メモリのサイズ . . . . . . . . .
SHMTOTAL を超えた場合の対応 . . . .
共有メモリを確保するプロセス . . . . . .
クライアントが通信部を確保する方法 (UNIX)
ユーティリティが共有メモリを確保する方法
仮想プロセッサが共有メモリを確保する方法
共有メモリの常駐セグメント . . . . . . .
共有メモリの常駐部 . . . . . . . . . .
共有メモリ ヘッダ . . . . . . . . .
viii
IBM Informix Dynamic Server 管理者ガイド
. . . . . . . . . . . . . . . . . . 203
. . . . . . . . . . . . . . . . . . 205
. . . . . . . . . . . . . . . . . . 205
. . . . . . . . . . . . . . . . . . 206
. . . . . . . . . . . . . . . . . . 208
. . . . . . . . . . . . . . . . . . 209
. . . . . . . . . . . . . . . . . . 209
. . . . . . . . . . . . . . . . . . 209
. . . . . . . . . . . . . . . . . . 210
. . . . . . . . . . . . . . . . . . 210
. . . . . . . . . . . . . . . . . . 213
. . . . . . . . . . . . . . . . . . 214
. . . . . . . . . . . . . . . . . . 214
共有メモリのバッファ プール . . . . . . . . . . .
論理ログ バッファ . . . . . . . . . . . . . . .
物理ログ バッファ . . . . . . . . . . . . . . .
高可用性データ レプリケーション バッファ . . . . . .
ロック表 . . . . . . . . . . . . . . . . . .
共有メモリの仮想部 . . . . . . . . . . . . . . . .
共有メモリの仮想部の管理 . . . . . . . . . . . .
共有メモリの仮想部のコンポーネント . . . . . . . . .
データ分散キャッシュ . . . . . . . . . . . . . .
共有メモリの通信部 (UNIX) . . . . . . . . . . . . .
共有メモリの仮想拡張部 . . . . . . . . . . . . . .
同時実行性制御 . . . . . . . . . . . . . . . . .
共有メモリのミューテックス . . . . . . . . . . . .
共有メモリのバッファ ロック . . . . . . . . . . .
共有バッファへのデータベース サーバ スレッドのアクセス . .
FIFO/LRU 管理列. . . . . . . . . . . . . . . .
データベース サーバの先読み構成 . . . . . . . . . .
バッファ ページへのデータベース サーバ スレッドのアクセス
ディスクへのデータ フラッシュ . . . . . . . . . . . .
バッファ プールのバッファのフラッシュ . . . . . . . .
最初にフラッシュされる更新前イメージ . . . . . . . .
物理ログ バッファのフラッシュ . . . . . . . . . . .
バッファ フラッシュの同期化 . . . . . . . . . . .
フラッシュ動作の説明 . . . . . . . . . . . . . .
論理ログ バッファのフラッシュ . . . . . . . . . . .
ラージ オブジェクト データのバッファリング . . . . . . .
シンプル ラージ オブジェクトの書込み . . . . . . . .
スマート ラージ オブジェクトへのアクセス . . . . . .
64 ビット プラットフォームでのメモリ使用 . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
214
216
217
218
218
219
219
220
225
227
227
228
228
228
229
229
234
234
234
235
235
235
236
236
238
239
239
241
242
第 9 章 共有メモリの管理 . . . . . . . . . . . . . . . . . . . . . . . . . 245
オペレーティング システムの共有メモリ構成パラメータの設定 . . . . . . . . . . . . . 246
共有メモリ セグメント サイズの最大値 . . . . . . . . . . . . . . . . . . . . 247
共有メモリ下端境界アドレス (Windows) . . . . . . . . . . . . . . . . . . . . 248
セマフォ (UNIX) . . . . . . . . . . . . . . . . . . . . . . . . . . . . 248
データベース サーバ共有メモリ構成パラメータの設定 . . . . . . . . . . . . . . . . 248
共有メモリ常駐部のパラメータの設定 . . . . . . . . . . . . . . . . . . . . . 249
共有メモリ仮想部のパラメータの設定 . . . . . . . . . . . . . . . . . . . . . 249
共有メモリ パフォーマンスのパラメータの設定 . . . . . . . . . . . . . . . . . 250
テキスト エディタを使用する共有メモリ パラメータの設定 . . . . . . . . . . . . . 250
ISA を使用する共有メモリ パラメータの設定 . . . . . . . . . . . . . . . . . . 251
ON-Monitor を使用する共有メモリ パラメータの設定 (UNIX) . . . . . . . . . . . . . 251
SQL 文キャッシュのパラメータの設定 . . . . . . . . . . . . . . . . . . . . . 251
共有メモリの再初期化 . . . . . . . . . . . . . . . . . . . . . . . . . . . 252
共有メモリ常駐部の常駐のオン/オフ切替え . . . . . . . . . . . . . . . . . . . . 253
オンライン モードにある常駐のオン/オフを切り替える方法 . . . . . . . . . . . . . 253
目次
ix
データベース サーバ再起動時に常駐のオン/オフを切り換える方法
共有メモリ仮想部へのセグメントの追加 . . . . . . . . . .
共有メモリの監視 . . . . . . . . . . . . . . . . .
共有メモリ セグメントの監視 . . . . . . . . . . . .
共有メモリ プロファイルとラッチの監視 . . . . . . . . .
バッファの監視 . . . . . . . . . . . . . . . . .
バッファ プール動作の監視 . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
253
253
254
254
254
255
258
第 10 章 データ記憶域 . . . . . . . . . . . . . . . . . . . . . . . . . . 261
記憶域の物理および論理単位 . . . . . . . . . . . . . . . . . . . . . . . . . 263
チャンク . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
チャンク用のディスク割当て . . . . . . . . . . . . . . . . . . . . . . . . 264
オフセットとは . . . . . . . . . . . . . . . . . . . . . . . . . . . . 266
ページとは . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267
BLOB ページとは . . . . . . . . . . . . . . . . . . . . . . . . . . . . 268
SB ページとは . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 269
エクステント . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 270
DB 領域. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 272
データの格納場所の制御 . . . . . . . . . . . . . . . . . . . . . . . . . 272
ルート DB 領域 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
一時 DB 領域 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
BLOB 領域 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 276
SB 領域 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277
SB 領域を使用する利点 . . . . . . . . . . . . . . . . . . . . . . . . . 277
SB 領域とエンタープライズ レプリケーション. . . . . . . . . . . . . . . . . . 278
メタデータ、ユーザ データ、および予約された領域 . . . . . . . . . . . . . . . . 278
データの格納場所の制御 . . . . . . . . . . . . . . . . . . . . . . . . . 279
SB 領域の格納特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . 281
SB 領域特性の継承レベル . . . . . . . . . . . . . . . . . . . . . . . . . 283
SB 領域に関するそのほかの情報 . . . . . . . . . . . . . . . . . . . . . . 284
一時 SB 領域 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 286
一時 SB 領域と標準 SB 領域の相違点 . . . . . . . . . . . . . . . . . . . . 286
一時スマート ラージ オブジェクト . . . . . . . . . . . . . . . . . . . . . 287
EXT 領域 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 288
データベースとは . . . . . . . . . . . . . . . . . . . . . . . . . . . . 289
表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 290
Dynamic Server の表タイプ . . . . . . . . . . . . . . . . . . . . . . . . . 291
標準永続表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
ロウ表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 292
一時表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
表タイプの特性 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
一時表 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 294
表領域 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 297
表内の表領域の最大数 . . . . . . . . . . . . . . . . . . . . . . . . . . 297
表とインデックス表領域 . . . . . . . . . . . . . . . . . . . . . . . . . 298
エクステントのインターリーブとは . . . . . . . . . . . . . . . . . . . . . 299
x
IBM Informix Dynamic Server 管理者ガイド
表のフラグメント化とデータの格納 . . . . . .
データ格納に必要なディスク容量 . . . . . . .
ルート DB 領域のサイズ . . . . . . . . .
データベースに必要な容量 . . . . . . . .
ディスク レイアウトのガイドライン . . . . . .
DB 領域とチャンクのガイドライン. . . . . .
表位置のガイドライン . . . . . . . . . .
サンプル ディスク レイアウト . . . . . . . .
パフォーマンスを優先させたサンプル レイアウト .
可用性を最優先させたサンプル レイアウト . . .
論理ボリューム マネージャとは . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
300
302
302
304
304
304
305
306
307
308
310
第 11 章 ディスク領域の管理 . . . . . . . . . . . . . . . . . . . . . . . . 311
ディスク領域の割当て . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
オフセットの指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . 314
UNIX でのクックド ファイル領域の割当て . . . . . . . . . . . . . . . . . . . 316
UNIX におけるロウ ディスク領域の割当て . . . . . . . . . . . . . . . . . . . 316
ロウ デバイスへのシンボリック リンクの作成 (UNIX) . . . . . . . . . . . . . . . 317
Windows での NTFS ファイル領域の割当て . . . . . . . . . . . . . . . . . . . 317
Windows におけるロウ ディスク領域の割当て . . . . . . . . . . . . . . . . . . 318
格納領域およびチャンクの名前の指定 . . . . . . . . . . . . . . . . . . . . . . 319
チャンクの最大サイズの指定 . . . . . . . . . . . . . . . . . . . . . . . . 320
チャンクおよび格納領域の最大数の指定 . . . . . . . . . . . . . . . . . . . . 320
物理スキーマ変更後のバックアップ . . . . . . . . . . . . . . . . . . . . . 320
DB 領域の管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 321
デフォルト ページ サイズを使用する DB 領域の作成 . . . . . . . . . . . . . . . 321
デフォルトでない ページ サイズを使用する DB 領域の作成 . . . . . . . . . . . . . 325
一時 DB 領域の作成 . . . . . . . . . . . . . . . . . . . . . . . . . . 330
ディスク領域不足の場合の対処 . . . . . . . . . . . . . . . . . . . . . . . 331
DB 領域または BLOB 領域へのチャンクの追加 . . . . . . . . . . . . . . . . . 331
DB 領域の名前の変更 . . . . . . . . . . . . . . . . . . . . . . . . . . 333
DB 領域パーティションの管理 . . . . . . . . . . . . . . . . . . . . . . . . 334
BLOB 領域の管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 335
BLOB 領域の作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . 336
テキスト (TEXT) 型およびバイト (BYTE) 型データを格納するための BLOB 領域の準備 . . . 337
BLOB ページ サイズの判定 . . . . . . . . . . . . . . . . . . . . . . . . 338
SB 領域の管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
SB 領域の作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 339
SB 領域のメタデータのサイズ設定 . . . . . . . . . . . . . . . . . . . . . . 340
SB 領域へのチャンクの追加 . . . . . . . . . . . . . . . . . . . . . . . . 341
スマート ラージ オブジェクトの格納特性の変更 . . . . . . . . . . . . . . . . . 342
一時 SB 領域の作成. . . . . . . . . . . . . . . . . . . . . . . . . . . 342
チャンクの削除 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 343
チャンクが空かどうかの確認 . . . . . . . . . . . . . . . . . . . . . . . . 344
onspaces を使用しての DB 領域からのチャンクの削除 . . . . . . . . . . . . . . . 344
BLOB 領域からのチャンクの削除 . . . . . . . . . . . . . . . . . . . . . . 345
目次
xi
onspaces を使用しての SB 領域からのチャンクの削除 . . . .
格納領域の削除 . . . . . . . . . . . . . . . . . .
格納領域の削除の準備 . . . . . . . . . . . . . . .
ミラーリングされた格納領域の削除 . . . . . . . . . .
onspaces を使用した格納領域の削除 . . . . . . . . . .
ON-Monitor を使用した DB 領域または BLOB 領域の削除 (UNIX)
格納領域の削除後のバックアップ . . . . . . . . . . .
EXT 領域の管理 . . . . . . . . . . . . . . . . . .
EXT 領域の作成 . . . . . . . . . . . . . . . . .
EXT 領域の削除 . . . . . . . . . . . . . . . . .
アクセス不能フラグメントのスキップ . . . . . . . . . . .
構成パラメータ DATASKIP の使用方法 . . . . . . . . .
onspaces のデータ スキップ機能の使用方法 . . . . . . . .
onstat を使用してのデータ スキップ状態の確認 . . . . . .
SQL の SET DATASKIP 文の使用方法 . . . . . . . . .
トランザクションに対するデータ スキップ機能の影響 . . . .
データ スキップを使用するケースの判別 . . . . . . . . .
フラグメントの使用状況の監視 . . . . . . . . . . . .
データベースの表示 . . . . . . . . . . . . . . . . .
SMI 表の使用方法 . . . . . . . . . . . . . . . .
ISA の使用方法 . . . . . . . . . . . . . . . . .
ON-Monitor の使用方法 (UNIX) . . . . . . . . . . . .
ディスクの使用状況の監視 . . . . . . . . . . . . . .
チャンクの監視 . . . . . . . . . . . . . . . . .
表領域とエクステントの監視 . . . . . . . . . . . . .
BLOB 領域内のシンプル ラージ オブジェクトの監視 . . . .
SB 領域の監視 . . . . . . . . . . . . . . . . .
表へのデータのロード . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
345
346
346
346
347
347
347
348
348
348
349
349
349
349
350
350
351
351
352
352
352
352
353
353
359
360
364
371
第 3 部 ロギングとログ管理 . . . . . . . . . . . . . . . . . . . . . . 373
第 12 章 ログ機能 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 375
ログ機能を必要とするデータベース サーバ プロセス . . . . . . . . . . . . . . . . 376
トランザクション ログ機能とは . . . . . . . . . . . . . . . . . . . . . . . . 377
SQL 文とデータベース サーバ動作のログ . . . . . . . . . . . . . . . . . . . . 378
常にログ記録される動作 . . . . . . . . . . . . . . . . . . . . . . . . . 378
トランザクション ログ機能を使用するデータベースでログ記録される動作 . . . . . . . . 379
ログ記録されない動作 . . . . . . . . . . . . . . . . . . . . . . . . . . 380
データベースのログ機能状態 . . . . . . . . . . . . . . . . . . . . . . . . . 381
バッファなしトランザクション ログ機能 . . . . . . . . . . . . . . . . . . . . 381
バッファ付きトランザクション ログ機能 . . . . . . . . . . . . . . . . . . . . 382
ANSI 標準準拠のトランザクション ログ機能 . . . . . . . . . . . . . . . . . . 382
データベース ログ機能なし . . . . . . . . . . . . . . . . . . . . . . . . 382
ログ バッファリング状態の異なるデータベース . . . . . . . . . . . . . . . . . 383
X/Open DTP 環境でのデータベース ログ機能 . . . . . . . . . . . . . . . . . . 383
ログ機能状態またはモードの設定と変更 . . . . . . . . . . . . . . . . . . . . . 383
xii
IBM Informix Dynamic Server 管理者ガイド
第 13 章 データベース ログ機能モードの管理 . . . . .
データベース ログ機能モードの変更 . . . . . . . . .
ondblog によるデータベース ログ機能モードの変更 . . . .
ondblog によるバッファリング モードの変更 . . . . .
ondblog によるログ機能モード変更のキャンセル方法 . . .
ondblog によるログ機能の終了 . . . . . . . . . .
ondblog による ANSI 標準準拠データベースへの変換 . .
ANSI 標準準拠データベースのログ機能モードの変更 . . .
ontape によるデータベース ログ機能モードの変更 . . . .
ontape によるトランザクション ログ機能の有効化 . . .
ontape によるログ機能の終了 . . . . . . . . . . .
ontape によるバッファリング モードの変更 . . . . . .
ontape による ANSI 標準準拠データベースのへの変換 . .
ISA によるデータベース ログ機能モードの変更 . . . . .
ON-Monitor によるデータベース ログ機能モードの変更 (UNIX)
表ログ機能モードの変更 . . . . . . . . . . . . .
ログ機能をオフにするための表の変更 . . . . . . . .
ログ機能をオンにするための表の変更 . . . . . . . .
トランザクションの監視 . . . . . . . . . . . . .
データベースのログ機能モードの監視 . . . . . . . . .
SMI 表によるログ機能モードの監視 . . . . . . . .
ON-Monitor によるログ機能モードの監視 (UNIX) . . . .
ISA によるログ機能モードの監視 . . . . . . . . .
. . . . . . . . . . . . . 385
. . . . . . . . . . . . . 386
. . . . . . . . . . . . . 387
. . . . . . . . . . . . . 387
. . . . . . . . . . . . . 387
. . . . . . . . . . . . . 387
. . . . . . . . . . . . . 388
. . . . . . . . . . . . . 388
. . . . . . . . . . . . . 388
. . . . . . . . . . . . . 388
. . . . . . . . . . . . . 389
. . . . . . . . . . . . . 389
. . . . . . . . . . . . . 389
. . . . . . . . . . . . . 390
. . . . . . . . . . . . . 390
. . . . . . . . . . . . . 390
. . . . . . . . . . . . . 390
. . . . . . . . . . . . . 390
. . . . . . . . . . . . . 391
. . . . . . . . . . . . . 391
. . . . . . . . . . . . . 391
. . . . . . . . . . . . . 391
. . . . . . . . . . . . . 392
第 14 章 論理ログ . . . . . . . . . . . . . . . . . . . . . . . . . .
論理ログとは何か . . . . . . . . . . . . . . . . . . . . . . . . . .
論理ログ ファイルの格納場所 . . . . . . . . . . . . . . . . . . . . . .
論理ログ ファイルの識別方法 . . . . . . . . . . . . . . . . . . . . . .
論理ログ ファイルの状態フラグ . . . . . . . . . . . . . . . . . . . . . .
論理ログのサイズ . . . . . . . . . . . . . . . . . . . . . . . . . .
論理ログ ファイルの数 . . . . . . . . . . . . . . . . . . . . . . . .
パフォーマンスに関する注意事項 . . . . . . . . . . . . . . . . . . . .
動的ログ割当て . . . . . . . . . . . . . . . . . . . . . . . . . . .
論理ログ ファイルの解放 . . . . . . . . . . . . . . . . . . . . . . . .
次の論理ログ ファイルが使用中の場合の処置 . . . . . . . . . . . . . . . .
次のログ ファイルが最後のチェックポイントを含む場合の処置 . . . . . . . . . .
BLOB 領域およびシンプル ラージ オブジェクトのログ記録 . . . . . . . . . . . .
BLOB 領域を起動するためのログ ファイルの切替え . . . . . . . . . . . . . .
BLOB ページを解放するためのログ ファイルのバックアップ . . . . . . . . . . .
テキスト型およびバイト型挿入後または削除後の BLOB 領域のバックアップ . . . . .
SB 領域とスマート ラージ オブジェクトのログ機能 . . . . . . . . . . . . . . .
SB 領域ログ機能の使用方法 . . . . . . . . . . . . . . . . . . . . . .
スマート ラージ オブジェクト ログ レコードの使用方法 . . . . . . . . . . . .
スマート ラージ オブジェクト データのログ記録時におけるロング トランザクションの防止
ログ機能プロセス . . . . . . . . . . . . . . . . . . . . . . . . . .
DB 領域のログ機能 . . . . . . . . . . . . . . . . . . . . . . . . .
. . 393
. . 393
. . 394
. . 395
. . 396
. . 396
. . 397
. . 397
. . 398
. . 399
. . 399
. . 400
. . 400
. . 401
. . 401
. . 401
. . 401
. . 402
. . 404
. . 405
. . 405
. . 405
目次
xiii
BLOB 領域のログ機能 .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 405
第 15 章 論理ログ ファイルの管理 . . . . . . . . . . . . . . . . . . . . . . 407
ログ ファイルのサイズと数の見積り . . . . . . . . . . . . . . . . . . . . . . 409
スマート ラージ オブジェクトをログに記録するときのログ サイズの見積り . . . . . . . . 409
論理ログ ファイルの数の見積り . . . . . . . . . . . . . . . . . . . . . . . 409
論理ログ ファイルのバックアップ . . . . . . . . . . . . . . . . . . . . . . . 410
BLOB 領域のバックアップ . . . . . . . . . . . . . . . . . . . . . . . . 410
SB 領域のバックアップ . . . . . . . . . . . . . . . . . . . . . . . . . 410
次の論理ログ ファイルへの切替え . . . . . . . . . . . . . . . . . . . . . . . 411
論理ログ ファイルの解放 . . . . . . . . . . . . . . . . . . . . . . . . . . 411
状態 D のログ ファイルの削除 . . . . . . . . . . . . . . . . . . . . . . . 412
状態 U のログ ファイルの解放 . . . . . . . . . . . . . . . . . . . . . . . 412
状態 U-B または F のログ ファイルの解放 . . . . . . . . . . . . . . . . . . . 412
状態 U-C または U-C-L のログ ファイルの解放 . . . . . . . . . . . . . . . . . 413
状態 U-B-L のログ ファイルの解放 . . . . . . . . . . . . . . . . . . . . . 413
ロギング動作の監視 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414
論理ログの使用率の監視 . . . . . . . . . . . . . . . . . . . . . . . . . 414
一時論理ログ ファイルの監視 . . . . . . . . . . . . . . . . . . . . . . . 415
SMI 表の使用方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
ON-Monitor の使用方法 (UNIX) . . . . . . . . . . . . . . . . . . . . . . . 416
ログ バックアップ状態の監視 . . . . . . . . . . . . . . . . . . . . . . . 416
ログ ファイルの割当て . . . . . . . . . . . . . . . . . . . . . . . . . . . 416
ログの動的追加 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 417
論理ログ ファイルの手動追加 . . . . . . . . . . . . . . . . . . . . . . . 419
論理ログ ファイルの削除 . . . . . . . . . . . . . . . . . . . . . . . . . . 420
論理ログ ファイルのサイズ変更 . . . . . . . . . . . . . . . . . . . . . . . . 422
別の DB 領域への論理ログ ファイルの移動. . . . . . . . . . . . . . . . . . . . 422
ログ構成パラメータの変更 . . . . . . . . . . . . . . . . . . . . . . . . . 423
ON-Monitor を使用する LOGFILES の変更 (UNIX) . . . . . . . . . . . . . . . . 424
論理ログ レコードの表示 . . . . . . . . . . . . . . . . . . . . . . . . . . 425
動的に追加されたログのイベントの監視 . . . . . . . . . . . . . . . . . . . . . 425
ロング トランザクションのロールバックに対する限界の設定 . . . . . . . . . . . . . . 427
ロング トランザクション限界 (LTXHWM) . . . . . . . . . . . . . . . . . . . 427
排他アクセス ロング トランザクション限界 (LTXEHWM) . . . . . . . . . . . . . . 428
ロング トランザクションを防止するためのログ ファイルのサイズ調整 . . . . . . . . . 428
ロング トランザクションによるハングからの復旧 . . . . . . . . . . . . . . . . . 429
第 16 章 物理ロギング、チェックポイント、および高速復旧 . . . . . . . . . . . . . . 431
クリティカル セクション . . . . . . . . . . . . . . . . . . . . . . . . . . 432
物理ロギング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 433
物理ログに記録されたページを使用した高速復旧 . . . . . . . . . . . . . . . . . 433
物理ログに記録されたページを使用したバックアップ . . . . . . . . . . . . . . . 433
物理ログに記録されるデータベース サーバの動作 . . . . . . . . . . . . . . . . . 433
物理ログのサイズと格納場所 . . . . . . . . . . . . . . . . . . . . . . . . . 434
物理ログの格納場所の指定 . . . . . . . . . . . . . . . . . . . . . . . . 435
xiv
IBM Informix Dynamic Server 管理者ガイド
物理ログのサイズの見積り . . . . . . . .
物理ログのサイズの構成 . . . . . . . . .
物理ロギングの詳細 . . . . . . . . . . . .
チェックポイント . . . . . . . . . . . .
フル チェックポイント . . . . . . . . . .
ファジー チェックポイント . . . . . . . .
ファジー チェックポイント処理を開始するイベント
フル チェックポイントを開始するイベント . . .
チェックポイントで発生するイベント シーケンス .
バックアップと復元に関する注意事項 . . . . .
高速復旧 . . . . . . . . . . . . . . .
高速復旧の必要性 . . . . . . . . . . .
高速復旧が開始されるタイミング . . . . . .
フル チェックポイント後の高速復旧について . .
ファジー チェックポイント後の高速復旧の詳細 .
ファジー操作の代替高速再開復旧オプション . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
435
436
437
439
439
439
441
441
442
444
444
444
445
446
448
452
第 17 章 物理ログの管理 . . . . . . . . . . . . . . . . . . . . . . . . . . 455
物理ログの格納場所とサイズの変更 . . . . . . . . . . . . . . . . . . . . . . 455
変更のための準備 . . . . . . . . . . . . . . . . . . . . . . . . . . . 456
十分な連続領域の確認 . . . . . . . . . . . . . . . . . . . . . . . . . . 456
テキスト エディタによる物理ログの格納場所とサイズの変更 . . . . . . . . . . . . . 457
onparams による物理ログの格納場所とサイズの変更 . . . . . . . . . . . . . . . . 457
ON-Monitor による物理ログの格納場所とサイズの変更 (UNIX) . . . . . . . . . . . . 457
物理ロギングと論理ロギングの動作の監視 . . . . . . . . . . . . . . . . . . . . 458
onstat -l 出力例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 459
チェックポイント情報の監視 . . . . . . . . . . . . . . . . . . . . . . . . . 460
フル チェックポイント処理の強制実行 . . . . . . . . . . . . . . . . . . . . 460
ファジー チェックポイント処理の強制実行 . . . . . . . . . . . . . . . . . . . 461
SMI 表の使用方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . 462
第 4 部 フォールト トレランス (耐故障性) . . . . . . . . . . . . . . . . 463
第 18 章 ミラーリング . . . . . . . . . . . . . . . . . . . . . . . . . . 465
ミラーリング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465
ミラーリングの利点 . . . . . . . . . . . . . . . . . . . . . . . . . . . 466
ミラーリングのコスト . . . . . . . . . . . . . . . . . . . . . . . . . . 466
ミラーリングを使用しない場合の動作 . . . . . . . . . . . . . . . . . . . . . 466
ミラーリングすべきデータ . . . . . . . . . . . . . . . . . . . . . . . . 467
その他のミラーリング方法 . . . . . . . . . . . . . . . . . . . . . . . . 467
ミラーリング プロセス . . . . . . . . . . . . . . . . . . . . . . . . . . . 468
ミラー チャンクの作成 . . . . . . . . . . . . . . . . . . . . . . . . . . 469
ミラー状態フラグ . . . . . . . . . . . . . . . . . . . . . . . . . . . 469
復旧 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
処理中の動作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 470
ミラーリングを停止した場合の動作 . . . . . . . . . . . . . . . . . . . . . 471
目次
xv
ミラー チャンクの構造 .
.
.
.
.
.
.
.
.
.
.
.
第 19 章 ミラーリングの使用方法 . . . . . . . . .
データのミラーリングの準備 . . . . . . . . . . .
構成パラメータ MIRROR の有効化. . . . . . . . .
ON-Monitor による MIRROR パラメータの変更 (UNIX) .
ミラーリングされたデータ用のディスク領域の割当て . .
チャンクのリンク (UNIX) . . . . . . . . . . .
ディスク障害発生後のチャンクとデバイスの再リンク .
ミラーリングの使用方法 . . . . . . . . . . . .
初期化時のルート DB 領域のミラーリング . . . . .
ミラーリング状態の変更 . . . . . . . . . . .
ミラーリングの管理 . . . . . . . . . . . . . .
ミラーリングされていない格納領域のミラーリングの開始
新しい格納領域のミラーリング開始 . . . . . . .
ミラー チャンクの追加 . . . . . . . . . . . .
ミラー チャンクの停止 . . . . . . . . . . . .
ミラー チャンクの復旧 . . . . . . . . . . . .
ミラーリングの終了 . . . . . . . . . . . . .
.
.
IBM Informix Dynamic Server 管理者ガイド
.
.
.
.
.
.
.
.
.
.
. 472
. . . . . . . . . . . . . . 473
. . . . . . . . . . . . . . 474
. . . . . . . . . . . . . . 474
. . . . . . . . . . . . . . 475
. . . . . . . . . . . . . . 475
. . . . . . . . . . . . . . 475
. . . . . . . . . . . . . . 475
. . . . . . . . . . . . . . 476
. . . . . . . . . . . . . . 477
. . . . . . . . . . . . . . 477
. . . . . . . . . . . . . . 477
. . . . . . . . . . . . . . 477
. . . . . . . . . . . . . . 478
. . . . . . . . . . . . . . 479
. . . . . . . . . . . . . . 480
. . . . . . . . . . . . . . 480
. . . . . . . . . . . . . . 481
第 20 章 高可用性データ レプリケーション . . . . . . .
高可用性データ レプリケーション . . . . . . . . . . .
HDR モード . . . . . . . . . . . . . . . . .
複製データの型 . . . . . . . . . . . . . . . .
データ レプリケーションの利点 . . . . . . . . . . .
HDR の動作 . . . . . . . . . . . . . . . . . .
データの最初の複製方法 . . . . . . . . . . . . .
主データベース サーバへの更新の複製方法 . . . . . . .
HDR を処理するスレッド . . . . . . . . . . . . .
データベース サーバ間のチェックポイント . . . . . . .
データの同期性を追跡する方法 . . . . . . . . . . .
HDR 障害 . . . . . . . . . . . . . . . . . . .
HDR 障害の定義 . . . . . . . . . . . . . . . .
HDR 障害の検出 . . . . . . . . . . . . . . . .
HDR 障害の検出時に行われる処置 . . . . . . . . . .
HDR 障害発生後注意事項 . . . . . . . . . . . . .
データ レプリケーション クライアントのリダイレクトと接続 .
リダイレクトに対応するクライアントの設定 . . . . . .
DBPATH を使用したクライアントの自動ダイレクト . . . .
接続情報を使用したクライアントのダイレクト . . . . . .
INFORMIXSERVER を使用したクライアントのダイレクト . .
アプリケーション内でのリダイレクトの処理 . . . . . .
異なるリダイレクト機構の比較 . . . . . . . . . . .
HDR クライアントの設計 . . . . . . . . . . . . . .
主データベース サーバをアクセスするクライアントでのロック
副データベース サーバを使用するクライアントの設計 . . .
xvi
.
. . . . . . . . . . . . 483
. . . . . . . . . . . . 484
. . . . . . . . . . . . 485
. . . . . . . . . . . . 485
. . . . . . . . . . . . 485
. . . . . . . . . . . . 489
. . . . . . . . . . . . 489
. . . . . . . . . . . . 490
. . . . . . . . . . . . 493
. . . . . . . . . . . . 494
. . . . . . . . . . . . 494
. . . . . . . . . . . . 494
. . . . . . . . . . . . 494
. . . . . . . . . . . . 495
. . . . . . . . . . . . 495
. . . . . . . . . . . . 495
. . . . . . . . . . . . 499
. . . . . . . . . . . . 499
. . . . . . . . . . . . 499
. . . . . . . . . . . . 501
. . . . . . . . . . . . 504
. . . . . . . . . . . . 505
. . . . . . . . . . . . 506
. . . . . . . . . . . . 507
モード待機の設定 . . . . . . 507
. . . . . . . . . . . . 508
第 21 章 高可用性データ レプリケーションの使用方法 . . .
HDR の計画 . . . . . . . . . . . . . . . . . .
HDR 用システムの構成. . . . . . . . . . . . . . .
ハードウェアとオペレーティング システム要件との一致 . .
データベースとデータ要件との一致 . . . . . . . . .
データベース サーバ構成要件との一致 . . . . . . . .
HDR 接続の構成 . . . . . . . . . . . . . . . .
HDR を初めて起動する方法 . . . . . . . . . . . . .
代替バックアップ方式によるセットアップ時間の減少 . . .
基本的な管理タスクの実行 . . . . . . . . . . . . .
データベース サーバ構成パラメータの変更 . . . . . . .
格納領域と論理ログ ファイルのバックアップ . . . . . .
データベースのロギング モードの変更 . . . . . . . .
チャンクおよび格納領域の追加と削除 . . . . . . . . .
チャンクの名前変更 . . . . . . . . . . . . . . .
副データベース サーバ上でのチャンク状態の保存 . . . . .
チャンクのミラーリングの使用と変更 . . . . . . . . .
物理ログの管理 . . . . . . . . . . . . . . . .
論理ログの管理 . . . . . . . . . . . . . . . .
仮想プロセッサの管理 . . . . . . . . . . . . . .
共有メモリの管理 . . . . . . . . . . . . . . .
副データベース サーバへのインデックスの複製 . . . . .
データベース サーバ モードの変更 . . . . . . . . . .
データベース サーバ タイプの変更 . . . . . . . . . .
HDR 状態の監視 . . . . . . . . . . . . . . . . .
コマンド行ユーティリティの使用方法 . . . . . . . . .
SMI 表の使用方法 . . . . . . . . . . . . . . .
ON-Monitor の使用方法 (UNIX) . . . . . . . . . . .
メディア障害発生後のデータの復元 . . . . . . . . . .
主データベース サーバ上でメディア障害が発生した場合の復元
副データベース サーバ上でメディア障害が発生した場合の復元
副サーバへのインデックスの複製 . . . . . . . . . . .
障害発生後の HDR の再起動 . . . . . . . . . . . . .
重要なデータが損傷した後の再起動 . . . . . . . . .
重要なデータが損傷していない場合の再起動 . . . . . .
. . . . . . . . . . . . 511
. . . . . . . . . . . . 512
. . . . . . . . . . . . 513
. . . . . . . . . . . . 513
. . . . . . . . . . . . 513
. . . . . . . . . . . . 514
. . . . . . . . . . . . 517
. . . . . . . . . . . . 517
. . . . . . . . . . . . 522
. . . . . . . . . . . . 522
. . . . . . . . . . . . 522
. . . . . . . . . . . . 523
. . . . . . . . . . . . 523
. . . . . . . . . . . . 524
. . . . . . . . . . . . 524
. . . . . . . . . . . . 525
. . . . . . . . . . . . 525
. . . . . . . . . . . . 526
. . . . . . . . . . . . 526
. . . . . . . . . . . . 527
. . . . . . . . . . . . 527
. . . . . . . . . . . . 527
. . . . . . . . . . . . 528
. . . . . . . . . . . . 530
. . . . . . . . . . . . 531
. . . . . . . . . . . . 531
. . . . . . . . . . . . 532
. . . . . . . . . . . . 533
. . . . . . . . . . . . 533
. . . . . . . . . . . . 533
. . . . . . . . . . . . 534
. . . . . . . . . . . . 535
. . . . . . . . . . . . 536
. . . . . . . . . . . . 536
. . . . . . . . . . . . 538
第 22 章 一貫性検査 . . . . . . . . . . . . . . . . . . . . . . . . . . . 543
定期的な一貫性検査の実行 . . . . . . . . . . . . . . . . . . . . . . . . . 544
一貫性検査 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 544
データの矛盾の監視 . . . . . . . . . . . . . . . . . . . . . . . . . . . 546
一貫したレベル 0 バックアップの保存 . . . . . . . . . . . . . . . . . . . . 548
破損の処理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 548
破損の症状の検出 . . . . . . . . . . . . . . . . . . . . . . . . . . . 548
インデックス破損の修正 . . . . . . . . . . . . . . . . . . . . . . . . . 549
チャンク上の入出力エラーの修正 . . . . . . . . . . . . . . . . . . . . . . 549
診断情報の収集 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 550
目次
xvii
入出力無効化エラー . . . . . . . . . . . . . . .
入出力無効化エラーに対するデータベースの監視 . . . . .
メッセージ ログを使用しての入出力無効化エラーの監視 .
イベント アラームを使用しての入出力無効化エラーの監視 .
不良セクタのマッピングの不使用 . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
551
552
552
552
553
第 5 部 分散型データ . . . . . . . . . . . . . . . . . . . . . . . . . 555
第 23 章 多相コミット プロトコル . . . . . . . . . . . . . . . . . . . . . . 557
トランザクション マネージャ . . . . . . . . . . . . . . . . . . . . . . . . 558
トランザクション マネージャでの TP/XA ライブラリの使用 . . . . . . . . . . . . . 558
MTS/XA (Microsoft Transaction Server) の使用 . . . . . . . . . . . . . . . . . . 559
疎結合および密結合モードの使用 . . . . . . . . . . . . . . . . . . . . . . 559
2 相コミット プロトコル . . . . . . . . . . . . . . . . . . . . . . . . . . 560
2 相コミット プロトコルが使用される場合 . . . . . . . . . . . . . . . . . . . 560
2 相コミットの概念 . . . . . . . . . . . . . . . . . . . . . . . . . . . 561
2 相コミット プロトコルの相 (フェーズ) . . . . . . . . . . . . . . . . . . . 562
2 相コミット プロトコルによる障害の対処方法 . . . . . . . . . . . . . . . . . 563
アボート前提最適化 . . . . . . . . . . . . . . . . . . . . . . . . . . . 564
独立動作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 564
独立動作が開始される状態 . . . . . . . . . . . . . . . . . . . . . . . . 564
独立動作の結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 565
発見的ロールバックのシナリオ . . . . . . . . . . . . . . . . . . . . . . . 566
発見的トランザクション終了 . . . . . . . . . . . . . . . . . . . . . . . . 569
広域トランザクションの監視 . . . . . . . . . . . . . . . . . . . . . . . . 571
2 相コミット プロトコル エラー . . . . . . . . . . . . . . . . . . . . . . . 572
2 相コミットと論理ログ レコード . . . . . . . . . . . . . . . . . . . . . . . 573
トランザクションをコミットした場合の論理ログ レコード . . . . . . . . . . . . . . 573
発見的ロールバック中に書き込まれる論理ログ レコード . . . . . . . . . . . . . . 575
発見的なトランザクション終了後に書き込まれる論理ログ レコード . . . . . . . . . . . 576
2 相コミットで使用される構成パラメータ . . . . . . . . . . . . . . . . . . . . 577
パラメータ DEADLOCK_TIMEOUT の機能 . . . . . . . . . . . . . . . . . . . 578
パラメータ TXTIMEOUT の機能 . . . . . . . . . . . . . . . . . . . . . . 578
異機種間コミット プロトコル . . . . . . . . . . . . . . . . . . . . . . . . 578
異機種間コミット トランザクションに関与できるゲートウェイ . . . . . . . . . . . . 579
異機種間コミットの有効化と無効化 . . . . . . . . . . . . . . . . . . . . . 580
異機種間コミットの動作 . . . . . . . . . . . . . . . . . . . . . . . . . 580
失敗した異機種間コミットの暗示 . . . . . . . . . . . . . . . . . . . . . . 582
第 24 章 2 相コミット障害からの手動復旧. . . . . . . . . .
手動復旧が必要がどうかの判断 . . . . . . . . . . . . . .
トランザクションが非一貫的に実行されたかどうかの判断 . . . .
分散データベースに非一貫的なデータが含まれているかどうかの判断
状態修正の処置が必要かどうかの判断 . . . . . . . . . . .
手動復旧の例 . . . . . . . . . . . . . . . . . . . .
xviii
IBM Informix Dynamic Server 管理者ガイド
. . . . . . . . . . 585
. . . . . . . . . . 585
. . . . . . . . . . 586
. . . . . . . . . . 587
. . . . . . . . . . 590
. . . . . . . . . . 590
第 6 部 付録 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 593
付録. アクセシビリティ .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 595
特記事項
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 599
索引 .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 603
.
目次
xix
xx
IBM Informix Dynamic Server 管理者ガイド
はじめに
本書について . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxii
対象ユーザ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxii
ソフトウェア要件 . . . . . . . . . . . . . . . . . . . . . . . . . . . xxiii
ロケールに関する前提事項 . . . . . . . . . . . . . . . . . . . . . . . . xxiii
デモンストレーション データベース . . . . . . . . . . . . . . . . . . . . . xxiii
Dynamic Server バージョン 10.0 の新機能 . . . . . . . . . . . . . . . . . . . . xxiv
データベース サーバのセキュリティおよび有用性の強化 . . . . . . . . . . . . . . xxiv
以前のバージョンの Dynamic Server における新機能 . . . . . . . . . . . . . . . . xxvi
Dynamic Server バージョン 9.4 における機能 . . . . . . . . . . . . . . . . . . xxvi
データベース サーバ有用性の強化 . . . . . . . . . . . . . . . . . . . . . xxvi
セキュリティ機能強化. . . . . . . . . . . . . . . . . . . . . . . . . xxvii
Dynamic Server バージョン 9.3 における機能 . . . . . . . . . . . . . . . . . . xxvii
パフォーマンスの向上. . . . . . . . . . . . . . . . . . . . . . . . . xxvii
SQL エンハンスメント . . . . . . . . . . . . . . . . . . . . . . . . xxvii
バージョン 9.3 の他の重要な変更点 . . . . . . . . . . . . . . . . . . . . xxvii
Dynamic Server バージョン 9.21 における機能 . . . . . . . . . . . . . . . . . xxviii
バージョン 9.2 でのマニュアルの構成上の変更点 . . . . . . . . . . . . . . . . xxviii
表記規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxviii
文字の表記規則 . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxix
機能、製品、およびプラットフォーム . . . . . . . . . . . . . . . . . . . . . xxx
構文ダイアグラム . . . . . . . . . . . . . . . . . . . . . . . . . . . xxx
コマンド行構文ダイアグラムの読み方 . . . . . . . . . . . . . . . . . . . xxxii
キーワードおよび句読点 . . . . . . . . . . . . . . . . . . . . . . . . xxxiii
識別子と名前 . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxiv
コード例の表記規則 . . . . . . . . . . . . . . . . . . . . . . . . . . xxxiv
関連マニュアル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxv
インストール ガイド . . . . . . . . . . . . . . . . . . . . . . . . . . xxxv
オンライン ノート . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxv
オンライン ノートの入手先. . . . . . . . . . . . . . . . . . . . . . . xxxvi
オンライン ノートのファイル名 . . . . . . . . . . . . . . . . . . . . . xxxvii
Informix エラー メッセージ集. . . . . . . . . . . . . . . . . . . . . . . xxxvii
マニュアル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxviii
オンライン マニュアル . . . . . . . . . . . . . . . . . . . . . . . . xxxviii
ペーパー マニュアル . . . . . . . . . . . . . . . . . . . . . . . . xxxviii
オンライン ヘルプ . . . . . . . . . . . . . . . . . . . . . . . . . . xxxviii
アクセシビリティ . . . . . . . . . . . . . . . . . . . . . . . . . . . xxxviii
IBM Informix Dynamic Server バージョン 10.0 および CSDK バージョン 2.90 マニュアル セット xxxix
© Copyright IBM Corp. 1996, 2004
xxi
業界標準への準拠 .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. xlii
はじめに
ここでは、本書に記載する情報の概要を説明し、使用する表記規則を示します。
本書について
このマニュアルでは、IBM Informix Dynamic Server または IBM Informix Dynamic
Server with J/Foundation を構成、管理、使用するための概念やその手順を説明します。
このマニュアルの関連資料である「IBM Informix: Dynamic Server 管理者の参照」で
は、Informix データベース サーバを使用する上で参考となる情報を紹介しています。デ
ータベース サーバのパフォーマンスの調整と SQL 問合せについては、「IBM Informix:
Dynamic Server パフォーマンス ガイド」を参照してください。
ここでは、マニュアルの構成、対象読者、およびデータベース サーバで使用される関連
ソフトウェア製品について説明します。
対象ユーザ
本書は、次のユーザを対象としています。
v データベースのユーザ
v データベース管理者
v データベース サーバ管理者
v パフォーマンス エンジニア
v 次のカテゴリに属するプログラマ
– アプリケーション開発者
– DataBlade モジュール開発者
– ユーザ定義ルーチンの作成者
本書は、読者が次の知識や経験を保有していることを前提としています。
v 使用するコンピュータ、オペレーティング システム、およびオペレーティング シス
テムが提供するユーティリティに関する実際的な知識
v リレーショナル データベース操作の経験、またはデータベースの概念の理解
v コンピュータ プログラミングの経験
v データベース サーバ管理、オペレーティング システム管理、またはネットワーク管
理の経験
リレーショナル データベース、SQL、またはオペレーティング システムに関する経験
があまりない場合は、「IBM Informix: Dynamic Server スタートアップ ガイド」で、ご
使用のデータベース サーバの参考資料の一覧を参照してください。
xxii
IBM Informix Dynamic Server 管理者ガイド
ソフトウェア要件
本書は、ユーザがデータベース サーバとして IBM Informix Dynamic Server バージョ
ン 10.0 を使用していることを前提としています。
ロケールに関する前提事項
IBM Informix 製品は、多くの言語、国/地域別情報、およびコード セットをサポートし
ています。文字セット、照合、数値データの表記、通貨、日付、および時刻に関する情
報はすべて、広域言語サポート (GLS) ロケールと呼ばれる 1 つの環境にまとめられて
います。
本書に記載する例は、デフォルト ロケール en_us.8859-1 を使用することを前提として
います。このロケールは、日付、時刻、および通貨について米国英語 (U.S. English) の
表記規則をサポートします。さらにこのロケールでは、ASCII コード セットと、é、è、
および ñ などの多くの 8 ビット文字を含む ISO 8859-1 コード セットをサポートしま
す。
データまたは SQL 識別子でデフォルト以外の文字を使用する場合、または文字データ
をデフォルト以外の規則で照合する場合は、適切な非デフォルト ロケールを指定する必
要があります。
デフォルト以外のロケールの指定、追加構文、および GLS ロケールに関するその他の
考慮事項については、「IBM Informix: GLS ユーザーズ ガイド」を参照してください。
デモンストレーション データベース
Informix データベース サーバ製品に付属の DB–Access ユーティリティには、1 つ以上
の次のデモンストレーション用データベースが含まれます。
v stores_demo データベースでは、架空のスポーツ用品卸売り業者の例を使用して、リ
レーショナル スキーマについて説明します。IBM Informix の資料に記載されている
例の多くは、stores_demo データベースを基にしています。
v superstores_demo データベースではオブジェクト リレーショナル スキーマについて
説明します。superstores_demo データベースには、拡張データ型、型と表の継承、お
よびユーザ定義ルーチンの例が含まれています。
デモンストレーション データベースの作成およびデータの追加については、
「IBM Informix: DB-Access ユーザーズ ガイド」を参照してください。これらのデータ
ベースとその内容については、「IBM Informix: SQL ガイド: 参照」を参照してくださ
い。
デモンストレーション データベースをインストールするのに使用するスクリプトは、
UNIX では $INFORMIXDIR/bin ディレクトリに、Windows では
%INFORMIXDIR%¥bin ディレクトリにあります。
はじめに
xxiii
Dynamic Server バージョン 10.0 の新機能
次の表は、このマニュアルに掲載されている IBM Informix Dynamic Server バージョン
10.0 の新機能を説明しています。すべての新機能に関する詳細は、「IBM Informix:
Dynamic Server スタートアップ ガイド」を参照してください。
データベース サーバのセキュリティおよび有用性の強化
バージョン 10.0 には、データベース サーバの機能を拡張し、使用しやすくする新機能
が含まれています。
新機能
参照先
セキュリティに関する新しい章では、セキュリティに
関連した新規機能について説明。さらに、通信サポー
ト モジュール (CSM) についての説明が、第 3 章か
らセキュリティに関する新しい章である第 5 章に移
動しました。
『第 5 章 セキュリティ』
ガイドの前のバージョンの 5 章から 23 章は、6 章
から 24 章に番号が変更されました。
UNIX または Linux の場合、サーバ ユーティリティ
は、データベース サーバを開始する前に機密保護機
能のある環境を検査する。
120 ページの『UNIX または Linux 開始前のサー
バ ユーティリティ セキュリティ』
特定データベースの個々のユーザまたは PUBLIC グ
ループに割り当てることのできる、新規デフォルト
ロール。デフォルト ロールは、ユーザがデータベー
スとの接続を確立すると、自動的に適用されます。
125 ページの『ユーザ ロール』
不完全な接続タイムアウト期間を減らし、接続に対す 126 ページの『サービス妨害フラッディング アタ
る不完全な要求数を制限することにより、敵対的なサ ックの制限 (UNIX)』
ービス妨害 (DOS) フラッディング アタックの危険を
減らすことに使用できる新規構成パラメータ
列レベルの暗号化、およびパスワードとデータ伝送の
暗号化を実装するためのオプション
128 ページの『暗号化』
外部ルーチンを登録できるユーザを制限するために、
データベース サーバ セキュリティ管理者が使用でき
る構成パラメータ
157 ページの『外部ルーチン (UDR) のセキュリ
ティ』
注目すべきイベントだけでなく、MSGPATH にログイ
ンしているすべてのイベントに対して、イベント ア
ラーム プログラムを作動させる場合に使用する、新
規のイベント アラーム パラメータ
48 ページの『イベント アラーム パラメータ』
DB 領域名変更機能
333 ページの『DB 領域の名前の変更』
xxiv
IBM Informix Dynamic Server 管理者ガイド
新機能
参照先
SQL および DDL 文の実行に関連した管理タスクを
実行する場合に使用する、シングルユーザ モードの
新規データベース サーバ モード
109 ページの『データベース サーバの動作モー
ド』 および 111 ページの『データベース サーバ
の動作モードの変更』
495 ページの『HDR 障害の検出時に行われる処
主サーバに障害が発生した場合の、高可用性データ
レプリケーション データベース サーバの切り替えを 置』、 496 ページの『主データベース サーバで障
自動化するために使用する DRAUTO 構成パラメータ 害が発生した場合の処置』、 528 ページの『デー
タベース サーバ モードの変更』、 536 ページの
『主データベース サーバ上の重大なメディア障
害』、および 541 ページの『副データベース サ
ーバが標準データベース サーバに自動的に変更さ
れた場合』
HDR のセットアップ時に使用する、外部バックアッ
プおよび復元機能
517 ページの『HDR を初めて起動する方法』
復旧のロールフォワード時に、データベース サーバ
がファジー チェックポイントに物理ロギングできる
ようにして復旧に必要な時間を減らす、2 つの構成パ
ラメータ
452 ページの『ファジー操作の代替高速再開復旧
オプション』
並列データベース問合せ (PDQ) でない問合せに使用
できるソート メモリを減らすために使用する、
DS_NONPDQ_QUERY_MEM 構成パラメータ
220 ページの『共有メモリの仮想部のサイズ』 お
よび IBM Informix: Dynamic Server パフォーマン
ス ガイド
副サーバのインデックスが破損したときに、高可用性 535 ページの『副サーバへのインデックスの複
データ レプリケーション (HDR) インデックスを副サ 製』
ーバに手動または自動的にプリケートするための機能
表現ベースまたはラウンドロビン分散スキームを使用
するフラグメント表の単一 DB 領域内に、表または
インデックスの複数パーティションを作成するための
機能
334 ページの『DB 領域パーティションの管理』
DB 領域の表領域表領域の最初および追加のエクステ
ント サイズを指定するための、新規構成パラメータ
および onspaces オプション
323 ページの『表領域表領域の初期および追加の
追加エクステント サイズの指定』
DB 領域およびバッファ プールの定義に使用する
BUFFERPOOL 構成パラメータを作成するときに、標
準または一時 DB領域のページ サイズを指定するた
めの機能
325 ページの『デフォルトでない ページ サイズ
を使用する DB 領域の作成』
バージョン 10.0 より前に BUFFERS、LRUS、
LRU_MAX_DIRTY、および LRU_MIN_DIRTY 構成
パラメータで指定していた情報は、BUFFERPOOL 構
成パラメータを使用して指定するようになりました。
はじめに
xxv
新機能
参照先
データベース サーバ インスタンスの名前を変更する
ための機能
19 ページの『インスタンス マネージャを使用す
るデータベース サーバ インスタンスの名前変更
(Windows)』
IPv6 のサポート
89 ページの『Dynamic Server による IPv6 アド
レスのサポート』
以前のバージョンの Dynamic Server における新機能
Dynamic Server バージョン 9.4 における機能
次の表は、このマニュアルに掲載されている IBM Informix Dynamic Server バージョン
9.4 の新機能を説明しています。すべての新機能については、「IBM Informix: Dynamic
Server スタートアップ ガイド」を参照してください。
データベース サーバ有用性の強化
バージョン 9.4 には、データベース サーバのインストール、使用、および管理を簡単
にする新機能が用意されています。
新機能
参照先
LRU 構成パラメータ範囲内で 10 進数値を受け入れ
ることによる、高速バッファ消去機能。
232 ページの『MLRU 管理列に追加されるページ
の数』
電子メールおよびページャ メールによる、アラーム
イベントおよび重要度の通知機能。
48 ページの『イベント アラーム パラメータ』
最大サイズ 4TB のチャンクおよびエクステントの使
用。
8 ページの『ラージ チャンクの使用方法』
「管理者の参照」の付録 C『イベント アラー
ム』
23 ページの『格納領域およびチャンクの作成』
24 ページの『ラージ チャンクのサポート』
264 ページの『チャンク』
307 ページの『パフォーマンスを優先させたサン
プル レイアウト』
306 ページの『サンプル ディスク レイアウト』
最大 32,766 の許容チャンクの使用。
320 ページの『チャンクおよび格納領域の最大数
の指定』
拡張データ型を複製する HDR 機能
485 ページの『複製データの型』
xxvi
IBM Informix Dynamic Server 管理者ガイド
セキュリティ機能強化
バージョン 9.4 では、暗号化通信サポート モジュール ENCCSM) が追加され、ネット
ワークでのデータ伝送を暗号化できるようになりました。このオプションは、多くの構
成可能オプションとともに、OpenSSL ライブラリを使用した完全なデータ暗号化を提供
します。
新機能
参照先
ネットワークでのデータ伝送の暗号化
129 ページの『パスワードとデータ伝送暗号化用
の通信サポート モジュール (CSM) の使用』
この製品には、OpenSSL Project が OpenSSL Toolkit (http://www.openssl.org/) で使用す
るために開発したソフトウェアが含まれています。
Dynamic Server バージョン 9.3 における機能
次の機能は、IBM Informix Dynamic Server バージョン 9.3 で導入されました。
パフォーマンスの向上
バージョン 9.3 には、データベースのパフォーマンスを監視し、改善する多くの新機能
があります。
新機能
参照先
onstat -g stm オプション
391 ページの『トランザクションの監視』
論理ログの動的追加
393 ページの『第 14 章 論理ログ』
407 ページの『第 15 章 論理ログ ファイルの管
理』
SQL エンハンスメント
バージョン 9.3 には、Informix 以外のデータベースから Dynamic Server バージョン
9.4 への移行を簡単に行う複数の新しい SQL 文があります。
新機能
参照先
構成可能なデフォルト ロック モード
218 ページの『ロック表』
バージョン 9.3 の他の重要な変更点
このガイドでの他の重要なバージョン 9.3 の変更点を次にリストします。
はじめに
xxvii
マニュアルの変更
参照先
IBM Informix Server Administrator (ISA) には、多く
の新機能があります。
ISA オンライン ヘルプ
構成パラメータ AFF_NPROCS、AFF_SPROC、
NOAGE、NUMAIOVPS、および NUMCPUVPS の代
わりに VPCLASS を使用します。
195 ページの『第 7 章 仮想プロセッサの管理』
Dynamic Server バージョン 9.21 における機能
これらの機能は、IBM Informix Dynamic Server バージョン 9.21 で導入されました。
機能
参照先
ログ機能なし (ロウ) 表
291 ページの『Dynamic Server の表タイプ』
onpladm ユーティリティ
371 ページの『表へのデータのロード』
SQL 文キャッシュ エンハンスメント
251 ページの『SQL 文キャッシュのパラメータの
設定』
v 新しい構成パラメータ
v 新しい onstat -g ssc オプション
v SQL 文キャッシュ パラメータを変更するための新
しい onmode -W オプション
バージョン 9.2 でのマニュアルの構成上の変更点
このガイドは、以下のように再編成されています。
v データベース サーバの構成、および管理タスクの概要に関する説明は、 3 ページの
『第 1 章 データベース サーバのインストールと構成』に掲載されています。
v Windows での複数常駐、および高可用性に関する説明は、「IBM Informix: Dynamic
Server インストール ガイド」に掲載されています。
v データベース サーバの動作モードの管理、およびデータベース サーバの初期化に関
する説明は、 101 ページの『第 4 章 データベース サーバの初期化』に掲載されて
います。
v 物理ログ、およびチェックポイントに関する説明は、 431 ページの『第 16 章 物理
ロギング、チェックポイント、および高速復旧』に掲載されています。
表記規則
ここでは、このマニュアルで使用される、以下の表記規則について説明します。これら
の表記規則を把握しておくと、本書および他の関連マニュアルの内容を理解するのに役
立ちます。
以下のような表記規則があります。
xxviii
IBM Informix Dynamic Server 管理者ガイド
v 文字の表記規則
v その他の表記規則
v 構文ダイアグラム
v コマンド行の表記規則
v コード例の表記規則
文字の表記規則
本書では、新しい用語、画面表示、コマンド構文などを表記するのに、以下の規則を使
用します。
表記規則
意味
KEYWORD
プログラミング言語の文中では、主要な要素 (キーワード) は、すべ
て大文字のセリフ フォントで表記されます。
イタリック体
イタリック体
イタリック体
本文中では、新しい用語および強調語がイタリック体で表記されま
す。構文とコードの例では、ユーザが指定する変数値は、イタリック
体で表示されます。
太文字
太文字
プログラム エンティティの名前 (クラス、イベント、および表)、環
境変数、ファイルやパス名、およびインターフェイス要素 (アイコ
ン、メニュー項目、およびボタンなど) が太文字で表示されます。
モノスペース
モノスペース
製品が表示する情報、およびユーザが入力する情報は、モノスペース
で表記されます。
KEYSTROKE
ユーザが押すキーは、大文字のサンセリフ フォントで表記されます
>
この記号は、メニュー項目を表します。例えば、「ツール」>「オプ
ション」を選択する、という記述は、「ツール」メニューから「オプ
ション」項目を選択することを指します。
ヒント: 文字の「入力」、またはコマンドの「実行」を指示された場合は、入力直後に
Enter を押してください。ただし、テキストを「手入力」、または他のキーを
「押す」ように指示された場合は、Enter を押す必要はありません。
はじめに
xxix
機能、製品、およびプラットフォーム
機能、製品、およびプラットフォームのマークアップは、機能、製品、またはプラット
フォームに固有な情報を表します。このマークアップの例を次に示します。
Dynamic Server
IBM Informix Dynamic Server 固有の情報を示します。
Dynamic Server の終り
Extended Parallel Server
IBM Informix Extended Parallel Server 固有の情報を示します
Extended Parallel Server の終り
UNIX のみ
UNIX プラットフォーム固有の情報を示します。
UNIX のみ の終り
Windows のみ
Windows 環境固有の情報を示します。
Windows のみ の終り
これらのマークアップは、セクション内の 1 つ以上のパラグラフに適用される場合があ
ります。セクション全体が特定の製品またはプラットフォームに適用する場合は、次の
ように見出しテキストで示します。
表のソート (Linux のみ)
構文ダイアグラム
本書で使用する構文ダイアグラムは、以下のコンポーネントで構成されます。このダイ
アグラムは、システム レベルのコマンドを除くすべてのコマンドと、文の構文を表しま
す。
注: 2004 年以降、構文ダイアグラムは IBM 標準に準拠する形に再フォーマットされま
した。
SQL 文およびコマンド行文を表す構文ダイアグラムは、以下のように変更されました。
v 文の最初と最後には、終端の縦線に代わり、二重矢印が使用されます。
xxx
IBM Informix Dynamic Server 管理者ガイド
v 構文セグメント ダイアグラムの最初と最後には、矢印の代わりに縦線が使用されま
す。
v ループを繰り戻す回数は、ゲート記号内の数字としてではなく、ダイアグラムの脚注
に表示されます。
v 構文が複数行にわたる場合は、同じ行にループ ダウンするのではなく、次の行に示
されます。
v 製品または条件固有のパスは、アイコンではなく、ダイアグラムの脚注に表示されま
す。
次の表に、構文ダイアグラムのコンポーネントを示します。
コンポーネントの PDF での表示
コンポーネントの HTML での表示
説明
>>----------------------
文の開始を示します。
----------------------->
文が次行に続くことを示し
ます。
>-----------------------
文が前行からの続きである
ことを示します。
-----------------------><
文の終端を示します。
--------SELECT----------
必須項目です。
--+-----------------+--’------LOCAL------’
オプションの項目です。
---+-----ALL-------+--+--DISTINCT-----+
’---UNIQUE------’
選択項目のある必須項目で
す。項目を 1 つのみ指定
する必要があります。
---+------------------+--+--FOR UPDATE-----+
’--FOR READ ONLY--’
オプショナル項目がメイン
行の下に選択肢で表示さ
れ、そのいずれかを指定で
きます。
.---NEXT---------.
----+----------------+--+---PRIOR--------+
’---PREVIOUS-----’
メイン行の下にある値はオ
プションで、そのいずれか
を指定できます。項目を指
定しない場合、行の上にあ
る値がデフォルトとして使
用されます。
はじめに
xxxi
コンポーネントの PDF での表示
Table Reference
Table Reference
コンポーネントの HTML での表示
説明
.-------,-----------.
V
|
---+-----------------+--+---index_name---+
’---table_name---’
オプションの項目です。複
数の項目を指定できます。
各項目はコンマで区切る必
要があります。
>>-| Table Reference |-><
構文セグメントの参照で
す。
Table Reference
構文セグメントです。
|--+-----view--------+--|
+------table------+
’----synonym------’
view
Table
synonym
コマンド行構文ダイアグラムの読み方
以下のコマンド行構文ダイアグラムでは、前セクションの表にリストした要素をいくつ
か使用しています。
No-Conversion ジョブの作成
onpladm create job
job
-n -d
-p
-t
device -D
database
project
table (1)
Setting the Run Mode
-S
server
-T
target
注:
1
4 ページ参照
このダイアグラムの 2 行目には、「Setting the Run Mode」という名前のセグメントが
あります (ダイアグラムの脚注に示す 4 ページに詳細を記載)。このセグメントを、次
のセグメント ダイアグラムで示します (ダイアグラムにはセグメント開始と終了のコン
ポーネントを使用します)。
Setting the Run Mode:
xxxii
IBM Informix Dynamic Server 管理者ガイド
l
c
-f
d
p
a
u
n
N
コマンドを正しく入力するには、左上のコマンドから開始します。次に、ダイアグラム
を右へ進み、必要な要素を入力します。ダイアグラムの要素は、大文字と小文字を区別
をする必要があります。
「No-Conversion ジョブの作成」ダイアグラムは、以下の手順を示しています。
1. onpladm create job を入力し、次にジョブ名を入力します。
2. 任意で -p と入力し、プロジェクト名を入力します。
3. 以下の必須要素を入力します。
v -n
v -d およびデバイス名
v -D およびデータベース名
v -t および表名
4. オプションで、以下の中から 1 つ以上の要素を選択し、任意の回数まで繰り返すこ
とができます。
v -S およびサーバ名
v -T およびターゲット サーバ名
v run mode。run mode を設定するには、Setting the Run Mode セグメント ダイア
グラムに従います。まず -f を入力し、次にオプションで d、p、または a を入力
し、最後にオプションで l または u を入力します。
5. 終端記号までダイアグラムを読み進めます。
これで、ダイアグラムが終了します。
キーワードおよび句読点
システム レベルのコマンドを除き、すべてのコマンドおよび文に予約された単語です。
構文ダイアグラム内のキーワードは、大文字で表記されます。コマンド内のキーワード
には、大文字と小文字の両方を使用できます。ただし、構文ダイアグラム内のキーワー
ドと完全に一致するスペルにしてください。
また、構文やコマンド内の句読点も、構文ダイアグラム内と一致するように使用しなけ
ればなりません。
はじめに
xxxiii
識別子と名前
変数は、構文ダイアグラムや例の中で、識別子や名前の代わりに使用されます。変数は
コンテキストによって、任意の名前、識別子、リテラルに置き換えられます。また変数
は、追加構文ダイアグラムで拡張される複合構文要素を表すためにも使用されます。構
文ダイアグラム、例、またはテキスト内で使用される変数は、小文字のイタリック体 で
表記されます。
次の構文ダイアグラムでは、変数を使用して、単純な SELECT 文の一般的な形を示し
ています。
SELECT column_name FROM table_name
この形の SELECT 文を作成する場合は、変数 column_name および table_name を特定
の列名と表名に置き換えます。
コード例の表記規則
このマニュアルでは、SQL コードの例が随所に使用されています。特に明記されていな
い限り、記載されるコードは、特定の IBM Informix アプリケーション開発ツール専用
ではありません。
例の中に SQL 文のみがリストされる場合、これらの文は、セミコロン (;) で区切られ
ません。例えば、以下のようなコードの例が使用されます。
CONNECT TO stores_demo
...
DELETE FROM customer
WHERE customer_num = 121
...
COMMIT WORK
DISCONNECT CURRENT
この SQL コードをある製品で使用する場合、その製品の構文規則を適用する必要があ
ります。例えば DB–Access を使用する場合、文と文の間はセミコロン (;) で区切る必
要があります。SQL API を使用する場合、EXEC SQL を文の最初に指定し、文の最後
にセミコロン (;)、または適切な区切り記号を指定する必要があります。
ヒント: コード例内の省略記号は、フル アプリケーションではそこにコードが追加され
ることを示します。概念の説明には必要ないため、それらのコードは省略され
ています。
特定のアプリケーション開発ツール、または SQL API の SQL 文の詳細については、
製品に付属するマニュアルを参照してください。
xxxiv
IBM Informix Dynamic Server 管理者ガイド
関連マニュアル
詳しくは、以下のマニュアル セットを参照してください。
v インストール ガイド
v オンライン ノート
v Informix エラー メッセージ集
v マニュアル
v オンライン ヘルプ
インストール ガイド
インストール ガイドは、製品 CD の /doc ディレクトリ、または IBM Web サイトか
らダウンロードした場合には製品の圧縮ファイルの /doc ディレクトリにあります。ま
た、インストール ガイドは、IBM Informix Online Documentation サイト
(http://www-3.ibm.com/software/data/informix/pubs/library/) からも入手できます。
オンライン ノート
以下のセクションでは、このマニュアルの情報を補足するオンライン ファイルについて
説明します。IBM Informix 製品を使用する前に、これらのファイルを参照してくださ
い。このファイルには、アプリケーションおよびパフォーマンスに関する重要な情報が
含まれています。
はじめに
xxxv
オンライン ファイル
説明
フォーマット
TOC ノート
HTML
TOC (目次) ノート ファイルには、リリース
ノート、修正された問題と既知の問題について
のファイル、および個々のマニュアル タイト
ルに該当するすべてのドキュメント ノート フ
ァイルへの、ハイパーリンクの包括的なディレ
クトリが記載されています。
ドキュメント ノート
それぞれのマニュアルのドキュメント ノート HTML、
には、マニュアルに記載されている情報を補足 テキスト
する重要な情報と修正、マニュアルの出版後に
変更された情報が含まれています。
リリース ノート
リリース ノート ファイルには、IBM Informix HTML、
製品の以前バージョンとの機能の違いと、その テキスト
違いが現行の製品に及ぼす影響について記載し
ています。製品により、このファイルに既知の
問題とその修正処置も含まれる場合がありま
す。
マシン ノート
(Windows 以外のプラットフォームのみ) マシ テキスト
ン ノート ファイルには、ご使用のコンピュー
タで IBM Informix 製品を構成して使用するた
めに行うべきプラットフォーム固有の処置につ
いて記載しています。
修正された問題と既知
の問題についてのファ
イル
このテキスト ファイルには、現行バージョン テキスト
で確認されている問題がリストされています。
また、ユーザから報告された現行バージョンお
よび以前のバージョンで修正された問題もリス
トされています。
オンライン ノートの入手先
オンライン ノートは IBM Informix Online Documentation サイト
(http://www-3.ibm.com/software/data/informix/pubs/library/) から入手できます。さらに、以
下に説明するように、これらのファイルをインストール後、またはインストール前に取
得できます。
インストール前
すべてのオンライン ノートは、製品 CD の /doc ディレクトリにあります。ドキュメ
ント ノート、リリース ノート、および修正された問題と既知の問題についてのファイ
ルにアクセスする最も簡単な方法は、TOC ノート ファイルからのハイパーリンクを介
したアクセスです。
xxxvi
IBM Informix Dynamic Server 管理者ガイド
マシン ノート、および修正された問題と既知の問題についてのファイルは、テキスト
フォーマットでのみ提供されます。
インストール後
デフォルト ロケールの UNIX プラットフォームでは、ドキュメント ノート、リリース
ノート、およびマシン ノートのファイルは、$INFORMIXDIR/release/en_us/0333 ディ
レクトリにあります。
Dynamic Server
Windows では、ドキュメント ノートおよびリリース ノートは Informix フォルダに格
納されています。このフォルダを表示するには、タスクバーから、「スタート」>「プ
ログラム」>「IBM Informix Dynamic Server version」>「Documentation Notes」また
は「Release Notes」を選択します。
マシン ノートは、Windows プラットフォームには適用されません。
Dynamic Server の終り
オンライン ノートのファイル名
オンライン ノートのファイル形式は以下のとおりです。
オンライン ファイル
ファイル形式
例
TOC ノート
prod_os_tocnotes_version.html
ids_win_tocnotes_10.0.html
ドキュメント ノート
prod_bookname_docnotes_version.html/txt
ids_hpl_docnotes_10.0.html
リリース ノート
prod_os_relnotes_version.html/txt
ids_unix_relnotes_10.0.txt
マシン ノート
prod_machine_notes_version.txt
ids_machine_notes_10.0.txt
修正された問題と既知の問 prod_defects_version.txt
題についてのファイル
ids_win_fixed_and_known
_defects_version.txt
ids_defects_10.0.txt
client_defects_2.90.txt
ids_win_fixed_and_known
_defects_10.0.txt
Informix エラー メッセージ集
このファイルは、Informix 製品のバージョン番号別のエラー メッセージおよび修正処置
の包括的なインデックスです。
はじめに
xxxvii
UNIX プラットフォームでは、finderr コマンドを使用してエラー メッセージおよび修
正処置を確認します。
Dynamic Server
Windows では、Informix エラー メッセージ集ユーティリティを使用してエラー メッセ
ージおよび修正処置を確認します。このユーティリティを表示するには、タスクバーか
ら「スタート」>「プログラム」>「IBM Informix Dynamic Server version」>
「Informix エラー メッセージ集」を選択します。
Dynamic Server の終り
IBM Informix Online Documentation サイト
(http://www-3.ibm.com/software/data/informix/pubs/library/) でこれらのファイルにアクセス
することもできます。
マニュアル
オンライン マニュアル
IBM Informix 製品では、電子フォーマットのマニュアルを含む CD が提供されます。
マニュアルを CD からインストールするか、または CD からこれらに直接アクセスで
きます。オンライン マニュアルのインストール、表示、および印刷の方法については、
CD に付属するインストール ガイドを参照してください。同じオンライン マニュアル
を IBM Informix Online Documentation サイト
(http://www-3.ibm.com/software/data/informix/pubs/library/) から入手することもできます。
ペーパー マニュアル
ハードコピー マニュアルを注文するには、営業担当員に連絡するか、または IBM
Publications Center Web サイト (http://www.ibm.com/software/howtobuy/data.html) にアク
セスしてください。
オンライン ヘルプ
それぞれのグラフィカル ユーザ インターフェイス (GUI) で提供される IBM Informix
オンライン ヘルプでは、そのインターフェイスおよび機能についての情報が表示されま
す。オンライン ヘルプを表示するには、それぞれの GUI のヘルプ機能を使用してくだ
さい。
アクセシビリティ
IBM は、身体障害のある閲覧者にもマニュアルへのアクセスを可能にするように努力し
ています。IBM のマニュアルは HTML 形式で入手できるため、スクリーン リーダ (読
上げソフトウェア) などの支援テクノロジーを使用してアクセスできます。IBM のマニ
ュアルの構文ダイアグラムは、スクリーン リーダ (読上げソフトウェア) を使用する場
xxxviii
IBM Informix Dynamic Server 管理者ガイド
合に限り利用できる小数点付き 10 進数フォーマットに従っています。小数点付き 10
進数フォーマットについて詳しくは、付録の『アクセシビリティ』を参照してくださ
い。
IBM Informix Dynamic Server バージョン 10.0 および CSDK バージョン 2.90 マ
ニュアル セット
以下の表に、IBM Informix Dynamic Server バージョン 10.0 および CSDK バージョン
2.90 マニュアル セットを構成するマニュアルのリストを表示します。これらのマニュ
アルの PDF および HTML バージョンは、
http://www-3.ibm.com/software/data/informix/pubs/library/ で入手できます。これらのマニュ
アルのハードコピー バージョンは、IBM Publications Center
(http://www.ibm.com/software/howtobuy/data.html) で注文できます。
表 1. Database Server のマニュアル
マニュアル
内容
管理者ガイド
データベース サーバの理解、構成、および管理。
管理者の参照
Informix Dynamic Server 用の参考資料。データベース サーバ ユーティリ
ティ onmode と onstat の構文、構成パラメータと sysmasters 表と論理
ログ レコードについての説明などが含まれます。
バックアップおよび復元 ガ
イド
データのバックアップおよび復元を行うために ON-Bar および ontape ユ
ーティリティを使用する際に理解しておく必要がある概念と方法。
DB-Access ユーザーズ ガイ
ド
DB-Access ユーティリティを使用した、Informix データベースのデータの
アクセス、修正、および取得。
DataBlade API
Function Reference
DataBlade API 関数、および DataBlade API がサポートする ESQL/C 関
数のサブセット。DataBlade API を使用して、Informix データベースのデ
ータにアクセスするクライアント LIBMI アプリケーションおよび C 言
語のユーザ定義ルーチンを開発できます。
DataBlade API
Programmer’s Guide
Dynamic Server で提供されている C 言語のアプリケーション プログラ
ミング インターフェイスである DataBlade API。DataBlade API を使用し
て、Informix データベースに格納されているデータにアクセスするクライ
アント アプリケーションおよびサーバ アプリケーションを開発します。
データベース設計および実
装 ガイド
Informix データベースの設計、実装、および管理。
エンタープライズ レプリケ
ーション ガイド
複数のデータベース サーバ間でデータを複製するためにエンタープライ
ズ レプリケーション システムを設計、実装、および管理する方法。
エラー メッセージ ファイ
ル
IBM Informix 製品の使用時に受け取る可能性がある番号付きエラー メッ
セージの原因と修正処置。
はじめに
xxxix
表 1. Database Server のマニュアル (続き)
マニュアル
内容
スタートアップ ガイド
IBM Informix Dynamic Server にバンドルされている製品、および他の
IBM 製品とのインターオペラビリティの説明。Dynamic Server の重要な
機能と各バージョンの新機能の要約。
SQL ガイド: 参照
Informix データベース、データ型、システム カタログ表、環境変数、お
よび stores_demo デモンストレーション データベースについての情報。
SQL ガイド: 構文
Informix のすべての SQL 文と SPL 文の構文についての詳細な説明。
SQL ガイド: チュートリア
ル
Informix 製品で実装された SQL についてのチュートリアル。リレーショ
ナル データベースでの作業時に使用される基本的な概念と用語を説明し
ます。
ハイ パフォーマンス ロー
ダ ユーザーズ ガイド
Informix データベースへ/から大量のデータをロードおよびアンロードする
ための、ハイ パフォーマンス ローダ (HPL) へのアクセスと使用。
インストール ガイド
(Microsoft Windows 用)
Windows での IBM Informix Dynamic Server のインストール。
インストール ガイド
(UNIX および Linux 用)
UNIX および Linux での IBM Informix Dynamic Server のインストー
ル。
J/Foundation Developer’s
Guide
Java プログラム言語による Informix Dynamic Server with J/Foundation 用
ユーザ定義ルーチン (UDR) の記述。
Large Object Locator
DataBlade Module User’s
Guide
ラージ オブジェクト データを作成または格納する他のモジュールから使
用可能な DataBlade ファウンデーション モジュールである Large Object
Locator の使用。Large Object Locator は、ラージ オブジェクトへの単一
で一貫したインターフェイスの作成を可能にし、データベースの外部に保
存されているデータも組み込むようにラージ オブジェクトの概念を拡張
します。
移行ガイド
Informix データベース サーバの最新バージョンへの変換および最新バー
ジョンからのリバージョン。異なる Informix データベース サーバ間の移
行について説明します。
Optical Subsystem Guide
光ディスクへのバイト (BYTE) 型およびテキスト (TEXT) 型データの格
納を支援するユーティリティである光ディスク記憶サブシステム。
パフォーマンス ガイド
最適なパフォーマンスを実現するための IBM Informix Dynamic Server の
構成と運用。
R-Tree Index User’s Guide
適切なデータ型に対する R ツリー インデックスの作成、R ツリー アク
セス方法を使用する演算子クラスの新規作成、および R ツリー副アクセ
ス方法を使用するデータベースの管理。
SNMP Subagent Guide
簡易ネットワーク管理プロトコル (SNMP) ネットワーク マネージャによ
る Informix サーバ状態の監視を可能にする、IBM Informix サブエージェ
ント。
xl
IBM Informix Dynamic Server 管理者ガイド
表 1. Database Server のマニュアル (続き)
マニュアル
内容
Storage Manager 管理者ガイ
ド
Informix データベース サーバ向けの記憶装置およびメディアを管理する
Informix 格納域マネージャ (ISM)。
Trusted Facility Guide
監査ログの作成と管理を含む、Dynamic Server の安全保護監査機能。
ユーザ定義ルーチンおよび
データ タイプ 開発者ガイ
ド
新規の型を定義し、ユーザ定義ルーチン (UDR) を使用して IBM Informix
Dynamic Server の機能を拡張する方法。
Virtual-Index Interface
Programmer’s Guide
IBM Informix Dynamic Server に組み込まれたインデックス方式を拡張す
るための、仮想インデックス インターフェイス (VII) による副アクセス
方法 (インデックス) の作成。通常は DataBlade モジュールで使用しま
す。
Virtual-Table Interface
Programmer’s Guide
仮想テーブル インターフェイス (VTI) での主アクセス方法の作成。これ
により、ユーザは Informix の表、および Informix Dynamic Server のス
トレージ方式に準拠しないデータに対して、単一の SQL インターフェイ
スを使用できます。
表 2. クライアント/接続関連のマニュアル
マニュアル
内容
Client Products Installation
Guide
UNIX、Linux、および Windows を使用しているコンピュータへの、IBM
Informix Client Software Developer’s Kit (Client SDK) および IBM
Informix Connect のインストール。
Embedded SQLJ User’s
Guide
Java プログラムに SQL 文を埋め込むための IBM Informix Embedded
SQLJ の使用。
ESQL/C Programmer’s
Manual
C 言語用埋込み SQL の IBM Informix 実装。
GLS ユーザーズ ガイド
IBM Informix API およびデータベース サーバでの、各国の言語、国/地域
別情報、およびコード セットの処理を可能にする、広域言語サポート
(GLS) 機能。
JDBC Driver Programmer’s
Guide
Java アプリケーションまたはアプレットから Informix データベースへの
接続を行うための、JDBC ドライバのインストールと使用。
.NET Provider Reference
Guide
.NET クライアント アプリケーションによる Informix データベース内の
データのアクセスと操作を可能にするための、Informix .NET Provider の
使用。
ODBC Driver Programmer’s
Manual
Informix データベースにアクセスし、Informix データベース サーバと対
話するための、Informix ODBC Driver API の使用。
はじめに
xli
表 2. クライアント/接続関連のマニュアル (続き)
マニュアル
内容
OLE DB Provider
Programmer’s Guide
ActiveX Data Object (ADO) アプリケーションや Web ページなどのクラ
イアント アプリケーションから Informix サーバのデータへのアクセスを
可能にするための、Informix OLE DB Provider のインストールと構成。
Object Interface for C++
Programmer’s Guide
C++ オブジェクト インターフェイスおよび全クラス参照からなるアーキ
テクチャ。
表 3. DataBlade Developer’s Kit のマニュアル
マニュアル
内容
DataBlade Developer’s Kit
User’s Guide
BladeSmith および BladePack を使用した DataBlade モジュールの開発と
パッケージ化。
DataBlade Module
Development Overview
DataBlade モジュール開発の基本的な説明。DataBlade モジュールの開発
例が含まれています。
DataBlade Module Installation DataBlade モジュールのインストール、および Informix データベースで
and Registration Guide
DataBlade モジュールを管理するための BladeManager の使用。
業界標準への準拠
米国規格協会 (ANSI) と国際標準化機構 (ISO) は、共同で構造化問合せ言語 (SQL) 用
の一連の業界標準を確立しました。IBM Informix SQL ベースの製品は、ISO 9075:1992
と同一である、SQL-92 エントリ レベル (ANSI X3.135-1992 として発行) に完全準拠し
ています。さらに、Informix データベース サーバの多くの機能が、SQL-92 中間および
全レベル、および X/Open SQL CAE (共通アプリケーション環境) 標準に準拠していま
す。
xlii
IBM Informix Dynamic Server 管理者ガイド
第 1 部 データベース サーバ
© Copyright IBM Corp. 1996, 2004
1
2
IBM Informix Dynamic Server 管理者ガイド
第 1 章 データベース サーバのインストールと構成
データベース サーバ構成の計画 . . . . . . . . . . . . . . . . . .
優先順位の検討 . . . . . . . . . . . . . . . . . . . . . . .
環境に関する注意事項 . . . . . . . . . . . . . . . . . . . . .
オペレーティング システムの構成 . . . . . . . . . . . . . . . . . .
Windows メモリの構成 . . . . . . . . . . . . . . . . . . . .
UNIX カーネル パラメータの変更 . . . . . . . . . . . . . . . . .
ディスク領域の割当て . . . . . . . . . . . . . . . . . . . . . .
ラージ チャンクの使用方法 . . . . . . . . . . . . . . . . . . .
UNIX でのチャンク ファイルの作成 . . . . . . . . . . . . . . . .
ロウまたはバッファなしディスク アクセス . . . . . . . . . . . . .
クックド ファイル . . . . . . . . . . . . . . . . . . . . .
Windows での NTFS パーティションの作成 . . . . . . . . . . . . .
アクセス権、所有権、およびグループの設定 . . . . . . . . . . . . .
標準デバイス名の作成 (UNIX) . . . . . . . . . . . . . . . . . .
環境変数の設定 . . . . . . . . . . . . . . . . . . . . . . . .
環境変数 GLS の設定 . . . . . . . . . . . . . . . . . . . .
UNIX での環境変数の設定 . . . . . . . . . . . . . . . . . . .
Windows での環境変数の設定 . . . . . . . . . . . . . . . . . .
接続の構成 . . . . . . . . . . . . . . . . . . . . . . . . .
UNIX 上のファイル sqlhosts . . . . . . . . . . . . . . . . . .
ネットワーク構成ファイル . . . . . . . . . . . . . . . . . .
ネットワーク セキュリティ ファイル . . . . . . . . . . . . . .
Windows のレジストリ sqlhosts . . . . . . . . . . . . . . . . .
ISA を使用する接続の構成 . . . . . . . . . . . . . . . . . . .
データベース サーバの構成 . . . . . . . . . . . . . . . . . . .
ONCONFIG 構成ファイルの準備 . . . . . . . . . . . . . . . . .
UNIX でのファイル ONCONFIG の作成 . . . . . . . . . . . . .
Windows でのファイル ONCONFIG の作成 . . . . . . . . . . . .
ISA のサーバ セットアップを使用する構成のカスタマイズ . . . . . . . .
Informix Server Administrator を使用するファイル ONCONFIG の更新 . . . .
インスタンス マネージャを使用する新規データベース サーバ インスタンスの作成
インスタンス マネージャを使用するデータベース サーバ インスタンスの名前変更
Java サポートの構成 . . . . . . . . . . . . . . . . . . . . .
データベース サーバの起動と管理 . . . . . . . . . . . . . . . . .
データベース サーバの起動とディスク領域の初期化 . . . . . . . . . .
自動起動の準備 . . . . . . . . . . . . . . . . . . . . . . .
Windows での自動起動の準備 . . . . . . . . . . . . . . . . .
UNIX の起動スクリプトと停止スクリプトの準備 . . . . . . . . . .
アプリケーションへの接続の準備 . . . . . . . . . . . . . . . . .
格納領域およびチャンクの作成 . . . . . . . . . . . . . . . . .
© Copyright IBM Corp. 1996, 2004
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
(Windows)
(Windows)
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 5
. 6
. 6
. 7
. 7
. 7
. 8
. 8
. 8
. 8
. 9
. 9
. 10
. 10
. 11
. 12
. 13
. 14
. 14
. 15
. 15
. 15
. 16
. 16
. 16
. 16
. 17
. 17
. 18
. 18
. 18
. 19
. 19
. 20
. 20
. 21
. 21
. 21
. 23
. 23
3
ラージ チャンクのサポート . . . . . . . .
バックアップ システムおよび格納域のセットアップ
ontape のセット アップ . . . . . . . . .
格納域マネージャと ON-Bar のセット アップ .
定型管理タスクの実行 . . . . . . . . . . .
データベース サーバ モードの変更 . . . . . .
データと論理ログ ファイルのバックアップ . . .
動作の監視 . . . . . . . . . . . . . .
一貫性検査 . . . . . . . . . . . . . .
追加管理タスクの実行 . . . . . . . . . . .
ミラーリングの使用方法 . . . . . . . . . .
データベース ログ機能状態の管理 . . . . . .
論理ログの管理 . . . . . . . . . . . . .
物理ログの管理 . . . . . . . . . . . . .
共有メモリの管理 . . . . . . . . . . . .
仮想プロセッサの管理 . . . . . . . . . .
並列データベース問合せの管理 . . . . . . .
データ レプリケーションの使用方法 . . . . .
高可用性データ レプリケーション . . . . .
エンタープライズ レプリケーション . . . .
監査機能の使用方法 . . . . . . . . . . .
分散問合せの使用方法 . . . . . . . . . .
広域トランザクションの使用方法 . . . . . .
トランザクション マネージャの使用方法 . . .
データベース サーバの動作の監視 . . . . . . .
イベント アラーム . . . . . . . . . . .
IBM Informix Server Administrator (ISA) . . . .
メッセージ ログ . . . . . . . . . . . .
メッセージ ログ メッセージの送信先の指定 . .
メッセージ ログの監視 . . . . . . . . .
ON-Monitor (UNIX) . . . . . . . . . . .
ユーティリティ oncheck . . . . . . . . . .
ツール onperf (UNIX). . . . . . . . . . .
ユーティリティ onstat . . . . . . . . . .
SMI 表 . . . . . . . . . . . . . . .
システム コンソール . . . . . . . . . . .
UNIX オペレーティング システム ツール . . . .
Windows イベント ビューア . . . . . . . .
Windows パフォーマンス モニタ . . . . . . .
4
IBM Informix Dynamic Server 管理者ガイド
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
24
24
24
24
25
25
25
26
26
26
26
26
27
27
27
28
28
28
28
29
29
29
29
29
30
30
30
30
31
31
31
31
32
32
32
32
33
33
34
Windows ユーティリティ
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
. 34
本章について
IBM Informix Dynamic Server バージョン 10.0 をインストールする場合は、インストー
ルの指示に従って、すべての主要なファイルおよびディレクトリの権限を適切に設定す
ることをお勧めします。インストール方法については、「IBM Informix: Dynamic Server
インストール ガイド (UNIX および Linux 用)」および「IBM Informix: Dynamic Server
インストール ガイド (Microsoft Windows 用)」を参照してください。
新規バージョンのデータベース サーバをインストールした後、それを構成する必要があ
ります。
構成 とは、データ処理環境に合わせてデータベース サーバをカスタマイズするため
に、特定のパラメータを設定することです。データ処理環境には、データの量、表の
数、型、ハードウェア、ユーザ数、およびセキュリティ要件などの要素があります。
この章で説明する基本的な構成要件を以下に示します。
v データベース サーバに合った計画
v オペレーティング システムの構成
v ディスク領域の割当て
v 環境変数の設定
v 接続情報の構成
v 構成ファイル ONCONFIG の作成
v サーバ セットアップを使用する構成のカスタマイズ
v データベース サーバの起動と管理
v データベース サーバの動作の監視
UNIX または Linux コンピュータでデータベース サーバを起動する場合、サーバ ユー
ティリティにより、ご使用の環境がセキュアであるかどうかを検査されます。詳しく
は、120 ページの『UNIX または Linux 開始前のサーバ ユーティリティ セキュリテ
ィ』を参照してください。
データベース サーバ構成の計画
データベース管理システムを構成するには、データの格納場所、データへのアクセス方
法、データを保護する方法など、多くの決定が必要になります。Dynamic Server をどの
ようにインストールし、構成するかにより、データベース操作のパフォーマンスは大き
く異なります。
第 1 章 データベース サーバのインストールと構成
5
特定のデータ処理環境で最適に機能するように、データベース サーバをカスタマイズで
きます。例えば、1000 人のユーザが短いトランザクションを頻繁に実行するデータベー
ス サーバと、少数のユーザが複雑な検索を長い時間行うデータベース サーバでは、そ
の使用方法が大きく異なります。
データベース サーバの構成について計画する場合は、優先順位と環境の両方について検
討する必要があります。
優先順位の検討
初期構成を作成し、バックアップ ストラテジを計画するときは、データベース サーバ
の特性を考慮する必要があります。
v ほかのコンピュータ上のアプリケーションが、このデータベース サーバのインスタ
ンスを使用するかどうか。
v 予想される最大ユーザ数はどのくらいか。
v ユーザのデータベース サーバ環境をどの程度管理するのか。
v 領域、CPU、またはオペレータの可用性など、リソースによる制限を受けるかどう
か。
v データベース サーバを監視せずに実行する必要があるかどうか。
v データベース サーバが処理するのは、多くの短いトランザクションまたは比較的少
数のロング トランザクションのどちらか。
v どのデータベース サーバ新機能、関連製品を使用するのか。
環境に関する注意事項
データベース サーバの初期構成を開始する前に、次の情報を可能な限り多く収集してく
ださい。この情報を入手するには、システム管理者の支援が必要になることがありま
す。
v ネットワーク上のほかのコンピュータのホスト名と IP アドレス。
v UNIX プラットフォームで、NIS (Network Information Service: ネットワーク情報サ
ービス) がサポートされているかどうか。
v ディスク コントローラの構成。
利用できるディスク ドライブの数。ディスク ドライブごとに速度の違いがあるかど
うか。利用できるディスク コントローラの数。ディスク コントローラの構成。
v 使用する格納域マネージャとバックアップ デバイスの要件、機能、および制限。
詳しくは、「IBM Informix: Storage Manager 管理者ガイド」、または使用している格
納域マネージャのマニュアルを参照してください。
v ハードウェアおよびオペレーティング システムのアップグレードが必要かどうか。
使用しているオペレーティング システムが 32 ビットか、それとも 64 ビットか。
v オペレーティング システム共有メモリとそのほかのリソース。
6
IBM Informix Dynamic Server 管理者ガイド
利用できる共有メモリ容量はどの程度か。そのうちのどの程度をデータベース サー
バに使用できるか。
UNIX のみ
マシン ノート ファイルには、各 UNIX プラットフォームで適用可能なパラメータ
が示されています。
UNIX のみ の終り
オペレーティング システムの構成
データベース サーバの構成を開始する前に、オペレーティング システムを適切に構成
する必要があります。このタスクを実行するには、システム管理者の支援が必要になる
ことがあります。
32 ビット バージョンの Dynamic Server は、64 ビットまたは 32 ビットのオペレーテ
ィング システムで実行できますが、64 ビット バージョンの Dynamic Server は、64
ビットのオペレーティング システムで実行する必要があります。詳しくは、242 ページ
の『64 ビット プラットフォームでのメモリ使用』を参照してください。
Windows メモリの構成
Windows では、NTFS パーティションを作成し、メモリを構成する必要があります。9
ページの『Windows での NTFS パーティションの作成』も参照してください。
データベース サーバ用のメモリが不足すると、バッファ管理動作が過度に生じることが
あります。「コントロール パネル」の「システム」で「仮想メモリ」の値を設定する場
合は、物理メモリの総容量に対して、十分なページング領域を設定してください。
UNIX カーネル パラメータの変更
マシン ノート ファイルには、オペレーティング システムのリソース構成における推奨
値が格納されています。オペレーティング システムを構成する場合は、これらの推奨値
を使用してください。
データベース サーバの推奨値が現行の環境と大きく異なっている場合は、オペレーティ
ング システム構成の変更を検討してください。詳しくは、「IBM Informix: Dynamic
Server パフォーマンス ガイド」を参照してください。
一部のオペレーティング システムでは、データベース サーバに割り当てる共有メモリ
の容量を指定できます。利用できるメモリ容量によって、構成ファイルで共有メモリ パ
ラメータに対して指定できる値が異なります。 一般に、共有メモリに利用できる領域が
大きいほど、パフォーマンスは向上します。ロックとセマフォについても、数を指定す
る必要があります。
第 1 章 データベース サーバのインストールと構成
7
UNIX カーネル パラメータの役割に関する必要な情報については、 245 ページの『第 9
章 共有メモリの管理』 を参照してください。
ディスク領域の割当て
データ マートとデータ ウェアハウスで最適なパフォーマンスを実現できるようにディ
スクを構成します。ディスク入出力は、SQL 操作の応答時間のうち最も長い部分を占め
ます。データベース サーバでは、コンピュータ上の複数のディスクに対して並行アクセ
スを行うことができます。ディスク領域を割り当てる前に、オペレーティング システム
の管理ガイドでディスク領域に関する情報および 264 ページの『チャンク用のディスク
割当て』を参照してください。
ラージ チャンクの使用方法
DB 領域用のチャンクのサイズは、2KB のページあたり 4TB です。チャンクは、64 ビ
ット アドレス空間内の任意の場所に常駐できます。
ラージ チャンクの作成を起動するには、ユーティリティ onmode を使用します。ユー
ティリティ onmode は -BC フラグを使用して、2GB より大きいラージ チャンクの可
用性を制御します。
データベース サーバが先に新規バージョンの Dynamic Server に移行されると、ラージ
チャンクは許可されません。先に onmode -BC 1 を実行して、ラージ チャンクを作成
できるようにします。
必要な場合、以前のバージョンの Dynamic Server をラージ チャンク フォーマットに
変換するために、onmode -BC 2 を実行します。
サーバ初期化中のルート チャンクがラージ チャンクの場合、onmode -BC 1 ステップ
はスキップされ、-BC 2 モードが自動的に初期化されます。
UNIX でのチャンク ファイルの作成
UNIX では、バッファなし (ロウ) ディスクまたはオペレーティング システム ファイ
ルのいずれかを使用してチャンクでデータを格納します。データを格納したファイル
は、バッファ付き またはクックド ファイルとも呼ばれます。
ロウまたはバッファなしディスク アクセス
UNIX では、ロウ ディスク デバイスとも呼ばれる、キャラクタ スペシャル デバイス
を使用して、バッファなしディスク アクセスを行うことができます。UNIX でロウ デ
ィスク デバイスを作成する方法については、オペレーティング システムのマニュアル
を参照してください。
データベース サーバではロウ ディスク アクセスを使用し、ディスク入出力操作の速度
および信頼性を向上しています。ロウ ディスク アクセスは、オペレーティング システ
8
IBM Informix Dynamic Server 管理者ガイド
ムによるファイル バッファ メカニズムをバイパスします。代わりに、データベース サ
ーバ自体がディスクとメモリ間のデータ転送を管理します。 これにより、行が連続的に
格納され、表のアクセスが最適化されます。
重要: パフォーマンスを向上させるため、UNIX でロウ ディスク デバイスを使用する
ことをお勧めしますが、クックド書込みの入出力キャッシュが最近進歩してきた
ため、同様のパフォーマンス(上回ることはなくとも) が得られるようになって
きました。最善のデバイス パフォーマンスを確認するために、DB 領域および表
レイアウトについて両方のタイプのデバイスを使用し、システムでベンチマーク
テストを実行してください。
データベース サーバにディスクを割り当てるには:
1. 各ディスクのロウ ディスク デバイスを構成します。
2. 標準デバイス名またはファイル名を作成します。
3. 各ロウ ディスク デバイスのアクセス権、所有権、およびグループを設定します。
クックド ファイル
パフォーマンスを重要視しない場合は、データがクックド ファイルへ格納されるように
データベース サーバを構成できます。クックド ファイルは、ロウ ディスク デバイス
より簡単にセット アップできます。
Windows での NTFS パーティションの作成
Windows では、データベース サーバを NTFS (New Technology File System) または
FAT (File Allocation Table) パーティションにインストールできます。ただし、DB 領
域、BLOB 領域、および SB 領域はすべて、ファイル NTFS に格納するか、物理ドラ
イブまたは論理ディスク パーティションに格納する必要があります。ディスク管理を簡
略化するため、NTFS ファイルを使用するようお勧めします。NTFS ファイルの詳細に
ついては、Windows のマニュアル、および 264 ページの『Windows でのディスク ア
クセス』を参照してください。
すべてのパーティションが FAT パーティションの場合は、少なくとも 1 つのパーティ
ションを NTFS に変換する必要があります。Windows のユーティリティ convert を使
用できます。次に例を示します。
convert /fs:ntfs
第 1 章 データベース サーバのインストールと構成
9
アクセス権、所有権、およびグループの設定
データベース サーバで使用されるファイルまたはロウ ディスク デバイスには、適切な
所有権とアクセス権を設定する必要があります。
UNIX のみ
UNIX では、所有者とグループを informix に設定し、ユーザとグループに対しての
み、読込みと書込みのアクセス権を設定する必要があります。
informix または root 以外のユーザにコマンド ON–Bar を実行させる場合は、グループ
bargroup を作成します。bargroup のメンバのみがコマンド ON–Bar を実行できます。
グループ bargroup は、データベース サーバのインストール中に自動的に作成されるこ
とはありません。グループの作成方法については、「IBM Informix: Dynamic Server イ
ンストール ガイド (UNIX および Linux 用)」または UNIX のマニュアルを参照してく
ださい。
UNIX のみ の終り
Windows のみ
Windows では、ファイルの所有者は Informix-Admin グループのメンバである必要があ
ります。Informix-Admin グループは、データベース サーバをインストールするときに
自動的に作成されます。
Windows のみ の終り
標準デバイス名の作成 (UNIX)
各ロウ ディスク デバイスに省略された標準デバイス名を割り当てるには、シンボリッ
ク リンクを使用することをお勧めします。シンボリック リンクを使用すると、新しい
ディスクにシンボリック名を割り当てて、障害が発生したディスクを新しいディスクに
置き換えることができます。
キャラクタ スペシャル デバイス名と別のファイル名との間のリンクを作成するには、
UNIX の link コマンド (通常は ln) を使用します。
デバイスとリンクの両方が存在していることを確認するには、デバイス ディレクトリで
UNIX のコマンド ls -l を実行します。ロウ ディスク デバイスとのリンクを以下の例
に示します。オペレーティング システムでシンボリック リンクがサポートされていな
い場合は、ハード リンクを使用できます。
ls -l
crw-rw--crw-rw--lrwxrwxrwx
lrwxrwxrwx
10
/dev/rxy0h
/dev/rxy0a
/dev/my_root@->/dev/rxy0h
/dev/raw_dev2@->/dev/rxy0a
IBM Informix Dynamic Server 管理者ガイド
環境変数の設定
データベース サーバを起動または停止したり、データベース サーバにアクセスするに
は、各ユーザ が適切な環境変数を設定する必要があります。環境変数には、必要なもの
とオプションのものがあります。
必要な環境変数を設定するには:
1. INFORMIXDIR を IBM Informix 製品のインストール先ディレクトリに設定しま
す。
2. 環境変数 PATH に、$INFORMIXDIR/bin (UNIX) または %INFORMIXDIR%¥bin
(Windows) が含まれるように設定します。
3. INFORMIXSERVER をデータベース サーバ名に設定します。
ヒント: シェル ファイルまたは Windows の適切なスタートアップ ファイルで環境変
数を設定することをお勧めします。
「IBM Informix: SQL ガイド: 参照」には、環境変数の完全なリストがあります。環境
変数の設定がパフォーマンスに与える影響については、「IBM Informix: Dynamic Server
パフォーマンス ガイド」を参照してください。
表 4 に、データベース サーバへのアクセスや主要な管理タスクの実行前に設定する必
要のある環境変数を示します。
表 4. 必要な環境変数
環境変数
説明
CLASSPATH
J/Foundation を使用している場合、ファイル jvphome/krakatoa.jar の格納場所を
指定し、JDK (Java Development Kit) が Java ソース ファイルをコンパイルでき
るようにします。
INFORMIXDIR
IBM Informix データベース サーバをインストールしたディレクトリを指定しま
す。
INFORMIXSERVER
デフォルトのデータベース サーバ名を指定します。この環境変数は、構成パラメ
ータ DBSERVERNAME または DBSERVERALIASES に指定された値をとりま
す。
JVPHOME
J/Foundation を使用している場合、IBM Informix JDBC Driver をインストールし
たディレクトリを指定します。
第 1 章 データベース サーバのインストールと構成
11
表 4. 必要な環境変数 (続き)
環境変数
説明
ONCONFIG
有効なファイル ONCONFIG の名前を指定します。onstat などのデータベース
サーバ ユーティリティを使用するすべてのユーザについては、環境変数
ONCONFIG を設定する必要があります。クライアント アプリケーションを実行
しているユーザは、環境変数 ONCONFIG を設定する必要はありません。
環境変数 ONCONFIG を指定しない場合は、ファイル onconfig の構成値が使用
されます。
UNIX: $INFORMIXDIR/etc/onconfig
Windows: %INFORMIXDIR%¥etc¥onconfig.std
実行可能ファイルの格納場所を指定します。
PATH
UNIX: $INFORMIXDIR/bin
Windows: %INFORMIXDIR%¥bin
TERM
DB–Access を有効にして、使用している端末の認識と通信を行います。 この環
境変数は、初期化のときに要求されることはありませんが、アプリケーションを
実行する前に設定する必要があります。
TERMCAP
TERMINFO
INFORMIXTERM
DB–Access がファイル termcap 内の情報、またはディレクトリ terminfo を使用
するかどうかを指定します。指定が必要な場合、これらの変数はシステムへの依
存性が高いため、設定には UNIX システム管理者の支援が必要になることがあり
ます。
環境変数 GLS の設定
次の環境変数を使用することにより、GLS (Global Language Support: 広域言語サポー
ト) 機能を利用できます。デフォルトである米国英語以外の言語を使用する場合は、こ
れらの環境変数を設定します。
v CLIENT_LOCALE
v DB_LOCALE
v SERVER_LOCALE
v DBLANG
v C8BITLEVEL
v ESQLMF
v GLS8BITFSYS
v GL_DATE
v GL_DATETIME
12
IBM Informix Dynamic Server 管理者ガイド
詳しくは、「IBM Informix: GLS ユーザーズ ガイド」を参照してください。
UNIX での環境変数の設定
次のいずれかの方法で UNIX の環境変数を設定します。
v コマンド行のシステム プロンプトで設定
システム プロンプトで環境変数を設定する場合、次回システムにログインするとき
に環境変数をもう一度割り当てる必要があります。
v $INFORMIXDIR/etc/informix.rc または .informix などの環境構成ファイル内で設定
環境構成ファイルは、各データベース サーバ ユーザの環境変数を設定する共通また
はプライベート ファイルです。環境構成ファイルを使用することにより、コマンド
行またはシェル ファイルで設定する環境変数の数を減らすことができます。
v .profile または .login、ファイル
環境変数をファイル .login、.cshrc、または .profile 内で設定する場合、環境変数はユ
ーザがシステムにログインするごとに自動的に割り当てられます。これらのファイル
の詳細については、使用しているオペレーティング システムのマニュアルを参照し
てください。
自動設定された環境変数を無効にするには、プライベート環境変数ファイル ~/.informix
を使用するか、環境変数に対してそれぞれ新しい値を割り当てます。ファイル .informix
および informix.rc については、「IBM Informix: Dynamic Server 管理者の参照」を参
照してください。
環境変数の妥当性を確認するには、ユーティリティ chkenv を使用します。
図 1 に、データベース サーバ miami の環境変数を含むサンプル設定ファイルを示しま
す。LD_LIBRARY_PATH は、データベース サーバの格納場所および ESQL/C ライブ
ラリ ファイルに設定されています。
第 1 章 データベース サーバのインストールと構成
13
setenv
setenv
setenv
setenv
INFORMIXDIR /ix/informix93
INFORMIXSQLHOSTS /ix/sqlhosts.unified
ONCONFIG onconfig.miami
INFORMIXSERVER miami
# setup to use J/Foundation
setenv JVPHOME /ix/informix93/extend/krakatoa
setenv CLASSPATH $JVPHOME/krakatoa.jar:$JVPHOME/jdbc.jar:/usr/java/lib/classes.zip
# Include jar paths for Java; include /usr/ccs/bin for C compiler:
setenv PATH $INFORMIXDIR/bin:$INFORMIXDIR/extend/krakatoa/krakatoa.jar:
$INFORMIXDIR/extend/krakatoa/jdbc.jar:/usr/ccs/bin:$PATH
setenv LD_LIBRARY_PATH $INFORMIXDIR/lib:$INFORMIXDIR/lib/esql:/usr/lib
図 1. サンプル設定ファイル
Windows での環境変数の設定
Windows では、インストール手順を実行すると、環境変数をそれぞれ正確な値に設定す
るファイル setenv.cmd が作成されます。ファイル setenv.cmd は、
%INFORMIXDIR% ディレクトリに格納されます。コマンド行ユーティリティを使用
する前に、setenv.cmd を実行する必要があります。
次の場所で、環境変数を設定したり、自動的に設定された環境変数を無効にしたりでき
ます。
v Windows では、「システム」>「環境」>「ユーザの環境変数」
v コマンド プロンプト セッションでの設定
v バッチ ファイル %INFORMIXDIR%¥dbservername.cmd
このバッチ ファイルを使用し、コマンド プロンプト ユーティリティを構成しま
す。
詳しくは、「IBM Informix: SQL ガイド: 参照」および 17 ページの『Windows でのフ
ァイル ONCONFIG の作成』を参照してください。
接続の構成
接続情報によって、クライアント アプリケーションはネットワーク上の任意の IBM
Informix データベース サーバに接続できます。特定のデータベース サーバへの接続デ
ータには、そのデータベース サーバ名、クライアントが接続のために使用できる接続の
種類、データベース サーバが実行されるコンピュータまたはノードのホスト名、認識さ
れているサービス名などがあります。
14
IBM Informix Dynamic Server 管理者ガイド
クライアント アプリケーションとデータベース サーバが同じコンピュータまたはノー
ド上にある場合でも、接続情報を準備する必要があります。
データベース サーバを初期化する前に、ファイル sqlhosts またはレジストリですべて
のネットワーク接続を指定する必要はありません。ただし、新規の接続を使用可能にす
るには、データベース サーバをオフラインにしてから、再びオンライン モードに戻す
必要があります。
接続の構成の詳細については、 53 ページの『第 3 章 クライアント/サーバ通信』を参
照してください。
UNIX 上で接続を構成する場合は、構成パラメータの LISTEN_TIMEOUT および
MAX_INCOMPLETE_CONNECTIONS を設定することも考慮します。これらのパラメー
タを設定し、接続を処理する Listener VP に過度の負荷をかけないようにすることによ
って、敵対的なサービス妨害 (DOS) アタックの危険を低減できます。詳しくは、 126
ページの『サービス妨害フラッディング アタックの制限 (UNIX)』を参照してくださ
い。
UNIX 上のファイル sqlhosts
UNIX では、ファイル sqlhosts に接続情報が格納されています。このファイルのデフォ
ルトの格納場所は、$INFORMIXDIR/etc/sqlhosts です。別の格納場所に接続情報を格納
する場合は、環境変数 INFORMIXSQLHOSTS を設定する必要があります。詳しく
は、68 ページの『ファイル sqlhosts およびレジストリ キー SQLHOSTS』を参照して
ください。
複数のデータベース サーバをセット アップして分散問合せを使用する場合、次のいず
れかの方法で、全 データベースの sqlhosts 情報を格納します。
v INFORMIXSQLHOSTS で指定される 1 つのファイル sqlhosts に格納
v データベース サーバ ディレクトリそれぞれのファイル sqlhosts に個別に格納
テキスト エディタまたは ISA を使用して、ファイル sqlhosts を編集します。詳しく
は、16 ページの『ISA を使用する接続の構成』を参照してください。
ネットワーク構成ファイル
ファイル sqlhosts に加えて、TCP/IP 接続には、ファイル /etc/hosts および /etc/services
内にエントリも必要になります。IPX/SPX 接続の場合、補助ファイルの名前はハードウ
ェア ベンダによって異なります。
ネットワーク セキュリティ ファイル
IBM Informix データベース サーバは、接続するときに UNIX のセキュリティ要件に従
います。 このため、UNIX のシステム管理者は /etc/passwd、etc/hosts、~/.rhosts、およ
びそのほかの関連ファイルを変更する必要がある場合があります。
第 1 章 データベース サーバのインストールと構成
15
ネットワーク構成ファイルおよびネットワーク セキュリティ ファイルについては、オ
ペレーティング システムのマニュアルで説明されています。
Windows のレジストリ sqlhosts
Windows では、レジストリ HKEY_LOCAL_MACHINE に sqlhosts 情報が格納されま
す。レジストリ情報は、データベース サーバのインストール手順によって準備されま
す。レジストリ HKEY_LOCAL_MACHINE を編集することはお勧めしません。
sqlhosts 情報を管理するには、ユーティリティ setnet32 を使用します。ユーティリティ
setnet32 については、使用するクライアントのマニュアルのインストール情報を参照し
てください。ただし、ユーティリティ setnet32 では、データベース サーバをデータベ
ース サーバ グループに割り当てることはできません。
ISA を使用する接続の構成
IBM Informix データベース サーバの接続情報およびエンタープライズ レプリケーショ
ンのデータベース サーバ グループを構成するには、IBM Informix Server Administrator
(ISA) を使用します。ISA により、UNIX 上のファイル sqlhosts、または Windows 上
のレジストリ sqlhosts を編集できます。詳しくは、ISA スクリーン内の指示またはオン
ライン ヘルプを参照してください。
ISA 内で、「構成」>「SQLHOSTS」を選択してください。
データベース サーバの構成
構成パラメータは、ファイル ONCONFIG に格納されています。製品のインストール
スクリプトにより、ほとんどの構成パラメータはデフォルトに設定されています。
構成パラメータおよびその監視方法については、 37 ページの『第 2 章 構成パラメー
タ』 および「IBM Informix: Dynamic Server 管理者の参照」の構成パラメータに関する
章を参照してください。構成値のために検査されるファイルの順序については、104 ペ
ージの『構成ファイルの処理』を参照してください。
ONCONFIG 構成ファイルの準備
INFORMIXDIR のサブディレクトリ etc にあるテンプレート ファイル onconfig.std に
は、多くの構成パラメータの初期値が格納されています。 このテンプレートをコピーし
て、特定の構成に合わせてカスタマイズします。
テンプレート ファイルには、多くの構成パラメータの初期値が格納されています。テキ
スト エディタまたは ISA を使用し、ファイル ONCONFIG 内の構成パラメータを変
更できます。
16
IBM Informix Dynamic Server 管理者ガイド
重要: テンプレート ファイルは変更および削除しないでください。 これらのファイル
は実際に機能する構成ファイルとしてではなく、テンプレートとして提供されて
います。
注: ファイル ONCONFIG のコピーでパラメータを省略した場合は、初期化中に、欠落
しているパラメータに対してファイル onconfig.std の値が使用されます。
UNIX でのファイル ONCONFIG の作成
データベース サーバの新規のインスタンスは、IBM Informix ソフトウェアをインスト
ールしたときに作成され、初期化されます。インストール スクリプトにより、自動的に
ファイル onconfig.demo が作成されます。
テキスト エディタを使用してファイル ONCONFIG を準備するには:
1. ファイル $INFORMIXDIR/etc/onconfig.std をコピーして名前を変更し、サブディレ
クトリ etc に格納します。(ISA を使用している場合は、この手順を省略してくださ
い。)
2. ONCONFIG 構成ファイルを編集するには、テキスト エディタまたは ISA を使用
します。
3. 環境変数 ONCONFIG を新しいファイル ONCONFIG の名前に設定します。
4. 新規インスタンスの場合、データベース サーバを初期化します。
新規インスタンスではない場合は、データベース サーバを停止して再起動します。
Windows でのファイル ONCONFIG の作成
Windows では、データベース サーバの新規のインスタンスは、IBM Informix ソフトウ
ェアをインストールしたときに作成され、初期化されます。新規データベース サーバ
インスタンスは、インスタンス マネージャ (instmgr.exe) で作成することもできます。
ファイル ONCONFIG は、インスタンス マネージャによって自動作成されます。
インスタンス マネージャを使用して、ファイル ONCONFIG を準備するには:
1. インスタンス マネージャを使用して、新規データベース サーバ インスタンスを作
成します。
詳しくは、18 ページの『インスタンス マネージャを使用する新規データベース サ
ーバ インスタンスの作成 (Windows)』を参照してください。
2. テキスト エディタまたは ISA を使用して、構成ファイル ONCONFIG を編集しま
す。
3. 環境変数 ONCONFIG を新しいファイル ONCONFIG の名前に設定します。
4. 構成の変更を有効にするには、データベース サーバを停止して再起動します。
a. 「コントロール パネル」の「サービス」で、Dynamic Server サービスを選択し
て、「停止」ボタンをクリックします。
第 1 章 データベース サーバのインストールと構成
17
b. 「スタート」ボタンをクリックします。
dbservername.cmd を使用して環境変数 ONCONFIG を変更するには:
1. ファイル %INFORMIXDIR%¥dbservername.cmd 内のセッションの環境変数
ONCONFIG を変更します。
2. dbservername .cmd を実行し、変更を有効にします。
ISA のサーバ セットアップを使用する構成のカスタマイズ
ISA のサーバ セットアップを使用して、稼働データベース サーバを構成できます。オ
プションで J/Foundation およびデータベースの格納領域を構成することもできます。詳
しくは、ISA のオンライン ヘルプおよび表示中の指示を参照してください。
サーバ セットアップを使用して構成をカスタマイズするには:
1. Web ブラウザを起動し、次の ISA の URL にアクセスします。
http://<hostname><domain_name>:
port_number/
ISA をインストールまたは起動していない場合は、「IBM Informix: Dynamic Server
インストール ガイド」を参照してください。
2. インストール時に設定したユーザ名とパスワードでログインします。
3. メインページで、データベース サーバ名を選択します。
4. ISA サーバ ビュー ページから、「サーバ セットアップ」をクリックします。
Informix Server Administrator を使用するファイル ONCONFIG の更新
ISA を使用して、構成パラメータの編集およびデータベース サーバすべての環境変数
の設定を行います。ISA により、自動的にファイル ONCONFIG が作成されます。
onconfig.std をコピーする必要はありません。
Informix Server Administrator を使用してファイル ONCONFIG を更新するには:
1. ISA で、設定ファイルを表示して環境変数を編集します。
2. データベース サーバ名を選択します。
3. ISA で、ファイル ONCONFIG を表示し特定の構成パラメータを変更します。
ISA により、自動的にファイル ONCONFIG が更新されます。
4. 変更を有効にするには、データベース サーバを停止して再起動します。
インスタンス マネージャを使用する新規データベース サーバ インスタンスの
作成 (Windows)
インスタンス マネージャを使用して、データベース サーバの新規インスタンスを作成
できます。ファイル ONCONFIG は、インスタンス マネージャによって自動作成され
18
IBM Informix Dynamic Server 管理者ガイド
ます。インスタンス マネージャおよびスケジューリング優先順位については、
「IBM Informix: Dynamic Server インストール ガイド (Microsoft Windows 用)」を参照
してください。
インスタンス マネージャを使用するには:
1. 「Dynamic Server」メニューの「サーバのインスタンス マネージャ」を選択しま
す。
2. 「新規作成」をクリックして、データベース サーバの新規インスタンスを作成し、
ウィザードの指示に従います。
3. データベース サーバのパフォーマンスを向上させるには、インスタンス マネージャ
でプロセス oninit のスケジューリング優先順位を選択します。Windows のデフォル
トのスケジューリング優先順位は、「標準」です。
4. 「サーバを削除する」をクリックして、データベース サーバ インスタンスを削除し
ます。
インスタンス マネージャを使用するデータベース サーバ インスタンスの名前
変更 (Windows)
インスタンス マネージャの名前変更オプションを使用して、データベース サーバ イン
スタンスの名前を変更することもできます。
データベース サーバ インスタンスの名前を変更するには:
1. 名前を変更するデータベース サーバ インスタンスをシャットダウンします。
2. 「Dynamic Server」メニューの「サーバのインスタンス マネージャ」を選択しま
す。
インスタンス マネージャが、使用可能なインスタンスを表示します。
3. 名前を変更するインスタンスを選択し、「Rename Server」をクリックします。
4. 表示されるダイアログ ボックスで、パスワードを入力し、新規データベース サーバ
を指定します。
サーバ インスタンスの名前変更が終わると、インスタンスを起動できます。
サーバ インスタンスの名前を変更する前に、管理者がファイル ONCONFIG または
MSGLOG の名前をカスタム名に変更した場合は、ファイルを手動で編集して名前を変
更する必要があります。
Java サポートの構成
IBM Informix Dynamic Server with J/Foundation により、Java UDR を開発したり、実
行したりできます。Java に対応しないデータベース サーバを構成し、次にこのサーバ
に変更を加え Java サポートを追加します。Java をサポートするようデータベース サー
バを構成するには、いくつかの追加の手順が必要になります。
第 1 章 データベース サーバのインストールと構成
19
Java ユーザ定義ルーチンをサポートするようデータベース サーバを構成するには:
1. SB 領域を作成して、ファイル Java JAR を保持します。
2. JVP プロパティ ファイルを作成します。
3. ファイル ONCONFIG の Java 構成パラメータを追加または変更します。
4. 環境変数を設定します。
セットアップ手順については、「IBM Informix: J/Foundation Developer’s Guide」を参照
してください。
データベース サーバの起動と管理
データベース サーバのインストールおよび構成が完了したら、次の 1 つ以上の手順を
実行する必要があります。
v アプリケーションへの接続の準備
v データベース サーバの起動とディスク領域の初期化
v 格納領域の作成
v システムのバックアップおよび復元のセット アップ
v 管理タスクの実行
データベース サーバの起動とディスク領域の初期化
UNIX のみ
データベース サーバをオンライン モードにするには、oninit と入力します。
新規のデータベース サーバを起動する場合は、コマンド oninit にフラグ -i を指定し
てディスク領域を初期化してから、データベース サーバをオンラインにします。
UNIX のみ の終り
Windows のみ
Windows では、データベース サーバはサービスとして実行されます。「コントロール
パネル」の「サービス」を使用して、データベース サーバをオンライン モードに移行
します。データベース サーバを初期化するには、Dynamic Server サービスをクリック
して、「Startup Parameters」ボックスに -iy と入力します。
Windows では、次のコマンドを使用して、初期化を行うこともできます。dbservername
にはデータベース サーバの名前を指定します。
starts dbservername -iy
20
IBM Informix Dynamic Server 管理者ガイド
Windows のみ の終り
警告: ディスク領域を初期化すると、データベース サーバ内のすべての既存のデータは
廃棄されます。ディスク領域の初期化は、新規のデータベース サーバを起動する
場合にのみ行ってください。
初期化の種類と関連するコマンドについては、 101 ページの『第 4 章 データベース サ
ーバの初期化』を参照してください。
自動起動の準備
データベース サーバの起動および停止を自動的に行うために、オペレーティング シス
テムのレジストリまたはスクリプトを準備します。
Windows での自動起動の準備
Windows で Informix のパスワードを変更する場合は、「コントロール パネル」の「サ
ービス」で変更します。
Windows の起動時にデータベース サーバを自動的に起動するには:
1. 「コントロール パネル」の「サービス」で、Dynamic Server サービスを選択して、
「Startup」ボタンをクリックします。
2. 「Status Type」ダイアログ ボックスで「Automatic」を選択します。
3. 「Log On As」ダイアログ ボックスで、「This Account」を選択して、テキスト ボ
ックスに informix が表示されていることを確認します。
UNIX の起動スクリプトと停止スクリプトの準備
UNIX 起動スクリプトを変更して、コンピュータがマルチユーザ モードに入ったとき
に、データベース サーバを自動的に初期化することができます。また、UNIX 停止スク
リプトを変更して、UNIX が停止したときに、制御された方法でデータベース サーバを
停止することもできます。
UNIX 起動スクリプトを準備するには、この UNIX 起動スクリプトに UNIX とデータ
ベース サーバのユーティリティ コマンドを追加します。その結果、このスクリプトに
よって次の手順を実行できるようになります。
ISA には、起動および停止の UNIX スクリプトのサンプルが用意されています。この
スクリプトは、$INFORMIXDIR/etc/ids-example.rc でカスタマイズできます。
UNIX 起動スクリプトを準備するには:
1. 環境変数 INFORMIXDIR をデータベース サーバがインストールされるディレクト
リの絶対パス名に設定します。
第 1 章 データベース サーバのインストールと構成
21
2. 環境変数 PATH をディレクトリ $INFORMIXDIR/bin ディレクトリを含むように設
定します。
3. 環境変数 ONCONFIG を目的の構成ファイルに設定します。
4. データベース sysmaster を更新したり、または必要に応じて作成できるように、環
境変数 INFORMIXSERVER を設定します。
5. oninit を実行してデータベース サーバを起動し、オンライン モードにします。
データベース サーバの複数のバージョンを初期化する、つまり複数常駐の場合は、
データベース サーバのインスタンスごとに ONCONFIG および
INFORMIXSERVER を再設定し、oninit を再実行する必要があります。
6. データベース サーバのバックアップを管理するために IBM Informix Storage
Manager (ISM) を使用している場合は、ノードごとに ISM サーバを起動する必要が
あります。
ISM サーバを起動する方法については、「IBM Informix: Dynamic Server インストー
ル ガイド」を参照してください。
異なるバージョンのデータベース サーバが異なるディレクトリにインストールされてい
る場合は、個々のバージョンごとに INFORMIXDIR を再設定して、上の手順を繰り返
す必要があります。
UNIX を停止するときに制御された方法でデータベース サーバを停止するには、UNIX
停止スクリプトに UNIX とデータベース サーバのユーティリティ コマンドを追加しま
す。その結果、このスクリプトによって次の手順を実行できるようになります。
UNIX 停止スクリプトを準備するには:
1. 環境変数 INFORMIXDIR をデータベース サーバがインストールされるディレクト
リの絶対パス名に設定します。
2. 環境変数 PATH をディレクトリ $INFORMIXDIR/bin ディレクトリを含むように設
定します。
3. 環境変数 ONCONFIG を目的の構成ファイルに設定します。
4. onmode のオプション -ky を実行します。データベース サーバが即時停止し、デー
タベース サーバはオフラインになります。
複数のバージョンのデータベース サーバを実行している場合、つまり複数常駐の場
合は、インスタンスごとに ONCONFIG を再設定し、onmode のオプション -ky を
再実行する必要があります。
異なるバージョンのデータベース サーバが異なるディレクトリにインストールされてい
る場合は、バージョンごとに INFORMIXDIR を再設定して、上の手順を繰り返す必要
があります。
22
IBM Informix Dynamic Server 管理者ガイド
UNIX 停止スクリプトでは、すべてのクライアント アプリケーションがそれぞれのトラ
ンザクションを停止した後に、データベース サーバ停止コマンドを実行してください。
アプリケーションへの接続の準備
データベース サーバがオンラインの場合、クライアント アプリケーションに接続し、
データベースの作成を開始できます。データベースの情報にアクセスする前に、クライ
アント アプリケーションをデータベース サーバ環境に接続する必要があります。デー
タベース サーバの接続および切断を行うには、次のクライアント プログラムから SQL
文を実行します。
v DB–Access
v SQL エディタ
v IBM Informix ESQL/C
v IBM Informix ODBC Driver
v IBM Informix JDBC Driver
データベースの作成については、「IBM Informix: データベース設計および実装 ガイ
ド」および「IBM Informix: SQL ガイド: チュートリアル」を参照してください。クラ
イアント アプリケーションの使用方法については、「IBM Informix: DB-Access ユーザ
ーズ ガイド」、「IBM Informix: ESQL/C Programmer’s Manual」、「IBM Informix:
ODBC Driver Programmer’s Manual」、または「IBM Informix: JDBC Driver
Programmer’s Guide」を参照してください。
格納領域およびチャンクの作成
格納域の構成を計画し、実装する必要があります。ディスク上のデータをどのように分
散するかで、データベース サーバのパフォーマンスは変わります。チャンク は、デー
タベース サーバに割り当てられた論理ボリューム、論理単位、または通常ファイルと同
一です。各チャンクの最大サイズは 4TB です。許容チャンク数は 32,766 個です。論理
格納領域 は、1 つ以上のチャンクで構成されます。
ヒント: 各チャンクの最大許容制限を 4TB にして利用するには、ディスク ドライブあ
たり 1 つのチャンクを割り当てます。このようなデータの分散により、パフォ
ーマンスが向上します。
データベース サーバを初期化したら、DB 領域、BLOB 領域、または SB 領域などの
格納領域を作成できます。ユーティリティ onspaces または ISA を使用して、格納領域
およびチャンクを作成します。
次の機能を使用している場合は、SB 領域を作成する必要があります。
v J/Foundation (JAR ファイルの保持に使用)
v エンタープライズ レプリケーション (スプールされた行データの保持に使用)
v スマート ラージ オブジェクト (BLOB 型および CLOB 型)
第 1 章 データベース サーバのインストールと構成
23
v マルチ表現型 (DataBlade または HTML 型など)
格納領域、および表領域やエクステントなどのその他の物理単位については、261 ペー
ジの『第 10 章 データ記憶域』を参照してください。割当ておよび格納領域の管理につ
いては、38 ページの『ディスク領域パラメータ』、および 311 ページの『第 11 章 デ
ィスク領域の管理』 を参照してください。
詳しくは、「IBM Informix: Dynamic Server エンタープライズ レプリケーション ガイ
ド」および「IBM Informix: J/Foundation Developer’s Guide」を参照してください。
ラージ チャンクのサポート
バージョン 9.4 以前の Dynamic Server から変換したばかりの場合は、2GB より大きい
チャンクはまだ有効になっていません。最大サイズ 4TB の 2047 を超えるラージ チャ
ンクとラージ オフセットをサポートするには、onmode -BC 1 を実行します。
データの検査は、onmode -BC 1 モードで行います。データが正しく変換されているこ
とが確認できたら、onmode -BC 2 を実行してサーバをラージ チャンク専用モードに
できます。
onmode -BC 2 を実行した後のリバージョンはサポートされていません。ラージ チャ
ンクのサポートを有効にすると、無効にできなくなります。
バックアップ システムおよび格納域のセットアップ
データをバックアップして復元するには、ON–Bar またはユーティリティ ontape のど
ちらかを選択します。ON–Bar または ontape のセットアップおよび使用方法について
は、42 ページの『パラメータのバックアップと復元』、および「IBM Informix: バック
アップおよび復元 ガイド」を参照してください。
ontape のセット アップ
バックアップ ツールとして ontape を使用する場合は、データをバックアップし、復元
する前に、記憶装置 (テープ ドライブ) をセット アップする必要があります。ユーテ
ィリティ ontape には、格納域マネージャは必要ありません。
格納域マネージャと ON-Bar のセット アップ
バックアップ ツールとして ON–Bar を使用する場合は、データをバックアップし、復
元する前に、格納域マネージャと記憶装置をセット アップする必要があります。
ON–Bar は IBM Informix Storage Manager (ISM) と一緒にパッケージされています。格
納域マネージャ は、バックアップを格納した記憶装置と記憶メディアを管理するアプリ
ケーションです。格納域マネージャはすべてのメディア ラベル作成、マウント要求、お
よび格納ボリュームを処理します。ISM では、一度に 4 つの記憶装置にデータをバッ
クアップできます。ISM によって、簡易テープ ドライブ、光ディスク装置、およびフ
ァイル システムにデータが格納されます。ただし、最新の記憶装置を使用したり、一度
24
IBM Informix Dynamic Server 管理者ガイド
に 5 つ以上の記憶装置にバックアップしたり、ネットワークを通じてバックアップを行
おうとする場合は、サード パーティ製の格納域マネージャの購入をお勧めします。
格納領域と論理ログのバックアップ スケジュールを計画する場合は、バックアップを実
行するための記憶装置とバックアップ オペレータを手配できることを確認してくださ
い。記憶装置と記憶メディアの構成および管理については、「IBM Informix: Storage
Manager 管理者ガイド」、またはサード パーティの格納域マネージャのマニュアルを
参照してください。
定型管理タスクの実行
管理者は、組織の必要性に応じて次の定期的なタスクを行う必要があります。 ただし、
インストールの状況によって必要なタスクは異なります。例えば、データベース サーバ
を常時稼働させておく場合は、データベース サーバをオフライン モードにする必要が
ないため、データベース サーバの動作モードの変更は定型タスクに含まれません。
データベース サーバ モードの変更
データベース サーバ管理者は、モードの変更によるデータベース サーバの起動と停止
を担当します。データベース サーバのモードの変更方法については、109 ページの『デ
ータベース サーバの動作モード』を参照してください。
データと論理ログ ファイルのバックアップ
障害の発生時にデータベースを確実に復旧できるように、格納領域と論理ログを頻繁に
バックアップすることをお勧めします。ユーティリティ archecker を使用して、
ON–Bar バックアップを検証することもできます。
格納領域のバックアップをどのくらいの頻度で行うかは、データの更新頻度とその重要
性によって異なります。バックアップ スケジュールでは、週 1 回の完全 (レベル 0)
バックアップ、毎日の差分 (レベル 1) バックアップ、1 時間ごとのレベル 2 バックア
ップを選択できます。また、DB 領域の追加、論理ログ ファイルの削除、ミラーリング
の有効化などの管理タスクを実行した後にも、レベル 0 バックアップを実行する必要が
あります。
各論理ログ ファイルがいっぱいになった場合、即時にバックアップしてください。これ
ら論理ログ ファイルのバックアップは、手動または自動のどちらでも行うことができま
す。ON–Bar および ontape の使用方法については、「IBM Informix: バックアップおよ
び復元 ガイド」を参照してください。
第 1 章 データベース サーバのインストールと構成
25
動作の監視
IBM Informix データベース サーバは、データベース サーバのすべての局面を監視でき
るように設計されています。30 ページの『データベース サーバの動作の監視』に、使
用可能な情報の説明、情報を取得する方法、およびその情報の推奨使用方法について記
載します。
一貫性検査
データの一貫性について、ときどき検査を実行し、調査することをお勧めします。この
タスクについては、 543 ページの『第 22 章 一貫性検査』を参照してください。
追加管理タスクの実行
ここでは、稼働データベース サーバで実行するさまざまな管理タスクについて説明しま
す。
ミラーリングの使用方法
ディスク ミラーリングを使用すると、データベース サーバは 2 つの領域にデータを書
き込みます。 ミラーリングを行うと、記憶装置の障害によってデータが失われることが
ありません。ミラーリングされているデータが何らかの理由で使用できなくなると、ユ
ーザは即時かつ透過的にそのデータのミラーにアクセスできるようになります。ミラー
リングについては、 465 ページの『第 18 章 ミラーリング』を参照してください。ミラ
ーリングに関連するタスクについては、 473 ページの『第 19 章 ミラーリングの使用方
法』 を参照してください。
重要: 論理ログ ファイル、物理ログ、ルート DB 領域を含むクリティカル DB 領域
は、ミラーリングすることをお勧めします。
データベース ログ機能状態の管理
各データベースで、デフォルトでトランザクション ログ機能を使用するかどうか、デー
タベースのデフォルトのロギング モードをバッファ付きにするか、バッファなしにする
か、ロギング モードを ANSI 標準準拠にするかどうかを指定できます。
ログ データベースには、次のタイプの表を作成できます。
v STANDARD
v TEMP
v RAW
詳しくは、294 ページの『一時表』と 375 ページの『第 12 章 ログ機能』を参照して
ください。ログ オプションを変更する方法については、 385 ページの『第 13 章 デー
タベース ログ機能モードの管理』を参照してください。
26
IBM Informix Dynamic Server 管理者ガイド
論理ログの管理
データベース サーバには、論理ログ と呼ばれる複数のファイルが格納されています。
論理ログには、チェックポイント レコードやチャンクの追加および削除など、データの
トランザクションおよび管理情報が記録されています。
論理ログの管理タスクには通常、論理ログ ファイルのバックアップ、追加、解放、サイ
ズ変更、および限界の指定が含まれます。
ロング トランザクションによりデータベース サーバがハングするのを防止するため、
データベース サーバはオンライン中に論理ログ ファイルを動的に割り当てます。
詳しくは、40 ページの『ログ パラメータ』と 393 ページの『第 14 章 論理ログ』を
参照してください。論理ログ構成の作成および変更については、 407 ページの『第 15
章 論理ログ ファイルの管理』 を参照してください。論理ログのバックアップについて
は、「IBM Informix: バックアップおよび復元 ガイド」を参照してください。
物理ログの管理
物理ログのサイズと格納場所を変更できます。物理ログの詳細については、41 ページの
『物理ログ パラメータ』を参照してください。431 ページの『第 16 章 物理ロギン
グ、チェックポイント、および高速復旧』、および 455 ページの『第 17 章 物理ログ
の管理』 を参照してください。
データベース サーバを起動すると、物理ログが空であるかどうかが検査されます。物理
ログが空になっていれば、制御された状態で停止したことを示します。物理ログが空で
ない 場合は、データベース サーバにより、高速復旧 と呼ばれる操作が自動的に実行さ
れます。 高速復旧は、システム障害が発生して 1 つ以上のトランザクションがコミッ
トされないまま残っている可能性がある場合に、データベースを自動的に復旧して物理
的および論理的に一貫性のある状態に戻すものです。
共有メモリの管理
共有メモリの管理には、次のタスクが必要となります。
v バッファのサイズや数の変更 (論理ログや物理ログのバッファのサイズ変更、または
共有メモリ バッファ プールでのバッファ数変更により行う)
v 必要に応じた共有メモリ パラメータ値の変更
v 強制常駐の変更 (オンまたはオフ、一時的変更またはセッションごとの変更)
v チェックポイント間隔の調整
v 共有メモリの仮想部へのセグメントの追加
v メモリ使用量および問合せ準備時間を削減するための SQL 文キャッシュの使用方法
第 1 章 データベース サーバのインストールと構成
27
共有メモリがデータベース サーバによりどのように使用されるかについては、 203 ペー
ジの『第 8 章 共有メモリ』を参照してください。詳しくは、43 ページの『共有メモリ
パラメータ』と 245 ページの『第 9 章 共有メモリの管理』を参照してください。
仮想プロセッサの管理
VP (Virtual Processor: 仮想プロセッサ) の構成と管理は、データベース サーバのパフォ
ーマンスに直接的な影響を与えます。データベース サーバに最適な VP の個数および
組合せは、使用するハードウェアと、データベース サーバによってサポートされている
アプリケーションの種類に依存します。
仮想プロセッサについては、 161 ページの『第 6 章 仮想プロセッサとスレッド』を参
照してください。詳しくは、46 ページの『仮想プロセッサ パラメータ』と 195 ページ
の『第 7 章 仮想プロセッサの管理』を参照してください。
並列データベース問合せの管理
データベースで使用するリソースを制御して、意思決定支援問合せを並列に実行できま
す。このためには、意思決定支援問合せの要件と OLTP (Online Transaction Processing:
オンライン トランザクション処理) 問合せの要求とをバランスよく処理する必要があり
ます。 考慮の対象となるリソースは、共有メモリ、スレッド、一時表領域、および走査
帯域幅です。並列データベース問合せ (PDQ)、およびフラグメント化が PDQ のパフォ
ーマンスに与える影響については、「IBM Informix: Dynamic Server パフォーマンス ガ
イド」を参照してください。構成パラメータの詳細については、45 ページの『意思決定
支援パラメータ』を参照してください。
データ レプリケーションの使用方法
データ レプリケーション とは、複数のサイトでデータベース オブジェクトを表すプロ
セスのことを指します。Dynamic Server では、高可用性データ レプリケーション
(HDR) と IBM Informix エンタープライズ レプリケーション (ER) の 2 種類のデータ
レプリケーション方法がサポートされています。同一のデータベース サーバ上で、
HDR と エンタープライズ レプリケーション を組み合わせることができます。詳しく
は、「IBM Informix: Dynamic Server エンタープライズ レプリケーション ガイド」を
参照してください。
高可用性データ レプリケーション
HDR では、データベース全体が別のデータベース サーバに同期レプリケーションされ
るため、重大なコンピュータ障害が発生した場合にホット スタンバイを行うことができ
ます。詳しくは、48 ページの『高可用性データ レプリケーション パラメータ』、483
ページの『第 20 章 高可用性データ レプリケーション』、および 511 ページの『第
21 章 高可用性データ レプリケーションの使用方法』 を参照してください。
28
IBM Informix Dynamic Server 管理者ガイド
エンタープライズ レプリケーション
エンタープライズ レプリケーションでは、地理的に分散しているデータベース サーバ
間で非同期レプリケーションが行われ、データベース全体、データベースのサブセッ
ト、および表を複製できます。また、エンタープライズ レプリケーションはユーザ定義
データ型を一部サポートしています。エンタープライズ レプリケーションの詳細につい
ては、「IBM Informix: Dynamic Server エンタープライズ レプリケーション ガイド」
を参照してください。
監査機能の使用方法
データベース サーバの監査機能を使用する場合は、監査レコードの格納場所、エラー状
態の処理方法などを指定する必要があります。 また、不正アクセスの疑いがある場合
は、ユーザを監査する方法を変更する必要が生じることもあります。監査に関連するタ
スクについては、51 ページの『監査パラメータ (UNIX)』、および「IBM Informix:
Trusted Facility Guide」を参照してください。
分散問合せの使用方法
データベース サーバでは、複数のデータベース サーバ上の複数のデータベースに対
し、問合せまたは更新を行うことができます。このタイプの問合せのことを、分散問合
せ と呼びます。データベース サーバは、単一のホスト コンピュータ、同じネットワー
ク、またはゲートウェイ上に常駐できます。
分散問合せの詳細については、「IBM Informix: データベース設計および実装 ガイド」
および「IBM Informix: SQL ガイド: チュートリアル」を参照してください。
広域トランザクションの使用方法
広域トランザクション とは、複数のデータベース サーバが関係するトランザクション
です。IBM Informix データベース サーバでは、次の 2 種類の広域トランザクションを
サポートしています。
v トランザクション マネージャでの TP/XA
v 2 相コミット
Informix では、複数のデータベース サーバ間でも分散問合せを一様にコミットまたはロ
ールバックすることのできる 2 相コミット プロトコル を使用しています。詳しくは、
557 ページの『第 23 章 多相コミット プロトコル』を参照してください。
トランザクション マネージャの使用方法
トランザクション マネージャ は、端末およびデータ復旧を管理します。TP/XA ライブ
ラリにより、サード パーティのトランザクション マネージャと X/Open 環境での IBM
Informix データベースとの間で通信できます。詳しくは、「IBM Informix: TP/XA
Programmer’s Manual」および 558 ページの『トランザクション マネージャ』を参照し
てください。
第 1 章 データベース サーバのインストールと構成
29
データベース サーバの動作の監視
次の情報源から、データベース サーバの動作に関する情報を収集できます。
情報源
UNIX
Windows
イベント アラーム
X
X
IBM Informix Server Administrator (ISA)
X
X
メッセージ ログ
X
X
ON–Monitor
X
ユーティリティ oncheck
X
ユーティリティ onperf
X
ユーティリティ onstat
X
X
SMI 表
X
X
システム コンソール
X
X
X
Windows イベント ビューア
X
Windows パフォーマンス モニタ
X
以降に、これらの各情報源について説明します。
イベント アラーム
緊急の対応を要する状況のレポートには、イベント アラーム機能が使用されます。イベ
ント アラーム機能を使用するには、構成パラメータ ALARMPROGRAM を、必要な管
理操作を実行する実行可能ファイルの絶対パス名に設定します。
詳しくは、「IBM Informix: Dynamic Server 管理者の参照」のイベント アラームについ
ての付録、および構成パラメータに関する章を参照してください。
IBM Informix Server Administrator (ISA)
ISA は、ブラウザ ベースのツールで、これにより IBM Informix データベース サーバ
全体のシステム管理を行うことができます。ISA により、ほとんどすべての Informix
データベース サーバ コマンド行の機能にアクセスすることもできます。
ISA の詳細については、「IBM Informix: Dynamic Server 管理者の参照」のユーティリ
ティに関する章、および ISA のオンライン ヘルプを参照してください。
メッセージ ログ
データベース サーバのメッセージ ログ は、オペレーティング システム ファイルで
す。データベース サーバのメッセージ ログに格納されるメッセージは、通常、即時の
処置を要求するものではありません。緊急の対応を要する状況のレポートには、イベン
30
IBM Informix Dynamic Server 管理者ガイド
ト アラーム機能が使用されます。30 ページの『イベント アラーム』を参照してくださ
い。メッセージ ログは ISA で表示できます。
メッセージ ログ メッセージの送信先の指定
メッセージ ログのパス名を指定するには、構成パラメータ MSGPATH を設定します。
MSGPATH に対する変更は、データベース サーバを停止して再起動すると有効になり
ます。MSGPATH の詳細については、「IBM Informix: Dynamic Server 管理者の参照」
の構成パラメータに関する章を参照してください。
メッセージ ログの監視
1 日に 1、2 回メッセージ ログを監視して、処理が正常に行われ、イベントが適切にロ
グに記録されていることを確認してください。メッセージ ログの名前と 20 の最新エン
トリを取得するには、コマンド onstat のオプション -m を使用します。メッセージ ロ
グ全体を読むには、テキスト エディタを使用します。発生時にメッセージを表示するに
は、UNIX コマンドの tail -f などのオペレーティング システム コマンドを使用しま
す。
新規エントリはメッセージ ログ ファイルに追加されるため、メッセージ ログのサイズ
を監視する必要があります。必要に応じてログを編集してください。また、テープにバ
ックアップしてから削除するようにしてください。
データベース サーバに障害が発生した場合、メッセージ ログは、後に不測の事態を引
き起こすことになるイベントを調査するための、監査記録としての役割を果たします。
場合によっては、メッセージ ログに、問題の性質と解決のための処置が示されることが
あります。
データベース サーバ処理の分刻みのアカウントをデータベース サーバ メッセージ ロ
グで読み取り、問題が発生する前にイベントをキャッチできます。ただし、この種類の
監視を実行する必要はありません。
詳しくは、「IBM Informix: Dynamic Server 管理者の参照」のメッセージに関する章を
参照してください。「IBM Informix: Error Messages」も参照してください。
ON-Monitor (UNIX)
ON–Monitor を使用すると、データベース サーバの多くの要素について簡単に監視でき
ます。ほとんどの監視機能は、「Status」メニューから利用できます。詳しくは、
「IBM Informix: Dynamic Server 管理者の参照」の ON–Monitor に関するセクションを
参照してください。
ユーティリティ oncheck
ユーティリティ oncheck を使用すると、表に使用されるページ数、予約ページの内容、
および表のエクステント数など、データベース ディスクの構成と使用についての情報を
第 1 章 データベース サーバのインストールと構成
31
表示できます。oncheck の詳細については、「IBM Informix: Dynamic Server 管理者の
参照」のユーティリティに関する章を参照してください。
ツール onperf (UNIX)
データベース サーバでは、onperf というグラフィカル監視ツールがサポートされてい
ます。このツールを使用して、ユーティリティ onstat によって提供されるほとんどの
メトリックを監視できます。このツールにはユーティリティ onstat と比較して次のよ
うな利点があります。
v リアル タイムでメトリックの値をグラフィカルに表示します。
v 監視対象のメトリックを選択できます。
v メモリ内のバッファに最近の履歴メトリック データを保存します。このデータは、
最近の傾向を分析する場合に利用できます。
v パフォーマンス データをファイルに保存できます。
ツール onperf の詳細については、「IBM Informix: Dynamic Server パフォーマンス ガ
イド」を参照してください。
ユーティリティ onstat
ユーティリティ onstat を使用すると、データベース サーバの共有メモリをコマンド行
から監視できます。ユーティリティ onstat を使用して共有メモリからデータを読み込
み、コマンドの実行中のその瞬間の正確な統計情報のレポートを取得できます。つま
り、ユーティリティ onstat により、バッファ、ロック、およびユーザの変更など、処
理中に動的に行われる変更の情報が提供されます。
SMI 表
SMI (System-Monitoring Interface) 表は、データベース サーバによって管理される特殊
な表で、データベース サーバの状態に関する動的な情報が格納されています。SMI 表
で SELECT 文を使用すると、データベース サーバについてほとんどすべての情報を得
ることができます。SMI 表については、「IBM Informix: Dynamic Server 管理者の参
照」の sysmaster データベースに関する章を参照してください。
システム コンソール
データベース サーバ管理者に対して有益なメッセージは、システム コンソール によっ
て送信されます。コンソール メッセージの送信先パス名を指定するには、構成パラメー
タ CONSOLE で設定します。CONSOLE の詳細については、「IBM Informix: Dynamic
Server 管理者の参照」の構成パラメータに関する章を参照してください。
32
IBM Informix Dynamic Server 管理者ガイド
CONSOLE に対する変更は、データベース サーバを停止して再起動すると有効になり
ます。
Windows のみ
データベース サーバのシステム管理者は、任意のノードからコンソールにログインし
て、システム管理タスクと監視タスクを実行できます。
Windows のみ の終り
UNIX オペレーティング システム ツール
データベース サーバはホスト コンピュータのオペレーション システムを利用して、
CPU、メモリ、さまざまなバッファなしディスク入出力インターフェイス、およびファ
イルなどのシステム リソースにアクセスします。各オペレーティング システムには、
システム リソースの使用状況を報告する独自のユーティリティ セットがあります。こ
のため、同じ名前の監視ユーティリティであっても、オプションおよび情報表示がオペ
レーティング システムによって異なる場合があります。
次の表に、標準的な UNIX オペレーティング システムのリソース監視ユーティリティ
を示します。オペレーティング システム リソースの監視方法については、システム管
理ガイドを参照してください。
UNIX
ユーティリティ
説明
vmstat
仮想メモリの統計を表示します。
iostat
入出力使用率の統計を表示します。
sar
さまざまなリソースの統計を表示します。
ps
アクティブなプロセス情報を表示します。
cron
一定の間隔でコマンドまたはプログラムを実行するシステム スケジューラによ
り、システム リソースの状態をキャプチャします。オペレーティング システムに
用意されているそのほかのスケジューリング ツールを使用することもできます。
Windows イベント ビューア
イベント ビューアは、オペレーティング システム、そのほかのアプリケーション、お
よびデータベース サーバについて情報メッセージ、警告メッセージ、およびエラー メ
ッセージを表示するものです。
Windows でデータベース サーバ メッセージを表示するには:
1. 「管理ツール」>「イベント ビューア」を選択します。
2. 「ログ」>「セキュリティ」を選択します。
第 1 章 データベース サーバのインストールと構成
33
3. より詳細なメッセージを表示するには、対象のイベントをダブルクリックします。
Windows パフォーマンス モニタ
Windows パフォーマンス モニタ (perfmon.exe) は、プロセッサ、メモリ、キャッシ
ュ、スレッド、プロセスなどのリソースを監視します。さらに、パフォーマンス モニタ
には、グラフ、警告、レポート機能や、後から分析できるように情報をログ ファイルに
保存する機能も用意されています。
Windows でパフォーマンス モニタを表示するには、「管理ツール」>「パフォーマンス
監視」を選択します。
Windows ユーティリティ
次の Informix ユーティリティを使用すると、Windows でのデータベース サーバ管理を
簡略化できます。
Windows
ユーティリティ
ixpasswd.exe
説明および使用例
ユーザ informix としてログオンするサービスすべてのログオン パスワードを変
更します。パスワードは対話形式で変更することも、オプション -y を使用しコマ
ンド行で変更することもできます。このユーティリティにより、informix パスワ
ードを変更するたびに各サービスのパスワードを手動で変更する必要がなくなりま
す。
ローカルでログオンして ixpasswd を実行している場合、ローカルのユーザ
informix としてログオンするサービスのパスワードが変更されます。domain でロ
グオンして、ixpasswd を実行する場合、domain¥informix としてログオンしてい
るサービスのパスワードを変更します。
使用法: ixpasswd [-y new_password]
34
IBM Informix Dynamic Server 管理者ガイド
Windows
ユーティリティ
ixsu.exe
説明および使用例
指定のユーザで実行されるコマンド行ウィンドウを起動します。ドメイン名を指定
しない限り、ユーザはローカル ユーザになります。ユーザ名を指定しないと、デ
フォルトのユーザは、informix になります。したがって、informix として実行す
る必要のある DBA タスクを実行するために、現在のユーザをログオフし、もう
一度 informix としてログオンする必要がなくなります。
ユーティリティ ixsu には次の高度なユーザ権利が必要です。
v オペレーティング システムとして動作する権利
v クォータを増加させる権利
v プロセス レベルのトークンを置換する権利
Windows NT で高度なユーザ権利を構成するには、「ユーザ マネージャ」>「ポ
リシー」>「ユーザ権利」を選択して、オプション「高度なユーザ権利」にチェッ
クマークを付けます。現在のユーザの高度なユーザ権利を変更するには、ログオフ
して再度ログオンし、新しい権利を有効にする必要があります。
使用法: ixsu [[domain¥]username]
ユーティリティ ixsu は、コマンド Windows 2000 runas に相当します。runas を
使用して別のユーザとしてコマンド シェルを実行するには次のようにします。
使用法: runas /user:username cmd
ntchname.exe
Dynamic Server レジストリ エントリを古いホスト名から新しいものに変更しま
す。ホスト名を変更した後、ntchname を実行します。このユーティリティは、ユ
ーザ環境変数を変更しません。
ntchname を実行した後で、ファイル
%INFORMIXDIR%¥%INFORMIXSERVER%.cmd を修正し、
INFORMIXSQLHOSTS を新しいホスト名に変更します。
使用法: ntchname old_name new_name
第 1 章 データベース サーバのインストールと構成
35
36
IBM Informix Dynamic Server 管理者ガイド
第 2 章 構成パラメータ
データベース サーバ識別パラメータ . . .
ディスク領域パラメータ . . . . . . . .
ルート DB 領域 . . . . . . . . .
ルート DB 領域のミラーリング . . . .
そのほかの領域管理パラメータ . . . .
ログ パラメータ . . . . . . . . . .
論理ログ . . . . . . . . . . . .
物理ログ パラメータ . . . . . . . .
ロールバックおよび復旧パラメータ . . .
パラメータのバックアップと復元 . . . .
メッセージ ログ パラメータ . . . . . .
共有メモリ パラメータ . . . . . . . .
共有メモリ サイズの割当て . . . . .
共有メモリ領域の割当て . . . . . . .
共有メモリ バッファ制御 . . . . . .
SQL 文キャッシュ使用方法. . . . . .
意思決定支援パラメータ . . . . . . . .
データベース サーバ処理パラメータ . . .
仮想プロセッサ パラメータ . . . . .
時間間隔 . . . . . . . . . . . .
復元パラメータ . . . . . . . . . . .
高可用性データ レプリケーション パラメータ
イベント アラーム パラメータ . . . . .
ダンプ パラメータ (UNIX) . . . . . . .
ディレクティブ パラメータ . . . . . .
接続パラメータ . . . . . . . . . . .
セキュリティ関連パラメータ . . . . . .
専用パラメータ . . . . . . . . . . .
監査パラメータ (UNIX) . . . . . . .
光メディア パラメータ . . . . . . .
UNIX パラメータ . . . . . . . . .
構成情報の監視 . . . . . . . . . . .
© Copyright IBM Corp. 1996, 2004
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
38
38
38
39
39
40
40
41
41
42
42
43
43
43
45
45
45
46
46
47
47
48
48
49
49
50
50
50
51
51
51
51
37
本章について
この章では、データベース サーバによって使用される構成パラメータ ONCONFIG の
概要、および構成情報のさまざまな監視方法を示します。この章の内容は、特定の環境
で最も重要なパラメータ、およびデータベース サーバのパフォーマンスを調整するとき
まで据え置くことができるパラメータの決定に役立ちます。各パラメータの詳細につい
ては、「IBM Informix: Dynamic Server 管理者の参照」の構成パラメータに関する章を
参照してください。
データベース サーバ識別パラメータ
パラメータ SERVERNUM および DBSERVERNAME を使用すると、データベース サ
ーバの各インスタンスを一意に識別できます。
構成パラメータ
説明
DBSERVERALIASES
データベース サーバのインスタンスに対して、単数または複数の代替名を指定
します。別名の最大値は 32 です。
DBSERVERALIASES を使用して、クライアントが接続できる複数の listen エ
ンドポイントを作成する方法については、188 ページの『クライアント/サーバ
接続のリスン スレッドとポーリング スレッド』を参照してください。
警告: 構成パラメータ DBSERVERNAME を変更したら、必ずデータベース サ
ーバを再起動してください。
DBSERVERNAME
データベース サーバのインスタンスに一意の名前を指定します。環境変数
INFORMIXSERVER と sqlhosts 情報で、この DBSERVERNAME を使用しま
す。
SERVERNUM
データベース サーバ インスタンスに一意の整数を指定します。この
SERVERNUM は、共有メモリ セグメント アドレスを決定するために使用さ
れます。
ディスク領域パラメータ
ディスク領域パラメータは、データベース サーバによる格納領域の管理方法を制御しま
す。
ルート DB 領域
最初に割り当てる記憶領域を、ルート データベース領域 またはルート DB 領域 とい
います。この領域には、データベース サーバに関する基本的な情報がすべて格納されて
います。 ルート DB 領域について記述するには、次のパラメータを使用します。
38
IBM Informix Dynamic Server 管理者ガイド
構成パラメータ
説明
ROOTNAME
ルート DB 領域の名前を指定します。ROOTNAME には記述的な名称を任意で
選択できますが、通常は rootdbs と呼ばれます。詳しくは、275 ページの『ル
ート DB 領域』を参照してください。
ROOTOFFSET
オフセットを指定します。ROOTOFFSET を設定するタイミングについては、
314 ページの『オフセットの指定』を参照してください。
ROOTPATH
ルート DB 領域に割り当てる格納域のパス名を指定します。格納域を選択し、
割り当てる方法については、314 ページの『ディスク領域の割当て』を参照し
てください。
ROOTSIZE
ルート DB 領域に割り当てる領域の容量を指定します。ルート DB 領域に適
切なサイズを選択する方法については、302 ページの『ルート DB 領域のサイ
ズ』を参照してください。
TBLTBLFIRST
表領域表領域の初期エクステント サイズを KB 単位で指定します。
TBLTBLNEXT
表領域表領域の追加エクステント サイズを KB 単位で指定します。
ルート DB 領域のミラーリング
ミラーリングを使用していれば、ディスクの障害が発生しても、データベース サーバを
オンライン モードにしたまま、その障害からすばやく復旧できます。 ミラーリングを
有効にすると、同じデータが 2 つのディスクに同時に格納されます。 一方のディスク
に障害が発生しても、もう一方のディスクのデータは使用可能です。 ルート DB 領域
のミラーリングについて記述するには、次のパラメータを使用します。
構成パラメータ
説明
MIRROR
ミラーリングを有効にするか無効にするかを定義します。詳しくは、 473 ペー
ジの『第 19 章 ミラーリングの使用方法』 を参照してください。
MIRRORPATH
ルート DB 領域の初期チャンクをミラーリングするチャンクの絶対パス名を指
定します。
MIRROROFFSET
初期ルート DB 領域チャンクのミラーとして機能するデバイスのオフセットを
指定します。詳しくは、314 ページの『オフセットの指定』を参照してくださ
い。
そのほかの領域管理パラメータ
特定のタイプのディスク領域を管理する方法を指定するには、次のパラメータを使用し
ます。
第 2 章 構成パラメータ
39
構成パラメータ
説明
DBSPACETEMP
一時表を格納するためにデータベース サーバで使用する DB 領域のリストを
指定します。詳しくは、330 ページの『一時 DB 領域の作成』を参照してくだ
さい。
FILLFACTOR
インデックスを作成するときに、インデックス ページをどの程度充てんするか
を指定します。詳しくは、「IBM Informix: Dynamic Server パフォーマンス ガ
イド」を参照してください。
ONDBSPACEDOWN
クリティカル DB 領域以外の無効な DB 領域を処理する方法を定義します。
SBSPACENAME
デフォルト SB 領域の名前を指定します。詳しくは、272 ページの『データの
格納場所の制御』を参照してください。
SBSPACETEMP
デフォルト一時 SB 領域の名前を指定します。詳しくは、286 ページの『一時
SB 領域』を参照してください。
SYSSBSPACENAME
特定のユーザ定義データ型に対して UPDATE STATISTICS 文を使用して収集
する統計情報を格納する SB 領域の名前を指定します。
ログ パラメータ
ログ パラメータを使用して、物理ログおよび論理ログを制御します。
論理ログ
論理ログには、データベース サーバ インスタンスに対して行われた変更のレコードが
格納されます。論理ログ レコードは、トランザクションのロールバックやシステム障害
からの復旧などに使用します。論理ログについて記述するには、次のパラメータを使用
します。
40
IBM Informix Dynamic Server 管理者ガイド
構成パラメータ
説明
DYNAMIC_LOGS
データベース サーバが新しい論理ログ ファイルを自動的に割り当てるかどう
かを決定します。詳しくは、 393 ページの『第 14 章 論理ログ』を参照してく
ださい。
LOGBUFF
ディスクにフラッシュされるまで論理ログ レコードを保持するバッファに対し
て、予約する共有メモリ容量を決定します。論理ログ バッファを調整する方法
については、216 ページの『論理ログ バッファ』を参照してください。
LOGFILES
ディスクにバックアップされるまで論理ログ レコードを格納しておく論理ログ
ファイルの数を指定します。詳しくは、409 ページの『ログ ファイルのサイズ
と数の見積り』を参照してください。
LOGSIZE
各論理ログ ファイルのサイズを指定します。
LTXHWM
利用可能な論理ログ領域の割合を指定します。論理ログ領域がいっぱいになる
と、データベース サーバによるロング トランザクションの検査が開始されま
す。詳しくは、427 ページの『ロング トランザクションのロールバックに対す
る限界の設定』を参照してください。
LTXEHWM
ロールバックされているロング トランザクションが論理ログに排他アクセスで
きる点を指定します。
物理ログ パラメータ
物理ログには、最終チェックポイント以降に変更されたすべてのページ (単位または格
納域) のイメージが格納されます。物理ログと論理ログを組み合わせれば、システム障
害からすばやく復旧できます。物理ログについて記述するには、次のパラメータを使用
します。
構成パラメータ
説明
PHYSBUFF
変更しようとしているページの一時格納領域として使用するバッファに対し
て、予約する共有メモリ容量を決定します。
PHYSDBS
物理ログが常駐する DB 領域の名前を指定します。
PHYSFILE
物理ログのサイズを指定します。
ロールバックおよび復旧パラメータ
ロールバックと復旧に影響を与える次の引数パラメータの使用方法は、「IBM Informix:
Dynamic Server パフォーマンス ガイド」に記載されています。 431 ページの『第 16
章 物理ロギング、チェックポイント、および高速復旧』も参照してください。
第 2 章 構成パラメータ
41
構成パラメータ
説明
FAST_RESTART_CKPT
_FUZZYLOG
復旧のロールフォワード フェーズ時に、使用済みページ表 (DPT) レコード
を、チェックポイントのファジー チェックポイント上の物理ログへフラッシュ
できるようにします。FAST_RESTART_PHYSLOG と同じように、このパラメ
ータにより、リカバリ時間が減少します。
FAST_RESTART_
PHYSLOG
復旧のロールフォワード時に、データベース サーバが、ファジー チェックポ
イントの物理ロギングを実行できるようにするパラメータ
パラメータのバックアップと復元
データベース サーバ データの格納領域、および論理ログのバックアップを作成するに
は、ON–Bar または ontape を使用します。格納領域のバックアップを確認するには、
ON–Bar を使用します。 ON–Bar および ontape については、「IBM Informix: バック
アップおよび復元 ガイド」を参照してください。
ユーティリティ ontape を使用する場合は、次のパラメータを使用して、テープ デバイ
スについて指定します。テープの全物理容量を使用するには、TAPESIZE と
LTAPESIZE を 0 に設定し、メディア終端まで読取り/書込みができるようにします。
構成パラメータ
説明
TAPEDEV
テープ デバイスを指定します。
TAPEBLK
テープ デバイスのブロック サイズを指定します。
TAPESIZE
各テープに書き込むデータの最大量を指定します。
LTAPEDEV
テープ デバイスを指定します。
LTAPEBLK
テープ デバイスのブロック サイズを指定します。
LTAPESIZE
各テープに書き込むデータの最大量を指定します。
メッセージ ログ パラメータ
メッセージ ファイルは、データベース サーバがどのように機能しているかに関する情
報を提供するものです。
構成パラメータ
説明
CONSOLE (UNIX)
コンソール メッセージのパス名を指定します。詳しくは、32 ページの『シス
テム コンソール』を参照してください。
MSGPATH
データベース サーバのメッセージ ログ ファイルのパス名を指定します。詳し
くは、30 ページの『メッセージ ログ』を参照してください。
42
IBM Informix Dynamic Server 管理者ガイド
共有メモリ パラメータ
共有メモリ パラメータにより、データベース サーバのパフォーマンスは影響を受けま
す。
共有メモリ サイズの割当て
共有メモリを割り当てる方法と場所を制御するには、次のパラメータを使用します。
構成パラメータ
説明
SHMADD
メモリの追加が要求された場合に追加されるメモリの差分を指定します。
SHMBASE
共有メモリのベース アドレスを指定するもので、コンピュータによって値が異
なります。値は、プラットフォームによっても、プロセッサが 32 ビットであ
るか 64 ビットであるかによっても異なります。どの SHMBASE 値を使用す
るかについては、マシン ノートを参照してください。
SHMTOTAL
データベース サーバが使用できるメモリの最大容量を指定します。
SHMVIRTSIZE
データベース サーバによって最初に確保されるメモリの部分のサイズを指定し
ます。
これらのパラメータの詳細については、 203 ページの『第 8 章 共有メモリ』を参照し
てください。
データベース サーバの共有メモリ構成パラメータに関するプラットフォーム固有の情報
については、UNIX の場合は マシン ノート ファイルを、Windows の場合は リリース
ノート ファイルを参照してください。
共有メモリ領域の割当て
共有メモリで領域を割り当てる方法を制御するには、次のパラメータを使用します。
第 2 章 構成パラメータ
43
構成パラメータ
説明
BUFFERPOOL
DB 領域が使用する異なるページ サイズごとに定義する必要のある、バッ
ファ プールに関する情報を指定します。 325 ページの『デフォルトでない
ページ サイズを使用する DB 領域の作成』を参照。
バージョン 10.0 より前に BUFFERS、LRUS、LRU_MAX_DIRTY、および
LRU_MIN_DIRTY 構成パラメータで指定していた情報は、BUFFERPOOL
構成パラメータを使用して指定するようになりました。
CKPTINTVL
チェックポイントの実行前に経過する最大許容時間隔を指定します。詳しく
は、 431 ページの『第 16 章 物理ロギング、チェックポイント、および高
速復旧』 を参照してください。
DD_HASHMAX
データ ディクショナリ キャッシュの各ハッシュ バケットについて、エン
トリの最大数を指定します。DD_HASHMAX の設定の詳細については、
「IBM Informix: Dynamic Server パフォーマンス ガイド」を参照してくだ
さい。
DD_HASHSIZE
データ ディクショナリ キャッシュのハッシュ バケットの数を指定しま
す。DD_HASHSIZE の設定の詳細については、「IBM Informix: Dynamic
Server パフォーマンス ガイド」を参照してください。
DEF_TABLE_
LOCKMODE
新しい表のページまたは行に、ロック モードを設定します。詳しくは、
「IBM Informix: SQL ガイド: チュートリアル」を参照してください。
LOCKS
トランザクションの処理中にデータベース サーバのユーザ プロセスで利用
できるロックの初期数を指定します。詳しくは、 245 ページの『第 9 章 共
有メモリの管理』および「IBM Informix: Dynamic Server パフォーマンス
ガイド」を参照してください。
PC_POOLSIZE
UDR (User-defined Routine: ユーザ定義ルーチン) キャッシュに格納でき
る、SPL ルーチンおよび外部ルーチンの両方の UDR の数を指定します。
PC_POOLSIZE の設定の詳細については、「IBM Informix: Dynamic Server
パフォーマンス ガイド」を参照してください。
PC_HASHSIZE
UDR キャッシュのハッシュ バケットの数を指定します。PC_HASHSIZE の
設定方法の詳細については、「IBM Informix: Dynamic Server パフォーマン
ス ガイド」を参照してください。
RESIDENT
共有メモリの常駐を強制するかどうかを指定します。詳しくは、 245 ページ
の『第 9 章 共有メモリの管理』および「IBM Informix: Dynamic Server パ
フォーマンス ガイド」を参照してください。
STACKSIZE
データベース サーバ ユーザ スレッド用のスタック サイズを指定します。
スタックの使用については、225 ページの『スタック』を参照してくださ
い。
44
IBM Informix Dynamic Server 管理者ガイド
共有メモリ バッファ制御
共有メモリ バッファ プールを制御するには、次のパラメータを使用します。
構成パラメータ
説明
CLEANERS
ページをディスクにフラッシュするときと、ページを共有メモリ プールに
戻すときに使用するスレッド数を制御します。234 ページの『ディスクへの
データ フラッシュ』を参照。
RA_PAGES および
RA_THRESHOLD
順次走査中に先読みされるディスク ページ数を制御します。234 ページの
『データベース サーバの先読み構成』を参照。
SQL 文キャッシュ使用方法
SQL 文キャッシュを構成するには、次のパラメータを使用します。詳しくは、251 ペー
ジの『SQL 文キャッシュのパラメータの設定』を参照してください。
構成パラメータ
説明
STMT_CACHE
メモリ内の SQL 文キャッシュをオン、有効、または無効にすることがで
きます。オンにすると、解析と最適化が行われた SQL 文を SQL 文キャ
ッシュが保持できるかどうかを指定できます。
STMT_CACHE_SIZE
SQL 文キャッシュのサイズを指定します。
STMT_CACHE_HITS
SQL 文キャッシュに文が完全に挿入される前に、文がヒット (参照) され
る回数を指定します。
STMT_CACHE_NOLIMIT
STMT_CACHE_SIZE 値よりも文のサイズが大きくなった場合に、SQL 文
キャッシュの中へ文を挿入するかどうかを制御します。
STMT_CACHE_NUMPOOL
SQL 文キャッシュのメモリ プール数を定義します。
意思決定支援パラメータ
システム上で仮想共有メモリを構成する場合は、意思決定支援問合せのために予約する
部を決定する必要があります。 意思決定支援問合せでは、結合操作とソート操作を実行
するために、共有メモリの仮想部を大量に使用します。
意思決定支援問合せを処理する方法を制御し、意思決定支援問合せに割り当てるメモリ
容量を制御するには、次のパラメータを使用します。これらの構成パラメータの調整の
詳細については、「IBM Informix: Dynamic Server パフォーマンス ガイド」を参照して
ください。
第 2 章 構成パラメータ
45
構成パラメータ
説明
DATASKIP
使用できない表フラグメントをスキップするかどうかを制御しま
す。
DS_MAX_QUERIES
並列して実行できる問合せの最大数を指定します。
DS_MAX_SCANS
並列して実行できる並列データベース問合せ (PDQ) 走査スレッ
ドの数を制限します。
DS_TOTAL_MEMORY
PDQ 問合せに利用できるメモリ容量を指定します。
構成パラメータ DS_TOTAL_MEMORY は、SHMVIRTSIZE 10MB という式で算出される値を超えないように設定します。
DS_NONPDQ_QUERY_MEM
PDQ 問合せでない問合せに使用できるメモリ量を増やせるよう
にします。
MAX_PDQPRIORTY
問合せで使用できるリソースの量を制限します。
OPTCOMPIND
アプリケーションに適した結合ストラテジについて、オプティマ
イザにアドバイスします。
データベース サーバ処理パラメータ
データベース サーバ処理の構成パラメータでは、コンピュータのプロセッサのタイプを
記述し、仮想プロセッサの動作を指定します。
仮想プロセッサ パラメータ
使用する環境のプロセッサのタイプを指定し、仮想プロセッサを割り当てるには、次の
パラメータを使用します。
次のパラメータについては、使用するプラットフォームのプロセッサ数によって、特定
の値に設定する必要があります。
v MULTIPROCESSOR
v SINGLE_CPU_VP
v VPCLASS
これらのパラメータの設定のガイドラインについては、195 ページの『仮想プロセッサ
構成パラメータの設定』を参照してください。
46
IBM Informix Dynamic Server 管理者ガイド
構成パラメータ
説明
MULTIPROCESSOR
適切なロック タイプを指定します。
NETTYPE
各通信プロトコルの調整オプションを提供します。
SINGLE_CPU_VP
データベース サーバで使用するプロセッサが 1 つだけであることを指定しま
す。このパラメータを使用すると、その状況に応じてデータベース サーバを最
適化することができます。
VPCLASS
仮想プロセッサのクラス、データベース サーバが起動する仮想プロセッサの
数、許容最大数、プロセッサ親和性、および優先度エージングを指定します。
NOAGE、NUMCPUVPS、NUMAIOVPS、AFF_NPROCS、または AFF_SPROCS
の代わりに、パラメータ VPCLASS を使用することをお勧めします。詳しく
は、197 ページの『VPCLASS の指定』を参照。
時間間隔
トランザクションの処理中に使用される時間隔を制御するには、次のパラメータを使用
します。
構成パラメータ
説明
DEADLOCK_TIMEOUT
分散トランザクション中にデータベース サーバが共有メモリ リソースを待機
する時間を指定します。
HETERO_COMMIT
異機種間コミット トランザクションが使用されるかどうかを指定します。
TXTIMEOUT
2 相コミット中に、関与データベース サーバがコミット 命令を受信するまで
待機する時間を指定します。
USEOSTIME
データベース サーバによってレポートされる時間の細分性を制御します。
復元パラメータ
オフライン論理復旧およびオンライン論理復旧に割り当てられるスレッドの数を制御す
るには、次のパラメータを使用します。詳しくは、「IBM Informix: Dynamic Server パ
フォーマンス ガイド」を参照してください。
構成パラメータ
説明
OFF_RECVRY_THREADS
コールド復元中に使用される復旧スレッドの数を指定します。
ON_RECVRY_THREADS
高速復旧およびウォーム復元中に使用される復旧スレッドの数を指定し
ます。
第 2 章 構成パラメータ
47
高可用性データ レプリケーション パラメータ
ペアの HDR (High-Availability Data-replication: 高可用性データ レプリケーション) サ
ーバの動作を制御するには、HDR パラメータを使用します。詳しくは、 483 ページの
『第 20 章 高可用性データ レプリケーション』 を参照してください。
構成パラメータ
説明
DRIDXAUTO
副高可用性データ レプリケーション (HDR) サーバが破損したインデックスを
検出した場合に、主 HDR サーバによるインデックスのレプリケーションを自
動的に開始させるかどうかを指定します。
DRAUTO
副データベース サーバが、HDR の障害に対してどのように対応するかを定義
します。
DRINTERVAL
データ レプリケーション バッファのフラッシュ間の最大時間隔を秒単位で指
定します。
DRLOSTFOUND
1 次データベース サーバに障害が発生したときに、1 次データベース サーバ
上ではコミットされたが、2 次データベース サーバ上ではコミットされていな
いトランザクションが格納されるファイルのパス名を指定します。
DRTIMEOUT
データ レプリケーションのペアの片方のデータベース サーバが、もう一方の
データベース サーバからの転送肯定応答を待機する時間を秒単位で指定しま
す。
イベント アラーム パラメータ
データベース サーバは、特定の注目すべきイベント アラームが発生するときに常に作
動するか、何らかのイベント アラームが発生するたびに作動するプログラムを実行でき
ます。注目すべきイベント アラームには、データベース、表、インデックスの障害、チ
ャンクまたは DB 領域のオフライン化、内部サブシステム障害、初期化中の障害、およ
びロング トランザクションの検出などがあります。ユーザは、電子メールまたはページ
ャ メールで、イベント アラームについての通知を受信できます。
次のパラメータを使用して、以下を指定します。
v イベント アラーム プログラムが、すべてのイベント アラームに対して作動する
か、または特定のイベント アラームに対してのみ作動するか
v
48
アラーム イベントが発生したときにどのような操作を行うか
IBM Informix Dynamic Server 管理者ガイド
構成パラメータ
説明
ALRM_ALL_EVENTS
ALARMPROGRAM が、MSGPATH にログが記録されるすべてのイベントにつ
いて実行されるのか、指定された注目すべきイベントについてのみ実行される
のかを指定します。
ALARMPROGRAM
イベント アラームが発生したときに実行されるファイルの格納場所を指定しま
す。
パラメータ ALARMPROGRAM で、ログがいっぱいになったときに、自動的に
バックアップが行われるように設定できます。詳しくは、「IBM Informix: バッ
クアップおよび復元 ガイド」を参照してください。
詳しくは、「IBM Informix Dynamic Server 管理者の参照」を参照してください。
ダンプ パラメータ (UNIX)
データベース サーバに障害が発生したときに実行されるコア ダンプのタイプと格納場
所を制御するには、次のパラメータを使用します。詳しくは、546 ページの『データの
矛盾の監視』を参照してください。
構成パラメータ
説明
DUMPCNT
単一のスレッドによって共有メモリがダンプされるアサーション障害の数を指
定します。
DUMPCORE
アサーション障害が発生した場合に、仮想プロセッサによってコア メモリがダ
ンプされるかどうかを制御します。
DUMPDIR
共有メモリのダンプ、ファイル gcore、または障害アサーションによるメッセ
ージが配置されるディレクトリを指定します。
DUMPGCORE
オペレーティング システムでユーティリティ gcore がサポートされている場
合は、アサーション障害によって gcore が呼び出されます。
DUMPSHMEM
アサーション障害時に共有メモリがダンプされるかどうかを指定します。
ディレクティブ パラメータ
次の構成パラメータを使用すれば、データベース サーバが検出するディレクティブをオ
ンまたはオフにすることができます。
第 2 章 構成パラメータ
49
構成パラメータ
説明
DIRECTIVES
オプティマイザがすべてのディレクティブに従うかどうかを決定し
ます。デフォルト値は 1 であり、オプティマイザはすべてのディレ
クティブに従います。詳しくは、「IBM Informix: Dynamic Server パ
フォーマンス ガイド」を参照してください。
EXT_DIRECTIVES
外部ディレクティブを有効にします。詳しくは、「IBM Informix:
Dynamic Server 管理者の参照」または「IBM Informix: Dynamic
Server パフォーマンス ガイド」を参照してください。
接続パラメータ
次のパラメータを使用して接続の使用方法を構成し、不完全な接続タイムアウト期間を
減らし、接続に対する不完全な要求数を制限することにより、敵対的なサービス妨害
(DOS) フラッディング アタックの危険を減らします。詳しくは、 126 ページの『サー
ビス妨害フラッディング アタックの制限 (UNIX)』を参照してください。
構成パラメータ
説明
LISTEN_TIMEOUT
不完全な接続タイムアウト期間を設定します。デフォルト値は 10
秒です。
MAX_INCOMPLETE_
CONNECTIONS
接続に対する不完全な要求の数を制限します。デフォルト値は 1024
です。
セキュリティ関連パラメータ
次のセキュリティ関連パラメータは『第 5 章 セキュリティ』で詳しく説明します。
構成パラメータ
説明
IFX_EXTEND_ROLE
これにより、データベース サーバ管理者 (DBSA) は、未公認のユー
ザが、DataBlade ユーザ定義ルーチン (UDR) を登録できないように
できます。
専用パラメータ
一部のパラメータは、データベース サーバの専用機能を使用する場合にのみ構成ファイ
ルで設定されます。
50
IBM Informix Dynamic Server 管理者ガイド
監査パラメータ (UNIX)
監査パラメータは、データベース サーバの監査機能を使用する場合にのみ使用します。
これらのパラメータについては、「IBM Informix: Trusted Facility Guide」を参照してく
ださい。
構成パラメータ
説明
ADTERR
監査レコードの書込み中にエラーが発生した場合のデータベース サーバの動作
を指定します。
ADTMODE
データベース サーバまたはオペレーティング システムのどちらによって、ユ
ーザ アクションの監査が管理されるかを制御します。
ADTPATH
監査ファイルが格納されるディレクトリを指定します。
ADTSIZE
監査ファイルの最大サイズを指定します。
光メディア パラメータ
光ディスク記憶サブシステム を使用する場合に、次の構成パラメータを使用します。こ
れらのパラメータの詳細については、「IBM Informix: Optical Subsystem Guide」を参照
してください。
構成パラメータ
説明
OPCACHEMAX
メモリ キャッシュのサイズを指定します。
STAGEBLOB
光ディスクに送られるシンプル ラージ オブジェクトを格納するための BLOB
領域の名前を指定します。
IBM Informix Storage Manager を使用すると、光メディアに情報をバックアップできま
す。ただし、データベース サーバでそのディスクに格納されたデータに直接アクセスす
ることはできません。
UNIX パラメータ
UNIX プラットフォームによっては、さらにほかの構成パラメータも使用できます。こ
れらの専用パラメータの説明とその使用方法については、マシン ノート を参照してく
ださい。
構成情報の監視
データベース サーバ管理者のタスクの 1 つに、構成レコードの保存があります。表 5
で、構成情報を取得する方法について説明します。
第 2 章 構成パラメータ
51
表 5. 構成情報の監視
コマンド
説明
onstat -c
ファイル ONCONFIG のコピーを表示します。詳しくは、16 ページの『データベース
サーバの構成』を参照してください。ファイル ONCONFIG に対して行った変更は、
データベース サーバを停止して、再起動すると、つまり共有メモリの再初期化 を行
うと有効になります。構成パラメータを変更した後にデータベース サーバを停止して
再起動しない場合は、有効な構成は onstat のオプション -c によって表示される内容
とは異なります。構成パラメータの値は、環境変数 ONCONFIG が示すファイルに格
納されています。環境変数 ONCONFIG を設定していない場合は、UNIX では
$INFORMIXDIR/etc/onconfig、Windows では %INFORMIXDIR%¥etc¥onconfig.std に
格納されています。
oncheck -pr
予約ページを表示します。予約ページ PAGE_CONFIG にも現行の構成情報が格納され
ます。コマンド行で構成パラメータを変更し、データベース サーバを停止して再起動
する前に oncheck -pr を実行すると、ユーティリティ oncheck が表示する 構成値
は、予約ページの現行値とは一致しません。ユーティリティ oncheck は、警告メッセ
ージを戻します。
ON–Monitor
(UNIX)
現行の構成をコピーし、指定するディレクトリとファイルに保存するには、「Status」
>「Configuration」を選択します。ファイル名のみを指定すると、現行の作業ディレク
トリに格納されます。これらの構成パラメータに対する変更は、データベース サーバ
を停止して再起動すると有効になります。
ISA
構成パラメータの表示、または更新。
図 2 に、コマンド oncheck -pr の出力例を示します。
...
Validating Informix database server reserved pages - PAGE_CONFIG
ROOTNAME
rootdbs
ROOTPATH
/home/dyn_srv/root_chunk
ROOTOFFSET
0
ROOTSIZE
8000
MIRROR
0
MIRRORPATH
MIRROROFFSET
0
PHYSDBS
rootdbs
PHYSFILE
1000
LOGFILES
5
LOGSIZE
500
MSGPATH
/home/dyn_srv/online.log
CONSOLE
/dev/ttyp5
...
...
図 2. PAGE_CONFIG、予約ページ
52
IBM Informix Dynamic Server 管理者ガイド
第 3 章 クライアント/サーバ通信
クライアント/サーバ アーキテクチャ . . . . . . .
ネットワーク プロトコル . . . . . . . . . .
ネットワーク プログラミング インターフェイス . .
Windows ネットワーク ドメイン . . . . . . . .
データベース サーバ接続 . . . . . . . . . .
多重接続 . . . . . . . . . . . . . . . .
データベース サーバでサポートされる接続 . . . . .
ローカル接続 . . . . . . . . . . . . . . .
共有メモリ接続 (UNIX) . . . . . . . . . . .
ストリーム パイプ接続 (UNIX) . . . . . . . .
名前付きパイプ接続 (Windows) . . . . . . . .
ローカル ループバック接続 . . . . . . . . .
通信サポート サービス . . . . . . . . . . . .
接続ファイル . . . . . . . . . . . . . . .
ネットワーク構成ファイル . . . . . . . . . .
TCP/IP 接続ファイル . . . . . . . . . . .
複数の TCP/IP ポート . . . . . . . . . .
IPX/SPX 接続ファイル (UNIX) . . . . . . .
ネットワーク セキュリティ ファイル . . . . . .
ファイル hosts.equiv . . . . . . . . . . .
netrc 情報 . . . . . . . . . . . . . .
ファイル sqlhosts およびレジストリ キー SQLHOSTS .
sqlhosts ファイル (UNIX) . . . . . . . . .
SQLHOSTS 情報更新ツール . . . . . . . .
SQLHOSTS レジストリ キー (Windows) . . . .
sqlhosts 情報. . . . . . . . . . . . . . . .
接続情報 . . . . . . . . . . . . . . . .
データベース サーバ名 . . . . . . . . . .
接続タイプ フィールド . . . . . . . . . .
ホスト名フィールド . . . . . . . . . . .
サービス名フィールド . . . . . . . . . .
オプション フィールド . . . . . . . . . .
グループ情報 . . . . . . . . . . . . . .
データベース サーバ グループ . . . . . . .
TCP/IP 接続の別の方法 . . . . . . . . . . .
TCP/IP 接続での IP アドレスの使用. . . . . .
TCP/IP 接続でのワイルドカード アドレッシング .
TCP/IP 接続でのポート番号の使用 . . . . . .
Dynamic Server による IPv6 アドレスのサポート . . .
接続用のパラメータ ONCONFIG . . . . . . . . .
© Copyright IBM Corp. 1996, 2004
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
54
55
55
56
57
57
58
60
60
61
61
62
62
63
63
63
65
66
66
66
67
68
68
69
69
71
72
72
73
75
76
77
85
85
85
85
86
88
89
90
53
構成パラメータ DBSERVERNAME . . . . . . .
構成パラメータ DBSERVERALIASES . . . . . .
構成パラメータ NETTYPE . . . . . . . . . .
ネットワーク接続用の環境変数 . . . . . . . . .
クライアント/サーバ構成の例 . . . . . . . . . .
共有メモリ接続を使用する場合 (UNIX) . . . . . .
ローカル ループバック接続を使用する場合 . . . .
ネットワーク接続を使用する場合 . . . . . . . .
IPX/SPX でのファイル sqlhosts のエントリ (UNIX).
複数の接続タイプを使用する場合 . . . . . . . .
複数のデータベース サーバにアクセスする場合 . . .
Informix MaxConnect の使用方法 . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
90
91
91
92
92
93
93
94
95
96
97
98
本章について
この章では、クライアント/サーバ通信を構成するために必要な概念と用語について説明
します。この章は、次の部分に分かれています。
v クライアント/サーバ アーキテクチャの説明
v データベース サーバの接続タイプ
v 通信サービス
v 接続ファイル
v ONCONFIG 接続パラメータ
v 接続用の環境変数
v クライアント/サーバ構成の例
クライアント/サーバ アーキテクチャ
IBM Informix 製品は、クライアント/サーバ と呼ばれるソフトウェア設計モデルに準拠
しています。クライアント/サーバ モデルにより、アプリケーション、つまりクライア
ント をあるコンピュータ上で動作させ、データベース サーバ を別のコンピュータまた
は同一のコンピュータ上で動作させることが可能になります。クライアント アプリケー
ションは、データベース サーバに対してサービスとデータを要求します。データベース
サーバは要求に基づいて、サービスとデータをクライアントに提供します。
ネットワーク プロトコル を ネットワーク プログラミング インターフェイス ととも
に使用することによって、クライアントとデータベース サーバを接続 し、データ通信
を行うことができます。これらの用語は以降で詳しく定義されています。
54
IBM Informix Dynamic Server 管理者ガイド
ネットワーク プロトコル
ネットワーク プロトコルとは、アプリケーション間、つまりクライアントとサーバ間
で、データの転送方法を制御するルールです。このルールは、特にネットワーク上で送
信するデータのフォーマットを指定するものです。ネットワーク プロトコルの一例とし
て TCP/IP があります。
プロトコルのルールは、ネットワーク プロトコル ドライバに実装されます。ネットワ
ーク プロトコル ドライバには、データがクライアントとサーバ間で送受信される場合
に、そのデータをプロトコルのルールに従ってフォーマットするコードが含まれていま
す。
クライアントとデータベース サーバは、ネットワーク プログラミング インターフェイ
スを介してネットワーク ドライバにアクセスします。ネットワーク プログラミング イ
ンターフェイスには、ネットワーク通信機能にアクセスするためのシステム呼出しやラ
イブラリ ルーチンが含まれています。UNIX のネットワーク プログラミング インター
フェイスの一例として、TLI (Transport Layer Interface: トランスポート層インターフェ
イス) があります。Windows のネットワーク プログラミング インターフェイスの例と
しては、WINSOCK (Sockets Programming Interface: ソケット プログラミング インター
フェイス) があります。
ネットワーク プロトコルの利点は、クライアントとサーバがアーキテクチャもオペレー
ティング システムも異なる別々のコンピュータ上にあっても、相互の通信を可能にする
ところにあります。
データベース サーバが複数のプロトコルをサポートするよう構成することはできます
が、このような構成にするのは、TCP/IP を使用するクライアントと IPX/SPX を使用す
るクライアントが混在している場合のみにしてください。
使用するオペレーティング システムでサポートされているプロトコルを確認するには、
57 ページの『データベース サーバ接続』を参照してください。
データベース サーバで使用するプロトコルを指定するには、UNIX の場合はファイル
sqlhosts のフィールド nettype で設定してください。Windows では、レジストリ キー
SQLHOSTS のフィールド PROTOCOL で設定します。詳しくは、68 ページの『ファイ
ル sqlhosts およびレジストリ キー SQLHOSTS』を参照してください。
ネットワーク プログラミング インターフェイス
ネットワーク プログラミング インターフェイスは、一連の通信ルーチンやシステム呼
出しを含む一種の API (Application Programming Interface: アプリケーション プログラ
ミング インターフェイス) です。アプリケーションはこれらのルーチンを呼び出して、
同一のまたは異なるコンピュータ上にある別のアプリケーションと通信します。この意
味では、クライアントとデータベース サーバも、TLI またはソケットの API ルーチン
第 3 章 クライアント/サーバ通信
55
を呼び出すアプリケーションになります。クライアントとデータベース サーバは、いず
れもネットワーク プログラミング インターフェイスを使用し、通信プロトコルに従っ
てデータを送受信します。
クライアント/サーバ通信が成立するには、クライアントとデータベース サーバ両方の
環境で同じプロトコルを使用するように構成する必要があります。ただし、ネットワー
ク プロトコルの中には、複数のネットワーク プログラミング インターフェイスを介し
てアクセスできるものがあります。例えば、TCP/IP には、オペレーティング システム
プラットフォームで使用できるプログラミング インターフェイスに応じて、TLI とソケ
ットのどちらを介してもアクセスできます。そのため、TLI を介して TCP/IP を使用し
ているあるコンピュータ上のクライアントは、ソケットを介して TCP/IP を使用してい
る別のコンピュータ上のデータベース サーバと通信を行うことができます。その逆も成
り立ちます。例については、94 ページの『ネットワーク接続を使用する場合』を参照し
てください。
Windows ネットワーク ドメイン
Windows ネットワークでは、ネットワーク ドメイン を作成できます。ドメインとは、
ユーザ アカウント情報とセキュリティ ポリシーを共有して接続された Windows コン
ピュータのグループです。ドメインのすべてのメンバのユーザ アカウント情報は、ドメ
イン コントローラ によって管理されます。
ドメイン コントローラによって、ネットワーク管理が容易になります。1 つのアカウン
ト リストでドメイン メンバがすべて管理されるため、ネットワーク管理者が個々のド
メイン コンピュータ上のアカウント リストを同期化する必要がありません。つまり、
ネットワーク管理者は、ユーザ アカウントを作成したり変更する場合にドメイン コン
トローラ上のアカウント リストを更新するのみでよく、ドメイン内の各コンピュータ上
のアカウント リストを更新する必要はありません。
Windows コンピュータのユーザがほかの Windows データベース サーバにログインす
るには、そのサーバと同じドメインまたは信頼される側のドメイン のどちらかに属して
いる必要があります。信頼される側のドメインとは、ほかのドメインから信頼関係 を結
ばれているドメインです。信頼関係が確立されている場合、ユーザ アカウントが信頼さ
れる側のドメイン内にしかなくても、信頼される側のドメインにログオンできます。
ドメインのメンバである Windows コンピュータへユーザがログインするには、ローカ
ル ログインしてからプロファイルを使用する方法と、ドメイン ログインしてからプロ
ファイルを使用する方法とがあります。ただし、ユーザが信頼できるユーザのリストに
含まれているか、ユーザがログイン元に使用しているコンピュータがトラステッド ホス
トのリストに含まれている場合、そのユーザにはプロファイルなしでログインできるア
クセス権が付与されます。
56
IBM Informix Dynamic Server 管理者ガイド
重要: クライアント アプリケーションが Informix データベース サーバに接続できるの
は、データベース サーバが実行されている Windows ドメイン内にユーザ ID に
対するアカウントが存在する場合のみです。このルールは、信頼される側のドメ
インにも適用されます。
ドメインの詳細については、使用する Windows オペレーティング システムのマニュア
ルを参照してください。
重要: Informix トラステッド クライアント メカニズムは、Windows ドメイン間で確立
できる信頼関係とは関係がありません。そのため、クライアントが信頼される側
の Windows ドメインから接続している場合でも、ユーザはデータベース サーバ
が実行されているドメイン内にアカウントを持っている必要があります。データ
ベース サーバからクライアントが認証される方法の詳細については、62 ページ
の『通信サポート サービス』、および 66 ページの『ネットワーク セキュリテ
ィ ファイル』を参照してください。
データベース サーバ接続
接続 とは、2 つのアプリケーション間、ここではクライアント アプリケーションとデ
ータベース サーバ間の論理的な結合です。データ転送を実行するには、その前に クラ
イアントとサーバ間の接続を確立します。また、接続はデータ転送の実行中、維持され
ている必要があります。
ヒント: Informix の内部通信機能を、ASF (Association Services Facility) といいます。
ASF に関するエラー メッセージが表示された場合は、接続に問題があること
を意味します。
クライアント アプリケーションは、SQL の CONNECT 文または DATABASE 文を使
用して、データベース サーバとの接続を確立します。例えば、データベース サーバ
my_server に接続するには、アプリケーションで次のような CONNECT 文を記述しま
す。
CONNECT TO ’@my_server’
CONNECT 文および DATABASE 文の詳細については、「IBM Informix: SQL ガイド:
構文」を参照してください。
多重接続
アプリケーションの中には、1 人のユーザのために同一のデータベース サーバに複数回
接続するものがあります。多重接続 では、データベース サーバとクライアント間での
単一のネットワーク 接続を使用して、クライアントから複数のデータベース への接続
が処理されます。クライアント アプリケーションによってデータベース サーバとの間
で複数の接続が確立され、単一ユーザのために複数のデータベースへのアクセスが行わ
れるようになります。接続が多重化されていない場合は、各データベース接続によっ
て、データベース サーバへのネットワーク接続が個別に確立されます。ネットワーク接
第 3 章 クライアント/サーバ通信
57
続の数が増加する場合、たとえその接続がアクティブでなくても、増分に伴いコンピュ
ータのメモリ使用量と CPU 時間が増大します。接続を多重化すると、ネットワーク接
続を追加するときに必要になる追加のコンピュータ リソースを消費することなく、複数
のデータベース接続を確立できるようになります。
多重接続をサポートするようにデータベース サーバを構成するには、sqlmux という値
を持つ特別なパラメータ NETTYPE を ONCONFIG ファイルに記述する必要がありま
す。次に例を示します。
NETTYPE sqlmux
多重接続を自動的に使用するようにクライアントを構成するには、クライアントがデー
タベース サーバへの接続に使用する sqlhosts ファイルまたはレジストリのエントリ
で、オプション フィールドに値 m=1 を指定する必要があります。次に例を示します。
menlo ontlitcp valley jfk1 m=1
データベース サーバが使用するファイル sqlhosts またはレジストリ sqlhosts は変更す
る必要がありません。クライアント プログラムは、接続の多重化を有効にするために特
殊な SQL 呼出しを行う必要がありません。ファイル ONCONFIG、およびファイル
sqlhosts やレジストリ キー SQLHOSTS が正しく設定されていれば、自動的に接続の多
重化が有効になります。構成パラメータ NETTYPE の詳細については、「IBM Informix:
Dynamic Server 管理者の参照」の構成パラメータに関する章を参照してください。ファ
イルまたはレジストリ sqlhosts の詳細については、68 ページの『ファイル sqlhosts お
よびレジストリ キー SQLHOSTS』を参照してください。
多重接続には次の制限があります。
v マルチスレッド クライアント接続はサポートされていません。
v 共有メモリ接続はサポートされていません。
v 分散問合せやデータ レプリケーションなどに使用する従属データベース サーバへの
接続は多重化されません。
v ESQL/C の関数 sqlbreak() はサポートされていません。
v 多重接続サポートを起動できるのは、データベース サーバを起動するときのみで
す。
アプリケーションが接続を確立しようとしたときに、これらの条件のいずれかがあては
まる場合、データベース サーバによって標準接続が確立されます。このような場合で
も、データベース サーバから SQL エラーは戻されません。
データベース サーバでサポートされる接続
データベース サーバでサポートされる、クライアント アプリケーションとデータベー
ス サーバ間の接続のタイプを以下に示します。
58
IBM Informix Dynamic Server 管理者ガイド
接続のタイプ
Windows
UNIX
ローカル接続
ネットワーク接続
X
X
X
X
TLI (TCP/IP)
X
X
X
TLI (IPX/SPX)
X
X
X
共有メモリ
X
X
ストリーム パイプ
X
X
ソケット
名前付きパイプ
X
X
注: 接続を構成する場合は、構成パラメータ IFX_LISTEN_TIMEOUT および
MAX_INCOMPLETE_CONNECTION を設定します。これらのパラメータを設定し、
接続を処理する Listener VP に負担をかけ過ぎないようにすることによって、敵対
的なサービス妨害 (DOS) アタックの危険を減らすことができます。詳しくは、 126
ページの『サービス妨害フラッディング アタックの制限 (UNIX)』を参照してくだ
さい。
UNIX のみ
大部分の UNIX プラットフォームでは、複数のネットワーク プログラミング インター
フェイスがサポートされています。マシン ノート には、使用しているオペレーティン
グ システムでデータベース サーバがサポートしているインターフェイスとプロトコル
の組合せ情報が含まれています。
Machine Specific Notes:
=======================
1. The following interface/protocol combinations(s) are
supported for this platform:
Berkeley sockets using TCP/IP
UNIX のみ の終り
クライアント接続をセット アップするには:
1. ファイル ONCONFIG 内で接続および接続構成パラメータを指定します。
2. 使用するプラットフォームの接続用のファイル内で、エントリを正しくセット アッ
プします。
3. UNIX の初期化スクリプト、またはローカルおよびドメイン全体に対する Windows
のレジストリで、接続用の環境変数を指定します。
4. ファイル sqlhosts またはレジストリ sqlhosts 内で、データベース サーバに対する
データベース サーバ グループを定義します。
第 3 章 クライアント/サーバ通信
59
データベース サーバ接続のタイプについて、以降で詳しく説明します。以降で説明する
接続を実装する方法については、次の項目を参照してください。
v 63 ページの『接続ファイル』
v 71 ページの『sqlhosts 情報』
v 90 ページの『接続用のパラメータ ONCONFIG』
v 92 ページの『ネットワーク接続用の環境変数』
ローカル接続
ローカル接続 とは、同じコンピュータ上にあるクライアントとデータベース サーバ間
の接続です。ローカル接続のタイプを以降で説明します。
共有メモリ接続 (UNIX)
共有メモリ接続 では、クライアントとデータベース サーバの相互通信チャネル とし
て、共有メモリの領域が使用されます。図 3 に共有メモリ接続を示します。
図 3. 共有メモリ接続
共有メモリを使用すると、データベース サーバに高速でアクセスできますが、セキュリ
ティ上多少の問題があります。アプリケーションが不安定、または問題が発生するよう
な設計である場合、それ自体またはほかのローカル ユーザのメッセージ バッファを破
壊したり、内容を表示したりすることがあります。また、クライアント アプリケーショ
ンで明示的なメモリ アドレッシングが行われたり、データ配列のインデックスを多く付
けすぎると、プログラミング エラーが発生しやすくなります。ネットワーク通信やスト
リーム パイプを使用すれば、このようなエラーによってデータベース サーバが影響を
受けることがありません。共有メモリ接続の例については、93 ページの『共有メモリ接
続を使用する場合 (UNIX)』を参照してください。
クライアントは、データベースとの間に複数の共有メモリ接続を確立することはできま
せん。
60
IBM Informix Dynamic Server 管理者ガイド
共有メモリのうち、データベース サーバがクライアント/サーバ通信に使用する部分に
ついては、227 ページの『共有メモリの通信部 (UNIX)』を参照してください。詳しく
は、209 ページの『クライアントが通信部を確保する方法 (UNIX)』も参照してくださ
い。
ストリーム パイプ接続 (UNIX)
ストリーム パイプ は UNIX の IPC (Interprocess Communication: プロセス間通信) 機
能であり、これによって、同じコンピュータ上のプロセスが互いに通信できます。スト
リーム パイプ接続は、クライアントとデータベース サーバが同じコンピュータ上にあ
れば、いつでも使用できます。詳しくは、74 ページの『ネットワーク プロトコル エン
トリ』と 76 ページの『共有メモリ通信およびストリーム パイプ通信 (UNIX)』を参照
してください。
ストリーム パイプ接続には、次の利点があります。
v 共有メモリ接続とは異なり、ストリーム パイプ接続には、共有メモリの同じ部分に
明示的にアクセスするほかのプログラムによって上書きされたり読み込まれたりする
という、セキュリティ上の危険がありません。
v 共有メモリ接続とは異なり、ストリーム パイプ接続によって、同じコンピュータ上
の複数のデータベース サーバにトランザクションを分散させることができます。
ストリーム パイプ接続には、次の欠点があります。
v 一部のコンピュータ上では、ストリーム パイプ接続を使用すると共有メモリ接続に
比べて動作が遅くなることがあります。
v ストリーム パイプは、すべてのプラットフォームで使用できるわけではありませ
ん。
v クライアント/サーバ通信に共有メモリまたはストリーム パイプを使用する場合は、
ホスト名記入項目は無視されます。
名前付きパイプ接続 (Windows)
名前付きパイプ は、Windows 上の双方向 IPC (プロセス間通信) 用の API (アプリケー
ション プログラム インターフェイス) です。名前付きパイプ接続では、トランスポー
ト層の動作が透過的になるため、ネットワーク ソフトウェアへのハイレベル インター
フェイスが提供されます。名前付きパイプでは、ファイル システムで読込みや書込みを
行う場合と同じように、データがメモリに格納され、要求があったときにデータが抽出
されます。
名前付きパイプは、データベース サーバへのローカル接続用としてサポートされていま
す。
第 3 章 クライアント/サーバ通信
61
ローカル ループバック接続
同じコンピュータ上のクライアント アプリケーションとデータベース サーバ間のネッ
トワーク接続を、ローカル ループバック 接続といいます。使用されるネットワーク機
能は、クライアント アプリケーションとデータベース サーバが異なるコンピュータ上
に存在する場合と同じです。コンピュータにネットワーク トランザクションを処理する
機能があれば、ローカル ループバック接続を利用できます。ローカル ループバック接
続は、共有メモリ接続ほど高速ではありませんが、共有メモリ特有のセキュリティ上の
問題が発生しません。
ローカル ループバック接続では、データはクライアント アプリケーションからネット
ワークへ送出され、ネットワークからデータベース サーバへ戻されるように見えます。
実際には、データベース サーバはネットワーク プログラミング インターフェイス
(TLI またはソケット) を使用しますが、情報は、内部接続プロセスによってクライアン
トとデータベース サーバとの間で直接送受信され、ネットワーク外へ出て行くことがあ
りません。
ローカル ループバック接続の例については、93 ページの『ローカル ループバック接続
を使用する場合』を参照してください。
通信サポート サービス
通信サポート サービス には、次のセキュリティ サービスなどの接続関連サービスが含
まれます。
v 認証は、ユーザまたはアプリケーションの同一性を確認するプロセスです。最も一般
的な認証方法は、ユーザに名前とパスワードの入力を要求して、コンピュータまたは
アプリケーションへのアクセスの許可を付与するというものです。
v メッセージ整合性は、通信メッセージが宛先に到着したとき、変更されていたりせず
元のままであることを確認するものです。
v メッセージの機密性は、通常はメッセージを暗号化および復号化して、伝送中に権限
のないほかのユーザに見られないよう保護することです。
通信サポート サービスには、データ圧縮やトラフィック ベース アカウンティングとい
った、上記以外の処理が含まれることもあります。
データベース サーバでは、デフォルトの認証方法が提供されています。これについて
は、66 ページの『ネットワーク セキュリティ ファイル』で説明します。通信サポート
モジュールを指定しない場合は、このデフォルトの認証ポリシーが使用されます。
データベース サーバでは、CSM (Communication Support Modules: 通信サポート モジ
ュール) と呼ばれるプラグイン ソフトウェア モジュールによる、上記以外のセキュリ
ティ関連の通信サポート サービスも提供されています。詳しくは、129 ページの『パス
ワードとデータ伝送暗号化用の通信サポート モジュール (CSM) の使用』を参照してく
ださい。
62
IBM Informix Dynamic Server 管理者ガイド
接続ファイル
接続ファイル には、クライアント/サーバ通信を有効にするための情報が含まれていま
す。これらのファイルにより、データベース サーバは、ほかのデータベース サーバと
も通信できます。接続構成ファイルは、次の 3 つのグループに分類できます。
v ネットワーク構成ファイル
v ネットワーク セキュリティ ファイル
v ファイル sqlhosts またはレジストリ SQLHOSTS
ネットワーク構成ファイル
ここでは、TCP/IP ネットワークおよび IPX/SPX ネットワークでの、ネットワーク構成
ファイルの使用方法を説明します。
TCP/IP 接続ファイル
ネットワーク プロトコルとして TCP/IP を使用するようにデータベース サーバを構成
するには、ネットワーク構成ファイル hosts および services の情報を使用して、sqlhosts
を設定してください。
これらのファイルは、ネットワーク管理者が管理しています。データベース サーバなど
のホスト、またはソフトウェア サービスを追加するときは、ネットワーク管理者に報告
し、これらのファイルの情報が正確かどうかを確認してもらう必要があります。
ファイル hosts には、ネットワーク上の Informix クライアント/サーバ製品が稼働して
いるコンピュータに接続されたネットワーク コントローラ カードごとに、1 つのエン
トリが必要です。ファイルの各行には、次の情報が記述されます。
v インターネット アドレス (つまりイーサネット カードの IP アドレス)
v ホスト名
v ホスト エイリアス (オプション)
ファイル hosts ではホスト名の長さは制限されていませんが、Informix 製品では 256
文字以下に制限されています。85 ページの表 9 にファイル hosts のサンプルを示しま
す。
ファイル services には、TCP/IP 経由で使用できるサービスごとにエントリが 1 つずつ
記述されています。各エントリは 1 行で、次の情報が含まれています。
v サービス名
この名前は、クライアント/サーバ接続を行うために、IBM Informix 製品によってポ
ート番号とプロトコルの判定に使用されます。サービス名は最大 128 文字です。
v ポート番号およびプロトコル
ポート番号はコンピュータのポートで、TCP/IP に対するプロトコルは tcp です。
第 3 章 クライアント/サーバ通信
63
ポート番号は、オペレーティング システムによる制限を受けます。ユーザ informix
は、1024 以上のポート番号を使用してください。1024 より小さいポート番号は、ユ
ーザ root のみが使用できます。
v エイリアス (オプション)
サービス名とポート番号は任意に設定できます。ただし、このファイル内では一意に、
そして IBM Informix クライアント/サーバ製品を実行するすべてのコンピュータ上で同
じである必要があります。エイリアス フィールドはオプションです。例えば、ファイル
services には、データベース サーバに対して次のようなエントリが記述されています。
server2
1526/tcp
このエントリは、TCP ポート番号 1526 のサービス名として server2 を指定していま
す。これにより、データベース サーバはこのポートを接続要求のサービスに使用できる
ようになります。77 ページの図 6 にファイル services のサンプルを示します。
重要: 他のデータベース サーバと通信するデータベース サーバの場合、どちらのイン
スタンスも同じマシンに常駐するときでも、DBSERVERNAME または
DBSERVERALIAS で TCP/IP 接続を定義する必要があります。
ファイル hosts とファイル services の詳細については、使用するオペレーティング シ
ステムのマニュアルを参照してください。
UNIX 上の TCP/IP 接続ファイル: UNIX では、ファイル hosts および services
は、ディレクトリ /etc にあります。これらのファイルは、IBM Informix クライアント/
サーバ製品が稼働している各コンピュータ上、またはネットワークで NIS (Network
Information Service: ネットワーク情報サービス) を使用している場合は NIS サーバ上に
必要です。
警告: NIS を使用しているシステムでは、ファイル /etc/hosts および /etc/services は
NIS サーバ上で保守されています。ローカル コンピュータ上にあるファイル
/etc/hosts およびファイル /etc/services は使用されず、最新の状態になっていない
場合があります。ファイル NIS の内容を表示するには、コマンド行に次のコマン
ドを入力します。
ypcat hosts
ypcat services
Windows 上の TCP/IP 接続ファイル: ネットワーク構成ファイル hosts および
services の情報を参照して、TCP/IP ネットワーク プロトコル用のレジストリ キー
SQLHOSTS を作成します。これらのファイルの格納場所は、次のようになっています。
v %WINDIR%¥system32¥drivers¥etc¥hosts
v %WINDIR%¥system32¥drivers¥etc¥services
64
IBM Informix Dynamic Server 管理者ガイド
ホスト名の解決に DNS (Domain Name Service) を使用するよう、TCP/IP を構成する方
法もあります。これらのファイルの詳細については、使用しているオペレーティング シ
ステムのマニュアルを参照してください。
DHCP (Dynamic Host Configuration Protocol: 動的ホスト構成プロトコル) では、各ワー
クステーションに明示的に割り当てられた IP を使用する代わりに、アドレス プールか
ら IP アドレスを動的に割り当てます。システムで DHCP を使用する場合は、WINS
(Windows Internet Name Service) もインストールしておく必要があります。DCHP はデ
ータベース サーバに対して透過的に動作します。
複数の TCP/IP ポート
複数のイーサネット カードを利用するには、次の操作を実行してください。
v データベース サーバが使用する各ポートごとに、ファイル services にエントリを 1
つずつ作成します。次に例を示します。
soc1
soc2
21/tcp
22/tcp
単一の IP アドレスの各ポートは一意である必要があります。別のイーサネット カー
ドでは、一意または共用のポート番号を使用できます。ただし、同じデータベース
サーバに接続するイーサネット カードでは、同じポート番号を使用します。その場
合、サービス名が同一になります。
v IP アドレスが異なるエントリを、イーサネット カードごとに 1 つずつファイル
hosts に記述します。次に例を示します。
192.147.104.19
192.147.104.20
svc8
svc81
v 構成ファイル ONCONFIG で、一方のイーサネット カードに対して
DBSERVERNAME を指定し、もう一方に対して DBSERVERALIASES を指定しま
す。ファイル ONCONFIG のエントリのサンプルを次に示します。
DBSERVERNAME chicago1
DBSERVERALIASES chicago2
v UNIX のファイル sqlhosts または Windows のレジストリ キー SQLHOSTS で、イ
ーサネット カードごとにエントリを 1 つずつ作成します。つまり、
DBSERVERNAME に対するエントリを 1 つ、DBSERVERALIAS に対するエントリ
をもう 1 つ指定することになります。
chicago1 onsoctcp svc8 soc1
chicago2 onsoctcp svc81 soc2
この構成が終わると、アプリケーションは環境変数 INFORMIXSERVER が示す DB
サーバ名に割り当てられたイーサネット カードを経由して通信を行うようになります。
第 3 章 クライアント/サーバ通信
65
IPX/SPX 接続ファイル (UNIX)
UNIX ネットワーク上でプロトコルに IPX/SPX を使用するようにデータベース サーバ
を構成するには、IPX/SPX ソフトウェアを購入し、それをデータベース サーバ コンピ
ュータにインストールする必要があります。どの IPX/SPX ソフトウェアを選択するか
は、使用するオペレーティング システムによって異なります。オペレーティング シス
テムによっては、IPX/SPX ソフトウェアが NetWare for UNIX または Portable NetWare
を使用するソフトウェア製品とバンドルされている場合もあります。また、IPX/SPX ソ
フトウェアを出荷している UNIX ベンダごとに、使用する構成ファイルも異なります。
これらのソフトウェア製品の構成ファイルの設定方法については、使用する IPX/SPX
ソフトウェアに付属のマニュアルを参照してください。
ネットワーク セキュリティ ファイル
IBM Informix 製品は、標準のセキュリティ手順に準拠しています。これは、ネットワー
ク セキュリティ ファイルに含まれる情報で管理されています。クライアント アプリケ
ーションをリモート コンピュータ上のデータベース サーバに接続するには、クライア
ント アプリケーションのユーザがリモート コンピュータ上に有効なユーザ ID を持っ
ている必要があります。
ファイル hosts.equiv
ファイル hosts.equiv には、データベース サーバが稼働するコンピュータによって信頼
される側のリモート ホストおよびユーザのリストが含まれています。信頼される側のユ
ーザと、トラステッド ホストからログインするユーザは、パスワードを入力しなくても
コンピュータにアクセスできます。オペレーティング システムでファイル hosts.equiv
が使用され、任意のユーザに対し、パスワードの入力を要求せずにコンピュータへのア
クセスを許可するかどうかが決定されます。Informix では、デフォルトの認証ポリシー
を実行するためにファイル hosts.equiv が必要です。
クライアント アプリケーションから無効なアカウント名とパスワードが発行された場合
は、ファイル hosts.equiv にそのクライアント コンピュータのエントリが含まれていて
も、データベース サーバから接続を拒否されます。ファイル hosts.equiv を使用するの
は、ユーザ アカウントとパスワードを発行しないクライアント アプリケーションに対
してのみにしてください。UNIX では、ファイル hosts.equiv はディレクトリ /etc にあ
ります。Windows では、ファイル hosts.equiv はディレクトリ
¥%WINDIR%¥system32¥drivers¥etc にあります。ファイル hosts.equiv がない場合は作
成してください。
一部のネットワークでは、リモート ホストでコンピュータとの接続に使用するホスト名
が、そのコンピュータがそれ自体の参照用に使用するホスト名と正確に一致していない
ことがあります。例えば、ネットワーク ホスト名に次の例が示すような完全なドメイン
名が含まれるとします。
viking.informix.com
66
IBM Informix Dynamic Server 管理者ガイド
それに対し、そのコンピュータでは、自分自身を参照するために、次のようなローカル
ホスト名が使用されるとします。
viking
このような場合は、ファイル host.equiv に両方のホスト名を指定してください。
クライアントが信頼されているかどうかを判断するには、クライアント コンピュータで
以下の文を実行します。
rlogin hostname
パスワードの入力を求められずにログインできた場合は、クライアントは信頼されてい
るコンピュータということになります。
あるいは、個々のユーザが信頼される側のユーザとして接続できる対象のホストのリス
トを、ファイル .rhosts の中で指定する方法もあります。このファイルは、データベー
ス サーバがあるコンピュータ上のユーザのホーム ディレクトリにあります。
Windows のみ
Windows では、Windows 管理者がユーザ ID を作成した場合、ホーム ディレクトリは
自動的に割り当てられません。管理者がユーザ マネージャというアプリケーションを使
用して、そのユーザのプロファイルへホーム ディレクトリを追加します。
Windows のみ の終り
netrc 情報
netrc 情報は、ユーザ ID データを指定するオプションの情報です。データベース サー
バへのアクセスが許可されていないユーザや、データベース サーバから信頼されている
コンピュータ上にいないユーザは、このファイルを使用して信頼された名前とパスワー
ドを供給できます。また、リモート コンピュータ上に異なるユーザ アカウントとパス
ワードを持っている場合にも、この情報を使用できます。
UNIX では、ユーザのホーム ディレクトリにあるファイル .netrc に netrc 情報が格納
されています。ファイル .netrc は、標準的なテキスト エディタを使用して作成してく
ださい。Windows では、netrc 情報はレジストリ キーに格納されています。setnet32 の
「ホスト情報」タブを使用して、netrc 情報を編集してください。
リモート サーバのアプリケーションに対してユーザ パスワードを明示的に指定しない
場合、つまり CONNECT 文の USER 節、または DB–Access でユーザ名およびパスワ
ードのプロンプトを使用しない場合、クライアント アプリケーションはユーザ名とパス
ワードについて netrc 情報内を検索します。ユーザがアプリケーションでパスワードを
明示的に指定している場合、またはデータベース サーバがローカルにある場合は、
netrc 情報は参照されません。
第 3 章 クライアント/サーバ通信
67
デフォルト認証ポリシーと通信サポート モジュールのどちらが使用されている場合で
も、netrc 情報はデータベース サーバで使用されます。
このファイルの内容の詳細については、使用するオペレーティング システムのマニュア
ルを参照してください。
Windows のみ
Windows では、Windows 管理者がユーザ ID を作成した場合、ホーム ディレクトリは
自動的に割り当てられません。管理者がユーザ マネージャというアプリケーションを使
用して、そのユーザのプロファイルへホーム ディレクトリを追加します。
Windows のみ の終り
ユーザの偽装: 特定のクライアントによる問合せや操作では、データベース サーバ
がクライアントの代わりにプロセスまたはプログラムを実行するために、クライアント
を偽装する必要があります。クライアントを偽装するには、データベース サーバはクラ
イアント接続ごとにパスワードを受信する必要があります。クライアントからは、
CONNECT 文または netrc 情報を介してユーザ ID とパスワードが発行されます。
クライアントを偽装するためにパスワードを発行する方法を、以下の例に示します。
ファイルまたは文
例
netrc 情報
machine trngpc3 login bruce password im4golf
CONNECT 文
CONNECT TO ol_trngpc3 USER bruce USING
″im4golf″
ファイル sqlhosts およびレジストリ キー SQLHOSTS
Informix クライアント/サーバ接続情報、つまり sqlhosts 情報 には、クライアント アプ
リケーションがネットワーク上の Informix データベース サーバを探し、それに接続す
るために必要な情報が格納されています。
sqlhosts 情報の詳細については、71 ページの『sqlhosts 情報』を参照してください。
sqlhosts ファイル (UNIX)
UNIX では、ファイル sqlhosts はデフォルトでディレクトリ $INFORMIXDIR/etc にあ
ります。環境変数 INFORMIXSQLHOSTS を、sqlhosts 情報の格納されたファイルの絶
対パス名とファイル名に設定することもできます。データベース サーバおよびクライア
ントをホスティングする各コンピュータには、ファイル sqlhosts が必要です。
ファイル sqlhosts の各エントリ (各行) には、1 つのデータベース サーバの sqlhosts
情報が格納されます。フィールドの区切りには、スペース、タブ、またはその両方によ
る空白 を使用します。フィールド内 では、スペースやタブを使用しないでください。
ファイル sqlhosts にコメントを入れるときは、行頭をコメント文字 (#) にします。読み
68
IBM Informix Dynamic Server 管理者ガイド
やすくするため、ブランク行を挿入することもできます。各フィールドに関するそのほ
かの構文上の規則については、以降のファイル sqlhosts のエントリに関する説明の中で
示します。ファイル sqlhosts への情報の入力には、標準的なテキスト エディタを使用
します。
表 6 にファイル sqlhosts のサンプルを示します。
表 6. ファイル sqlhosts の例
DB サーバ名
ネット タイプ
ホスト名
サービス名
オプション
menlo
onipcshm
valley
menlo
newyork
ontlitcp
hill
dynsrvr2
s=2,b=5120
sales
ontlispx
knight
sales
k=0,r=0
payroll
onsoctcp
dewar
py1
asia
group
-
-
e=asia.3
asia.1
ontlitcp
node6
svc8
g=asia
asia.2
onsoctcp
node0
svc1
g=asia
SQLHOSTS 情報更新ツール
SQLHOSTS 情報の管理には、次のいずれかのツールを使用します。
v テキスト エディタ
v IBM Informix Server Administrator (ISA)
v setnet32
ヒント: SQLHOSTS 接続情報を管理するには、ISA を使用します。setnet32 では、デー
タベース サーバ (ネット タイプ、ホスト名、サービス名、およびオプション)
をセット アップすることはできますが、データベース サーバ グループをセッ
ト アップすることはできません。
SQLHOSTS レジストリ キー (Windows)
データベース サーバをインストールすると、セットアップ プログラムによって
Windows のレジストリに次のキーが作成されます。
HKEY_LOCAL_MACHINE¥SOFTWARE¥INFORMIX¥SQLHOSTS
サブツリー HKEY_LOCAL_MACHINE のこの分岐に sqlhosts 情報が格納されます。
SQLHOSTS 分岐の各キーがデータベース サーバの名前になっています。データベース
サーバ名をクリックすると、レジストリでそのデータベース サーバのフィールド
HOST、OPTIONS、PROTOCOL、および SERVICE の値が表示されます。
データベース サーバまたはクライアントをホスティングする各コンピュータには、接続
情報が含まれたレジストリ キー sqlhosts または中央レジストリが必要です。クライア
第 3 章 クライアント/サーバ通信
69
ント アプリケーションがデータベース サーバと同じコンピュータ上で実行されている
場合、それらは 1 つのレジストリ キー sqlhosts を共有します。
レジストリ キー SQLHOSTS の格納場所: データベース サーバをインストール
するとき、レジストリ キー SQLHOSTS の格納場所の指定を求められます。 次のいず
れかを指定できます。
v データベース サーバをインストールしているローカル コンピュータ
v ネットワーク上の複数のデータベース サーバの sqlhosts 情報に対応する中央かつ共
用のリポジトリとして機能する、ネットワーク上の別のコンピュータ
レジストリ キー SQLHOSTS を共有すると、複数のコンピュータで同じ sqlhosts 情報
を保持する必要がなくなります。ただし、各 コンピュータ上のファイル hosts および
ファイル services に、データベース サーバが稼働しているすべての コンピュータに関
する情報を記述する必要があります。
共有レジストリ キー sqlhosts を指定した場合は、ローカル コンピュータ上の環境変数
INFORMIXSQLHOSTS を、レジストリが格納されている Windows コンピュータの名
前に設定する必要があります。データベース サーバはまず、INFORMIXSQLHOSTS コ
ンピュータ上のレジストリ キー sqlhosts を探します。INFORMIXSQLHOSTS コンピュ
ータ上のレジストリ キー sqlhosts が見つからない場合、または
INFORMIXSQLHOSTS が設定されていない場合は、ローカル コンピュータ上のレジ
ストリ キー sqlhosts が検索されます。
Windows ネットワーク アクセス規則およびファイル アクセス権に準拠して、ローカル
コンピュータが共有レジストリ キー sqlhosts にアクセスできるようにする必要があり
ます。ネットワーク アクセス規則とファイル アクセス権については、Windows のマニ
ュアルを参照してください。
データベース サーバ payroll に対するレジストリ キー SQLHOSTS の格納場所と内容
を、図 4 に示します。
70
IBM Informix Dynamic Server 管理者ガイド
図 4. Windows のレジストリ内の sqlhosts 情報
sqlhosts 情報
UNIX 上のファイル sqlhosts にある sqlhosts 情報、または Windows 上のレジストリ
キー SQLHOSTS には、各データベース サーバに対する接続情報が格納されています。
sqlhosts 情報には、グループ定義も含まれています。データベース サーバを初期化する
とき、クライアント アプリケーションがデータベース サーバへ接続するとき、および
データベース サーバが別のデータベース サーバへ接続するとき、この接続情報が参照
されます。
各データベース サーバに対する接続情報には、必須情報フィールドが 4 つとオプショ
ン フィールドが 1 つあります。グループ情報の場合は、3 つのフィールドのみに情報
が格納されます。
UNIX のファイル sqlhosts では、5 つのフィールドの接続情報が 1 行に記述されま
す。Windows では、レジストリ キー SQLHOSTS にデータベース サーバ名が割り当て
られ、ほかのフィールドはそのキーの値になっています。sqlhosts 情報に使用されるフ
ィールドを、次の表にまとめて示します。
第 3 章 クライアント/サーバ通信
71
UNIX フィールド名
Windows フィールド名
接続情報の説明
グループ情報の説明
DB サーバ名
データベース サーバ名の データベース サーバ名
キーまたは データベース
サーバ グループのキー
ネット タイプ
PROTOCOL
接続タイプ
group という語
ホスト名
HOST
データベース サーバのホ
スト コンピュータ
情報なし。
このフィールドの位置指定
子としてハイフン (-) を使
用します。
サービス名
SERVICE
ポート番号の別名
情報なし。
このフィールドの位置指定
子としてハイフン (-) を使
用します。
オプション
OPTIONS
接続の説明、または制限の グループ オプション。
ためのオプション
データベース サーバ グル
ープ名
UNIX のみ
IBM Informix Enterprise Gateway with DRDA をデータベース サーバと同じディレクト
リにインストールすると、ゲートウェイ および Informix 製以外のサーバのエントリも
ファイル sqlhosts に格納されます。ただし、このマニュアルではデータベース サーバ
のエントリのみを説明しています。ファイル sqlhosts のほかのエントリについては、
「IBM Informix: Enterprise Gateway with DRDA User Manual」を参照してください。
UNIX のみ の終り
接続情報
ファイル sqlhosts およびレジストリ キー SQLHOSTS の各フィールドにある接続情報
について、次に説明します。
データベース サーバ名
データベース サーバ名フィールド (dbservername) には、接続情報が指定されているデ
ータベース サーバの名前を記述します。関連するすべてのネットワーク内のデータベー
ス サーバには、それぞれ一意となるデータベース サーバ名が必要です。dbservername
フィールドに指定する名前は、構成ファイル ONCONFIG で構成パラメータ
DBSERVERNAME および DBSERVERALIASES で指定した、ネットワーク内のデータ
ベース サーバ名と一致している必要があります。これらの構成パラメータの詳細につい
ては、90 ページの『接続用のパラメータ ONCONFIG』を参照してください。
72
IBM Informix Dynamic Server 管理者ガイド
DB サーバ名フィールドには、大文字、フィールド区切り文字、改行文字、コメント文
字以外の印刷可能文字を使用できます。長さは最大 128 文字です。
UNIX のみ
ファイル sqlhosts 内に同じ DB サーバ名に対する複数のエントリがある場合、最初の
もののみが使用されます。
UNIX のみ の終り
接続タイプ フィールド
UNIX では nettype、Windows では PROTOCOL である接続タイプ フィールドには、
データベース サーバとクライアント アプリケーションまたは別のデータベース サーバ
間の接続のタイプを指定します。このフィールドは 3 つのサブフィールドからなってお
り、連続した 8 文字で構成されています。図 5 に例を示します。
d
d
i
i
i
p
p
p
IPC
図 5. 接続タイプ フィールドのフォーマット
接続タイプ フィールドのサブフィールドは、次のようになっています。
データベース サーバ製品: 接続タイプ フィールドの最初の 2 文字は、データベー
ス サーバ製品を表すものです。
製品
サブフィールド 製品
on または ol
データベース サーバ
dr (UNIX)
IBM Informix Enterprise Gateway with DRDA
DRDA については、「IBM Informix: Enterprise Gateway with DRDA
User Manual」を参照してください。
インターフェイス タイプ: 接続タイプ フィールドの中央の 3 文字は、通信を有効
にするネットワーク プログラミング インターフェイスを表すものです。詳しくは、55
ページの『ネットワーク プログラミング インターフェイス』を参照してください。
インターフェイスの
サブフィールド インターフェイスのタイプ
ipc
IPC (Interprocess Communications: プロセス間通信)
第 3 章 クライアント/サーバ通信
73
soc
ソケット
tli
TLI (Transport Layer Interface: トランスポート層インターフェイス)
プロセス間通信 (IPC) が使用されるのは、同じコンピュータ上で実行される 2 つのプ
ロセス間の通信のみです。
ネットワーク プロトコル エントリ: 接続タイプ フィールドの最後の 3 文字は、
ネットワーク プロトコルまたは特定の IPC メカニズムを表すものです。
プロトコルの
サブフィールド プロトコルのタイプ
imc
IBM Informix MaxConnect で使用される TCP/IP ネットワーク プロ
トコル
nmp
名前付きパイプ通信
shm
共有メモリ通信
spx
IPX/SPX ネットワーク プロトコル
str
ストリーム パイプ通信
tcp
TCP/IP ネットワーク プロトコル
IPC 接続では、共有メモリまたはストリーム パイプを使用します。データベース サー
バでは、TCP/IP と IPX/SPX の 2 種類のネットワーク プロトコルがサポートされてい
ます。
表 7 に、データベース サーバ接続で使用可能な接続タイプの値をまとめて示します。
MaxConnect プロトコルの詳細については、98 ページの『Informix MaxConnect の使用
方法』を参照してください。
74
IBM Informix Dynamic Server 管理者ガイド
表 7. ネット タイプの値の要約
ネット タイプ値
(UNIX)
PROTOCOL 値
(Windows)
説明
接続タイプ
onipcshm
共有メモリ通信
IPC
onipcstr
ストリーム パイプ通信
IPC
名前付きパイプ通信
IPC
TCP/IP プロトコルによる TLI
ネットワーク接続
TCP/IP プロトコルによるソケット
ネットワーク接続
ontlispx
IPX/SPX プロトコルによる TLI
ネットワーク接続
onsocimc
MaxConnect との通信に TCP/IP プロトコル
を使用するソケット
ネットワーク接続
ontliimc
MaxConnect との通信に TCP/IP プロトコル
を使用する TLI
ネットワーク接続
onipcnmp
ontlitcp
onsoctcp
sqlmux
onsoctcp
sqlmux
複数のデータベース接続を使用する単一ネッ ネットワーク接続
トワーク接続
使用するプラットフォームに適した接続タイプについては、 58 ページの『データベース
サーバでサポートされる接続』を参照してください。
ホスト名フィールド
UNIX では hostname、Windows では host であるホスト名フィールドには、データベ
ース サーバが稼働しているコンピュータの名前を指定します。このフィールドには、フ
ィールド区切り文字、改行文字、コメント文字以外の印刷可能文字を使用できます。ホ
スト名フィールドの長さは最大 256 文字です。
クライアント アプリケーションでホスト名フィールドに使用する値を導出する方法を、
以降で説明します。
TCP/IP によるネットワーク通信: ネットワーク プロトコルとして TCP/IP を使用
する場合、ホスト名フィールドは、コンピュータのネットワーク アドレスを提供するフ
ァイル hosts へのキーになります。ホスト名フィールドで使用する名前は、ファイル
hosts にある名前 と対応している必要があります。ほとんどの場合、ファイル hosts の
ホスト名はコンピュータの名前と同じになっています。hosts ファイルについては、63
ページの『TCP/IP 接続ファイル』を参照してください。
場合によっては、ホスト名フィールドに実際の IP アドレスを使用するほうがよいこと
もあります。IP アドレスの使用については、85 ページの『TCP/IP 接続での IP アドレ
スの使用』を参照してください。
第 3 章 クライアント/サーバ通信
75
共有メモリ通信およびストリーム パイプ通信 (UNIX): クライアント/サーバ通
信に共有メモリまたはストリーム パイプを使用する場合は、データベース サーバが稼
働しているコンピュータの実際のホスト名が、ホスト名フィールドに記述されている必
要があります。
IPX/SPX によるネットワーク通信 (UNIX): ネットワーク プロトコルとして
IPX/SPX を使用する場合は、NetWare ファイル サーバの名前がホスト名フィールドに
記述されている必要があります。通常、NetWare ファイル サーバの名前はコンピュー
タの UNIX ホスト名 と同じです。ただし、常に同じとは限りません。正確な NetWare
ファイル サーバ名については、NetWare 管理者に確認してください。
ヒント: NetWare のインストールおよび管理のユーティリティでは、VALLEY のように
NetWare ファイル サーバ名を大文字で表示することがあります。ファイル
sqlhosts への名前の入力は、大文字、小文字のどちらでも構いません。
サービス名フィールド
サービス名フィールド (servicenameまたは service) の解釈は、接続タイプ フィールド
(nettype または PROTOCOL) で指定された接続タイプによって異なります。サービス
名フィールドには、フィールド区切り文字、改行文字、コメント文字以外の印刷可能文
字を使用できます。サービス名フィールドの長さは最大 128 文字です。
TCP/IP によるネットワーク通信: 接続プロトコルとして TCP/IP を使用する場
合、サービス名フィールドに指定する名前は、ファイル services のサービス名のエント
リと対応している必要があります。ファイル services のポート番号に基づいて、指定さ
れたホスト上のデータベース サーバがネットワーク ソフトウェアから検索されます。
ネットワーク管理者の了解が得られていれば、サービス名には任意の名前を使用できま
す。
ファイルまたはレジストリ sqlhosts とファイル hosts との関係、および sqlhosts とフ
ァイル services との関係を図 6 に示します。
76
IBM Informix Dynamic Server 管理者ガイド
TCP/IP
sqlhosts
DB
sales
onsoctcp
knight
IP
37.1.183.92
sales_ol
alias
knight
/
sales_ol
1543/tcp
図 6. ファイル sqlhosts またはレジストリ sqlhosts とファイル hosts およびファイル services との
関係
場合によっては、サービス名フィールドに実際の TCP listen ポート番号を記述すること
もあります。ポート番号の使用については、88 ページの『TCP/IP 接続でのポート番号
の使用』を参照してください。
名前付きパイプ通信 (Windows): フィールド PROTOCOL で名前付きパイプ接続
(onipcnmp) を指定した場合、SERVICE のエントリとして、データベース サーバが稼
働しているホスト コンピュータの環境で一意となる、任意の短い文字グループを使用で
きます。
共有メモリ通信およびストリーム パイプ通信 (UNIX): フィールド nettype で共
有メモリ接続 (onipcshm) またはストリーム パイプ接続 (onipcstr) を指定した場合、
データベース サーバでは servicename のエントリの値が内部的に使用され、その接続
をサポートするファイルが作成されます。onipcshm 接続と onipcstr 接続のどちらの場
合も、servicename には、データベース サーバが稼働しているホスト コンピュータの
環境で一意となる、任意の短い文字グループを使用できます。ストリーム パイプ接続の
servicename には、dbservername と同じものを指定することをお勧めします。
IPX/SPX によるネットワーク通信 (UNIX): IPX/SPX ネットワーク上のサービス
とは、データベース サーバなどのようにユーザに代わって作業を行うプログラムです。
IPX/SPX 接続の場合、フィールド servicename には任意の文字列を使用できますが、
IPX/SPX ネットワーク上で使用可能なサービス名において一意となっている必要があり
ます。フィールド servicename には dbservername と同じものを指定することをお勧め
します。
オプション フィールド
オプション フィールドには、以下の機能のエントリが記述されます。
第 3 章 クライアント/サーバ通信
77
オプション名
オプション文字
参照先
バッファ サイズ
b
79 ページ
接続のリダイレクト
c
79 ページ
グループの終わり
e
81 ページ
グループ
g
81 ページ
識別子
i
83 ページ
キープアライブ
k
83 ページ
セキュリティ
s (データベース サーバ)
r (クライアント)
83 ページ
通信サポート モジュール
csm
129 ページの『パスワードとデー
タ伝送暗号化用の通信サポート
モジュール (CSM) の使用』
オプション フィールドの値を変更すると、その変更はクライアント アプリケーション
が次に行う接続から適用されます。変更を有効にするために、クライアント アプリケー
ションを停止して再起動する必要はありません。ただし、接続情報がデータベース サー
バに読み込まれるのは初期化時のみ です。そのため、データベース サーバのオプショ
ンを変更した場合は、変更が反映されるようにデータベース サーバを再初期化する必要
があります。
オプション フィールドの構文規則: オプション フィールドの各項目のフォーマッ
トは次のようになります。
letter=value
オプション フィールドには複数の項目を任意の順序で指定できます。オプション フィ
ールドの最大長さは 256 文字です。
オプション間の区切り文字としては、コンマと空白のどちらも使用できます。オプショ
ン内では空白を使用できません。
オプション フィールドは、データベース サーバから一連の列として評価されます。オ
プション フィールド内のコンマや空白は、列の終わりを表します。クライアントとデー
タベース サーバのアプリケーションによって各列が検査され、各オプションがサポート
されているかどうかが判定されます。サポートされていないオプションがあっても、そ
の通知は行われません。単に無視されます。
有効な構文と無効な構文の例を次に示します。
78
IBM Informix Dynamic Server 管理者ガイド
構文
有効性
説明
k=0,s=3,b=5120
はい
正しい構文です。
s=3,k=0 b=5120
はい
上記エントリと等価な構文です (コンマの代わりに空白を使用)。
k=s=0
いいえ
エントリを結合できません。
バッファ サイズ オプション: バッファ サイズ オプション (b=値) を使用すると、
通信バッファ領域のサイズをバイト単位で指定できます。バッファ サイズ オプション
が適用されるのは、ネットワーク プロトコルとして TCP/IP を使用する接続のみです。
それ以外のタイプの接続では、バッファ サイズの設定が無視されます。使用しているア
プリケーションでデフォルトのサイズが効率的でない場合、このオプションを使用しま
す。TCP/IP を使用するデータベース サーバのデフォルトのバッファ サイズは 4096 バ
イトです。
バッファ サイズを変更すると、システムやネットワークのリソースを効率よく使用でき
るようになります。ただし、バッファ サイズが大きすぎると、それだけのメモリを割り
当てられずに接続拒否エラーが発生することがあります。例えば、1,000 人のユーザが
属するシステムで b=64000 と設定すると、64MB のメモリが通信バッファ用に必要に
なります。これでは、コンピュータのメモリ リソースを使いきってしまう可能性があり
ます。
多くのオペレーティング システムでは、TCP/IP 用としてサポートされている最大バッ
ファ サイズは 16KB です。最大許容バッファ サイズについては、オペレーティング
システムのマニュアルを参照するか、使用するプラットフォームのベンダのテクニカル
サポート サービスに問い合わせてください。
ネットワーク内でタイプの違うコンピュータが使用されている場合は、通信バッファの
サイズの変更には特に注意が必要です。
ヒント: 通信バッファ サイズは、デフォルトのサイズを使用することをお勧めします。
デフォルト以外のバッファ サイズに設定する場合は、クライアント側とデータ
ベース サーバ側の通信バッファが同じサイズになるようにしてください。
接続リダイレクト オプション: データベース サーバのグループ、またはクライア
ントのファイル sqlhosts でエイリアスを定義でき、データベース サーバへのクライア
ント接続が、フェイルオーバー機能を持つ各グループ メンバで試行されるようにするこ
とができます。接続リダイレクト オプション (c= 値) は、接続ソフトウェアがグルー
プ内で選択するデータベース サーバ、エイリアス、またはコサーバの順序を表します。
接続リダイレクト オプションは、次の状況で使用します。
v 複数のデータベース サーバ インスタンス間で負荷を分散する場合
第 3 章 クライアント/サーバ通信
79
v 障害が発生した場合にバックアップ データベース サーバへ移行できるように、HDR
(High-Availability Data Replication: 高可用性データ レプリケーション) を使用してい
る場合
次の表に接続リダイレクト オプションで可能な設定を示します。
設定
結果
c=0
デフォルトで、ファイル sqlhosts にあるデータベース サーバ グルー
プ リストの最初のデータベース サーバ インスタンスにクライアント
アプリケーションが接続されます。クライアント アプリケーションが
最初のインスタンスに接続できない場合は、2 番目以降のインスタン
スへの接続を順に試行します。
c=1
クライアント アプリケーションは、データベース サーバ グループ
メンバのリストへ接続する開始点をランダムに選択します。
重要: 接続リダイレクト オプションはデータベース サーバ グループ
でのみ有効です。データベース サーバ グループを指定するオ
プション g の詳細については、81 ページの『グループ オプシ
ョン』を参照してください。
通信サポート モジュール オプション: 通信サポート モジュール (CSM) オプシ
ョンを使用すると、CSM を使用するデータベース サーバごとに CSM を記述できま
す。CSM オプションを指定しない場合は、そのデータベース サーバに対するデフォル
トの認証ポリシーが使用されます。ファイルまたはレジストリ sqlhosts に記述されたす
べてのデータベース サーバに同じ CSM オプションを指定できます。また、sqlhosts の
エントリごとに異なる CSM オプションを指定することも、CSM オプションを指定し
ないこともできます。
CSM オプションのフォーマットを次の例に示します。
csm=(csmname,csm-connection-options)
csmname の値は、ファイル concsm.cfg のエントリ csmname と一致している必要があ
ります。パラメータ connection-options は、ファイル concsm.cfg で指定したデフォルト
オプション csm-connection よりも優先されます。
次に、接続に ENCCSM 通信サポート モジュールの使用を指定する例を示します。
csm=(ENCCSM)
通信サポート モジュールについての詳細は、 129 ページの『パスワードとデータ伝送暗
号化用の通信サポート モジュール (CSM) の使用』を参照してください。ファイル
concsm.cfg のエントリについては、130 ページの『CSM 構成ファイル』を参照してく
ださい。
80
IBM Informix Dynamic Server 管理者ガイド
グループの終わりオプション: グループの終わりオプション (e=DB サーバ名) を使
用すると、データベース サーバ グループの最後のデータベース サーバ名を指定できま
す。データベース サーバ グループ以外のエントリでこのオプションを指定しても、無
視されます。
あるグループに対してグループの終わりオプションが指定されていないと、グループ メ
ンバが連続しているとみなされます。そのグループに属していないエントリに到達する
か、またはファイルの終わりに到達するか、どちらか先の時点で、グループが終了した
と判断されます。グループの終わりオプションの例については、82 ページの表 8 を参
照してください。
グループ オプション: ファイル sqlhosts またはそのレジストリにデータベース サ
ーバ グループを定義する場合、複数の関連するエントリを 1 つの論理エンティティと
して使用し、クライアント/サーバ接続を確立したり、変更したりすることができます。
データベース サーバ グループを作成するには:
1. sqlhosts のエントリが属するデータベース サーバ グループの名前を、フィールド
DBSERVERNAME に 18 文字以内で指定します。
データベース サーバ グループ名は、そのデータベース サーバの初期
DBSERVERNAME と同じにすることができます。
2. 接続タイプ フィールドにキーワード group を記述します。
3. ホスト名フィールドとサービス名フィールドは使用しません。使用しないフィールド
には、NULL フィールド インジケータとして、ハイフン (-) を記述します。オプシ
ョンを使用しない場合は、NULL フィールド インジケータを省略できます。
データベース サーバ グループのエントリのオプションは次のものです。
v c = 接続リダイレクト
v e = グループの終わり
v g = グループ オプション
v i = 識別子オプション
エンタープライズ レプリケーションにデータベース サーバ グループを使用するには:
エンタープライズ レプリケーションでは、オプション i および g を使用します。レプ
リケーションに関係するすべてのデータベース サーバは、データベース サーバ グルー
プのメンバである必要があります。エンタープライズ内の各データベース サーバの識別
子 (サーバ グループ) は一意である必要があります。レプリケーションに関係する各デ
ータベース サーバで、ファイル sqlhosts が正しくセット アップされていることを確認
します。
詳細については、「IBM Informix: Dynamic Server エンタープライズ レプリケーション
ガイド」のレプリケーション環境の準備に関するセクションを参照してください。
第 3 章 クライアント/サーバ通信
81
高可用性データ レプリケーションにデータベース サーバ グループを使用するには:
HDR (High-Availability Data Replication: 高可用性データ レプリケーション) では、オ
プション c、e、および g を使用します。HDR には、同一のシステム 2 つが必要で
す。詳しくは、501 ページの『接続情報を使用したクライアントのダイレクト』を参照
してください。
重要: データベース サーバ グループを、別のデータベース サーバ グループに入れ子
にすることはできません。また、データベース サーバ グループのメンバは、複
数のグループに属することができません。
表 8 の例では、asia と peru という 2 つのグループを示します。グループ asia には
以下のメンバが含まれています。
v asia.1
v asia.2
v asia.3
グループ asia にはグループの終わりオプション (e=asia.3) が使用されているため、デ
ータベース サーバでは、asia.3 に到達するまでグループ メンバが検索されます。その
結果、usa.2 もグループに含まれることになります。グループ peru にはグループの終
わりオプションが使用されていないため、ファイルの終わりまでがメンバに含まれま
す。
表 8 に、ファイル sqlhosts 内のデータベース サーバ グループの例を示します。
表 8. ファイル sqlhosts またはレジストリ sqlhosts のデータベース サーバ グループ
DB サーバ名
ネット タイプ
ホスト名
サービス名
オプション
asia
group
-
-
e=asia.3
asia.1
ontlitcp
node6
svc8
g=asia
asia.2
onsoctcp
node0
svc1
g=asia
usa.2
ontlispx
node9
sv2
asia.3
onsoctcp
node1
svc9
peru
group
-
-
peru.1
ontlitcp
node4
svc4
peru.2
ontlitcp
node5
svc5
peru.3
ontlitcp
node7
svc6
usa.1
onsoctcp
37.1.183.92
sales_ol
g=asia
g=peru
k=1, s=0
次の環境変数またはコマンド SQL CONNECT で、データベース サーバ名の代わりに
データベース サーバ グループの名前を設定できます。
82
IBM Informix Dynamic Server 管理者ガイド
v INFORMIXSERVER
クライアント アプリケーション用の INFORMIXSERVER の値として、データベー
ス サーバ グループの名前を設定できます。ただし、データベース サーバまたはデ
ータベース サーバ ユーティリティ用の INFORMIXSERVER の値としては、データ
ベース サーバ グループ名を設定できません。
v DBPATH
DBPATH には、データベース サーバ グループの名前を DB サーバ名として設定で
きます。
識別子オプション: 識別子オプション (i= number) は、データベース サーバ グルー
プに識別子番号を割り当てるものです。識別子は正の整数で、ネットワーク環境内で一
意である必要があります。
識別子オプションの使用方法の詳細については、「IBM Informix: Dynamic Server エン
タープライズ レプリケーション ガイド」を参照してください。
キープアライブ オプション: キープアライブ オプションは、TCP/IP に使用される
ネットワーク オプションです。ほかのタイプの接続には影響を与えません。オプション
フィールドにキープアライブ オプションを指定しなくても、キープアライブ機能はデフ
ォルトで有効になります。データベース サーバおよびクライアントのいずれか、または
その両方にキープアライブ オプションを設定するには、ファイル sqlhosts の 5 番目の
列で k=1 を指定します。キープアライブ オプションは有効にしておくことをお勧めし
ます。
オプション フィールドの文字 k によって、キープアライブ オプションが識別されま
す。次に例を示します。
k=0
k=1
Disable the keep-alive feature
Enable the keep-alive feature
接続されたクライアントおよびサーバ間でデータ転送が行われておらず、キープアライ
ブ オプションが有効である場合は、ネットワーク サービスが定期的に接続を検査しま
す。オペレーティング システムのパラメータで指定された時間内に接続の受信側が応答
しない場合、ネットワーク サービスにより接続が切断されていると検出され、リソース
が解放されます。
キープアライブ オプションが無効になっていると、接続がアクティブかどうかについて
の、ネットワーク サービスによる定期的なチェックが行われません。接続の相手側が、
PC を再起動するなどして、何の通知もなく突然に接続を終了した場合、接続の切断が
ネットワーク サービスから検出されないことがあります。
セキュリティ オプション: セキュリティ オプションを使用すると、オペレーティ
ング システムのセキュリティ ファイル ルックアップを制御できます。文字 s はデー
第 3 章 クライアント/サーバ通信
83
タベース サーバ側の設定、文字 r はクライアント側の設定を示します。オプション フ
ィールドには、両方のオプションを設定できます。s の設定はクライアントで無視さ
れ、r の設定はデータベース サーバで無視されます。
次の表に、セキュリティ オプションの可能な設定を示します。
設定
結果
r=0
クライアント側からの netrc ルックアップを無効にします。パスワー
ドを入力できません。
r=1
クライアント側からの netrc ルックアップを有効にします (クライア
ント側のデフォルト設定)。
s=0
データベース サーバ側からの hosts.equiv および rhosts の両方のル
ックアップを無効にします。パスワードによる接続のみが受け入れら
れます。
s=1
データベース サーバ側からの hosts.equiv ルックアップのみを有効に
します。
s=2
データベース サーバ側からの rhosts ルックアップのみを有効にしま
す。
s=3
データベース サーバ側からの hosts.equiv および rhosts の両方のル
ックアップを有効にします (データベース サーバ側のデフォルト設
定)。
セキュリティ オプションを使用すると、クライアント (ユーザ) によるデータベース
サーバへのアクセス方法を制御できます。デフォルトでは、Informix データベース サー
バによってクライアント コンピュータ上の以下の情報が使用され、クライアント コン
ピュータが信頼関係にあるコンピュータかどうかが判定されます。
v hosts.equiv
v rhosts 情報
セキュリティ オプションを使用すると、この 2 つのファイルの使用を有効にするか、
無効にするかを明確にできます。
例えば、エンド ユーザが rhosts にトラステッド ホストを指定してしまうことを防止
するには、ファイル sqlhosts またはレジストリ キー SQLHOSTS の options フィール
ドに s=1 と設定すれば、データベース サーバによる rhosts ルックアップが禁止され
ます。
重要: 分散データベース操作で使用されるデータベース サーバでは、hosts.equiv のル
ックアップを無効にしないでください。つまり、分散処理でそのデータベース サ
ーバを使用する場合は、s=0 または s=2 に設定しないでください。
84
IBM Informix Dynamic Server 管理者ガイド
グループ情報
グループに対するファイル sqlhosts またはレジストリ sqlhosts のフィールドについ
て、以降で説明します。
データベース サーバ グループ
データベース サーバ グループを使用すると、関連する複数のデータベース サーバ エ
ントリを 1 つの論理エンティティとして扱い、クライアント/サーバ接続の確立や変更
が可能になります。また、データベース サーバ グループを使用して、データベース サ
ーバへの接続のリダイレクトを単純化することもできます。データベース サーバ グル
ープの詳細については、81 ページの『グループ オプション』を参照してください。
TCP/IP 接続の別の方法
TCP/IP 接続で、ポート番号と IP アドレスのルックアップをバイパスするいくつかの方
法を、以降で説明します。
TCP/IP 接続での IP アドレスの使用
TCP/IP 接続 (TLI とソケットの両方) では、ファイル hosts のホスト名またはエイリア
スではなく、実際の IP アドレスを ホスト名 フィールドで使用できます。 IP アドレ
スは、ピリオド (.) で区切られた 4 組の 0 から 255 の間の整数で構成されます。ファ
イル hosts の IP アドレスとホストの例を 85 ページの表 9 に示します。
表 9. ファイル hosts の例
IP アドレス
ホスト名
555.12.12.12
smoke
98.765.43.21
odyssey
12.34.56.789
knight
ホスト エイリアス
sales
表 9 の knight の IP アドレスを使用すると、次の 2 つのエントリ sqlhosts は等しく
なります。
sales
sales
ontlitcp
ontlitcp
12.34.56.789
knight
sales_ol
sales_ol
IP アドレスを使用すると、状況によっては接続時間を短縮できることがあります。ただ
し、コンピュータは通常ホスト名によって認識されるため、ホスト名フィールドに IP
アドレスを使用すると、そのエントリが関連しているコンピュータの識別が不便になり
ます。
第 3 章 クライアント/サーバ通信
85
UNIX のみ
IP アドレスは、ファイル hosts のネット アドレス フィールドで確認できます。また
は、UNIX のコマンド arp またはコマンド ypmatch で調べることもできます。
UNIX のみ の終り
Windows のみ
次のいずれかのメカニズムを使用してインターネット ドメイン アドレス
(mymachine.informix.com) を解決し、IP アドレス (149.8.73.14) を得るよう、Windows
を設定できます。
v Windows Internet Name Service
v Domain Name Server
Windows のみ の終り
TCP/IP 接続でのワイルドカード アドレッシング
次の条件の両方が 満たされている場合は、ホスト名フィールドでワイルドカードを使用
してアドレッシングを行うことができます。
v TCP/IP 接続を使用していること
v データベース サーバが稼働しているコンピュータに、イーサネット カードが 3 枚
あるなど、複数のネットワーク インターフェイス カードが使用されていること
上記の条件がどちらも満たされている場合は、データベース サーバが使用するホスト名
フィールドで、アスタリスク (*) をワイルドカード として使用できます。ホスト名フ
ィールドにワイルドカードを入力すると、データベース サーバは、そのホスト コンピ
ュータ上で有効なすべての IP アドレスでの接続を許可するようになります。
それぞれの IP アドレスには、一意のホスト名が関連付けられています。87 ページの図
7 で示すように、コンピュータ上に複数の NIC (Network-interface Card: ネットワーク
インターフェイス カード) がある場合、ファイル hosts に各 NIC のエントリが必要で
す。例えば、コンピュータ texas のファイル hosts には、次のようなエントリがありま
す。
NIC
インターネット IP アドレス
ホスト名
カード 1
123.45.67.81
texas1
カード 2
123.45.67.82
texas2
ワイルドカード (*) を単独で使用することも、ホスト名や IP アドレスでプレフィック
スとして使用することもできます。88 ページの表 10 に例を示します。
86
IBM Informix Dynamic Server 管理者ガイド
クライアント アプリケーションとデータベース サーバで、ファイル sqlhosts またはレ
ジストリ キー SQLHOSTS の接続情報を共有している場合、ワイルド カードとホスト
名または IP アドレスの両方を host name フィールドに指定できます。例えば、
*texas1 または *123.45.67.81 などです。クライアント アプリケーションは、ワイル
ドカードを無視してホスト名または IP アドレスを使用して接続を行い、データベース
サーバは、ワイルドカードを使用してすべての IP アドレスからの接続を受け入れま
す。
ワイルドカード フォーマットによって、データベース サーバのリスン スレッドは、有
効な各 NIC 上の同じサービス ポート番号を使用するクライアントからの接続を待つこ
とができるようになります。ただし、複数の IP アドレスで接続を待つ場合は、個別の
ホスト名や IP アドレスを使用した接続よりも、いくらか長い CPU 時間が必要になり
ます。
2 枚の NIC を持つコンピュータ texas 上のデータベース サーバを、図 7 に示しま
す。2 つのクライアント サイトでは、別々の NIC を使用してデータベース サーバと
通信します。
図 7. 複数の NIC の使用方法
表 10 に、データベース サーバ texas_srvr の接続情報を示します。
第 3 章 クライアント/サーバ通信
87
表 10. データベース サーバ texas_srvr で可能な接続情報エントリ
データベース サーバ名
接続タイプ
ホスト名
サービス名
texas_srvr
ontlitcp
*texas1
pd1_on
texas_srvr
ontlitcp
*123.45.67.81
pd1_on
texas_srvr
ontlitcp
*texas2
pd1_on
texas_srvr
ontlitcp
*123.45.67.82
pd1_on
texas_srvr
ontlitcp
*
pd1_on
重要: 記述できるのは、これらのエントリの中の 1 つだけです。
上記のいずれかの行に接続情報が関連付けられていると、データベース サーバ
texas_srvr はどちらの NIC からのクライアント接続も受け入れることができます。ホ
スト名フィールドでワイルドカードが検出されると、明示的なホスト名は無視されま
す。
ヒント: メンテナンスが明確で簡単になるよう、ホスト名フィールドにワイルド カード
を使用するときは、* のみではなく *host のように、ホスト名も記述すること
をお勧めします。
クライアント アプリケーションで使用される接続情報には、明示的なホスト名または
IP アドレスが必要です。iowa のクライアント アプリケーションでは、texas1、
*texas1、123.45.67.81、または *123.45.67.81 のいずれのホスト名も使用できます。
ホスト 名フィールドにワイルドカード (*) があっても、クライアント アプリケーショ
ンに無視されます。
kansas のクライアント アプリケーションでは、texas2、*texas2、123.45.67.82、また
は *123.45.67.82 のいずれのホスト名も使用できます。
TCP/IP 接続でのポート番号の使用
ネットワーク プロトコルが TCP/IP の場合、サービス名フィールドに実際の TCP listen
ポート番号を使用できます。TCP ポート番号は、ファイル services の port# フィール
ドに記述されています。
例えば、ファイル services でデータベース サーバ sales のポート番号が 1543/tcp の
場合、ファイル sqlhosts で次のようにエントリを書き込むことができます。
サーバ名
ネット タイプ
ホスト名
サービス名
sales
ontlitcp
knight
1543
88
IBM Informix Dynamic Server 管理者ガイド
実際のポート番号を使用すると、状況によっては接続時間を短縮できます。ただし、ホ
スト名フィールドに IP アドレスを指定する場合と同様に、実際のポート番号を使用す
ると接続情報の管理が多少不便になることがあります。
Dynamic Server による IPv6 アドレスのサポート
Dynamic Server は、128 ビット長のインターネット プロトコル バージョン 6 (IPv6)
のアドレスを、以下のプラットフォームで認識します。
表 11.
プラットフォーム
IPv6 アドレスをサポートするバージョン
Solaris
Solaris 8 以上
AIX
Dynamic Server の場合: AIX 5.2 以上
CSDK 2.90.UC1 の場合: AIX 5.1
Dynamic Server は、すべてのプラットフォームで、32 ビット長のインターネット プロ
トコル バージョン 4 (IPv4) のアドレスをサポートします。
Dynamic Server は、オペレーティング システムが提供する 2 重スタック機構を活用し
て、IPv4 と IPv6 の両環境の相互運用を可能にします。IPv6 アドレッシングをサポー
トしないクライアント アプリケーションが、IPv6 使用可能データベース サーバで動作
できるようにするために、IPv6 使用可能ホストを、IPv4 アドレスでも構成する必要が
あります。
IPv6 ホスト上に IPv6 をサポートしない Dynamic Server のバージョン (10.00.UC1 よ
り古いバージョン) をインストールする場合は、IPv4 アドレスでホストを構成する必要
があります。古いデータベース サーバが IPv6 アドレスを認識しないため、クライアン
ト アプリケーションは、IPv4 アドレスを使用してサーバに接続する必要があります。
バージョン 10.0 以上の Dynamic Server が SQLHOSTS ファイルの IPv6 アドレスの応
答待ちをするよう構成されている場合、IPv6 をサポートしない古いクライアント製品や
アプリケーションはデータベース サーバと通信できません。
IPv4 と IPv6 の両アドレスを保有するホストで稼働する Dynamic Server は、マルチホ
ームのホストで稼働するサーバと同じように取り扱うことができます。次のいずれかの
方法で、IPv4 と IPv6 の両アドレスを保有するホスト上で Dynamic Server を構成でき
ます。
v 別名を作成し (DBSERVERALIASES 構成パラメータを使用)、そのうちのどれかに
IPv6 アドレスを割り当て、別のどれかに IPv4 アドレスを割り当てる。
v SQLHOSTS ファイルでワイルドカードのホスト名を使用し、Dynamic Server が、ホ
ストで構成されたすべての IP アドレスの応答待ちをするように指示する。
次に例を示します。
第 3 章 クライアント/サーバ通信
89
olserver1
oltlitcp
*myhost
olservice1
ホスト名の前のアスタリスクに注意してください。これは、マルチホームのホストの
サーバで現在使用されている命名方式と同じものです。Dynamic Server バージョン
10.0 から、ホストが IPv6 アドレスで構成されている場合、SQLHOSTS ファイルの
ホスト名記入項目は、IPv6 アドレスにマップされるようになりました。ホストが
IPv6 アドレスで構成されていない場合、ホスト名記入項目は IPv4 アドレスにマップ
されます。前にアスタリスクが付いたホスト名は、ワイルドカード アドレスにマッ
プされます。
接続用のパラメータ ONCONFIG
データベース サーバを初期化するとき、初期化の手順で構成ファイル ONCONFIG の
パラメータ値が使用されます。接続に関連する ONCONFIG のパラメータを次に示しま
す。
v DBSERVERNAME
v DBSERVERALIASES
v NETTYPE
これらの構成パラメータについて、以降で説明します。
構成パラメータ DBSERVERNAME
構成パラメータ DBSERVERNAME は、データベース サーバの名前、DB サーバ名 を
指定するものです。例えば、nyc_research という値を DB サーバ名に割り当てる場
合、構成ファイル ONCONFIG に次の行を記述します。
DBSERVERNAME nyc_research
クライアント アプリケーションがデータベース サーバに接続するときは、DB サーバ
名を指定する必要があります。指定された DB サーバ名に関連付けられた sqlhosts 情
報に、確立すべき接続のタイプが記述されます。
クライアント アプリケーションによって、次のいずれかの位置にデータベース サーバ
の名前が指定されます。
v 環境変数 INFORMIXSERVER
v データベース環境を指定する CONNECT、DATABASE、CREATE TABLE、ALTER
TABLE などの SQL 文
v 環境変数 DBPATH
Windows のみ
Windows では、データベース サーバのインスタンスについての情報がレジストリの
DBSERVERNAME で保存されているため、構成ファイルでの DBSERVERNAME の変
90
IBM Informix Dynamic Server 管理者ガイド
更は簡単に行えません。
Windows のみ の終り
構成パラメータ DBSERVERALIASES
パラメータ DBSERVERALIASES を使用すると、同一のデータベース サーバに追加
DB サーバ名を割り当てられます。別名の最大値は 32 です。1 つのデータベース サー
バのインスタンスに 3 つの DB サーバ名を割り当てる構成ファイル ONCONFIG のエ
ントリの例を、図 8 に示します。
DBSERVERNAME
DBSERVERALIASES
sockets_srvr
ipx_srvr,shm_srvr
図 8. パラメータ DBSERVERNAME および DBSERVERALIASES の例
図 8 の DB サーバ名に関連付けられたエントリ sqlhosts には、図 9 に示すエントリを
記述できます。各 DB サーバ名にはファイル sqlhosts またはレジストリ キー
SQLHOSTS に対応するエントリがあるため、1 つのデータベース サーバに複数の接続
タイプを関連付けることができます。
shm_srvr
sockets_srvr
ipx_srvr
onipcshm
onsoctcp
ontlispx
my_host
my_host
nw_file_server
my_shm
port1
ipx_srvr
図 9. 1 つのデータベース サーバに対する UNIX 形式のファイル sqlhosts の 3 つのエントリ
クライアント アプリケーションによって図 9 に示すファイル sqlhosts が使用され、共
有メモリ通信によるデータベース サーバへの接続に次の文が使用されます。
CONNECT TO ’@shm_srvr’
次の文を使用すると、クライアント アプリケーションから同じ データベース サーバへ
の TCP/IP ソケット接続を開始できます。
CONNECT TO ’@sockets_srvr’
構成パラメータ NETTYPE
構成パラメータ NETTYPE を使用すると、データベース サーバによって通信に使用さ
れる仮想プロセッサの数とタイプを調整できます。ネットワーク接続のタイプ
(ipcshm、ipcstr、ipcnmp、soctcp、tlitcp、tlispx) ごとに、異なるエントリ NETTYPE を構
成ファイルに記述できます。
第 3 章 クライアント/サーバ通信
91
パラメータ NETTYPE は必須ではありませんが、2 種類以上の接続タイプを使用する場
合は NETTYPE を設定することをお勧めします。データベース サーバがある程度の時
間動作した後、パフォーマンスが向上するよう、構成パラメータ NETTYPE を使用して
データベース サーバを調整してください。
NETTYPE についての詳細は、186 ページの『ネットワーク仮想プロセッサ』を参照し
てください。構成パラメータ NETTYPE については、「IBM Informix: Dynamic Server
管理者の参照」を参照してください。
ネットワーク接続用の環境変数
接続時間に関する設定を行う環境変数 INFORMIXCONTIME と接続再試行に関する設
定を行う環境変数 INFORMIXCONRETRY は、クライアントがデータベース サーバへ
の接続を試行するときの動作に影響を与えるクライアント 環境変数です。ネットワーク
トラフィックがビジーなために発生する接続エラーを最小限に抑えるには、これらの環
境変数を使用してください。
クライアント アプリケーションが明示的に共有メモリ セグメントに接続する場合は、
共有メモリ ベースに関する環境変数 INFORMIXSHMBASE を設定する必要がありま
す。詳しくは、209 ページの『クライアントが通信部を確保する方法 (UNIX)』を参照
してください。
環境変数 INFORMIXSERVER を使用すると、クライアントの接続先となるデフォルト
の DB サーバ名を指定できます。
環境変数についての詳細は、「IBM Informix: SQL ガイド: 参照」を参照してくださ
い。
クライアント/サーバ構成の例
クライアント/サーバ接続に対するファイル sqlhosts またはレジストリ キー
SQLHOSTS の正しいエントリを、以降に示します。次の例について説明します。
v 共有メモリ接続を使用する場合
v ローカル ループバック接続を使用する場合
v ネットワーク接続を使用する場合
v 複数の接続タイプを使用する場合
v 複数のデータベース サーバにアクセスする場合
重要: 以下の例では、明示的な記述がなくても、ネットワーク構成ファイル hosts およ
び services は正しく設定されているものとします。
92
IBM Informix Dynamic Server 管理者ガイド
共有メモリ接続を使用する場合 (UNIX)
river という名前のコンピュータ上での共有メモリ接続を、図 10 に示します。
図 10. 共有メモリ接続
このインストールの場合、構成ファイル ONCONFIG には次の行が記述されています。
DBSERVERNAME river_shm
上の図 10 に示した接続に対するファイル sqlhosts またはレジストリ キー SQLHOSTS
のサンプル エントリを、下の表に示します。
表 12. sqlhosts エントリ
DB サーバ名
ネット タイプ
ホスト名
サービス名
river_shm
onipcshm
river
rivershm
クライアント アプリケーションでは、次の文を使用してこのデータベース サーバに接
続します。
CONNECT TO ’@river_shm’
これは共有メモリ接続であるため、ネットワーク構成ファイルにはエントリが不要で
す。共有メモリ接続の場合、ファイル sqlhosts またはレジストリ キー SQLHOSTS の
ホスト名およびサービス名のフィールドには、任意の値を指定できます。
共有メモリ接続の詳細については、209 ページの『クライアントが通信部を確保する方
法 (UNIX)』を参照してください。
ローカル ループバック接続を使用する場合
ソケットおよび TCP/IP を使用するローカル ループバック接続の例を図 11 に示しま
す。ホスト コンピュータの名前は river です。
第 3 章 クライアント/サーバ通信
93
図 11. ローカル ループバック接続
上の図 11 に示した接続に対するファイル sqlhosts またはレジストリ キー SQLHOSTS
の正しいエントリを、次の表に示します。
表 13. sqlhosts エントリ
DB サーバ名
ネット タイプ
ホスト名
サービス名
river_soc
onsoctcp
river
riverol
ネットワーク接続でソケットの代わりに TLI が使用される場合は、この例ではネット
タイプのみが変化します。その場合、nettype のエントリは onsoctcp が ontlitcp に
なります。
ONCONFIG ファイルには次の行が含まれています。
DBSERVERNAME river_soc
この例は、river に対するエントリがファイル hosts にあり、riverol に対するエントリ
がファイル services にあることを前提にしています。
ネットワーク接続を使用する場合
クライアント アプリケーションがホスト river 上にあり、データベース サーバがホス
ト valley 上にある場合の構成を、図 12 に示します。
94
IBM Informix Dynamic Server 管理者ガイド
図 12. ネットワーク構成
データベース サーバ valley_ds に対するエントリは、両方のコンピュータ上のファイル
sqlhosts またはレジストリ sqlhosts 上にあります。データベース サーバが稼働するコ
ンピュータ上のファイル sqlhosts またはレジストリ キー SQLHOSTS 内の各エントリ
に対応するエントリが、クライアント アプリケーションが稼働するコンピュータ上に存
在します。
UNIX のみ
両方のコンピュータは同じ TCP/IP ネットワーク上にありますが、ホスト river ではネ
ットワーク プログラミング インターフェイスとしてソケットが使用され、ホスト
valley では TLI が使用されています。フィールド nettype のエントリは、ファイル
sqlhosts が存在するコンピュータで使用されているネットワーク プログラミング イン
ターフェイスのタイプと等しくなっている必要があります。この例において、フィール
ド nettype のエントリは、ホスト river 上のデータベース サーバ valley_ds では
onsoctcp で、ホスト valley 上のデータベース サーバ valley_ds では ontlitcp になり
ます。
UNIX のみ の終り
IPX/SPX でのファイル sqlhosts のエントリ (UNIX)
IPX/SPX ソフトウェアでは、ほとんどの場合 TLI が提供されています。95 ページの図
12 の構成で TCP/IP の代わりに IPX/SPX を使用する場合、両コンピュータのファイル
sqlhosts エントリは表 14 で示すようになります。
第 3 章 クライアント/サーバ通信
95
表 14. sqlhosts エントリ
DB サーバ名
ネット タイプ
ホスト名
サービス名
valley_us
ontlispx
valley_nw
valley_us
この場合、フィールド hostname に NetWare ファイル サーバの名前を記述します。フ
ィールド servicename には、IPX/SPX ネットワーク上で一意で、DB サーバ名と同じに
なる名前を記述します。
複数の接続タイプを使用する場合
データベース サーバの 1 つのインスタンスにより、複数のタイプの接続を提供できま
す。そのような構成を図 13 に示します。データベース サーバはホスト river 上にあり
ます。クライアント A では、高速であるという理由から、共有メモリ接続を使用して
データベース サーバに接続します。クライアント B は、サーバとは別のコンピュータ
上にあるため、ネットワーク接続を使用する必要があります。
データベース サーバで複数のタイプの接続を使用するには、次の操作を行います。
v ONCONFIG 構成ファイルに、DBSERVERNAME と DBSERVERALIASES のエント
リを記述します。
v データベース サーバと接続タイプの各組合せごとに、ファイル sqlhosts またはレジ
ストリ キー SQLHOSTS にエントリを記述します。
図 13 に示す構成では、データベース サーバには、river_net および river_shm という
2 つの DB サーバ名があります。そこで、構成ファイル ONCONFIG に次のエントリを
記述します。
DBSERVERNAME
DBSERVERALIASES
96
IBM Informix Dynamic Server 管理者ガイド
river_net
river_shm
図 13. 複数の接続タイプを使用する UNIX 構成
使用される接続タイプは、クライアント アプリケーションに使用される DB サーバ名
で決まります。上の図 13 では、クライアント A によって次の文が使用され、データベ
ース サーバへの接続が行われます。
CONNECT TO ’@river_shm’
ファイル sqlhosts またはレジストリ キー SQLHOSTS 内で river_shm という名前に関
連付けられたネット タイプによって共有メモリ接続が指定されるため、この接続は共有
メモリ接続になります。
クライアント B によって次の文が使用され、データベース サーバへの接続が行われま
す。
CONNECT TO ’@river_net’
ファイルまたはレジストリ sqlhosts 内で river_net に関連付けられた nettype 値によっ
てネットワーク (TCP/IP) 接続が指定されるため、クライアント B ではネットワーク接
続が使用されます。
複数のデータベース サーバにアクセスする場合
ホスト river 上で 2 つのデータベース サーバが稼働している場合の構成を、図 14 に
示します。1 つのコンピュータ上で複数のデータベース サーバが稼働している状態を、
第 3 章 クライアント/サーバ通信
97
複数常駐 といいます。複数常駐の詳細については、「IBM Informix: Dynamic Server イ
ンストール ガイド」を参照してください。
図 14. UNIX 上の複数のデータベース サーバ
図 14 の構成では、構成ファイル ONCONFIG をデータベース サーバ A 用とデータベ
ース サーバ B 用に 1 つずつ、合計 2 つ用意する必要があります。ファイル sqlhosts
またはレジストリ キー SQLHOSTS には、両方のデータベース サーバに対する接続情
報を記述します。
データベース サーバ A 用の構成ファイル ONCONFIG には、次の行を記述します。
DBSERVERNAME
riverA_shm
データベース サーバ B 用の構成ファイル ONCONFIG には、次の行を記述します。
DBSERVERNAME riverB_soc
Informix MaxConnect の使用方法
IBM Informix MaxConnect は、UNIX の Informix データベース サーバ環境に対応する
ネットワーキング製品です。MaxConnect は、数百から数万までのクライアント/サーバ
接続を管理できます。MaxConnect は接続を多重化し、クライアント接続とデータベー
ス接続との比率を 200:1 以上にすることもできます。MaxConnect はさらに、数千もの
接続に対応できるようにシステムのスケーラビリティが拡張されており、システム リソ
ースの節約、応答時間の短縮、および CPU 要件の緩和を実現できます。MaxConnect
は、OLTP データ転送には最適ですが、大量のマルチメディア データ転送には向いてい
ません。
98
IBM Informix Dynamic Server 管理者ガイド
MaxConnect は、Informix データベース サーバおよびクライアント アプリケーション
とは別にインストールします。最高のパフォーマンスを実現するために、MaxConnect
は Informix クライアントが接続されている別のコンピュータ、またはクライアント ア
プリケーション サーバにインストールしてください。MaxConnect は、次の構成にイン
ストールできます。
v Informix クライアント接続専用のサーバ
v クライアント アプリケーション サーバ
v データベース サーバ コンピュータ
MaxConnect ユーザは、多重接続に ontliimc および onsocimc の 2 つのプロトコルを
使用できます。次の 2 つの構成で、プロトコル ontliimc および onsocimc を使用でき
ます。
v MaxConnect をデータベース サーバに接続する構成
この構成では、クライアント接続が多重化され、パケット集計が使用されます。
v MaxConnect を介さずに、クライアント アプリケーションを直接データベース サー
バに接続する構成
この構成では、クライアントで接続の多重化またはパケット集計を使用する利点はあ
りません。この構成は、クライアント アプリケーションがシンプル ラージ オブジ
ェクト データまたはスマート ラージ オブジェクト データの転送を行う場合に選択
します。このデータ転送には、データベースに直接接続する構成が最適です。
MaxConnect の構成およびコマンド onstat -g imc と imcadmin による MaxConnect の
監視方法については、「IBM Informix: MaxConnect User’s Guide」を参照してくださ
い。
重要: MaxConnect および「IBM Informix: MaxConnect User’s Guide」は、Informix デー
タベース サーバとは別に発送されます。
第 3 章 クライアント/サーバ通信
99
100
IBM Informix Dynamic Server 管理者ガイド
第 4 章 データベース サーバの初期化
初期化のタイプ . . . . . . . . . . . . . . . . . . .
ディスク領域の初期化 . . . . . . . . . . . . . . . . .
初期化手順 . . . . . . . . . . . . . . . . . . . . .
構成ファイルの処理 . . . . . . . . . . . . . . . . .
共有メモリ部の作成 . . . . . . . . . . . . . . . . .
共有メモリの初期化 . . . . . . . . . . . . . . . . .
ディスク領域の初期化 . . . . . . . . . . . . . . . .
要求された仮想プロセッサすべての開始 . . . . . . . . . .
必要な変換の実行 . . . . . . . . . . . . . . . . .
高速復旧の開始 . . . . . . . . . . . . . . . . . .
チェックポイントの開始 . . . . . . . . . . . . . . .
構成変更の記録 . . . . . . . . . . . . . . . . . .
ファイル oncfg_servername.servernum の作成 . . . . . . . . .
一時表領域の削除 . . . . . . . . . . . . . . . . .
強制常駐の設定 (指定した場合) . . . . . . . . . . . . .
ユーザへの制御の引渡し . . . . . . . . . . . . . . .
データベース sysmaster の作成および SMI 表の準備 . . . . . .
データベース sysutils の作成 . . . . . . . . . . . . . .
ユーザ接続最大数の監視 . . . . . . . . . . . . . . .
データベース サーバの動作モード . . . . . . . . . . . . .
データベース サーバの動作モードの変更 . . . . . . . . . . .
モードを変更できるユーザ . . . . . . . . . . . . . .
モードを変更する ISA オプション . . . . . . . . . . . .
モードを変更する ON-Monitor オプション (UNIX) . . . . . .
モードを変更するコマンド行オプション . . . . . . . . . .
オフライン モードから静止モードへの移行 . . . . . . . .
オフライン モードからオンライン モードへの移行 . . . . .
オフライン モードからシングルユーザ モードへの移行 . . . .
静止モードからオンライン モードへの移行 . . . . . . . .
オンライン モードから静止モードへの通常移行 . . . . . .
オンライン モードから静止モードへの即時移行 . . . . . .
静止またはオンライン モードからシングルユーザ モードへの移行
シングルユーザ モードからオンライン モードへの移行 . . . .
シングルユーザ モードから静止モードへの移行 . . . . . .
オフライン モードへの即時移行 . . . . . . . . . . . .
© Copyright IBM Corp. 1996, 2004
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
102
102
104
104
105
106
106
106
106
107
107
107
107
107
108
108
108
109
109
109
111
112
112
113
113
114
114
114
114
115
115
116
116
116
117
101
本章について
この章では、データベース サーバを初期化する方法、初期化の過程で行われる処理、デ
ータベース サーバの動作モード、および動作モードを変更する方法について説明しま
す。
初期化のタイプ
データベース サーバの初期化というときには、相互に関連する 2 つの処理を指しま
す。1 つは共有メモリの初期化で、もう 1 つはディスク領域の初期化です。
共有メモリの初期化 では、データベース サーバの共有メモリの内容である、内部表、
バッファ、共有メモリの通信領域が確立されます。共有メモリは、データベース サーバ
の起動ごとに初期化されます。コマンド行から oninit ユーティリティを実行して、デー
タベース サーバの共有メモリを初期化し、データベース サーバをオンラインにしま
す。
ディスク領域の初期化と共有メモリの初期化は、主に以下の 2 点で異なります。
v
共有メモリの初期化は、ディスク領域の割当てやレイアウトには影響を与えませ
ん。失われるデータはありません。
v 共有メモリ初期化は、高速復旧を実行します。
ディスク領域の初期化 では、構成ファイルに格納された値を使用してディスク上にルー
ト DB 領域の初期チャンクが作成されます。 ディスク領域を初期化する場合、データ
ベース サーバは初期化の一環として自動的に共有メモリを初期化します。ディスク領域
の初期化は、データベース サーバを最初に起動したときに行われます。それ以降は、コ
ールド復元時またはデータベース サーバ管理者の要求による初期化時に実行されるのみ
です。
警告: ディスク領域を初期化した場合、そのディスク領域の内容はすべて上書きされま
す。既存のデータベース サーバのディスク領域を再初期化すると、以前のデータ
ベース サーバのデータにはまったくアクセスできなくなり、データは実質的に破
壊されます。
ディスク領域の初期化
初期化を開始する場合は、データベース サーバがオフライン モードとなっている必要
があります。
データベース サーバを初めて起動する場合、またはすべての DB 領域とそれに関連付
けられたデータを削除する場合、次の方法でディスク領域を初期化し、データベース サ
ーバをオンライン モードにします。
102
IBM Informix Dynamic Server 管理者ガイド
オペレーティング
システム
データベース サーバをオンライン モードにする操作
UNIX
データベース サーバを初期化するには informix または root
としてログインする必要があります。oninit のオプション -iy
を実行します。
Windows
データベース サーバを初期化するには、管理者またはパワー
ユーザ グループのメンバである必要があります。
v データベース サーバはサービスとして実行されます。「コ
ントロールパネル」の「サービス」で、データベース サー
バ サービスを選択し、「スタートアップ パラメータ」フィ
ールドに -iy と入力します。次に「開始」をクリックしま
す。
v コマンド行で、コマンド starts dbservername -iy を使用しま
す。
警告: これらのコマンドを実行した場合、データベース サーバ ディスク領域の既存デ
ータはすべて破壊されます。フラグ -i は、データベース サーバの新しいインス
タンスを起動する場合のみ使用してください。
oninit -s オプションを使用して共有メモリを初期化し、データベース サーバを静止モ
ードにしておくことができます。
Windows のみ
データベース サーバをインストールして、データベース サーバの新しいインスタンス
を初期化する場合、またはインスタンス マネージャ プログラムを使用してデータベー
ス サーバの新しいインスタンスを作成する場合、データベース サーバは初期化されま
す。
問題を診断する場合を除き、コマンド oninit のオプション -iy でデータベース サーバ
を初期化しないようお勧めします。
Windows のみ の終り
oninit の詳細については、「IBM Informix: Dynamic Server 管理者の参照」を参照して
ください。
これらのユーティリティを使用してデータベース サーバの初期化およびデータベース
サーバのモード変更を行う方法については、20 ページの『データベース サーバの起動
とディスク領域の初期化』を参照してください。
第 4 章 データベース サーバの初期化
103
初期化手順
ディスク領域の初期化時には、必ず共有メモリの初期化が行われます。ただし、構成変
更の記録など、共有メモリの初期化で通常行われる一部の処理は、新しく初期化するデ
ィスクとは関係がないため、ディスクの初期化では要求されません。
表 15 に、2 つのタイプの初期化で行われる主な処理を示します。以降の各セクション
では、それぞれの手順について説明します。
表 15. 初期化手順
共有メモリの初期化
ディスクの初期化
構成ファイルの処理
構成ファイルの処理
共有メモリ セグメントの作成
共有メモリ セグメントの作成
共有メモリ構造の初期化
共有メモリ構造の初期化
ディスク領域の初期化
要求された仮想プロセッサすべての開始
要求された仮想プロセッサすべての開始
必要な変換の実行
高速復旧の開始
チェックポイントの開始
チェックポイントの開始
構成変更の記録
oncfg_servername.servernum ファイルの更新
oncfg_servername.servernum ファイルの更新
静止モードへの移行
静止モードへの移行
一時表領域の削除 (オプション)
強制常駐の設定 (要求された場合)
強制常駐の設定 (指定された場合)
オンライン モードへの移行およびユーザへの制御
の引渡し
オンライン モードへの移行およびユーザへの制御
の引渡し
SMI 表の更新 (最新の状態になっていない場合)
SMI 表を含むデータベース sysmaster を作成
データベース sysutils を作成
各チェックポイントでユーザ接続の最大数を監視
各チェックポイントでユーザ接続の最大数を監視
構成ファイルの処理
初期化の過程では、データベース サーバにより構成パラメータが使用され、共有メモリ
セグメントが割り当てられます。共有メモリ構成パラメータを変更する場合、データベ
ース サーバを停止して再起動し、変更を有効にする必要があります。
ファイル ONCONFIG、onconfig、および onconfig.std は、UNIX では
$INFORMIXDIR/etc に、Windows では %INFORMIXDIR%¥etc に保存されます。初
期化中には、次に示す順序で以下のファイルから構成値が検索されます。
104
IBM Informix Dynamic Server 管理者ガイド
1. 環境変数 ONCONFIG を設定すると、データベース サーバによりファイル
ONCONFIG から値が読み込まれます。
環境変数 ONCONFIG を設定している場合でも、指定したファイルにデータベース
サーバからアクセスできないときは、エラー メッセージが戻されます。
2. 環境変数 ONCONFIG が設定されていない場合、データベース サーバはファイル
ONCONFIG から構成値を読み取ります。
3. ファイル onconfig で構成パラメータを省略した場合、データベース サーバはファ
イル $INFORMIXDIR/etc/onconfig.std から構成値を読み取ります。
データベース サーバの初期化前は、常に 環境変数 ONCONFIG を設定することをお勧
めします。デフォルトの構成ファイルはテンプレート用に使用するものであり、実用的
な構成として機能するものではありません。ただし、onconfig_std が欠落していると、
サーバは初期化されません。構成ファイルの詳細については、16 ページの『データベー
ス サーバの構成』を参照してください。
初期化の過程で、ルート DB 領域の予約ページ PAGE_CONFIG に以前の構成ファイル
の値が保管されている場合は、それらと現行の値とが比較されます。相違がある場合、
初期化時に現行の構成ファイル ONCONFIG の値が使用されます。
共有メモリ部の作成
データベース サーバの常駐共有メモリに必要なサイズは、構成値を使用して算出されま
す。さらに、データベース サーバでは内部の値を使用して追加的な構成要件が計算され
ます。オーバーヘッドに備えた必要領域が計算され、確保されます。
共有メモリには 3 つの異なるタイプがあり、それらを確保するために、データベース
サーバではオペレーティング システムから共有メモリ領域を取得します。
v 常駐部。データ バッファと内部表に使用されます。
v 仮想部。システムとユーザ セッションのメモリ要求に使用されます。
UNIX のみ
v IPC 通信部。IPC (Inter Process Communication: プロセス間通信) に使用されます。
共有メモリのこの部分は、IPC 共有メモリ接続を設定した場合のみ割り当てられま
す。
UNIX のみ の終り
次に、データベース サーバは共有メモリ セグメントをその仮想アドレス領域に接続
し、共有メモリ構造を初期化します。共有メモリ構造の詳細については、219 ページの
『共有メモリの仮想部』を参照してください。
第 4 章 データベース サーバの初期化
105
初期化が完了してデータベース サーバが稼働すると、必要に応じて追加的な共有メモリ
セグメントが作成されます。データベース サーバは、共有メモリ セグメントの作成
を、ページ サイズの増加によって行います。
共有メモリの初期化
データベース サーバにより共有メモリが確保された後、初期化されていないデータの共
有メモリ領域がクリアされます。次に、共有メモリのヘッダ情報が配置され、共有メモ
リ構造にあるデータが初期化されます。論理ログ バッファに必要な領域が配置され、構
造が初期化されて論理ログ バッファを構成する 3 つの個々のバッファが相互にリンク
されます。これらの構造の詳細については、「IBM Informix: Dynamic Server 管理者の
参照」のユーティリティ onstat のセクションを参照してください。
データベース サーバは、共有メモリ領域を再びマッピングすると、新しい共有メモリ
ヘッダに個々の構造の新しい開始アドレスとサイズを登録します。
共有メモリの初期化は、ディスク構造とディスク レイアウトには影響しません。データ
ベース サーバは、ディスクから論理ログと物理ログの格納場所のような重要なアドレス
情報を読み取り、この情報を使用して共有メモリ内のポインタを更新します。
ディスク領域の初期化
この手順は、ディスク領域を初期化する場合のみ実行されます。共有メモリ構造の初期
化が終了すると、データベース サーバはディスクの初期化を開始します。データベース
サーバは、ディスク上のルート DB 領域に確保されているすべての予約ページを初期化
し、ディスクに PAGE_PZERO 制御情報を書き込みます。
要求された仮想プロセッサすべての開始
データベース サーバは、仮想プロセッサが必要となった場合には、すべて自動的に仮想
プロセッサを開始します。ファイル ONCONFIG の各パラメータの内容により、どのプ
ロセッサを開始するかが決定されます。例えばパラメータ NETTYPE の値により、接続
を確立するときに開始されるプロセッサ数およびプロセッサ タイプが決定します。仮想
プロセッサの詳細については、162 ページの『仮想プロセッサ』を参照してください。
必要な変換の実行
データベース サーバでは、データベース サーバの内部ファイルが検査されます。ファ
イルが以前のバージョンから継承したものである場合、これらのファイルは現行のフォ
ーマットに更新されます。データベース変換については、「IBM Informix: 移行ガイド」
を参照してください。
106
IBM Informix Dynamic Server 管理者ガイド
高速復旧の開始
高速復旧が必要かどうかは、データベース サーバにより検査され、必要な場合には高速
復旧が開始されます。高速復旧については、444 ページの『高速復旧』を参照してくだ
さい。
高速復旧は、ディスク領域初期化の過程では、復旧対象が存在しないため実行されませ
ん。
チェックポイントの開始
高速復旧の処理を終了してから、データベース サーバはフル チェックポイントを開始
します。チェックポイント処理の一環として、メッセージ ログにチェックポイント完了
メッセージが書き込まれます。チェックポイント処理の詳細については、439 ページの
『チェックポイント』を参照してください。
この後、初期化プロセスの開始方法に従って、データベース サーバは静止モードまたは
オンライン モードに移行します。
構成変更の記録
構成ファイル内の現行の値が、ルート DB 領域の予約ページ PAGE_CONFIG に保管さ
れていた以前の値と比較されます。相違がある箇所では、データベース サーバにより両
方の値 (以前の値および新しい値) がメッセージ ログに記録されます。
この作業は、ディスク領域を初期化する過程では実行されません。
ファイル oncfg_servername.servernum の作成
データベース サーバにより、ファイル oncfg_servername.servernum が作成されます。
このファイルは、DB 領域、BLOB 領域、論理ログ ファイル、またはチャンクを追加あ
るいは削除するたびに更新されます。このファイルを操作する必要は、まったくありま
せん。ただし、ディレクトリ $INFORMIXDIR/etc (UNIX) またはディレクトリ
%INFORMIXDIR%¥etc (Windows) にリストされているため、参照することはできます。
このファイルは、システム全体を復旧する場合に、データベース サーバにより使用され
ます。
ファイル oncfg_servername.servernum の詳細については、「IBM Informix: Dynamic
Server 管理者の参照」でデータベース サーバが使用するファイルのセクションを参照
してください。
一時表領域の削除
データベース サーバは、DB 領域全域を探索し、一時表領域の有無を検査します。ただ
し、oninit のオプション -p を使用してデータベース サーバを初期化するときには、こ
の手順は省略されます。これらの一時表領域は、未処理のまま停止され、適切なクリー
ンアップが実行できなかったユーザ プロセスが残した表領域です。一時表領域は、デー
第 4 章 データベース サーバの初期化
107
タベース サーバによりすべて削除され、ディスク領域として再利用されます。一時表領
域について詳しくは、294 ページの『一時表』を参照してください。
この作業は、ディスク領域を初期化する過程では実行されません。
強制常駐の設定 (指定した場合)
構成パラメータ RESIDENT の値が -1 である場合、または 0 より大きい場合、データ
ベース サーバにより共有メモリの強制常駐が試行されます。ホスト コンピュータ シス
テムが強制常駐をサポートしていない場合は、初期化プロセスが続行されます。強制常
駐は行われず、メッセージ ログにエラー メッセージが記録されます。構成パラメータ
RESIDENT の詳細については、「IBM Informix: Dynamic Server 管理者の参照」を参照
してください。
ユーザへの制御の引渡し
データベース サーバにより、「IBM Informix Dynamic Server が初期化され、ディスク
の初期化が完了しました。」というメッセージがメッセージ ログに書き込まれます。ま
た、仮想共有メモリ セグメントを動的に割り当てます。
この時点で、ユーザに制御が戻されます。初期化手続きにおいてエラー メッセージが生
成された場合は、次の場所にそのエラー メッセージが表示されます。
v コマンド行
v 構成パラメータ MSGPATH で指定したデータベース サーバ メッセージ ログ ファ
イル
パラメータ MSGPATH の詳細については、「IBM Informix: Dynamic Server 管理者
の参照」を参照してください。
v IBM Informix Server Administrator (ISA) の概要セクション
データベース sysmaster の作成および SMI 表の準備
ユーザに制御が戻されても、まだ初期化手続きは完了していません。次に、データベー
ス サーバにより system-monitoring interface (SMI) 表が検査されます。SMI 表が最新の
状態でない場合は、更新されます。ディスクを初期化する場合と同様、SMI 表が存在し
ない場合には、表が作成されます。SMI 表の作成が完了すると、メッセージ ログ ファ
イルに「sysmaster データベースの作成は完了しました。」というメッセージが記録さ
れます。データベース サーバは、変換およびリバージョン時にデータベース sysmaster
の再作成も行います。SMI 表の詳細については、「IBM Informix: Dynamic Server 管理
者の参照」のデータベース sysmaster の章を参照してください。
SMI 表の作成が完了する前にデータベース サーバを停止した場合、SMI 表の作成処理
は打ち切られます。その場合にも、データベース サーバに不都合が生じることはありま
せん。SMI 表は、以後、データベース サーバがオンラインになった時点で作成されま
108
IBM Informix Dynamic Server 管理者ガイド
す。ただし SMI 表の作成を中止した場合、SMI 表に対して問合せを実行できません。
また、バックアップに ON–Bar を使用することもできません。
SMI 表の作成が完了すると、データベース サーバは使用可能な状態になります。デー
タベース サーバは、ユーザが操作を停止するまで、または障害が発生するまで稼働しま
す。仮想プロセッサまたはほかのデータベース サーバのプロセスの強制終了によってデ
ータベース サーバを停止することはお勧めできません。詳しくは、197 ページの『仮想
プロセッサの起動と停止』を参照してください。
データベース sysutils の作成
データベース サーバは、ディスクの初期化、変換、またはリバージョン時にデータベー
ス sysutils の削除および再作成を行います。ON–Bar にデータベース sysutils のバック
アップおよび復元情報が格納されます。メッセージ ログに「sysutils データベースの
作成が成功しました。」というメッセージが表示されるまで待機します。詳しくは、
「IBM Informix: バックアップおよび復元 ガイド」を参照してください。
ユーザ接続最大数の監視
データベース サーバは、各チェックポイントでユーザ接続の最大数を「maximum server
connectionsnumber」というメッセージ ログで出力します。直前の再起動またはディス
クの初期化後に、データベース サーバへ接続したユーザ人数を監視できます。
このメッセージにより、カスタマはライセンスの使用状況を記録し、追加のライセンス
購入時期を決定できます。カスタマがデータベース サーバを再初期化すると、表示され
ている数はリセットされます。
データベース サーバの動作モード
データベース サーバの現行動作モードを指定するには、コマンド行で onstat ユーティ
リティを実行します。ヘッダ onstat にはモードが表示されます。
データベース サーバ動作の主要モードを表 16 に示します。
第 4 章 データベース サーバの初期化
109
表 16. 動作モード
動作モード
説明
ユーザに許可されたアクセス
オフライン モード
データベース サーバは実行されていま 管理者 (ユーザ informix) のみがこの
せん。共有メモリが割り当てられてい モードから別のモードへ変更できま
ません。
す。
静止モード
データベース サーバ プロセスは実行
されており、共有メモリは割り当てら
れています。
管理者 (ユーザ informix) のみがデー
タベース サーバにアクセスできます。
管理者はこのモードを使用して、SQL
や DDL 文を実行する必要のない管理
機能を実行します。
その他のユーザはデータベース サーバ
状態に関する情報を参照することはで
きますが、データベース サーバへアク
セスすることはできません。
シングルユーザ モード このモードは、静止モードとオンライ
ン モードの中間モードです。
管理者 (ユーザ informix) のみがデー
タベース サーバにアクセスできます。
管理者はこのモードを使用して、SQL
や DDL 文を実行する必要のあるタス
クを含む、管理タスクを実行します。
管理者は、オンライン モードで使用で
きるその他のすべての機能を実行する
こともできます。
オンライン モード
その他のユーザはデータベース サーバ
状態に関する情報を参照することはで
きますが、データベース サーバへアク
セスすることはできません。
オンライン モードは、データベースの 許可ユーザはデータベース サーバに接
通常動作モードです。
続でき、データベースに関するあらゆ
る動作を実行できます。
ユーザ informix または root は、コマ
ンド行ユーティリティを使用してデー
タベース サーバの多くのパラメータ
ONCONFIG 値を変更できます。
このほかにも、データベース サーバには次のモードがあります。
v 読取り専用モード は HDR ペアの副データベース サーバにより使用されます。クラ
イアント アプリケーションにより、読取り専用モードのデータベース サーバに問合
せを行うことはできますが、書込みを行うことはできません。
v 復旧モード は一時的なモードです。データベース サーバが高速復旧を実行すると
き、またはシステム アーカイブあるいはシステム復元から復旧を行うときに、復旧
モードになります。オフライン モードから静止モードへの変更中にも復旧モードに
なります。
v 停止モード は一時的なモードです。データベース サーバがオンライン モードから
静止モードに移行するとき、またはオンライン (あるいは静止) モードからオフライ
110
IBM Informix Dynamic Server 管理者ガイド
ン モードに移行するときに、停止モードになります。現行ユーザはそのままアクセ
スを続けることができますが、新規ユーザはアクセスできません。
停止モードへの移行を開始した場合、キャンセルすることはできません。
データベース サーバの動作モードの変更
ここでは、ユーティリティ oninit とユーティリティ onmode、および ISA を使用し
て、データベースの動作モードを変更する方法について説明します。
Windows のみ
Windows では、データベース サーバはサービスとして実行されます。Windows では、
サービスの開始、停止、一時停止を行う「サービス」ツールとも呼ばれるサービス制御
アプリケーションが提供されています。サービス制御アプリケーションは、「コントロ
ール パネル」プログラム グループにあります。データベース サーバのサービス名に
は、データベース サーバ名 (ファイル ONCONFIG にある DBSERVERNAME の値) が
含まれています。例えば、データベース サーバ newyork の Dynamic Server のサービ
スは次のようになります。
IBM Informix Database Server - newyork
「サービス」ツールを使用してモードを変更するには、ツールを起動してデータベース
サーバ サービスを選択します。次に「サービス」ウィンドウで適切なボタンを選択しま
す。この章で後ほど示す表に、各モードを選択するとき、どのボタンを選択すればよい
かを示します。
データベース サーバを開始または停止するには、NET コマンドや「サーバ マネージ
ャ」ツールなど、ほかの Windows ツールを使用することもできます。これらの方法の
詳細については、Windows オペレーティング システムのマニュアルを参照してくださ
い。
Windows のみ の終り
ヒント: データベース サーバのモードを変更したら、コマンド onstat を実行して現在
のサーバの状態を確認します。
第 4 章 データベース サーバの初期化
111
モードを変更できるユーザ
UNIX のみ
データベース サーバの動作モードを変更できるのは、root または informix としてログ
インしたユーザに限られます。
UNIX のみ の終り
Windows のみ
110 ページの表 16 に、Windows のデータベース サーバ動作モードを変更できるユー
ザが示されています。ISA を使用する場合、オペレーティング システムには任意のユ
ーザとしてログインできますが、Apache にはユーザ informix としてログインする必要
があります。Apache サーバは Informix-Admin グループのメンバとして実行されてい
ます。
表 17. Windows での動作モードの変更
動作モードの変更
管理者グループ
Informix-Admin グループ
コマンド行ユーティリティ
(starts)
X
ISA
X
「サービス」コントロール パネル
X
Windows のみ の終り
モードを変更する ISA オプション
ISA を使用して、データベース サーバ モードを変更できます。詳しくは、ISA オンラ
イン ヘルプを参照してください。
112
IBM Informix Dynamic Server 管理者ガイド
処置
ISA オプション
データベース サーバを初期化する。
「モード」>「オンライン (ディスクを初期
化)
あるいは「静止 (ディスクを初期化)」
オフラインまたはシングルユーザ モードから静止モードへ 「モード」>「静止」
変更する。
あらゆるモードからシングルユーザ モードへ変更する。
「モード」>「シングルユーザ」
オフライン、静止、またはシングルユーザ モードからオン 「モード」>「オンライン」
ライン モードへ変更する。
オンライン モードから静止モードへ通常変更する。
「モード」>「静止 (通常)」
オンライン モードから静止モードへ即時変更する。
「モード」>「静止 (即時)」
データベース サーバを停止する。
「モード」>「オフライン」
モードを変更する ON-Monitor オプション (UNIX)
UNIX では、ON–Monitor を使用して、データベース サーバ モードを変更できます。
詳しくは、「IBM Informix: Dynamic Server 管理者の参照」の ON–Monitor のセクショ
ンを参照してください。
処置
メニュー オプション
データベース サーバを初期化する。
「Parameters」>「Initialize」
オフライン モードから静止モードへ変更する。
「Mode」>「Startup」
オフラインまたは静止モードからオンライン モードへ変更 「Mode」>「Online」
する。
オンライン モードから静止モードへ通常変更する。
「Mode」>「Graceful Shutdown」
オンライン モードから静止モードへ即時変更する。
「Mode」>「Immediate Shutdown」
シングルユーザ モードへ変更する。
「Mode」>「Single User」
データベース サーバを停止する。
「Mode」>「Take Offline」
モードを変更するコマンド行オプション
このセクションでは、モードを変更するコマンド、およびモード変更がユーザ セッショ
ンに及ぼす影響について説明します。各モードの説明、およびサーバが各モードのとき
に、どのユーザがデータベース サーバにアクセスできるかについて、 110 ページの表
16 に示します。
第 4 章 データベース サーバの初期化
113
オフライン モードから静止モードへの移行
データベース サーバをオフライン モードから静止モードへ移行すると、共有メモリが
初期化されます。管理者のみがデータベース サーバにアクセスして、SQL や DDL 文
を実行しない管理機能を実行できます。
オペレーティング システム
操作
UNIX
v oninit のオプション -s を実行します。
Windows
v コマンド行で、コマンド starts dbservername -s
を実行します。
オフライン モードからオンライン モードへの移行
データベース サーバをオフライン モードからオンライン モードへ移行すると、データ
ベース サーバは、共有メモリを初期化し、すべてのユーザ セッションで使用可能にな
ります。
オペレーティング システム
操作
UNIX
v oninit を実行します。
Windows
v 「サービス」ツールでデータベース サーバ サー
ビスを選択し、「開始」をクリックします。
v コマンド行で、コマンド starts dbservername を
使用します。
オフライン モードからシングルユーザ モードへの移行
データベース サーバをオフライン モードからシングルユーザ モードへ移行すると、サ
ーバは、SQL や DDL 文の実行を含め、データベース サーバ機能および管理機能を実
行する、管理者のみが使用できるモードに移行します。
オペレーティング システム
操作
UNIX または Windows
v oninit -j を実行します。
静止モードからオンライン モードへの移行
データベース サーバを静止モードからオンライン モードに移行すると、すべてのセッ
ションからアクセスできます。
114
IBM Informix Dynamic Server 管理者ガイド
データベース サーバをオンライン モードから静止モードへ移行した後に再びオンライ
ン モードに戻す場合、以前の処理を中断されたユーザは、データベースを再び選択し、
カーソルを再度宣言する必要があります。
オペレーティング システム
操作
UNIX または Windows
v onmode のオプション -m を実行します。
Windows のみ
v 「サービス」ツールでデータベース サーバ サー
ビスを選択し、「続行」をクリックします。
オンライン モードから静止モードへの通常移行
現行の処理を中断せずにデータベース サーバへのアクセスを制限する場合は、データベ
ース サーバをオンライン モードから静止モードへ通常移行します。
移行すると、新しいセッションがデータベース サーバにアクセスしないよう、フラグが
設定されます。現行のセッションは、最後まで処理できます。
モードの移行を開始した場合、キャンセルすることはできません。オンライン モードか
ら静止モードへの移行の過程では、データベース サーバは停止モードにあるとみなされ
ます。
オペレーティング システム
操作
UNIX または Windows
v onmode のオプション -s または onmode のオプ
ション -sy を実行します。
Windows のみ
v 「サービス」ツールでデータベース サーバ サー
ビスを選択し、「一時停止」をクリックします。
オンライン モードから静止モードへの即時移行
データベース サーバへのアクセスをすみやかに制限する場合は、データベース サーバ
をオンライン モードから静止モードへ即時移行します。ただし、進行中の処理は失われ
ることがあります。
即時停止の確認を求めるプロンプトが表示されます。停止への移行を承諾すると、共有
メモリに保持されているすべてのセッションに切断信号が送信されます。セッションが
切断信号を受信しない場合や、10 秒以内に切断に自動応答しない場合、セッションは終
了します。
第 4 章 データベース サーバの初期化
115
データベース サーバ ユーザは、データベース サーバが停止したことを示すエラー メ
ッセージ -459、またはセッションが予期しない事態で終了したことを示すエラー メッ
セージ -457 を受信します。
データベース サーバが終了したセッションは、すべてクリーンアップされます。処理中
のトランザクションは、ロールバックされます。
オペレーティング システム
操作
UNIX または Windows
v onmode のオプション -u または onmode のオプ
ション -uy を実行します。
オプション -y により、プロンプトを確認する必
要がなくなります。
静止またはオンライン モードからシングルユーザ モードへの移行
データベース サーバを静止またはオンライン モードからシングルユーザ モードへ移行
すると、サーバは、管理者のみが使用できるモードに移行します。
オンライン モードから開始する場合、データベース サーバは、informix ユーザでない
ユーザ ID を使用して接続しているユーザを自動的に切断し、このユーザはエラー メッ
セージを受け取ります。トランザクション中に接続が終了すると、データベース サーバ
により、トランザクションがロールバックされます。
他に接続しているユーザがいない場合に SQL や DLL コマンドを実行する場合は、シ
ングルユーザ モードに変更します。
オペレーティング システム
操作
UNIX または Windows
v onmode -j を実行します。
シングルユーザ モードからオンライン モードへの移行
データベース サーバをシングルユーザ モードからオンライン モードに移行すると、す
べてのユーザがデータベース サーバにアクセスできるようになります。
オペレーティング システム
操作
UNIX または Windows
v onmode のオプション -m を実行します。
シングルユーザ モードから静止モードへの移行
データベース サーバをシングルユーザ モードから静止モードへ移行すると、サーバ
は、SQL や DDL 文の実行を含まない管理機能を実行する、管理者のみが使用できるモ
ードに移行します。
116
IBM Informix Dynamic Server 管理者ガイド
オペレーティング システム
操作
UNIX または Windows
v onmode -s を実行します。
オフライン モードへの即時移行
データベース サーバは、どのようなモードからでもオフライン モードに即時移行でき
ます。データベース サーバをオフライン モードに移行した後は、静止モード、シング
ルユーザ モード、またはオンライン モードでデータベース サーバを再起動してくださ
い。データベース サーバを再起動すると、高速復旧が実行され、データの論理的一貫性
が確認されます。
オフライン モードへの移行を確認するプロンプトが表示されます。移行を承諾すると、
データベース サーバによりチェックポイント要求が開始され、共有メモリに保持されて
いるすべてのセッションに切断信号が送信されます。セッションが切断信号を受信しな
い場合、または 10 秒以内に自動応答しない場合、このセッションは終了します。
データベース サーバ ユーザは、データベース サーバが停止したことを示すエラー メ
ッセージ -459、またはセッションが予期しない事態で終了したことを示すエラー メッ
セージ -457 を受信します。
データベース サーバをオフライン モードに移行した後は、静止モード、シングルユー
ザ モード、またはオンライン モードでデータベース サーバを再起動してください。デ
ータベース サーバを再起動すると、高速復旧が実行され、データの論理的一貫性が確認
されます。
データベース サーバが終了したセッションは、すべてクリーンアップされます。処理中
のトランザクションは、ロールバックされます。
オペレーティング システム
操作
UNIX または Windows
v onmode のオプション -k または onmode のオプ
ション -ky を実行します。オプション -y を使用
すると、即時停止を確認する自動プロンプトが表
示されません。
Windows のみ
v 「サービス」ツールでデータベース サーバ サー
ビスを選択し、「停止」をクリックします。
第 4 章 データベース サーバの初期化
117
118
IBM Informix Dynamic Server 管理者ガイド
第 5 章 セキュリティ
UNIX または Linux 開始前のサーバ ユーティリティ セキュリティ . . . . . . .
セキュリティ検査の使用不可化 . . . . . . . . . . . . . . . . . .
セキュアでない環境をセキュアな環境にする . . . . . . . . . . . . .
ユーティリティ セキュリティ検査の警告およびエラー メッセージ . . . . . .
INFORMIXDIR ディレクトリの権限 . . . . . . . . . . . . . . . .
Dynamic Server ユーティリティを実行するためのユーザとグループのメンバシップ.
データベース イベントの監査 . . . . . . . . . . . . . . . . . . .
ユーザ ロール . . . . . . . . . . . . . . . . . . . . . . . . .
デフォルト ロール . . . . . . . . . . . . . . . . . . . . . .
サービス妨害フラッディング アタックの制限 (UNIX) . . . . . . . . . . .
LISTEN_TIMEOUT および MAX_INCOMPLETE_CONNECTIONS パラメータの使用
onmode -wm および onmode -wf オプションを使用したパラメータ値の変更 . . .
暗号化 . . . . . . . . . . . . . . . . . . . . . . . . . . .
暗号化と暗号化オプションの概要 . . . . . . . . . . . . . . . . .
パスワードとデータ伝送暗号化用の通信サポート モジュール (CSM) の使用 . . .
CSM 構成ファイル . . . . . . . . . . . . . . . . . . . . .
パスワード暗号化の構成 . . . . . . . . . . . . . . . . . . .
ネットワーク データ暗号化の構成 . . . . . . . . . . . . . . . .
列レベル暗号化の使用 . . . . . . . . . . . . . . . . . . . . .
格納領域の考慮事項 . . . . . . . . . . . . . . . . . . . . .
列データの暗号化 . . . . . . . . . . . . . . . . . . . . .
暗号化された列のサイズを算出する方法を示す例 . . . . . . . . . . .
列を暗号化する方法を示す例 . . . . . . . . . . . . . . . . . .
暗号化されたデータへの問合せを行う方法を示す例 . . . . . . . . . .
認証モジュール . . . . . . . . . . . . . . . . . . . . . . . .
UNIX または Linux 上で稼働するシステム用の Pluggable Authentication Modules .
サポートされるプラットフォーム . . . . . . . . . . . . . . . .
PAM サービスの名前 . . . . . . . . . . . . . . . . . . . .
認証モード . . . . . . . . . . . . . . . . . . . . . . . .
必要なスタック サイズ . . . . . . . . . . . . . . . . . . . .
暗黙的な接続 . . . . . . . . . . . . . . . . . . . . . . .
PAM を使用するデータベース サーバの構成 . . . . . . . . . . . .
エンタープライズ レプリケーションおよび高可用性データ レプリケーション .
アプリケーション開発 . . . . . . . . . . . . . . . . . . . .
PAM を使用した分散トランザクション、クライアント API、および互換性の問題
Windows での LDAP 認証サポート. . . . . . . . . . . . . . . . .
LDAP 認証サポート モジュールのインストールと構成 . . . . . . . . .
LDAP モジュールの構成 . . . . . . . . . . . . . . . . . . .
Dynamic Server の構成 . . . . . . . . . . . . . . . . . . . .
認証モード . . . . . . . . . . . . . . . . . . . . . . . .
© Copyright IBM Corp. 1996, 2004
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
120
121
122
122
123
124
125
125
125
126
127
127
128
128
129
130
131
133
142
144
144
144
145
146
146
146
147
147
148
148
148
148
149
149
149
149
150
150
150
151
119
暗黙的な接続 . . . . . . . . . . . . . . . . . . . . . . . . . . . .
エンタープライズ レプリケーションおよび高可用性データ レプリケーション . . . . . .
アプリケーション開発 . . . . . . . . . . . . . . . . . . . . . . . . .
LDAP サポート モジュールを使用した分散トランザクション、クライアント API、および互換
性の問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
認証モジュールに対応したアプリケーション開発 . . . . . . . . . . . . . . . . .
分散トランザクション . . . . . . . . . . . . . . . . . . . . . . . . . .
クライアント API および認証サポート モジュール . . . . . . . . . . . . . . . .
互換性問題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
エンタープライズ レプリケーションおよび高可用性データ レプリケーション接続のセキュリティ オ
プション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
外部ルーチン (UDR) のセキュリティ . . . . . . . . . . . . . . . . . . . . . .
151
151
151
152
152
154
155
155
156
157
本章について
この章では、以下のデータベース サーバ セキュリティ機能について説明します。
v サーバ ユーティリティは、Dynamic Server が UNIX または Linux で開始する前
に、機密保護機能のある環境を検査します。
v 特定データベースの個々のユーザまたは PUBLIC グループに割り当てることのでき
る、デフォルト ロール。
v 不完全な接続タイムアウト期間を減らし、接続に対する不完全な要求数を制限するこ
とにより、敵対的なサービス妨害 (DOS) フラッディング アタックの危険を減らすこ
とに使用できる構成パラメータ
v パスワード、データ伝送、および列レベルの暗号化オプション
v UNIX または Linux で稼働する Dynamic Server の Pluggable Authentication Module
(PAM)
v Windows で稼働する Dynamic Server システムに対する Lightweight Directory Access
Protocol (LDAP) 認証サポート
v エンタープライズ レプリケーション接続および高可用性データ レプリケーション接
続のセキュリティ オプション
v 未公認ユーザが外部ルーチンを登録できないようにするためのセキュリティ オプシ
ョン
UNIX または Linux 開始前のサーバ ユーティリティ セキュリティ
データベース サーバの新規バージョンをインストールする場合は、インストールの指示
に従って、すべての主要なファイルおよびディレクトリの権限を適切に設定することを
お勧めします。
セキュリティを高めるために、主要なサーバ ユーティリティは、使用される環境がセキ
ュアであるかどうかを検査します。データベース サーバを開始するまでは、次の設定に
ついては、インストール時の設定から変更しないようにしてください。
120
IBM Informix Dynamic Server 管理者ガイド
v $INFORMIXDIR およびこの下のディレクトリに関するアクセス権。
データベース サーバは各ディレクトリについて、ディレクトリが存在すること、デ
ィレクトリが informix ユーザおよび正しいグループ ( 123 ページの『INFORMIXDIR
ディレクトリの権限』に示された) によって所有されていること、およびディレクト
リ許可にグループやその他のユーザの書込み権限が含まれていないことを検査しま
す。
v ONCONFIG ファイルのアクセス権。
このファイルは、データベース サーバ管理者 (DBSA) グループが所有している必要
があります。DBSA グループが informix (デフォルト グループ) の場合は、
ONCONFIG ファイルは informix ユーザによって所有されている必要があります。そ
うでない場合は、所有権の制限はありません。このファイルは他のファイルに対する
書込み権限を保有することはできません。
v sqlhosts ファイルのアクセス権。
デフォルト構成では、sqlhosts ファイルは $INFORMIXDIR/etc/sqlhosts ディレクト
リにあります。所有者は informix ユーザであり、グループは informix グループまた
は DBSA グループです。パブリック書込み許可はありません。
INFORMIXSQLHOSTS 環境変数を設定してこのファイルを指定した場合、所有者と
グループはチェックされませんが、パブリック書込み権限は許可されません。
v ファイル名の長さ。
$INFORMIXDIR/etc/onconfig.std と $INFORMIXDIR/etc/$ONCONFIG のファイル名
はどちらも、256 文字より短くする必要があります。
以上の条件についてのテストで 1 つでも失敗したものがあると、ユーティリティはエラ
ー メッセージを出して終了します。
警告: データベース サーバは、構成ファイルがパブリック書込みアクセス権を持ってい
ると、INFORMIXDIR 環境変数が /etc/informix ディレクトリでセキュアであると
指定されていない限り、構成ファイルを読み取りません。詳しくは、『セキュリ
ティ検査の使用不可化』および 122 ページの『セキュアでない環境をセキュアな
環境にする』 を参照してください。
セキュリティ検査の使用不可化
セキュリティ検査を絶対に使用不可にしないことを強くお勧めしますが、特定の
$INFORMIXDIR ディレクトリに常駐するデータベース サーバについては、セキュリテ
ィ検査を部分的に使用不可にすることができます。セキュリティ検査を使用不可にする
には、root ユーザとして、INFORMIXDIR/etc/informixdir-is-insecure スクリプトを実行
します。このスクリプトが正常に実行された後でも、ユーティリティを実行すると警告
メッセージが出ますが、プログラムは続行します。
第 5 章 セキュリティ
121
注: スクリプトへの引数として、コマンド行で INFORMIXDIR の値を指定できます。し
たがって、root ユーザ環境で INFORMIXDIR を設定する必要はありません。
informixdir-is-insecure スクリプトは、root によって所有され、555 の権限を保有する
/etc/informix ディレクトリを作成します (必要に応じて)。このディレクトリで、スクリ
プトは 444 の権限を保有する server-10.xx.yyy という名前のファイルを作成します。フ
ァイル名の xx 部分はメジャー バージョン番号であり、yyy 部分は修正パッケージ番号
です。例えば、server-10.00.UC1 のようになります。このファイルには、セキュリティ
検査が無効の $INFORMIXDIR 値がリストされます。
注: server-10.xx.yyy ファイルの内容の形式は、将来のリリースで変更になる場合があり
ます。
強い推奨であっても、セキュリティ検査を使用不可にする場合は、ibmifmx_security.sh
スクリプトを使用して、システム上での SUID と SGID プログラムの数を制限する必
要があります。
セキュアでない環境をセキュアな環境にする
データベース サーバがご使用の環境がセキュアでなくなったことを報告し、プログラム
が終了した場合、root ユーザは、$INFORMIXDIR/etc/make-informixdir-secure スクリ
プトを実行して、該当するディレクトリ許可をリセットし、環境を再びセキュアにする
ことができます。
informix ユーザはスクリプトを実行する権限を持っていますが、ディレクトリが
informix ユーザによって所有されていないと、スクリプトは問題を解決することはでき
ません。ただし、解決しなければならない問題がエラー メッセージに示されます。ま
た、予期しない所有者やグループに所有されていたり、パブリック書込み許可を持って
いたりする $INFORMIXDIR の下のファイルおよびディレクトリがスクリプトによって
示されます。
ユーティリティ セキュリティ検査の警告およびエラー メッセージ
起動時にサーバ ユーティリティが実行するセキュリティ検査によって問題が検出される
と、エラー メッセージが出ます。メッセージ ファイルや国際化サポートが利用できな
い場合にエラー メッセージが戻されます。したがって、エラー メッセージにはエラー
番号はありません。また、メッセージは翻訳されていません。
以下の問題がある場合、以下のいずれかのメッセージが表示され、ユーティリティは続
行します。
v INFORMIXDIR or ONCONFIG is too long. Maximum length for
$INFORMIXDIR/etc/$ONCONFIG is 255 characters.
v INFORMIXSQLHOSTS is too long.
Maximum length is 255 characters.
v ONCONFIG not set; TBCONFIG set.
122
IBM Informix Dynamic Server 管理者ガイド
TBCONFIG will not be supported in future.
以下の問題がある場合、ユーティリティは終了し、以下のいずれかのメッセージが表示
されます。
v User informix not found.
v Group informix not found.
v Could not access logical-file filename.
v Logical-file filename is not owned by user with id UID.
v Logical-file filename not owned by group with id GID.
v Logical-file filename has insecure mode mode.
v Could not access logical-file filename.
次の表では、上のメッセージで使用される変数が定義されています。
変数
説明
filename
ファイルまたはディレクトリの名前
logical-file
ONCONFIG、INFORMIXSQLHOSTS、INFORMIXDIR、または
INFORMIXDIR/xxx (xxx は $INFORMIXDIR の下のサブディレクトリ
のいずれかの番号)。
例えば、INFORMIXDIR が /usr/informix に設定されている場合、次
のようなメッセージになる場合があります。INFORMIXSQLHOSTS
/usr/informix/etc/sqlhosts is not owned by the user with id
1234.
mode
8 進の権限値
UID
番号
GID
番号
INFORMIXDIR ディレクトリの権限
次の表には、$INFORMIXDIR ディレクトリとそれぞれの所有者、グループ、および権
限がリストされています。
サブディレクトリ
所有者
グループ
権限
. ($INFORMIXDIR)
informix
informix
755
bin
informix
informix
755
lib
informix
informix
755
gls
informix
informix
755
msg
informix
informix
755
etc
informix
DBSA
775
aaodir
informix
AAO
775
第 5 章 セキュリティ
123
サブディレクトリ
所有者
グループ
権限
dbssodir
informix
DBSSO
775
データベース サーバ管理者 (DBSA)、監査分析オフィサ (AAO)、およびデータベース
システム セキュリティ オフィサ (DBSSO) の各グループの詳細については、
「IBM Informix: Trusted Facility Guide」を参照してください。
Dynamic Server ユーティリティを実行するためのユーザとグループのメンバ
シップ
次の Dynamic Server ユーティリティは SUID root および SGID informix です。
v onaudit
v onbar_d
v ondblog
v onedcu
v oninit
v onmode
v ON-Monitor
v onshowaudit
v onsmsync
v onsnmp
v onsrvapd
v ontape
v snmpdm
次の Dynamic Server ユーティリティは SGID informix です。
v oncheck
v onedpdu
v onload
v onlog
v onparams
v onpload
v onspaces
v onstat
v onunload
v xtree
124
IBM Informix Dynamic Server 管理者ガイド
データベース イベントの監査
ユーザが特定のオブジェクトで特定の回数実行する動作を追跡することで、データベー
ス イベントを監査できます。この情報を使用すると、データベースへの不審なアクセス
の監視、無許可アクセスの検出、潜在的なセキュリティ損害や悪意のあるユーザの見極
めが可能になり、データベース サーバ悪用の証拠として活用できます。
監査の詳細については、「IBM Informix: Trusted Facility Guide」を参照してください。
ユーザ ロール
ロールとは、給与計算または給与計算マネージャなどの作業タスクの分類です。定義さ
れた各ロールは、ロールに付与されたデータベース オブジェクトに対するアクセス権を
保有します。ロールを定義するには、CREATE ROLE 文を使用します。
ロールを作成したら、GRANT 文を使用して、ロール名に関連した 1 人以上のユーザに
アクセス権を付与します。CREATE ROLE および GRANT ROLE 文を使用すると、ロ
ールに対しアクセス権を 1 セット作成した後、数多くのユーザにそのロールを付与でき
ます。この結果、同じアクセス権のセットをグループ内の各ユーザに付与する必要がな
くなります。
ロールをユーザに付与したら、ロールの権限授与者または被権限授与者 (ユーザ) は、
SET ROLE 文を使用してロールを有効化する必要があります。ロールを有効化しない
と、ユーザはそのロールのアクセス権を保有することができません。
ロールの作成と使用の詳細については、「IBM Informix: SQL ガイド: 構文」を参照し
てください。
デフォルト ロール
管理者はデフォルト ロールを定義して、特定データベースの個々のユーザまたは
PUBLIC グループに割り当てることができます。デフォルト ロールは、ユーザがデータ
ベースとの接続を確立すると、自動的に適用されます。これにより、ユーザは SET
ROLE 文を実行せずにデータベースへ接続できます。
各ユーザは、個々のユーザに付与されたアクセス権と、デフォルト ロールのアクセス権
を保有します。ユーザは、SET ROLE DEFAULT 文を使用して、現在の個々のロールか
らデフォルト ロールに切り替えることができます。
ユーザおよび PUBLIC に異なるデフォルト ロールが割り当てられると、ユーザのデフ
ォルト ロールが優先されます。ユーザにデフォルト ロールが割り当てられない場合
は、ユーザは、個々に付与されたパブリック アクセス権のみを保有します。
デフォルト ロールのアクセス権を定義し付与するには、次のようにします。
第 5 章 セキュリティ
125
1. デフォルト ロールとして使用する既存ロールを現行のデータベースで選択するか、
デフォルト ロールとして使用するロールを作成します。現行データベースで新規ロ
ールを作成するには、CREATE ROLE rolename 文を使用します。
2. GRANT 文を使用して、アクセス権をロールに付与します。
3. GRANT DEFAULT ROLE rolename TO username または GRANT DEFAULT ROLE rolename
TO PUBLIC の構文を使用して、ロールをユーザに付与し、ロールをデフォルト ユー
ザまたは PUBLIC ロールとして設定します。
デフォルト ロールとユーザの関連付けを解除するには、REVOKE DEFAULT ROLE 文
を使用します。
現行ロールをデフォルト ロールに変更するには、SET ROLE DEFAULT 文を使用する
必要があります。
これらの文の詳細については、「IBM Informix: SQL ガイド: 構文」を参照してくださ
い。
サービス妨害フラッディング アタックの制限 (UNIX)
サービス妨害 (DOS) アタックを制限するために、Dynamic Server には複数のリスナ ポ
ート スレッド (listen_authenticate) があります。これらのスレッドはクライアント要求
を認証し、メイン リスナ ポート スレッドは着信要求のみを受け入れ、認証用の新規ス
レッドを生成します。
MAX_INCOMPLETE_CONNECTIONS 構成パラメータを使用して、特定の時間に認証を
行うスレッドの数を設定できます。
LISTEN_TIMEOUT 構成パラメータを使用して、不完全な接続のタイムアウト値を設定
できます。
DOS アタックは、Telnet などの外部メカニズムを使用して、データベース サーバに予
約されたポートに接続するときに発生する可能性があります。例えば、Telnet を使用し
てデータベース サーバ サービス用に予約されたポートに接続したがデータを送信しな
い場合、DB-Access などのアプリケーションによって別のセッションでのサーバへの接
続が試行されると、リスナ ポート スレッドは、Telnet セッションからの情報を待つ間
ブロックされているため、別のセッションで使用されるアプリケーションへの接続を受
け入れることができません。待機期間中に、アタッカーがループの分散 DOS (DDOS)
アタックを開始すると、この接続がフラッディング アタックを受けて、接続パフォーマ
ンスが低下します。
126
IBM Informix Dynamic Server 管理者ガイド
LISTEN_TIMEOUT および MAX_INCOMPLETE_CONNECTIONS パラメータ
の使用
敵対的な DOS フラッディング アタックの危険を減らすために、次の構成パラメータを
カスタマイズできます。
v LISTEN_TIMEOUT。不完全な接続タイムアウト期間を設定します。デフォルトの不完
全な接続タイムアウト期間は 10 秒です。
v MAX_INCOMPLETE_CONNECTIONS。接続に対する不完全な要求の数を制限しま
す。デフォルトの不完全な接続の最大数は 1024 です。
LISTEN_TIMEOUT および MAX_INCOMPLETE_CONNECTIONS 構成パラメータを設
定していないときに、許可のないアタックのフラッディングが発生すると、Listener VP
がセキュアでなくなり、有効な要求を必要なときに listen できなくなる場合がありま
す。
LISTEN_TIMEOUT および MAX_INCOMPLETE_CONNECTIONS 構成パラメータを設
定しているときに、何者かがシステムに進入しようとし、指定された最大制限値を超え
ると、オンライン メッセージ ログの次の情報によって、システムが攻撃されているこ
とがわかります。
%d incomplete connection at this time.
System is under attack through invalid clients
on the listener port.
スレッドを保持するマシンの能力 (数で表現) によって、
MAX_INCOMPLETE_CONNECTIONS をより大きい値に設定できます。また、ネットワ
ーク トラフィックによって、LISTEN_TIMEOUT をより小さい値に設定して、アタック
が最大制限値に到達する可能性を低くすることができます。
onmode -wm および onmode -wf オプションを使用したパラメータ値の変更
データベース サーバがオンライン モードの場合は、onmode -wm および onmode -wf
オプションを使用して LISTEN_TIMEOUT および
MAX_INCOMPLETE_CONNECTIONS 構成パラメータの値を変更できます。
現行セッションのいずれかの構成パラメータに新規値を指定するには、次の構文を使用
します。
onmode -wm configuration_parameter=value
ONCONFIG ファイルのいずれかの構成パラメータの値を変更するには、次の構文を使
用します。
onmode -wf configuration_parameter=value
第 5 章 セキュリティ
127
暗号化
Dynamic Server には、パスワード、転送中のデータ、特定列のデータを暗号化する機能
があります。
暗号化と暗号化オプションの概要
暗号化 とは、データの未公認使用を防ぐために、データを認識不能な形式に変換するこ
とです。暗号化されたファイルを読み取るには、復号化を可能にする秘密鍵やパスワー
ドを使用できる必要があります。暗号化されていないデータはプレーン テキスト と呼
ばれ、暗号化されたデータは暗号テキスト と呼ばれます。暗号 とは、暗号機能アルゴ
リズムです。
Data Encryption Standard (DES) は、8 バイト ブロックと 64 ビットのキーを使用し
て、データの暗号化と解読を行うように設計された暗号アルゴリズムです。
Triple DES (DES3) は DES のバリエーションであり、3 つの 64 ビットのキーが 192
ビットの数の代わりに使用されます。DES3 では、まず、キーの最初の 64 ビットを使
用してプレーン テキストを暗号化します。次に、暗号テキストをキーの次の部分を使用
して解読します。最後に、キーの最後の部分を使用して、生成した暗号テキストを再び
暗号化します。
Advanced Encryption Standard (AES) は、米国政府が使用する代替アルゴリズムです。
次の 2 つの暗号化モードがあります。
v ブロック モード。メッセージはブロックに分割され、暗号化は各ブロック単位に行
われます。各ブロックは 8 バイト以上の大きさであるため、ブロック モードでは
暗号化アルゴリズムにおいて 64 ビットの算術計算能力があります。
v ストリーム モード。個々のバイトごとにが暗号化される暗号化方式です。一般に
は、弱い形式の暗号化とみなされます。
blowfish は、64 ビット (8 バイト) のブロック データを処理するブロック暗号です。可
変サイズのキーが使用され、強い暗号化には 128 ビット (16 バイト) のキーが最適で
あると考えられています。Blowfish は DES と同じモードで使用できます。
暗号化に使用できる Dynamic Server オプションを下の表に示します。
暗号化オプション
このオプションを使用する場合と理由
パスワード暗号化
パスワードを暗号化するために使用します。
詳しくは、 129 ページの『パスワードとデータ伝送暗号化用の通
信サポート モジュール (CSM) の使用』を参照してください。
128
IBM Informix Dynamic Server 管理者ガイド
暗号化オプション
このオプションを使用する場合と理由
データ伝送暗号化
ネットワークで転送されるデータを暗号化するために使用しま
す。データベース サーバとクライアント システム間で転送され
るデータも含まれます。
詳しくは、『パスワードとデータ伝送暗号化用の通信サポート
モジュール (CSM) の使用』を参照してください。
列レベル暗号化
クレジット カード番号などの機密データを含む列に暗号化パス
ワードを設定するために使用します。列レベルの暗号化パスワー
ドを設定すると、列のデータは、暗号化された形式で格納されま
す。秘密のパスワードを提示できるユーザのみが、暗号化された
データの表示、コピー、変更を行うことができます。
詳しくは、 142 ページの『列レベル暗号化の使用』を参照してく
ださい。
パスワードとデータ伝送暗号化用の通信サポート モジュール (CSM) の使用
CSM (Communication Support Module: 通信サポート モジュール) では、2 つの異なる
暗号化機能が提供されています。
v シンプル パスワード CSM (SPWDCSM) では、パスワード暗号化機能が提供されて
います。
これにより、認証用にクライアントとサーバ間で送受信されるパスワードを保護でき
ます。SPWDCSM はすべてのプラットフォーム上で使用できます。
v 暗号化 CSM (ENCCSM) では、分散問合せを含め、ネットワーク上のデータ送信を暗
号化できます。
このオプションは、多数の構成可能オプションとともに、OpenSSL ライブラリを使用
した完全なデータ暗号化を提供します。メッセージ確認コード (MAC) が暗号化され
たデータとともに伝送され、そのデータの整合性を保証します。MAC とは、暗号化
されたメッセージ ダイジェストです。
暗号化アルゴリズムは、コード ベースとして OpenSSL 0.9.6 を使用します。
重要: CSM には以下の制約事項があります。
v 両方の CSM 種類を同時に使用することはできません。例えば、SPWDCSM を
使用しているときにネットワーク データの暗号化が必要になった場合は、
concsm.cfg と sqlhosts ファイルの SPWDCSM のエントリを削除する必要があ
ります。
v 多重接続では、シンプル パスワード CSM と暗号化 CSM はどちらも使用で
きません。
第 5 章 セキュリティ
129
v エンタープライズ レプリケーションと高可用性データ レプリケーション
(HDR) では暗号化がサポートされますが、CSM で構成された接続は使用でき
ません。
エンタープライズ レプリケーションでネットワーク暗号化を使用するには、暗
号化構成パラメータを設定してください。(詳しくは、「IBM Informix: Dynamic
Server エンタープライズ レプリケーション ガイド」を参照してください。)
v 暗号化された接続と暗号化されていない接続を同一ポート上で結合することは
できません。
暗号化を使用するには、以下の作業を行う必要があります。
1. concsm.cfg 構成ファイルに 1 行追加します。
concsm.cfg ファイル には、使用する通信サポート モジュール 1 つにつき 1 つの
エントリが必要です。concsm.cfg ファイルの詳細については、『CSM 構成ファイ
ル』を参照してください。
2. sqlhosts ファイルまたはレジストリの options 列にエントリを追加します。
sqlhosts ファイルまたはレジストリに CSM を指定する方法については、 80 ページ
の『通信サポート モジュール オプション』を参照してください。
CSM 構成ファイル
ファイル concsm.cfg は、通信サポート モジュール (CSM) を使用する場合に必要にな
ります。このファイルのエントリは 1 行で構成され、その文字数は 1,024 文字以下に
制限されています。ファイル concsm.cfg に CSM を記述すると、 80 ページの『通信サ
ポート モジュール オプション』で説明しているように、ファイル sqlhosts のパラメー
タ options を有効にできるようになります。
ファイル concsm.cfg のデフォルトの格納場所はディレクトリ $INFORMIXDIR/etc で
す。concsm.cfg ファイルのデフォルト ディレクトリは INFORMIXDIR/etc です。この
ファイルを別の場所へ格納する場合は、環境変数 INFORMIXCONCSMCFG に新しい
場所の絶対パスを設定し、デフォルトの格納場所を上書きしてください。環境変数
INFORMIXCONCSMCFG の設定方法については、「IBM Informix: SQL ガイド: 参
照」を参照してください。
conscsm.cfg ファイルのエントリは、次の制約事項に従う必要があります。
v 次の文字はライブラリ パス名に使用できません。
– = (等号)
– ″ (二重引用符)
– , (コンマ)
v パス名に空白が含まれている場合を除いて、空白を使用することはできません。
130
IBM Informix Dynamic Server 管理者ガイド
パスワード暗号化の構成
パスワードを暗号化するには、パスワードの暗号化ライブラリと接続オプションを指定
する必要があります。パスワード暗号化を構成するには、次の構文を使用して
concsm.cfg ファイルに 1 行追加します。
csmname
(
“
“
client =
csmlib
“
global_options
,
clientlib
,
server
“
=
“
serverlib
“
,
)
conn_options
オプション
説明
client=clientlib
クライアント コンピュータ上の CSM である共有ラ
イブラリの絶対パスと名前を指定します。
クライアント コンピュータはこの CSM を使用し
て、データベース サーバと通信します。Dynamic
Server が提供するライブラリは
$INFORMIXDIR/lib/client/csm/libixspw.so です。
conn_options
conn_options オプションには次のオプションがありま
す。
設定
結果
p=1
認証にパスワードが必要です。
p=0
パスワードは必要ありません。クラ
イアントがパスワードを発行した場
合は、暗号化されて認証に使用され
ます。
conn_options として不明なオプションを指定すると、
コンテキスト初期化エラーが発生します。
フィールド conn_options には、"" などの NULL 値
を指定できます。バージョン 2.3 以前の Client SDK
では、フィールド conn_options が NULL の場合のデ
フォルト動作は p=1 になります。バージョン 2.3 以
降の Client SDK では、フィールド conn_options が
NULL の場合のデフォルト動作は p=0 になります。
csmlib
CSM がデータベース サーバとクライアント コンピ
ュータの両方に共有されている場合の CSM である共
有ライブラリの絶対パスと名前です。
Dynamic Server が提供するライブラリは
$INFORMIXDIR/lib/csm/libixspw.so です。
第 5 章 セキュリティ
131
オプション
説明
csmname
通信サポート モジュールに割り当てる名前です。
例えば、SPWDCSM という名前にします。
global_options
このオプションは現在使用されていません。
server=serverlib
データベース サーバ上の CSM である共有ライブラ
リの絶対パスと名前を指定します。
Dynamic Server が提供するライブラリは、通常、次の
ディレクトリにインストールされます。
v UNIX: $INFORMIXDIR/lib/csm/libixspw.so
v Windows: %INFORMIXDIR%/bin/libixspw.so
SMI 表および concsm.cfg の設定: データベース サーバの起動時 (oninit -i) に
SMI 表を作成する場合、ファイル concsm.cfg のデータベース サーバ CSM エントリ
で、オプション p=1 を指定しないでください。oninit プロセスには、ユーザ ID
informix または root のパスワードがありません。このため、データベース サーバのフ
ァイル concsm.cfg でオプション p=1 を指定すると、次のエラー メッセージが表示さ
れます。
-5013 CSM: cannot obtain credential:
authentication error.
SMI 表が作成されていない場合にデータベース サーバ CSM へのパスワード入力を必
須に設定するには:
1. concsm.cfg エントリでオプション p=1 を指定しないでください。
2. コマンド oninit のオプション -i を使用してデータベース サーバを起動し、SMI 表
を作成します。
3. データベース サーバを停止します。
4. ファイル concsm.cfg のデータベース サーバ CSM エントリでオプション p=1 を指
定します。
5. コマンド oninit を使用して、データベース サーバをもう一度起動します。
パスワード データ暗号化用 concsm.cfg エントリの例: SPWDCSM を定義する
ためにファイル concsm.cfg に記述すべき別のパラメータの例を、次に 2 つ示します。
SPWDCSM
("client=/usr/informix/lib/client/csm/libixspw.so,
server=/usr/informix/lib/csm/
libixspw.so", "", "")
SPWDCSM("/usr/informix/lib/csm/
libixspw.so", "", "")
132
IBM Informix Dynamic Server 管理者ガイド
パスワードが必要ないよう、フィールド conn_options を 0 に設定した例を次に示しま
す。
SPWDCSM("/work/informix/csm/libixspw.so","","p=0")
ネットワーク データ暗号化の構成
ネットワーク データを暗号化するには、ネットワークの暗号化ライブラリと暗号化オプ
ションを指定する必要があります。次の暗号化オプションを指定できます。
v 暗号化のときに使用する暗号とモード
v メッセージ確認コード (MAC) キー ファイル
v MAC レベル
v 暗号とキーの切替え頻度
このセクションでは、これらのオプションについて説明します。
別々のファイルで暗号化パラメータを使用するか、concsm.cfg ファイルで暗号化タグを
使用して、暗号化オプションを指定できます。ネットワーク暗号化を構成するには、次
の構文を使用して concsm.cfg ファイルに 1 つ以上の行を追加します。
csmname
(
“
client =
csmlib
clientlib
,
server
=
serverlib
“
“
“
config
encrypt_config
(1)
Cipher Tag
Mac Tag
,
)
=
(2)
(3)
Switch Tag
注:
1
139 ページの『Cipher タグ』を参照してください。
2
140 ページの『Mac タグ』を参照してください。
3
141 ページの『Switch タグ』を参照してください。
オプション
説明
client=clientlib
クライアント コンピュータ上の CSM である共有ラ
イブラリの絶対パスと名前です。
クライアント コンピュータはこの CSM を使用し
て、データベース サーバと通信します。Dynamic
Server が提供するライブラリは
$INFORMIXDIR/lib/client/csm/iencs09a.so です。
第 5 章 セキュリティ
133
オプション
説明
config=encrypt_config
暗号化パラメータを定義するファイルの絶対パスとフ
ァイル名です。ファイルが存在しない場合は、デフォ
ルト値が使用されます。エラーは戻されません。
暗号化パラメータの使用方法については、 137 ページ
の『暗号化パラメータの使用』を参照してください。
csmlib
CSM がデータベース サーバとクライアント コンピ
ュータの両方に共有されている場合の CSM である共
有ライブラリの絶対パスと名前です。
Dynamic Server が提供するライブラリは
$INFORMIXDIR/lib/csm/iencs09a.so です。
csmname
通信サポート モジュールに割り当てる名前です。
例えば、SPWDCSM という名前にします。
server=serverlib
データベース サーバ上の CSM である共有ライブラ
リの絶対パスと名前です。Dynamic Server が提供する
ライブラリは、通常、次のディレクトリにインストー
ルされます。
v UNIX: $INFORMIXDIR/lib/csm/libixspw.so
v Windows: %INFORMIXDIR%/bin/iencs09a.so
暗号とモード: 暗号化でどの暗号とモードを使用するかを指定する必要があります。
使用する暗号とモードは、2 つのサーバ間で共通の暗号から任意に選択します。暗号化
通信に参加するすべてのサーバとクライアントが共通の暗号とモードを保有するように
してください。データベース サーバが切り替えることのできる暗号とモードが多いほ
ど、暗号化はセキュアになります。暗号を切り替える方法については、 136 ページの
『切替え頻度』を参照してください。
重要: 特定の暗号は指定しないことを強くお勧めします。セキュリティのためには、す
べての暗号を使用できるようにする必要があります。暗号に弱点があることを発
見した場合は、その暗号を除去できます。
allbut オプションを使用して、除去する暗号とモードをリストします。不等号括弧 (<>)
で allbut リストを囲みます。このリストには、一意の省略エントリを含めることができ
ます。例えば、bf は bf1、bf2、および bf3 を表します。ただし、省略形が実際の暗号
名である場合、この暗号のみ が除去されます。したがって、des の場合は暗号 DES の
みを除去し、de の場合は des、ede、および desx を除去します。
134
IBM Informix Dynamic Server 管理者ガイド
以下の暗号がサポートされます。
暗号
説明
Blowfish 暗号
説明
des
DES
(64 ビット キー)
bf1
Blowfish
(64 ビット キー)
ede
Triple-DES
bf2
Blowfish
(128 ビット キー)
desx
拡張 DES
(128 ビット キー)
bf3
Blowfish
(192 ビット キー)
警告: 暗号 desx は、cbc モードでのみ使用できます。
以下のモードがサポートされます。
モード
説明
ecb
電子コード ブック
cbc
暗号化ブロック チェーン
ocb
暗号化フィードバック
ofb
出力フィードバック
ecb モードは脆弱性があるとされるため、特別に要求された場合のみ組み込まれます。
all または allbut リストには組み込まれません。
MAC キー ファイル: MAC キー ファイルには、メッセージの暗号化に使用される
暗号化キーが含まれます。暗号化に参加するすべてのデータベース サーバとクライアン
ト コンピュータが共通の MAC キー ファイルを保有する必要があります。MAC キー
を切り替える方法については、 136 ページの『切替え頻度』を参照してください。
デフォルト MAC キー ファイルは、Dynamic Server が提供する組込みファイルです。
このファイルを使用することで、制限されたメッセージ検証を行うことができます (受
信メッセージのある程度の検証と、その送信元が IBM Informix Dynamic Server クライ
アントまたはサーバであることの判別)。サイトで生成される MAC キー ファイルは、
最強の検証を実行できます。GenMacKey ユーティリティを使用してキー ファイルを生
成できます。
各 MAC キー ファイルは、接続時に優先順位が付けられてネゴシエーションされま
す。MAC キー ファイルの優先順位は、GenMacKey ユーティリティによる作成時間に
基づいています。組込みキー ファイルには、最下位の優先順位が付けられます。
第 5 章 セキュリティ
135
ヒント: MAC キー ファイルが存在しない場合、組込み MAC キーがデフォルトで使用
されます。ただし、MAC キー ファイルを使用することによって、組込み
MAC キーは使用できなくなります。
新規 MAC キー ファイルを生成するには:
1. コマンド行から次のコマンドを実行します。
GenMacKey -o filename
filename は、新規 MAC キー ファイルのパスとファイル名です。
2. 以下のいずれかの方法で、中央サーバの構成を新規 MAC キー ファイルの場所が組
み込まれるように更新します。
v 暗号化タグの使用: concsm.cfg ファイルの該当する行を編集して、mac タグにパ
スとファイル名を追加します。手順については、 140 ページの『Mac タグ』を参
照してください。
v 暗号化パラメータの使用: 暗号化パラメータ ファイルを編集して、
ENCCSM_MACFILES パラメータの値を変更します。手順については、 138 ペー
ジの『ENCCSM_MACFILES』を参照してください。
3. 必要に応じて、構成から、以前の MAC キー ファイルのエントリを除去します。
4. 新規 MAC キー ファイルを該当するすべてのコンピュータに配付します。
MAC レベル: MAC レベルによって MAC キー生成のタイプが決まります。
サポートされる生成レベルを次に示します。
v high。すべてのメッセージで SHA1 MAC 生成を使用します。
v medium。 20 バイト長を超えるすべてのメッセージで SHA1 MAC 生成を使用し、
それより小さいメッセージでは XOR フォールディングを使用します。
v low。すべてのメッセージで XOR フォールディングを使用します。
v off。MAC 生成を使用しません。
レベルは、最高値が優先されます。例えば、あるデータベース サーバでレベル high と
medium が有効で、もう一方のデータベース サーバでは low のみが有効である場合、
接続試行は失敗します。off エントリは、セキュリティ ネットワーク接続が保証されて
いる場合、サーバ間でのみ使用できます。
暗号化通信に参加するすべてのサーバとクライアントが共通の MAC レベルを保有する
ようにしてください。
切替え頻度: 切替え頻度は、暗号や秘密鍵、またはその両方をリネゴシエーションす
る時期を定義します。秘密鍵と暗号化の暗号を使用する時間が長くなるほど、暗号化ル
ールがアタッカーによって破られる可能性が高くなります。このような事態を回避する
ため、暗号作成者は長期接続における秘密鍵と暗号を定期的に変更することを勧めてい
136
IBM Informix Dynamic Server 管理者ガイド
ます。このリネゴシエーションが発生するデフォルト時間は、1 時間毎です。切替えオ
プションを使用すると、リネゴシエーションの発生時間を分単位で設定できます。
暗号化パラメータの使用: ファイルで暗号化パラメータを設定することによって、
暗号化オプションを構成できます。暗号化パラメータ ファイルでの各オプションの形式
は次のとおりです。
parameter_name value
次のパラメータを使用して暗号化オプションを設定します。
v ENCCSM_CIPHERS: 使用する暗号
v ENCCSM_MAC: MAC レベル
v ENCCSM_MACFILES: MAC ファイルの場所
v ENCCSM_SWITCH: 暗号とキー変更の頻度
このセクションの後半で、これらのパラメータについて説明します。
パラメータ値には次の制約事項が適用されます。
v 各エントリは、空白で区切られた parameter_name value の形式でなければなりませ
ん。
v 値の中に空白を入れることはできません。
v 各パラメータは、構成ファイルで 1 つのエントリをもたなければなりません。複数
のエントリが存在すると、最初のエントリのみが認識されます。
v 構成ファイルにパラメータが存在しないと、デフォルト値が使用されます。
v コメント文字 (#) の後の文字は無視されます。ただし、パス名値は無視されません。
ENCCSM_CIPHERS:
syntax ENCCSM_CIPHERS
all|allbut:<list of ciphers and
modes>|cipher:mode{,cipher:mode ...}
v all
ECB モードを除き、使用可能なすべての暗号とモードを含めることを指定します。例
えば、ENCCSM_CIPHERS all のようになります。
v allbut:<list of ciphers and modes>
リストにあるものを除き、使用可能なすべての暗号とモードを含めることを指定しま
す。暗号またはモードはコンマで分離します。例えば、ENCCSM_CIPHERS
allbut:<cbc,bf> のようになります。
v cipher:mode
暗号およびモードを指定します。暗号とモードのペアはコンマで分離します。例え
ば、ENCCSM_CIPHERS des3:cbc,des3:ofb のようになります。
第 5 章 セキュリティ
137
デフォルト値
allbut:<ecb>
ENCCSM_CIPHERS パラメータは、暗号化のときに使用する暗号とモードを指定しま
す。暗号とモードの詳細については、 134 ページの『暗号とモード』を参照してくださ
い。
ENCCSM_MAC:
デフォルト値
medium
値の範囲
以下の 1 つ以上のオプション。オプションはコンマで分離します。
v off MAC 生成を使用しない。
v low すべてのメッセージに対して XOR 折畳みを使用する。
v medium 20 バイトを超える長さのメッセージすべてに対して SHA1
MAC 生成を使用し、それより短いメッセージに対しては XOR 折
畳みを使用する。
v high すべてのメッセージに対して SHA1 MAC 生成を使用する。
例えば、ENCCSM_MAC medium,high のようになります。
ENCCSM_MAC パラメータは、使用する MAC レベルを指定します。MAC レベルの詳
細については、 136 ページの『MAC レベル』を参照してください。
ENCCSM_MACFILES:
デフォルト値
builtin
単位
パス名、最長 1536 バイト
値の範囲
コンマで区切られた 1 つ以上の絶対パスおよびファイル名と、オプシ
ョンのキーワード builtin。例えば、ENCCSM_MACFILES
/usr/local/bin/mac1.dat,/usr/local/bin/mac2.dat,builtin のよう
になります。
ENCCSM_MACFILES パラメータは、使用する MAC キー ファイルを指定します。詳
しくは、 135 ページの『MAC キー ファイル』を参照してください。
ENCCSM_SWITCH:
構文 ENCCSM_SWITCH
cipher_switch_time,key_switch_time
v cipher_switch_time は、暗号のリネゴシエーション間の分数を指定し
ます。
v key_switch_time は、秘密鍵のリネゴシエーション間の分数を指定し
ます。
138
IBM Informix Dynamic Server 管理者ガイド
デフォルト値
60,60
単位
分
値の範囲
正整数
ENCCSM_SWITCH パラメータは、暗号とキーのネゴシエーション間の分数を定義しま
す。詳しくは、 136 ページの『切替え頻度』を参照してください。
暗号化パラメータ ファイルの例: 以下に、暗号化パラメータ ファイルの例を示し
ます。
ENCCSM_CIPHERS
ENCCSM_SWITCH
ENCCSM_MAC
ENCCSM_MACFILE
all
120,60
medium
/usr/informix/etc/MacKey.dat
パラメータ ファイルで暗号化を指定するときの、concsm.cfg ファイルの行の例を以下
に示します。
ENCCSM("usr/informix/lib/cms/iencs09a.so",
"config=/usr/lib/encrypt.txt")
暗号化タグの使用: 暗号化タグを使用して、concsm.cfg ファイルで暗号化オプション
を指定できます。
Cipher タグ: cipher タグでは、次の構文ダイアグラムに示す暗号オプションを指定
できます。
cipher
[
all
]
,
allbut:
,
< cipher
>
cipher:mode
Cipher オプション
説明
all
利用可能な暗号とモードをすべて含めることを指定し
ます。値リストはありません。次に例を示します。
cipher[all],...
第 5 章 セキュリティ
139
Cipher オプション
説明
allbut:<list of ciphers to
exclude>
リスト内の暗号を除くすべての暗号を含めることを指
定します。
詳しくは、 134 ページの『暗号とモード』を参照して
ください。
次に例を示します。
cipher[allbut:<ecb,des>],...
cipher[allbut:<cbc,bf>]
1 つ以上の暗号およびモードを指定します。次に例を
示します。
cipher:mode
cipher[des:cbc,des:ofb]
暗号フィールドのデフォルト値を次に示します。
cipher[allbut:<ecb>]
暗号とモードの詳細については、 134 ページの『暗号とモード』を参照してください。
Mac タグ: mac タグは、MAC 生成中に使用する MAC キー ファイルと MAC 生成
レベルを定義します。
mac タグでは、次の構文ダイアグラムに示す MAC オプションを指定できます。
mac
[
files:
levels:
<
high
MEDIUM
low
off
>
<
path ,
builtin
builtin
>
]
Mac オプション
説明
levels
接続がサポートする MAC 生成レベルのコンマで区切
られたリストを指定します。
詳しくは、 136 ページの『MAC レベル』を参照してく
ださい。
140
IBM Informix Dynamic Server 管理者ガイド
Mac オプション
説明
files
MAC キー ファイルの絶対パス名のコンマで区切られ
たリストを指定します。
詳しくは、 135 ページの『MAC キー ファイル』を参
照してください。
次に例を示します。
mac[levels:<high,low>,files:
</usr/local/bin/mac1.dat,
/usr/local/bin/mac2.dat,builtin>]
Switch タグ: タグ switch は、暗号または秘密鍵、あるいはその両方がリネゴシエー
ションされる頻度を定義します。
switch タグでは、次の構文ダイアグラムに示す切替えオプションを指定できます。
switch
[
]
cipher: minutes
key: minutes
cipher: minutes
,
key:
minutes
Switch オプション
説明
cipher:minutes
暗号リネゴシエーションの時間間隔を分単位で指定し
ます。
key:minutes
秘密鍵リネゴシエーションの時間間隔を分単位で指定
します。
次に例を示します。
switch[cipher:120,key:20]
暗号とモードの切替えについては、 136 ページの『切替え頻度』を参照してください。
暗号化タグの使用例: 暗号化 CSM を定義するためにファイル concsm.cfg に入力す
るタグ代替案の 2 つの例を次に示します。次に例を示します。
ENCCSM(“$INFORMIXDIR/lib/csm/iencs09a.so”,
“cipher[allbut:<ecb,bf>]”)
この構成文字列は、blowfish の暗号を除いたすべての使用可能な暗号を使用し、ECB モ
ードでは暗号を使用しないことを記述しています。
もう 1 つの例を次に示します。
第 5 章 セキュリティ
141
ENCCSM(“/$INFORMIXDIR/lib/csm/iencs09a.so”,
“cipher[des:cbc,ede:ofb,desx:cbc],switch[cipher:120,key:15]”)
この構成文字列は、この接続では DES/CBC モード、EDE/OFB モード、および
DESX/CBC モードの暗号を使用し、120 分毎に使用中の暗号を切り替えて 15 分毎に秘
密鍵をリネゴシエーションをすることを記述しています。
列レベル暗号化の使用
SET ENCRYPTION PASSWORD 文および ENCRYPT 関数を使用して、暗号化パスワ
ードを指定し、次の文字データ型やスマート ラージ オブジェクト データ型を含む列の
データを暗号化します。
v 文字 (CHAR) 型
v 各国語文字 (NCHAR) 型
v 可変長文字 (VARCHAR) 型
v NVARCHAR 型
v ラージ可変長文字 (LVARCHAR) 型
v BLOB 型
v CLOB 型
SET ENCRYPTION PASSWORD 文は、パスワード を宣言して、暗号化と復号化に
Triple-DES や AES アルゴリズムを使用する組込み関数によってデータの機密性をサポ
ートします。データベースは、これらの関数によって、機密データを暗号化された形式
で格納できます。
クレジット カード番号などの機密データを含む列に暗号化パスワードを設定できます。
列レベルの暗号化パスワードを設定すると、列のデータは、暗号化された形式で格納さ
れます。秘密のパスワードを提示できるユーザのみが、暗号化されたデータの表示、コ
ピー、変更を行うことができます。
暗号化パスワードを設定すると、パスワードのヒントも指定できます。指定したヒント
は、暗号化されたパスワードと一緒に格納することも、別の場所に格納することもでき
ます。パスワードは、6 バイト以上、128 バイト以下にする必要があります。復号化用
のパスワードと暗号化用のパスワードは同じものでなければなりません。
列データにパスワードを設定する場合は、次のタイプの暗号化を指定できます。
v 列レベルの暗号化。データベース表の特定列にあるすべての値は、同じパスワード
(単語またはフレーズ)、同じ暗号化アルゴリズム、および同じ暗号モードで暗号化さ
れます。列レベルの暗号化の場合、ヒントを各行で繰り返さずに、暗号化列の外部に
ヒントを格納できます。
142
IBM Informix Dynamic Server 管理者ガイド
ヒント: 暗号化関数を使用しないと、エンド ユーザは、暗号化されたデータが入って
いるはずの列に暗号化されていないデータを入力できます。フィールドに入
力したデータを常に暗号化するには、ビューおよび「instead-of」トリガを使
用します。
v
セル レベルの暗号化 (Row-Column および Set-Column Level Encryption とも呼ばれ
ます)。暗号化されたデータ列の中で、多くの異なるパスワード、暗号化アルゴリズ
ム、またはモードが使用されます。個人データを保護する場合に、このタイプの暗号
化が必要になることがあります。
SET ENCRYPTION PASSWORD を使用して宣言したパスワードとヒントは、システム
カタログのどの表においても、プレーン テキストとして格納されることはありません。
他のユーザが暗号化されたデータやパスワードのプレーン テキストにアクセスできない
ようにするために、次のようにして、パスワードの秘密が漏れないようにする必要があ
ります。
v データベースがセキュアなネットワーク以外からもアクセス可能な場合は、Encryption
Communication Support Module (ENCCSM) を有効にして、データベース サーバと他
のクライアント システム間のデータ伝送を保護する必要があります。
v DECRYPT_CHAR() 関数を使用して関数インデックスを作成しないでください。この
ようにすると、データベースにプレーン テキストが格納されるようになるため、暗
号化の効果がなくなってしまいます。
v パスワードを公開するトリガやユーザ定義ルーチン (UDR) にパスワードを格納しな
いでください。トリガや UDR を起動したり、パスワードをパラメータとして UDR
に渡したりする前に、セッション パスワードを使用します。
パスワードを設定すると、Dynamic Server は、パスワードとすべてのヒントを、パスワ
ードとヒントの暗号化に使用される 128 ビット キーに転送します。パスワードとヒン
トがクリア テキストとして格納されることはありません。キーは、インスタンスごと
の、時間ベースのランダム値です。データベース サーバは、起動するとキーを初期化し
ます。また、データベース サーバがシャットダウンすると、キーは破壊されます。
Dynamic Server には、Encrypt Virtual Processor が組み込まれています。ONCONFIG 構
成ファイルで VPCLASS パラメータの encrypt オプションを定義しない場合、データ
ベース サーバは、列レベルの暗号化用に定義された暗号化関数または復号化関数が初め
て呼び出されたときに、1 つの Encrypt VP を開始します。データベース サーバの起動
時間を短縮する必要がある場合は、複数の Encrypt VP を定義できます。詳しくは、
192 ページの『暗号化仮想プロセッサ』、および「IBM Informix: Dynamic Server 管理者
の参照」の構成パラメータの章を参照してください。
データベース サーバがオンライン モードの場合は、onmode -p コマンドを使用して、
Encrypt VP の追加と削除を行うことができます。例えば、4 つの Encrypt VP を追加す
るには、次のようにします。
onmode -p 4 encrypt
第 5 章 セキュリティ
143
3 つの Encrypt VP を削除するには、次のようにします。
onmode -p -3 encrypt
詳しくは、「IBM Informix: Dynamic Server 管理者の参照」の onmode ユーティリティ
を参照してください。
格納領域の考慮事項
暗号化された値は、対応するプレーン テキスト値より多くの格納領域を使用します。こ
れは、暗号化キーを除いて、値の復号化に必要なすべての情報が、値と一緒に格納され
るためです。したがって、暗号化した結果にゼロ バイトを組み込むことはお勧めできま
せん。
列データの暗号化
暗号化パスワードを設定してデータを暗号化する前に、暗号化されたデータが列に収ま
ることを確認する必要があります。
列を暗号化するには、次のようにします。
1. 暗号化された列のサイズを計算します。必要に応じて、列を修正します。
暗号化された列のサイズを計算する 2 つの方式の例については、『暗号化された列
のサイズを算出する方法を示す例』を参照してください。
2. 暗号化パスワードに関する情報をコードに挿入します。SET ENCRYPTION
PASSWORD SQL 文を使用して、パスワードか、パスワードとヒントを指定しま
す。ENCRYPT_AES() または ENCRYPT_TDES() 関数を使用して暗号化されたデー
タを定義します。
パスワードをコードに挿入し、ENCRYPT 関数を使用する方法については、 145 ペー
ジの『列を暗号化する方法を示す例』を参照してください。
暗号化されたデータに問合せを行うには、DECRYPT_BINARY() および
DECRYPT_CHAR() 関数を使用します。暗号化されたデータの問合せ例については、
146 ページの『暗号化されたデータへの問合せを行う方法を示す例』を参照してくださ
い。
以下の詳細については、「IBM Informix: SQL ガイド: 構文」を参照してください。
v パスワードとヒントの指定に使用する SET ENCRYPTION PASSWORD 文と構文
v ENCRYPT および DECRYPT 関数
暗号化された列のサイズを算出する方法を示す例
次の例に、クレジット カード列のサイズを計算する方法を示します。
DATA SIZE 16 bytes
ENCRYPTED DATA SIZE = (DATA SIZE + blocksize8) / blocksize8 *
blocksize8 = 24 bytes (integer operation)
144
IBM Informix Dynamic Server 管理者ガイド
OR ENCRYPTED DATA SIZE = (DATA SIZE - DATA SIZE% blocksize8 +
blocksize8 ) = 24 bytes
(For ENCRYPT_TDES, round up to (N + 1) * 8 bytes, for example
13 bytes round up to 16 bytes, 16 bytes to 24 bytes)
HEADER SIZE = 11 bytes (for Base64 encoding)
IV SIZE = 8 bytes (fixed size)
HINT SIZE = 32 bytes (maximum size)
ENCRYPED HINT SIZE = 40 bytes (maximum size)
BASE64 SIZE = ((INPUT DATA SIZE + 2) / 3) * 4
(integer operation)
OR BASE64 SIZE = ((INPUT DATA SIZE + 2) (INPUT DATA SIZE + 2) % 3) / 3 * 4
TOTAL SIZE = HEADER SIZE
+ BASE64(IV SIZE + ENCRYPTED DATA SIZE + ENCRYPTED HINT)
= 11 + BASE64(8 + 24 + 40)
= 11 + (72 + 2) / 3 * 4
= 11 + 96 = 107
この例では、初期設定ベクトル (IV) は、暗号モードを使用するときの暗号化の開始に
使用される、疑似ランダム バイト列です。IV のサイズは、ランダム バイト列の数であ
り、Dynamic Server では、8 バイトです。
ヒントを列に格納しない場合、この例の合計サイズは 55 バイトです。
ヒント: 暗号化された列サイズを算出する別の方法を以下に示します。
SELECT LENGTH(ENCRYPT_TDES
("1234567890123456",
"password", "long....hint"))
FROM "informix".systables WHERE tabid = 1
ヒントがない場合は、次のようにして計算できます。
SELECT LENGTH(ENCRYPT_TDES("1234567890123456",
"password", ""))
FROM "informix".systables
WHERE tabid = 1
重要: 列サイズが、ENCRYPT/DECRYPT 関数から戻されるデータ サイズより小さい場
合は、暗号化されたデータは挿入されるときに切り捨てられるため、暗号化され
たデータを解読することはできなくなります (ヘッダによって、長さは、受け取
られるデータより長くなければならないことが示されるためです)。
列を暗号化する方法を示す例
次の例に、社会保障番号を含む列で暗号化パスワードを使用する方法を示します。
第 5 章 セキュリティ
145
create table emp
(
name char(40),
salary money,
ssn lvarchar(64)
);
set encryption password to "one two three 123";
insert into emp (ssn) values ("Alice", 50000, encrypt_aes
(’123-456-7890’));
insert into emp (ssn) values ("Bob", 65000, encrypt_aes
(’213-656-0890’));
select name, salary, decrypt(ssn) from emp where
decrypt(ssn) = ’123-456-7890’;
暗号化されたデータへの問合せを行う方法を示す例
次の例に、復号化関数を使用して暗号化されたデータへの問合せを行う方法を示しま
す。
select id, decrypt(creditcard, "credit card number is
encrypted") from customer;
または
set encryption password to "credit card number is encrypted";
select id from customer
where decrypt(creditcard) =
"2345678901234567"
認証モジュール
使用するプラットフォームによって、次のいずれかの認証モジュールを使用できます。
v UNIX または Linux で稼働する Dynamic Server 用の Pluggable Authentication
Module (PAM)。このモジュールを使用すると、さまざまなアプリケーション用にさま
ざまな認証モジュールを実行できます。詳しくは、下の『UNIX または Linux 上で稼
働するシステム用の Pluggable Authentication Modules』を参照してください。
v Windows 用の Lightweight Directory Access Protocol (LDAP) 認証サポート。LDAP
サーバを使用してユーザを認証する場合は、LDAP 認証サポート モジュールを使用
します。詳しくは、 149 ページの『Windows での LDAP 認証サポート』を参照して
ください。
UNIX または Linux 上で稼働するシステム用の Pluggable Authentication
Modules
Pluggable Authentication Module (PAM) は、Sun Microsystems が独自に開発したさまざ
まな認証モジュールをサポートするための、うまく定義されたフレームワークです。
PAM を使用すると、システム管理者は、さまざまなアプリケーション用にさまざまな
認証メカニズムを実装できます。例えば、UNIX ログイン プログラムのようなシステム
とデータベースの機密情報にアクセスするアプリケーションとでは要求が異なる場合が
146
IBM Informix Dynamic Server 管理者ガイド
あります。認証サービスがアプリケーション レベルで接続されているため、PAM は、
そのような単一マシンでのさまざまな状況に対応できます。
PAM では、アプリケーションが必要に応じて認証サービスを選択できるようにする以
外に、モジュールをスタッキングすることもできます。多くのモジュールを次々に積み
上げることができるため、アクセス権を付与する前に、アプリケーションを複数の方法
で認証できます。PAM には、認証、アカウント管理、セッション管理、およびパスワ
ード管理をサポートする API セットが備わっています。
システム管理者は、PAM の使用を有効にしたり、無効にしたりできます。デフォルト
では、データベース サーバは、ユーザが大きい変更をしなくてすむように、従来の
Informix 認証メカニズム (BSD rhosts メカニズムに基づく) を使用します。
PAM を Dynamic Server で使用するには、次のようにします。
v Informix データベース サーバを、PAM をサポートするオペレーティング システム
上に配置する必要があります。
v クライアント アプリケーションを、Client SDK の新しいバージョンで上書きする必
要があります。
v 適切な PAM サービスをオペレーティング システムで構成する必要があります。
v PAM サービスが単に指定されたパスワードを受け入れるのみなのか、それともユー
ザ確認のための質問への応答プロトコル (例えば、RADIUS 認証サーバ) を使用する
のかについて知っている必要があります。
v PAM サービスがユーザ確認のための質問への応答プロトコルを使用する場合は、質
問と応答を処理できるようにアプリケーションを修正する必要があります。アプリケ
ーションは、PAM モジュールが複数の質問を行う場合があることを認識している必
要があります。
v エンタープライズ レプリケーションおよび高可用性データ レプリケーションが、
PAM 認証によって影響されないようにする必要があります。
v クライアント アプリケーションとデータベース サーバの両方について、sqlhosts フ
ァイルのサーバ エントリを修正する必要があります (それらが別々のマシン上にある
か、単一マシンの別々の場所にある場合)。
これらの変更については下で詳しく説明します。
サポートされるプラットフォーム
PAM は、32 ビットと 64 ビットの両モードの Solaris と Linux でサポートされます。
HP-UX と AIX では、PAM は 32 ビット モードのみでサポートされます。
PAM サービスの名前
PAM サービス名は PAM モジュールを示します。この PAM モジュールは通常、
/usr/lib/security にあります。そのパラメータは、/etc/pam.conf にリストされています。
第 5 章 セキュリティ
147
Linux では、/etc/pam.conf を、各 PAM サービス用のファイルがある、/etc/pam.d と呼
ばれるディレクトリと置き換えることができます。/etc/pam.d が存在する場合は、
/etc/pam.conf は Linux によって無視されます。この構成ファイルの詳細については、
システムのマニュアルを参照してください。
認証モード
PAM モジュールによって、パスワードのみで十分か、それとも他の質問が必要かが決
まります。Dynamic Server の PAM では、パスワードは、明示的な接続の場合、クライ
アントによってサーバに送信されるという事実が利用されます。このパスワードは、パ
スワードのみが使用される場合、PAM を満足させるために使用できます。質問に対す
る応答が認証モードに含まれる場合は、それらの質問に応答できるようにアプリケーシ
ョンを準備する必要があります。アプリケーションは、PAM モジュールが複数の質問
を行う場合があることを認識している必要があります。
必要なスタック サイズ
PAM 機能は、OS またはサード パーティ PAM モジュール (共有ライブラリ) を
informix ユーザ スレッドに読み込みます。これらの PAM モジュールのスタック サイ
ズ所要量は予測できません。例えば、Linux では、128K より大きいスタック領域を必
要とするモジュールもあります。PAM_STACKSIZE 構成パラメータを使用して、PAM
モジュールのスタック サイズをカスタマイズしてください。PAM_STACKSIZE のデフ
ォルト値は 32KB です。
例えば、次のように ONCONFIG ファイルで PAM_STACKSIZE を設定します。
PAM_STACKSIZE 64 # Stack size needed for the PAM modules
(K Bytes)
Linux 上では、デフォルト値は 128KB に、STACKSIZE 構成パラメータの値を加えた
値です。
暗黙的な接続
PAM は、PAM メッセージに応答して認証応答 (パスワード) が提供されるという意味
で、質問向きのシステムです。データベース サーバへの暗黙的な接続では、パスワード
は存在しません。
したがって、暗黙的な接続は、質問モードの PAM の下でのみ機能します。パスワード
モードの暗黙的な接続は失敗します。
PAM を使用するデータベース サーバの構成
PAM を使用するようにサーバを構成するには、システム管理者は次のことを知ってい
る必要があります。
v PAM モジュールの名前。
v ユーザ名とパスワードの単純な組合せを受け入れる以外に、PAM モジュールが質問
を行う場合があるかどうか。
148
IBM Informix Dynamic Server 管理者ガイド
次の例に、例示用の名前をもった sqlhosts エントリを示します。
Authentication mode: challenge
ifxserver2
oltlitcp
servermc
portnum2 options
where options are "s=4, pam_serv=(pam_pass), pamauth=(challenge)"
PAM service: pam_password (Needs only a password)
Authentication mode: password
ifxserver2
oltlitcp
servermc
portnum2 options
where options are "s=4, pam_serv=(pam_pass), pamauth=(password)"
エンタープライズ レプリケーションおよび高可用性データ レプリケーション
エンタープライズ レプリケーションと高可用性データ レプリケーション (HDR) は、
認証スキーマから呼び出されても、質問に応答できません。このため、エンタープライ
ズ レプリケーションと HDR を PAM を使用するポートで構成することはできませ
ん。ポートをエンタープライズ レプリケーションと HDR の専用にする機能の詳細に
ついては、 156 ページの『エンタープライズ レプリケーションおよび高可用性データ
レプリケーション接続のセキュリティ オプション』を参照してください。
アプリケーション開発
PAM によって行われた質問に応答するようにアプリケーションを準備するプロセス
は、LDAP 認証サポート モジュールによって行われた質問に応答する際に使用するプ
ロセスと同じです。詳しくは、 152 ページの『認証モジュールに対応したアプリケーシ
ョン開発』を参照してください。
PAM を使用した分散トランザクション、クライアント API、および互換性の
問題
分散トランザクション、PAM をサポートする API、および IBM Informix の他の製品
やツールとの互換性の問題は、PAM と LDAP 認証サポート モジュールでは同じ問題
です。詳しくは、 154 ページの『分散トランザクション』、 155 ページの『クライアン
ト API および認証サポート モジュール』、および 155 ページの『互換性問題』を参
照してください。
Windows での LDAP 認証サポート
Windows での LDAP 認証は、UNIX や Linux で使用される Pluggable Authentication
Module (PAM) と同じようにセット アップし、構成します。LDAP サーバを使用してシ
ステム ユーザを認証する場合は、LDAP 認証サポート モジュールを使用します。この
モジュールには、特定の LDAP 認証サポート モジュール用に修正できるソース コー
ドが含まれています。
認証モジュールは、通常は INFORMIXDIR%¥dbssodir¥lib¥security ディレクトリにあ
る DLL です。モジュールのパラメータは、%INFORMIXDIR%¥dbssodir¥pam.conf フ
ァイルにリストされています。完全な機能をもった LDAP Authentication Module のソ
ース コードと必要な構成ファイルのサンプルは、
%INFORMIXDIR%¥demo¥authentication ディレクトリにあります。
第 5 章 セキュリティ
149
LDAP Authentication Module は、単一モジュール認証機能のみを提供します。このモジ
ュールは、モジュール スタッキングなどの機能をサポートしません。システム管理者
は、認証機能を有効にしたり、無効にしたりできます。
LDAP 認証サポート モジュールのインストールと構成
Dynamic Server の LDAP 認証モジュールを使用して認証モジュールを作成する前に、
LDAP サーバと LDAP クライアント サイド システムを準備しておく必要がありま
す。LDAP システムの例として、IBM Directory Server と openLDAP があります。
LDAP クライアント サイド システムには通常、LDAP ライブラリとヘッダ ファイル
が含まれます。これらのライブラリとヘッダ ファイルは、LDAP モジュールをコンパ
イルするときに必要です。
モジュールをカスタマイズするには:
1. Dynamic Server に含まれている pam_ldap.c ファイルをカスタマイズします。
2. pam_ldap.c ファイルを DLL へコンパイルし、セキュアなディレクトリに置きま
す。%INFORMIXDIR%¥dbssodir¥lib ファイルに置くことをお勧めします。ただ
し、セキュリティ要件を満たせば、どのディレクトリにも置くことができます。
インストール モジュールには、LDAP モジュール用の構成ファイルのテンプレート
pam_ldap_tmpl も含まれます。この構成ファイルには、サイト固有情報が含まれていま
す。この構成ファイルによって、1 つの LDAP モジュールがさまざまな設定で動作で
きるようになるため、このファイルにサイト固有情報を格納することをお勧めします。
LDAP モジュールの構成
PAM 構成ファイルのテンプレートを使用して、LDAP モジュールを構成します。
LDAP モジュールを構成するには:
1. テンプレート ファイルを %INFORMIXDIR%¥dbssodir¥etc にコピーし、pam.conf
という名前を付けます。
2. ローカルのセキュリティ設定に対応するようにファイルをカスタマイズします。ファ
イルをカスタマイズする方法の詳細については、テンプレート ファイル
pam.conf_tmpl を参照してください。
Dynamic Server の構成
LDAP 認証サポート モジュールを使用するようにサーバを構成するには、sqlhosts ファ
イルを編集します。システム管理者は次のことを知っている必要があります。
v モジュールの名前。
v ユーザ名とパスワードの単純な組合せを受け入れる以外に、モジュールが質問を行う
場合があるかどうか。
次の例に、例示用の名前をもった sqlhosts エントリを示します。
150
IBM Informix Dynamic Server 管理者ガイド
PAM service: pam_chal
Authentication mode: challenge
ifxserver1
oltlitcp
servermc
portnum1
s=4, pam_serv=(pam_chal), pamauth=(challenge)
PAM service: pam_password (Needs only a password)
Authentication mode: password
ifxserver2
oltlitcp
servermc
portnum2
s=4, pam_serv=(pam_pass), pamauth=(password)
認証モード
LDAP 認証サポート モジュールによって、パスワードのみで十分か、それとも他の質
問が必要かが決まります。Dynamic Server のモジュールでは、パスワードは、明示的な
接続の場合、クライアントによってサーバに送信されるという事実が利用されます。こ
のパスワードは、パスワードのみが使用される場合、LDAP 認証サポート モジュール
を満足させるために使用できます。 1 つ以上の質問に対する応答が認証モードに含まれ
る場合、アプリケーションはそれらの質問に応答できなければなりません。
暗黙的な接続
LDAP 認証サポート モジュールは、LDAP 認証サポート モジュール メッセージに応
答して認証応答 (パスワード) が提供されるという意味で、質問向きのシステムです。
データベース サーバへの暗黙的な接続では、パスワードは存在しません。
暗黙的な接続は、質問モードの LDAP 認証サポート モジュールの下でのみ機能しま
す。パスワード モードの暗黙的な接続は失敗します。
エンタープライズ レプリケーションおよび高可用性データ レプリケーション
エンタープライズ レプリケーションと高可用性データ レプリケーション (HDR) は、
認証スキーマから呼び出されても、質問に応答できません。このため、エンタープライ
ズ レプリケーションと HDR を、LDAP 認証サポート モジュールを使用するポートで
構成することはできません。ポートをエンタープライズ レプリケーションと HDR の
専用にする機能の詳細については、 156 ページの『エンタープライズ レプリケーション
および高可用性データ レプリケーション接続のセキュリティ オプション』を参照して
ください。
アプリケーション開発
LDAP 認証サポート モジュールによって行われた質問に応答するようにアプリケーシ
ョンを準備するプロセスは、PAM モジュールによって行われた質問に応答する際に使
用するプロセスと同じです。詳しくは、 152 ページの『認証モジュールに対応したアプ
リケーション開発』を参照してください。
第 5 章 セキュリティ
151
LDAP サポート モジュールを使用した分散トランザクション、クライアント
API、および互換性の問題
分散トランザクション、LDAP 認証サポート モジュールをサポートする API、および
IBM Informix の他の製品やツールとの互換性の問題は、PAM と LDAP 認証サポート
モジュールでは同じ問題です。詳しくは、 154 ページの『分散トランザクション』、
155 ページの『クライアント API および認証サポート モジュール』、および 155 ペー
ジの『互換性問題』を参照してください。
認証モジュールに対応したアプリケーション開発
認証方法は、インストールされた PAM または LDAP 認証サポート モジュールによっ
て異なります。この方法には、質問と応答が含まれる場合があります。PAM または
LDAP 認証サポート モジュールが質問を行うと、以下のプロセスが発生します。
1. データベース サーバがクライアントに質問を転送します。
2. アプリケーションは、IBM Informix CSDK および IBM Informix JDBC ドライバに
よって提供されるコールバック関数を使用する質問に応答する必要があります。
3.
クライアントが接続しているサーバが質問用にセット アップされている場合、アプ
リケーションは、コールバック関数を CSDK または JDBC に登録する必要があり
ます。
4.
CSDK または JDBC がサーバから質問を受け取ると、質問はコールバック関数に
よってアプリケーションに転送されます。
5.
アプリケーションは質問に応答する必要があります。
6.
CSDK または JDBC はデータベース サーバに応答を転送します。
アプリケーションは複数の質問に応答する準備ができている必要があります。また、質
問数または質問自体を想定することはできません。
コールバック関数は次のような関数です。
mint ifx_pam_callback(mint (*callbackfunc_ptr)(char *challenge,
char *response, mint msg_style))
char *challenge
サーバによって質問が与えられる文字バッファ。このサイズは、pam_appl.h
ファイルの PAM_MAX_MSG_SIZE によって定義された、512 に固定されてい
ます。
char *response
ユーザによって応答が提供される文字バッファ。このサイズは、pam_appl.h
ファイルの PAM_MAX_RESP_SIZE によって定義された、512 に固定されてい
ます。
152
IBM Informix Dynamic Server 管理者ガイド
int msg_style
サーバによって与えられたメッセージ タイプを示す番号が含まれます。応答の
タイプに基づいて、アプリケーションは、コールバック関数で適切な操作を行
います。
クライアント アプリケーションは、最初の接続を行う前に、コールバック関数を登録し
ておく必要があります。データベース サーバへの最初の接続のときにコールバック関数
が登録されていない場合、サーバが応答すると、ESQL/C がエラー -1809 を戻します。
次に例に、まずコールバック関数を登録し、次に登録抹消する非常に簡単なプログラム
を示します。
#include <stdio.h>
#include <security/pam_appl.h>
static int user_callback(char *challenge, char *response,
int msg_style);
int main(void)
{
EXEC SQL char passwd[]="password";
int retval = 0;
/* first register the callback */
retval = ifx_pam_callback(user_callback);
if (retval == -1)
{
printf("Error in registering callback¥n");
return (-1);
}
else
{
EXEC SQL database test; /* successful connection */
/* Note that this is an implicit connection. So, the
* application should be ready to respond to challenges.*/
printf ("sqlcode on pam connect = %d¥n", SQLCODE);
}
retval = ifx_pam_callback(NULL); /* unregister the callback
* function */
if (retval == -1)
{
printf("Error in registering callback¥n");
return (-1);
}
else
{
/* This connection throw error -1809, since the callback
* function was unregistered statement */
EXEC SQL database test;
printf ("sqlcode on connect = %d¥n", SQLCODE);
第 5 章 セキュリティ
153
}
return 0;
}
static int user_callback(char *challenge, char *response,
int msg_style)
{
switch (msg_style)
{
/* If the msg_style is PAM_PROMPT_ECHO_OFF, the
* application should not echo the user’s response. */
case PAM_PROMPT_ECHO_OFF:
case PAM_PROMPT_ECHO_ON :
printf("%s: %d:", challenge, msg_style);
scanf("%.*s", PAM_MAX_RESP_SIZE, response);
break;
case PAM_ERROR_MSG:
case PAM_TEXT_INFO:
default:
printf("%s: %d¥n", challenge, msg_style);
break;
}
return 0;
}
分散トランザクション
分散接続が確立される時期は予測できないため、分散接続では質問に応答できません。
リモート サーバでの認証は、データベース内で行う必要があります。sysusers と呼ばれ
る新しいデータベースを使用してリモート接続を管理できます。
リモート サーバで PAM または LDAP 認証サポート モジュールが有効である場合、
システム管理者は、各リモート サーバの、sysusers データベースの sysauth 表に許可
ユーザを入力する必要があります。
データベース: sysusers
表: sysauth
sysusers データベースの sysauth 表は次の構造体を持っています。
154
列
構造体
ユーザ名
char(32)
グループ名
char(32)
サーバ
char(128)
ホスト
char(128)
IBM Informix Dynamic Server 管理者ガイド
表には、複数のサーバとホストを認証するために、一人のユーザの複数行が含まれる場
合があります。
次の例では、サーバは、ホスト host1.mycompany.com の、データベース サーバ
server1 のグループ group1 に所属する、ユーザ user1 からの分散トランザクションを
受け入れることができます。
insert into sysauth values ("user1", "group1", "server1",
"host1.mycompany.com");
クライアント API および認証サポート モジュール
次の IBM Informix クライアント API は、PAM および LDAP 認証サポート モジュー
ルをサポートします。
v ESQL/C
v ODBC
v JDBC
その他の API は PAM および LDAP 認証サポート モジュールをサポートしません。
有効な認証モジュールを保有する Dynamic Server のバージョンでそれらを使用するに
は、sqlhosts に PAM パラメータを持たない DBSERVERALIAS に接続します。
次のクライアント API、ツール、およびアプリケーションは、PAM または LDAP 認証
サポート モジュールをサポートしません。
v LibC++
v Libdmi
v OLEDB
v ODBC を使用する VB アプリケーション
v Ilogin、dbping、および ODBC テスト接続
v ISA
互換性問題
すべての IBM Informix 製品やツールが PAM または LDAP 認証をサポートするわけ
ではありません。
v コールバック関数を識別するメカニズムがないため、IBM Informix-4GL は PAM ま
たは LDAP 認証を直接はサポートしません。ただし、IBM Informix-4GL で正しいバ
ージョンの CSDK を使用すれば、IBM Informix-4GL から呼び出せる、質問と応答プ
ロトコルを処理する C コードを作成できます。PAM を実装するには、CSDK の新
規バージョンに移行し、アプリケーションを修正して質問と応答を処理するコールバ
ックを登録し、アプリケーションを再コンパイルします。
v Informix SQL などの製品は質問と応答プロトコルを処理できません。
第 5 章 セキュリティ
155
v ユーティリティ DB-Access、dbexport、dbimport、dbload、および dbschema は
PAM をサポートします。これらのユーティリティは、質問を受け取るとそれをユー
ザに渡し、応答を待機します。PAM モジュールが行う質問ごとにこれが繰り返され
ます。
v サーバ管理ユーティリティ onmode、onstat、および oncheck は PAM を使用しませ
んが、これらのツールは、すべての Dynamic Server ポートで動作するため、PAM 使
用可能ポートでは機能します。
v その他のサーバ ユーティリティは PAM をサポートしません。
PAM または LDAP 認証モジュールをサポートしないツールを使用する場合は、
SQLHOSTS ファイルに PAM パラメータを持たない DBSERVERALIAS に接続しま
す。
エンタープライズ レプリケーションおよび高可用性データ レプリケーション接続の
セキュリティ オプション
INFORMIXSQLHOSTS ファイルの新規構成オプションを使用して、エンタープライズ
レプリケーションと高可用性データ レプリケーション (HDR) 接続のセキュリティを高
めることができます。
INFORMIXSQLHOSTS ファイルのオプション (5 番目) フィールドに s=6 を追加し
て、対応するポートが、エンタープライズ レプリケーションまたは HDR 接続要求の
みを受け入れることを指示します。その他の接続要求は、無効な接続タイプのエラー番
号 -25539 が出て拒否されます。
INFORMIXSQLHOSTS ファイル エントリのアウトラインを以下に示します。
dbservername
nettype
hostname
servicename
s=6
次に例を示します。
ifxer1
oltlitcp
mc001
er_port
s=6,Other_ER_Parameters
s=6 を設定すると、エンタープライズ レプリケーション (ER) または HDR 接続要求
は、新規メカニズムを使用して認証されます。システム管理者は、$INFORMIXDIR/etc
ディレクトリにファイル hosts.equiv を作成し、参加するエンタープライズ レプリケー
ションと HDR ノードの名前 (INFORMIXSQLHOSTS ファイルの 3 番目の列にあるホ
スト名) をそのファイルに 1 行ごとに追加する必要があります。ファイルの形式は、
UNIX ファイル /etc/hosts.equiv に似ています。ファイルは informix グループに所属す
る informix ユーザが所有する必要があります。また、informix ユーザのみがファイル
を変更できるように、権限を制限する必要があります (8 進数の権限を使用。644、
640、444、または 440 が適切)。
複製するサーバが同じマシン上にある構成の場合、$INFORMIXDIR/etc/hosts.equiv フ
ァイルは必要ありません。
156
IBM Informix Dynamic Server 管理者ガイド
次の制約事項がセキュリティ オプションに適用されます。
v エンタープライズ レプリケーションまたは HDR 専用ポートの場合、s=6 のオプシ
ョンのみを使用してください。s=6 を使用する場合、その他のオプション
(s=0,1,2,3,4) は使用できません。
v このオプションは、エンタープライズ レプリケーションと HDR のデータベース サ
ーバ環境に固有のものであるため、クライアント環境には使用しないでください。こ
のオプションが SQLHOSTS ファイルに設定されていると、クライアントは、エラー
を戻し、関連するサーバ名の使用を試行します。
HDR については、 483 ページの『第 20 章 高可用性データ レプリケーション』を参
照してください。エンタープライズ レプリケーションについては、「IBM Informix:
Dynamic Server エンタープライズ レプリケーション ガイド」を参照してください。
外部ルーチン (UDR) のセキュリティ
データベース サーバ外部の共有ライブラリをもった外部ルーチンは、セキュリティ リ
スクをもたらす可能性があります。外部ルーチンには、ユーザ定義ルーチン (UDR) お
よび DataBlade モジュールのルーチンが含まれます。デフォルトで informix ユーザで
あるデータベース サーバ管理者 (DBSA) は、外部ルーチンを登録できるユーザを設定
するセキュリティ方式を実装できます。これによって、未公認ユーザは外部ルーチンを
登録できなくなります。
IFX_EXTEND_ROLE 構成パラメータを使用して、外部ルーチンを登録するユーザの能
力を制約できます。
IFX_EXTEND_ROLE 構成パラメータのデフォルト値は off です。EXTERNAL 節を保
有する UDR の作成と削除を行うユーザ特権を付与するには、IFX_EXTEND_ROLE 構
成パラメータを on に設定します。このパラメータが on に設定されていると、
EXTEND ロールが機能するため、EXTERNAL 節を保有する外部ルーチンの作成と削除
を行うユーザ特権を付与できます。
特定のユーザに EXTEND ロールを付与するには、sysroleauth システム カタログ表を
更新して、新規組込みロールを反映させます。
IFX_EXTEND_ROLE 構成パラメータを On に設定した後は、特定ユーザとの間でアク
セス権の付与や取消しを行うには、次の構文を使用します。
v GRANT extend To username
v REVOKE extend From username
UDR アクセス権を制約しない場合は、IFX_EXTEND_ROLE 構成パラメータを Off に
設定します。IFX_EXTEND_ROLE パラメータが Off に設定されていると、EXTEND
ロールが機能しないため、すべてのユーザが外部ルーチンを登録できます。
第 5 章 セキュリティ
157
詳しくは、「IBM Informix: SQL ガイド: 構文」を参照してください。
158
IBM Informix Dynamic Server 管理者ガイド
第 2 部 ディスク、メモリ、およびプロセスの管理
© Copyright IBM Corp. 1996, 2004
159
160
IBM Informix Dynamic Server 管理者ガイド
第 6 章 仮想プロセッサとスレッド
仮想プロセッサ . . . . . . . . . . . . . . . . . .
スレッド . . . . . . . . . . . . . . . . . . .
仮想プロセッサのタイプ . . . . . . . . . . . . . .
仮想プロセッサの利点 . . . . . . . . . . . . . . .
処理の共有 . . . . . . . . . . . . . . . . . .
メモリとリソースの節約 . . . . . . . . . . . . .
並列処理 . . . . . . . . . . . . . . . . . .
オンライン モードでの仮想プロセッサの追加と削除 . . . .
CPU への仮想プロセッサのバインド . . . . . . . . .
仮想プロセッサがスレッドを処理する方法 . . . . . . . . .
制御構造体 . . . . . . . . . . . . . . . . . . .
コンテキスト スイッチング . . . . . . . . . . . . .
スタック . . . . . . . . . . . . . . . . . . .
キュー . . . . . . . . . . . . . . . . . . . .
レディー状態のキュー . . . . . . . . . . . . . .
スリープ状態のキュー . . . . . . . . . . . . . .
待機状態のキュー . . . . . . . . . . . . . . .
ミューテックス . . . . . . . . . . . . . . . . .
仮想プロセッサのクラス . . . . . . . . . . . . . . .
CPU 仮想プロセッサ . . . . . . . . . . . . . . .
必要な CPU 仮想プロセッサ数の決定 . . . . . . . . .
マルチプロセッサ コンピュータでの実行 . . . . . . . .
単一プロセッサ コンピュータでの実行 . . . . . . . .
オンライン モードでの CPU 仮想プロセッサの追加と削除 . .
優先度エージングの防止 . . . . . . . . . . . . .
プロセッサ親和性の使用方法 . . . . . . . . . . . .
仮想プロセッサのユーザ定義クラス . . . . . . . . . .
必要なユーザ定義仮想プロセッサ数の決定 . . . . . . .
ユーザ定義仮想プロセッサの使用方法 . . . . . . . . .
ユーザ定義仮想プロセッサの指定 . . . . . . . . . .
ユーザ定義仮想プロセッサ クラスへの UDR の割当て . . .
オンライン モードでのユーザ定義仮想プロセッサの追加と削除
Java 仮想プロセッサ. . . . . . . . . . . . . . . .
ディスク入出力仮想プロセッサ . . . . . . . . . . . .
入出力の優先度 . . . . . . . . . . . . . . . .
論理ログ入出力 . . . . . . . . . . . . . . . .
物理ログ入出力 . . . . . . . . . . . . . . . .
非同期入出力 . . . . . . . . . . . . . . . . .
ネットワーク仮想プロセッサ . . . . . . . . . . . . .
ネットワーク接続の指定 . . . . . . . . . . . . .
© Copyright IBM Corp. 1996, 2004
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
162
163
164
166
167
167
168
169
169
170
170
171
172
173
173
174
175
175
176
176
176
177
177
178
178
178
180
180
180
181
181
182
182
182
183
184
184
185
186
187
161
CPU 仮想プロセッサまたはネットワーク仮想プロセッサ上でのポーリング スレッドの実行
ネットワーク仮想プロセッサ数の指定 . . . . . . . . . . . . . . . . . . .
クライアント/サーバ接続のリスン スレッドとポーリング スレッド . . . . . . . . .
複数のリスン スレッドの起動 . . . . . . . . . . . . . . . . . . . . .
通信サポート モジュール仮想プロセッサ . . . . . . . . . . . . . . . . . . .
暗号化仮想プロセッサ . . . . . . . . . . . . . . . . . . . . . . . . .
光仮想プロセッサ . . . . . . . . . . . . . . . . . . . . . . . . . .
監査仮想プロセッサ . . . . . . . . . . . . . . . . . . . . . . . . . .
そのほかの仮想プロセッサ . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
187
188
188
191
192
192
193
193
193
本章について
この章では、パフォーマンスを向上するために、仮想プロセッサと仮想プロセッサ内の
スレッドがどのようにデータベース サーバによって使用されるかについて説明します。
仮想プロセッサのタイプと、仮想プロセッサ内でのスレッドの動作について説明しま
す。
仮想プロセッサ
データベース サーバのプロセスを仮想プロセッサ と呼びます。これは、これらのプロ
セスがコンピュータの CPU と同様に機能するためです。CPU がオペレーティング シ
ステムの複数のプロセスを実行して複数のユーザの処理を操作するのと同じように、デ
ータベース サーバの仮想プロセッサは複数のスレッド を実行して、複数の SQL クラ
イアント アプリケーションの操作を処理します。
仮想プロセッサは、オペレーティング システムが処理をスケジューリングするプロセス
です。
図 15 に、クライアント アプリケーションと仮想プロセッサの関係を示します。少数の
仮想プロセッサが、それよりもずっと多くのクライアント アプリケーションや問合せを
処理します。
162
IBM Informix Dynamic Server 管理者ガイド
図 15. 仮想プロセッサ
スレッド
仮想プロセッサが CPU のタスクであるのと同様に、スレッドは仮想プロセッサのタス
クです。仮想プロセッサは、オペレーティング システムが CPU 上での実行をスケジュ
ーリングするタスクです。データベース サーバのスレッドは、仮想プロセッサが内部的
に処理をスケジューリングするタスクです。スレッドはプロセスに似ていて、オペレー
ティング システムに対する要求がプロセスより少ないため、軽量プロセス と呼ばれる
こともあります。
データベース サーバ仮想プロセッサにより複数の並行スレッドが実行されるため、デー
タベース サーバ仮想プロセッサはマルチスレッド です。
スレッドの特徴を次に示します。
オペレーティング システム
スレッドの説明
UNIX
スレッドは、仮想プロセッサが内部的に処理をスケ
ジューリングするタスクです。
Windows
スレッドは、仮想プロセッサが内部的に処理をスケ
ジューリングするタスクです。仮想プロセッサは
第 6 章 仮想プロセッサとスレッド
163
Windows のスレッドとして実装されるため、データ
ベース サーバ スレッドは Windows のスレッド内
で実行されます。
重要: この章では、データベース サーバによって作成、スケジューリング、および廃棄
されるスレッドを「スレッド」と呼びます。また、Windows によって作成、スケ
ジューリング、および廃棄されるスレッドを「Windows スレッド」と呼びます。
スレッドは仮想プロセッサによって SQL クライアント アプリケーション (セッション
スレッド) のためと、内部的な要件 (内部 スレッド) を満たすために実行されます。ほ
とんどの場合、クライアント アプリケーションによる接続ごとにデータベース サーバ
によって 1 つのセッション スレッドが実行されます。データベース サーバによって内
部スレッドが実行され、データベース入出力、ログ入出力、ページ クリーニング、管理
タスクなどが達成されます。単一のクライアントのためにデータベース サーバが複数の
セッションを実行する場合については、168 ページの『並列処理』を参照してくださ
い。
ユーザ スレッド とは、クライアント アプリケーションからの要求が処理されるデータ
ベース サーバ スレッドです。ユーザ スレッドには、セッション スレッド (スレッド
sqlexec) が含まれます。セッション スレッドは、データベース サーバがクライアント
アプリケーションからの要求に応じた処理を行うために実行する主スレッドです。
ユーティリティ onmode からの要求が処理されるスレッド、復旧用スレッド、B ツリー
スキャナー スレッド、およびページ クリーナ スレッドもユーザ スレッドに含まれま
す。
アクティブなユーザ スレッドを表示するには、onstat -u を使用します。セッションと
スレッドの監視の詳細については、「IBM Informix: Dynamic Server パフォーマンス ガ
イド」を参照してください。
仮想プロセッサのタイプ
表 18 に、仮想プロセッサのクラス と、それらのクラスによって実行される処理のタイ
プを示します。それぞれの仮想プロセッサ クラスは、特定のタイプのスレッドのみを処
理します。
構成できる各クラスの仮想プロセッサ数は、使用する物理プロセッサ (CPU) やハード
ウェア メモリ、およびデータベース アプリケーションの可用性により異なります。
164
IBM Informix Dynamic Server 管理者ガイド
表 18. 仮想プロセッサのクラス
仮想
プロセッサ
クラス
カテゴリ
目的
CPU
中央処理
すべてのセッション スレッドと一部のシステム スレッドを実行
します。使用可能な場合は、KAIO (kernel asynchronous I/O: カー
ネル非同期入出力) のためのスレッドが実行されます。構成に応
じて、単一のポーリング スレッドが実行されることがあります。
PIO
ディスク入出力
物理ログ ファイルがクックド ディスク領域内にある場合に物理
ログ ファイルへの書込みを行います (内部クラス)。
LIO
ディスク入出力
論理ログ ファイルがクックド ディスク領域内にある場合に論理
ログ ファイルへの書込みを行います (内部クラス)。
AIO
ディスク入出力
ログなしディスク入出力を実行します。KAIO が使用される場
合、AIO 仮想プロセッサがクックド ディスク領域への入出力を
実行します。
SHM
ネットワーク接続
共有メモリ通信を実行します。
TLI
ネットワーク接続
TLI (Transport Layer Interface: トランスポート層インターフェイ
ス) を使用してネットワーク通信を実行します。
SOC
ネットワーク接続
ソケットを使用してネットワーク通信を実行します。
OPT
(UNIX)
光ディスク入出力
光ディスクへの入出力を実行します。
ADM
管理
管理機能を実行します。
ADT
監査
監査機能を実行します。
MSC
その他
きわめて大きいスタックが必要なシステム呼出しの要求を処理し
ます。
CSM
通信
サポート モジュール
通信サポート サービスの操作を実行します。
Encrypt
暗号化
暗号化や復号化関数が呼び出されたときに、データベース サーバ
によって使用されます。
classname
ユーザ定義
ルーチンが失敗した場合にデータベース サーバが影響されないよ
うに、スレッド セーフな方法でユーザ定義ルーチンを実行しま
す。構成パラメータ VPCLASS を使用して指定されます。
classname を指定する必要があります。
Java VP
(JVP)
Java UDR
Java UDR を実行します。JVM (Java Virtual Machine: Java 仮想
マシン) が含まれます。
図 16 に、データベース サーバの主な構成要素と拡張性を示します。
第 6 章 仮想プロセッサとスレッド
165
AIO
AIO
CPU
CPU
CPU
CPU
DataBlade
DataBlade
DataBlade
DataBlade
DataBlade
DataBlade API
図 16. データベース サーバ
仮想プロセッサの利点
単一のクライアント アプリケーションの操作を処理するデータベース サーバ プロセス
と比較して、動的なデータベース サーバ仮想プロセッサのマルチスレッドには、その性
質上、次の利点があります。
v 複数の仮想プロセッサで処理が共有できます。
v 仮想プロセッサによってメモリとリソースが節約されます。
166
IBM Informix Dynamic Server 管理者ガイド
v 仮想プロセッサにより並列処理が実行できます。
v データベース サーバの実行中に、追加の仮想プロセッサを起動して、アクティブな
CPU 仮想プロセッサを終了できます。
v 仮想プロセッサを CPU にバインドできます。
次の各セクションでは、これらの利点について説明します。
処理の共有
同じクラスの仮想プロセッサは同一のコードを保有し、メモリ内でデータ キューと処理
キューの両方へのアクセスを共有します。クラスに属するスレッドは、そのクラス内の
どの仮想プロセッサでも実行できます。
一般に、データベース サーバは、スレッドを同一の仮想プロセッサ上で実行し続けよう
とします。これは、別の仮想プロセッサへスレッドを移動する場合、その仮想プロセッ
サのメモリからバスへのデータ転送が必要になることがあるためです。ただし、スレッ
ドが実行を待っている場合、データベース サーバではそのスレッドを別の仮想プロセッ
サへ移行させることがあります。これは、処理のロード バランシングによる利点が、デ
ータ転送によって生じるオーバーヘッドの量に勝るためです。
仮想プロセッサのクラス内での処理の共有は、自動的に発生するものであり、データベ
ースのユーザには見えません。
メモリとリソースの節約
クライアント プロセスとサーバ プロセスの数が 1 対 1 で対応するアーキテクチャに
対して、データベース サーバでは、少数のサーバ プロセスで多数のクライアントの操
作を処理できます。これは、プロセスではなくスレッドをクライアントごとに実行する
ことで行われます。
仮想プロセッサに割り当てられたリソースは複数のスレッドによって共有されるため、
マルチスレッドのほうがオペレーティング システムのリソースを効率的に使用できま
す。仮想プロセッサによって実行されるすべてのスレッドが、仮想プロセッサ メモリ、
通信ポート、およびファイルへのアクセスを共有します。スレッドによるリソースへの
アクセスは、仮想プロセッサによって調整されます。一方、個々のプロセスはそれぞれ
別個の一連のリソースを保有し、複数のプロセスにより同じリソースにアクセスしなけ
ればならなくなった場合、オペレーティング システムによりアクセスを調整する必要が
あります。
一般に、仮想プロセッサによるスレッド間の切替えのほうが、オペレーティング システ
ムによるプロセス間の切替えよりも高速です。プロセスがオペレーティング システムに
よって切り替えられる場合は、オペレーティング システムによりプロセッサ上でのプロ
セスの実行を停止して、現在の処理状態を保存してから、別のプロセスを開始する必要
があります。両方のプロセスがオペレーティング システムのカーネルに入り、さらに、
そこから出る必要があり、場合によっては一部の物理メモリの内容を置き換えなければ
第 6 章 仮想プロセッサとスレッド
167
なりません。一方、スレッドでは同じ仮想メモリとファイル記述子が共有されます。仮
想プロセッサによる 1 つのスレッドから別のスレッドへ切替えは、単なる実行パスの切
替えにすぎません。プロセスである仮想プロセッサは、割込みなしに CPU 上で動作し
続けます。仮想プロセッサがどのようにスレッドを切り替えるかについては、171 ペー
ジの『コンテキスト スイッチング』を参照してください。
並列処理
次の場合、並列に動作する複数の CPU クラス仮想プロセッサにより、単一のクライア
ントに対し複数のセッション スレッドを実行できます。
v
インデックス作成
v
ソート
v
復旧
v
走査
v
結合
v
集計
v
グループ化
v UDR (User-defined-routine: ユーザ定義ルーチン) の実行
UDR の並列実行の詳細については、「IBM Informix: ユーザ定義ルーチンおよびデータ
タイプ 開発者ガイド」を参照してください。
図 17 に、並列処理を示します。クライアントによってインデックス作成、ソート、ま
たは論理復旧が開始されると、データベース サーバで、タスクを並列処理する複数のス
レッドが起動され、可能な限り多くのコンピュータ リソースが使用されます。1 つのス
レッドが入出力を待っている間に、別のスレッドが動作できます。
CPU 1
CPU 2
図 17. 並列処理
168
IBM Informix Dynamic Server 管理者ガイド
CPU 3
CPU 4
オンライン モードでの仮想プロセッサの追加と削除
処理要求が高まるのに合わせて、データベース サーバの実行中に仮想プロセッサを追加
できます。例えば、あるクラスの仮想プロセッサが計算または入出力の限界に達する場
合 (つまり、CPU 動作または入出力要求が、現在の数の仮想プロセッサの処理能力を超
えて累積していく場合)、そのクラスの追加の仮想プロセッサを起動して処理の負荷をよ
り分散させることができます。
どのクラスの仮想プロセッサでも、データベース サーバの実行中に追加できます。詳し
くは、198 ページの『オンライン モードでの仮想プロセッサの追加』を参照してくださ
い。
Windows のみ
Windows では、クラスの仮想プロセッサを削除することはできません。
Windows のみ の終り
CPU クラスやユーザ定義クラスの仮想プロセッサは、データベース サーバの実行中に
削除できます。詳しくは、195 ページの『仮想プロセッサ構成パラメータの設定』を参
照してください。
CPU への仮想プロセッサのバインド
一部のマルチプロセッサ システムでは、プロセスを特定の CPU にバインドできます。
この機能をプロセッサ親和性 といいます。
データベース サーバによってプロセッサ親和性がサポートされるマルチプロセッサ コ
ンピュータでは、CPU 仮想プロセッサをコンピュータの特定の CPU にバインドできま
す。CPU 仮想プロセッサを CPU にバインドすると、バインドした CPU 上でその仮想
プロセッサが排他的に動作するようになります。この操作により、オペレーティング シ
ステムが行わなければならないプロセス切替えの回数が減るため、仮想プロセッサのパ
フォーマンスが向上します。特定の CPU へ CPU 仮想プロセッサをバインドすると、
コンピュータの特定のプロセッサ上のみでデータベースを動作させて、残りのプロセッ
サをほかの作業用に残しておくこともできます。CPU へバインドできるのは、CPU 仮
想プロセッサのみです。
CPU 仮想プロセッサをハードウェア プロセッサに割り当てる方法については、178 ペ
ージの『プロセッサ親和性の使用方法』を参照してください。
第 6 章 仮想プロセッサとスレッド
169
仮想プロセッサがスレッドを処理する方法
1 つの仮想プロセッサは一度に 1 つのスレッドしか実行できません。 仮想プロセッサ
は複数のスレッドを並行に切り替えることによってそれらのスレッドを処理します。 仮
想プロセッサは、スレッドが制御を渡すまで、そのスレッドを実行します。 スレッドが
制御を渡すと、実行準備ができているスレッドへ仮想プロセッサによって切り替えられ
ます。 仮想プロセッサはこの処理を継続し、最初のスレッドが続行する準備ができる
と、最終的にそのスレッドに戻ります。 スレッドによっては作業を完了する場合もあ
り、新しいスレッドが仮想プロセッサによって起動されて、新しい作業を処理します。
仮想プロセッサによって連続的にスレッド間の切替えが行われるため、仮想プロセッサ
が CPU に処理を継続させることができます。 処理が発生する速度により、複数のタス
クが仮想プロセッサによって同時に処理されているように見え、実質的にそれと同じこ
とが行われます。
複数の並行スレッドを実行するには、スレッドがほかのスレッドの作業を妨害しないよ
うにするためのスケジューリングと同期が必要です。 仮想プロセッサは次の構造体と方
法を使用して複数のスレッドの並行処理を調整します。
v 制御構造体
v コンテキスト スイッチング
v スタック
v キュー
v ミューテックス
ここでは、これらの構造体と方法がどのように仮想プロセッサによって使用されるかに
ついて説明します。
制御構造体
クライアントがデータベース サーバに接続すると、データベース サーバによってセッ
ション制御ブロック というセッション 構造体が作成され、接続とユーザについての情
報が保持されます。クライアントがデータベース サーバに接続するとセッションが開始
され、接続が終了するとセッションが終了します。
それから、データベース サーバによってセッション用に TCB (thread-control block: ス
レッド制御ブロック) というスレッド構造体が作成され、クライアントの要求に対する
主スレッド (sqlexec) での処理がデータベース サーバによって開始されます。スレッド
が制御を渡す、つまり、スレッドが一時停止して、ほかのスレッドが動作できるように
なると、一時停止するスレッドの状態に関する情報が仮想プロセッサによってスレッド
制御ブロックに保存されます。この情報には、プロセス システム レジスタの内容、プ
ログラム カウンタ (次に実行する命令のアドレス)、スタック ポインタなどがありま
す。この情報により、スレッドのコンテキスト が形成されます。
170
IBM Informix Dynamic Server 管理者ガイド
ほとんどの場合、セッションあたり 1 つの主スレッドがデータベース サーバによって
実行されます。ただし、データベース サーバが並列処理を実行する場合は、単一のクラ
イアント用に複数のセッション スレッドがデータベース サーバによって作成され、対
応する複数のスレッド制御ブロックが作成されます。
コンテキスト スイッチング
仮想プロセッサはコンテキスト スイッチング によって 1 つのスレッドから別のスレッ
ドへ実行を切り替えます。一定の時間 (タイム スライス) が経過した後に、オペレーテ
ィング システムがプロセスを先取りするのとは異なり、データベース サーバは実行中
のスレッドを先取りしません。 代わりに、次のどちらかの時点でスレッドが制御を渡し
ます。
v
コードであらかじめ決められた時点
v
何らかの条件が整うまでスレッドがそれ以上実行できなくなったとき
タスクを完了するのに必要な処理の多さが原因で、ほかのスレッドが不当に長時間待た
される場合、スレッドはあらかじめ決められた時点で制御を渡します。 このように実行
に長時間かかるタスクのコードには、戦略上重要な処理時点での制御譲渡関数の呼出し
が含まれます。 スレッドによってこのようなタスクが実行される場合、制御譲渡関数の
呼出しに遭遇した時点でスレッドが制御を渡します。 それにより、レディー状態のキュ
ー内のほかのスレッドが実行の機会を得ます。 元のスレッドに次に順番が回ってくる
と、制御譲渡関数の呼出しの直後の時点からそのスレッドによってコードの実行が再開
されます。制御譲渡関数のあらかじめ決められた呼出しにより、データベース サーバは
パフォーマンス上最も有利な時点でスレッドに割込みをかけることができます。
スレッドは何らかの条件が発生するまでタスクを続行できなくなった場合にも制御を渡
します。例えば、ディスク入出力の完了を待つ場合、クライアントからのデータを待つ
場合、またはロックまたはそのほかのリソースを待つ場合に、スレッドは制御を渡しま
す。
スレッドが制御を渡すと、仮想プロセッサによってスレッドのコンテキストがスレッド
制御ブロックに保存されます。次に、仮想プロセッサにより、実行するスレッドがレデ
ィー状態のスレッドのキューから選択されて、その新しいスレッドのスレッド制御ブロ
ックからスレッドのコンテキストがロードされてから、プログラム カウンタにある新し
いアドレスで実行が開始されます。仮想プロセッサがコンテキスト スイッチングを行う
方法を図 18 に示します。
第 6 章 仮想プロセッサとスレッド
171
t0
t1
t0
t1
図 18. コンテキスト スイッチング: 仮想プロセッサによるスレッドからスレッドへの切替え
スタック
データベース サーバは、スレッドによって実行される関数の非共有データを格納する領
域を共有メモリの仮想領域に割り当てます。この領域をスタック といいます。スタック
サイズの設定方法については、225 ページの『スタック』を参照してください。
スタックにより、同じコードを並列して実行するほかのスレッドによる非共有データの
上書きを仮想プロセッサで回避できるようになります。例えば、いくつかのクライアン
ト アプリケーションによって SELECT 文が並行して実行される場合、コード内の同じ
関数の多くがそれぞれのクライアントのセッション スレッドによって実行されます。ス
レッドにプライベートなスタックがないと、1 つのスレッドに属するローカル データが
関数内で別のスレッドによって上書きされる可能性があります。
新しいスレッドへの切替えが行われる場合、仮想プロセッサによってその新しいスレッ
ドのスタック ポインタがスレッド制御ブロック内のフィールドからロードされます。ス
タック ポインタにはスタックの開始アドレスが入っています。これにより、仮想プロセ
ッサは、開始アドレスに対するオフセットを指定してスタック内のデータにアクセスで
きます。図 19 に、仮想プロセッサがスタックをどのように使用してセッション スレッ
ドの非共有データを分離するかを示します。
172
IBM Informix Dynamic Server 管理者ガイド
t0
t1
t2
t3
t3
t2
t1
t0
図 19. 仮想プロセッサによるユーザごとの非共有データの分離
キュー
データベース サーバは次の 3 つのタイプのキューを使用して、並列に実行される複数
のスレッドの処理をスケジューリングします。
v レディー状態のキュー
v スリープ状態のキュー
v 待機状態のキュー
同じクラスの仮想プロセッサはキューを共有します。これによってある程度は、スレッ
ドが 1 つのクラス内で 1 つの仮想プロセッサから別の仮想プロセッサへ必要に応じて
移行できるようになります。
レディー状態のキュー
レディー状態のキューには、現在の (実行中の) スレッドが制御を渡すときに実行の準
備ができているスレッドが保持されます。 スレッドが制御を渡すと、仮想プロセッサに
よって、適切な優先度を持つキューがレディー状態のキューから取り出されます。キュ
ー内で優先度が同じスレッドは、仮想プロセッサによって FIFO (First-In-First-Out: 先入
れ先出し) 方式で処理されます。
マルチプロセッサ コンピュータで仮想プロセッサのいずれかのクラスのレディー状態の
キューにスレッドが累積する (仮想プロセッサの処理能力を超えて作業が蓄積している
ことを示す) 場合は、そのクラスの追加の仮想プロセッサを起動して処理の負荷を分散
させることができます。レディー状態のキューの監視方法については、200 ページの
『仮想プロセッサの監視』を参照してください。データベース サーバがオンライン モ
第 6 章 仮想プロセッサとスレッド
173
ードになっている間に仮想プロセッサを追加する方法については、198 ページの『オン
ライン モードでの仮想プロセッサの追加』を参照してください。
スリープ状態のキュー
スリープ状態のキューには、特定の時点で何もすることがないスレッドのコンテキスト
が保持されます。スレッドは、指定された期間、または永久 にスリープ状態にされま
す。
ADM (Administration Class: 仮想プロセッサの管理クラス) は、システム タイマ スレッ
ドと特別なユーティリティ スレッドを実行します。 このクラス内の仮想プロセッサは
自動的に作成され、実行されます。仮想プロセッサのこのクラスは、どの構成パラメー
タの影響も受けません
指定された期間のみスリープ状態になっていたスレッドは、ADM 仮想プロセッサによ
って覚醒されます。ADM 仮想プロセッサ内で動作するスレッドは、1 秒間隔でスリー
プ状態のスレッドをチェックします。指定された期間スリープ状態になっていたスレッ
ドは、ADM 仮想プロセッサによって適切なレディー状態のキューに移動されます。指
定された期間スリープ状態になっていたスレッドは、別のスレッドによって明示的に覚
醒されることもあります。
永久 にスリープ状態のスレッドは、実行する作業ができると覚醒されます。例えば、
CPU 仮想プロセッサ上で動作しているスレッドがディスクにアクセスする必要がある
と、そのスレッドは入出力要求を発行し、自身を CPU 仮想プロセッサのスリープ状態
のキューに入れてから、制御を渡します。入出力の完了したことが入出力スレッドによ
って CPU 仮想プロセッサに通知されると、その CPU 仮想プロセッサによって元のス
レッドがスリープ状態のキューからレディー状態のキューへ移動されることで、元のス
レッドの処理の続行がスケジューリングされます。図 20 では、データベース サーバ
スレッドがどのようにキューに入れられてデータベース入出力が実行されるかを示しま
す。
174
IBM Informix Dynamic Server 管理者ガイド
t1
CPU
VPt1
t5
t2
AIO VPt2
t5
t3
t3
t4
t6
t4
t2
t6
t4
t2
t4
t6
t6
図 20. データベース入出力の実行のためにキューに入れられるデータベース サーバ スレッド
待機状態のキュー
待機状態のキューには、実行を続ける前に特定のイベントを待たなければならないスレ
ッドが保持されます。 例えば、スレッドによる共有データのアクセスが、待機状態のキ
ューによって調整されます。ユーザ スレッドが論理ログのラッチを獲得しようとした
が、そのラッチが別のユーザに保持されている場合、アクセスを拒否されたスレッド
は、自身を論理ログ待機状態のキューに入れます。ロックを所有するスレッドがラッチ
を解放する準備ができると、そのスレッドは待機状態のキューを調べ、待機しているス
レッドがあった場合は、待機状態のキューの中の次のスレッドを覚醒させます。
ミューテックス
ラッチ とも呼ばれるミューテックス (mutually exclusive: 相互排他) は、複数のスレッ
ドによる共有リソースへのアクセスを同期するためにデータベース サーバが使用するラ
ッチ機構です。ミューテックスは、複数のプロセス による共有データへのアクセスを制
御するために一部のオペレーティング システムで使用されるセマフォと似ています。
ただし、ミューテックスのほうがセマフォよりも並列化の程度を高めることができま
す。
ミューテックスはバッファなどの共有リソースと関連付けられる変数です。 スレッド
は、リソースにアクセスする前に、そのリソースのミューテックスを獲得する必要があ
ります。 所有者がリソースを解放するまで、ほかのスレッドはそのリソースへアクセス
できなくなります。 スレッドは、ミューテックスが使用可能になった場合、ミューテッ
第 6 章 仮想プロセッサとスレッド
175
クスを使用中状態に設定することによってそれを獲得します。ミューテックスで得られ
る同期により、一度に 1 つのスレッドのみが共有メモリの領域へ書込みを行うことが保
証されます。
ミューテックスの監視については、254 ページの『共有メモリ プロファイルとラッチの
監視』を参照してください。
仮想プロセッサのクラス
特定のクラスの仮想プロセッサはそのクラスのスレッドのみを実行できます。 このセク
ションでは、仮想プロセッサのそれぞれのクラスによって実行されるスレッドの種類
(つまり処理の種類) について説明します。 各クラスを実行するのに必要な仮想プロセ
ッサの数を決定する方法についても説明します。
CPU 仮想プロセッサ
CPU 仮想プロセッサはすべてのセッション スレッド (SQL クライアント アプリケー
ションからの要求を処理するスレッド) と一部の内部スレッドを実行します。内部スレ
ッドはデータベース サーバの内部的な処理を実行します。例えば、クライアント アプ
リケーションからの接続要求を聞きとるスレッドが内部スレッドです。
必要な CPU 仮想プロセッサ数の決定
CPU 仮想プロセッサの正しい数とは、仮想プロセッサがビジー状態のままであるが、受
信する要求を処理しきれないほどビジーにはならない数です。コンピュータ内のハード
ウェア プロセッサ数より多くの CPU 仮想プロセッサを割り当てないでください。
データベース サーバ実行中の CPU 仮想プロセッサのパフォーマンスを評価するには、
設定した期間ごとの定期的な間隔で次のコマンドを繰り返します。
onstat -g glo
usercpu 時間と syscpu 時間を合計した累積が、評価期間の実際の経過時間の 100% に
近くなる場合、仮想プロセッサを実行できる CPU があれば、CPU 仮想プロセッサを追
加してください。
必要な CPU 仮想プロセッサ数の決定については、187 ページの『CPU 仮想プロセッサ
またはネットワーク仮想プロセッサ上でのポーリング スレッドの実行』を参照してくだ
さい。
パラメータ VPCLASS では、次のすべての情報を指定できます。
v クラス用に最初に起動する仮想プロセッサの数
v クラス用に実行する仮想プロセッサの最大数
v CPU クラスの仮想プロセッサのプロセッサ親和性
v 優先度エージングが適用される場合の、優先度エージングの無効化
176
IBM Informix Dynamic Server 管理者ガイド
重要: AFF_SPROC、AFFNPROCS、NOAGE、NUMCPUVPS、および NUMAIOVPS の
各パラメータの代わりに、パラメータ VPCLASS 使用することをお勧めします。
これらのパラメータと一緒にパラメータ VPCLASS を使用することはできませ
ん。例えば、ファイル ONCONFIG にパラメータ NUMCPUVPS がある場合、
CPU パラメータ VPCLASS も含まれていると、エラー メッセージが表示されま
す。VPCLASS 構成パラメータの詳細については、「IBM Informix: Dynamic
Server 管理者の参照」を参照してください。
コンピュータの CPU 数とデータベース サーバに接続するユーザ数を考慮することに加
えて、ユーザ定義ルーチンと (ユーザ定義ルーチンの集まりである) DataBlade モジュー
ルは CPU 仮想プロセッサとユーザ定義仮想プロセッサのどちらかの上で実行されるこ
とも考慮してください。仮想プロセッサにユーザ定義ルーチンを割り当てる方法につい
ては、181 ページの『ユーザ定義仮想プロセッサ クラスへの UDR の割当て』を参照
してください。
マルチプロセッサ コンピュータでの実行
マルチプロセッサ コンピュータで複数の CPU 仮想プロセッサを実行する場合は、ファ
イル ONCONFIG 内のパラメータ MULTIPROCESSOR を 1 に設定します。
MULTIPROCESSOR を 1 に設定すると、マルチプロセッサ コンピュータに適した方法
でデータベース サーバがロックを実行するようになります。マルチプロセッサ モード
の設定については、「IBM Informix: Dynamic Server 管理者の参照」の構成パラメータ
の章を参照してください。
単一プロセッサ コンピュータでの実行
単一プロセッサ コンピュータでデータベース サーバを実行する場合は、構成パラメー
タ MULTIPROCESSOR を 0 に設定します。CPU 仮想プロセッサ 1 つだけでデータベ
ース サーバを実行するには、パラメータ SINGLE_CPU_VP を 1 に設定します。
MULTIPROCESSOR を 0 に設定すると、マルチプロセッサ コンピュータで複数の処理
に必要なロックを、データベース サーバがバイパスできるようになります。構成パラメ
ータ MULTIPROCESSOR については、「IBM Informix: Dynamic Server 管理者の参
照」を参照してください。
SINGLE_CPU_VP を 1 に設定すると、複数の CPU 仮想プロセッサを実行する場合に
通常行われる一部のミューテックス呼出しを、データベース サーバがバイパスできるよ
うになります。パラメータ SINGLE_CPU_VP の設定については、「IBM Informix:
Dynamic Server 管理者の参照」を参照してください。
重要: VPCLASS num を 1 に設定し、SINGLE_CPU_VP を 0 に設定した場合は、デー
タベース サーバによって起動される CPU 仮想プロセッサが 1 つだけであって
も、ミューテックス呼出しの数は変わりません。単一の CPU 仮想プロセッサを
実行する場合に実行されるラッチの量を減らすには、SINGLE_CPU_VP を 1 に
設定する必要があります。
第 6 章 仮想プロセッサとスレッド
177
パラメータ SINGLE_CPU_VP を 1 に設定すると、データベース サーバに次の 2 つの
重要な制限が課せられます。
v 許容される CPU 仮想プロセッサが 1 つだけになります。
データベース サーバがオンライン モードになっている間は CPU 仮想プロセッサを
追加できなくなります。
v
ユーザ定義クラスが許容されなくなります (ただし、CPU VP 上で直接実行される
ルーチンをユーザが定義することはできます)。
詳しくは、198 ページの『オンライン モードでの仮想プロセッサの追加』を参照してく
ださい。
オンライン モードでの CPU 仮想プロセッサの追加と削除
データベース サーバがオンラインになっている間に CPU クラスの仮想プロセッサを追
加または削除できます。追加と削除の方法については、198 ページの『オンライン モー
ドでの仮想プロセッサの追加』と 199 ページの『CPU およびユーザ定義の仮想プロセ
ッサの削除』を参照してください。
優先度エージングの防止
一部のオペレーティング システムでは、長時間実行されて処理時間が累積したプロセス
は優先度を下げられます。オペレーティング システムのこの機能を優先度エージング
といいます。優先度エージングでは、データベース サーバ プロセスのパフォーマンス
が時間の経過とともに低下することがあります。 ただし場合によっては、オペレーティ
ング システムにより、優先度エージングの機能を無効にして、長時間実行されるプロセ
スを高い優先度のまま実行することが許容されることがあります。
使用するコンピュータで優先度エージングを利用できるかどうかを確認するには、この
ガイドの序で説明した、インストール システムに付属のマシン ノート ファイルを参照
してください。
使用するオペレーティング システムで優先度エージングを無効にできる場合は、構成パ
ラメータ VPCLASS の優先度エントリに noage を指定して、優先度エージングを無効
にすることができます。詳しくは、「IBM Informix: Dynamic Server 管理者の参照」を
参照してください。
プロセッサ親和性の使用方法
プロセッサ親和性 がサポートされているマルチプロセッサ コンピュータのプロセッサ
には、データベース サーバによる CPU 仮想プロセッサの自動バインドがサポートされ
ています。データベース サーバの分散には、使用するデータベース サーバがこの機能
をサポートするかどうかに関する情報を含むマシン ノート ファイルが含まれていま
す。特定の CPU に CPU 仮想プロセッサを割り当てると、仮想プロセッサはその CPU
上のみで動作しますが、別のプロセスも同じ CPU 上で実行できます。
178
IBM Informix Dynamic Server 管理者ガイド
プロセッサ親和性をサポートするマルチプロセッサ コンピュータにその機能を実装する
場合、構成パラメータ VPCLASS とオプション aff を使用します。
図 21 に、プロセッサ親和性の概念を示します。
図 21. プロセッサ親和性
UNIX のみ
使用する UNIX プラットフォームでプロセッサ親和性がサポートされているかどうかを
確認するには、マシン ノート ファイルを参照してください。
UNIX のみ の終り
パラメータ VPCLASS でのプロセッサ親和性の設定: パラメータ VPCLASS を
使用してプロセッサ親和性を設定するには、仮想プロセッサを割り当てる CPU の範囲
を指定します。データベース サーバは、aff で指定する最初のプロセッサ番号から順
に、CPU 仮想プロセッサをラウンドロビン方式で CPU に割り当てます。存在するプロ
セッサ数より多くの CPU 仮想プロセッサを指定すると、データベース サーバは再び最
初から CPU 仮想プロセッサを割り当てます。次の例では、親和性エントリにより CPU
1、2、3 に仮想プロセッサが割り当てられます。num で指定された 3 つの仮想プロセ
ッサが利用できます。
VPCLASS CPU,num=3,aff=1-3
次の例では、2 つの仮想プロセッサが CPU 5 と 6 に、1 つの仮想プロセッサが CPU
7 に割り当てられます。
VPCLASS CPU,num=3,aff=5-7
詳しくは、「IBM Informix: Dynamic Server 管理者の参照」の構成パラメータに関する
章の VPCLASS を参照してください。
第 6 章 仮想プロセッサとスレッド
179
仮想プロセッサのユーザ定義クラス
ユーザ定義ルーチンまたは DataBlade モジュールを実行するために、仮想プロセッサの
特別なクラスを定義できます。通常、ユーザ定義ルーチンは、ユーザ定義データ型をサ
ポートするために記述されます。デフォルトの CPU クラスでユーザ定義ルーチンを実
行しない場合は、VP (Virtual Processor: 仮想プロセッサ) のユーザ定義クラスにユーザ
定義ルーチンを割り当てることができます。仮想プロセッサのユーザ定義クラスを拡張
仮想プロセッサ と呼びます。
ここでは、ユーザ定義仮想プロセッサに関する次の事項について説明します。
v C 言語 UDR を CPU VP 内ではなくユーザ定義 VP 内で実行する場合
v 特定のユーザ定義 VP クラスへの C 言語 UDR の割当て方法
v データベース サーバがオンライン モードであるときのユーザ定義 VP の追加と削除
の方法
必要なユーザ定義仮想プロセッサ数の決定
ユーザ定義仮想プロセッサは、オペレーティング システムで使用可能な数まで指定でき
ます。大量の UDR や UDR を使用する並列 PDQ 問合せを実行する場合は、追加のユ
ーザ定義仮想プロセッサを構成します。
ユーザ定義仮想プロセッサの使用方法
仮想プロセッサのユーザ定義クラスは、データベース サーバを動作が不正な ユーザ定
義ルーチンから保護します。動作が不正なユーザ定義ルーチンとは、次の特徴を 1 つ以
上持つルーチンです。
v ほかのスレッドに制御を渡さない。
v オペレーティング システム コールをブロックする。
v VP のグローバルな状態を修正する。
適切な動作の C 言語 UDR には、このような特徴はありません。CPU VP 内では、適
切に動作する C 言語 UDR のみを実行してください。
警告: CPU VP 内で動作が不正なルーチンを実行すると、データベース サーバの動作に
深刻な障害が発生することがあり、おそらくデータベース サーバが失敗するか異
常な動作をします。また、ルーチン自体が、適切な結果をもたらさない可能性も
あります。
正常に実行するには、動作が不正なルーチンを仮想プロセッサのユーザ定義クラスに割
り当てます。ユーザ定義 VP により、CPU VP クラスに対する次のプログラミング上の
制限が削除されます。
v 定期的にプロセッサの制御を渡す必要性
v ブロックする入出力呼出しを除去する必要性
180
IBM Informix Dynamic Server 管理者ガイド
ユーザ定義仮想プロセッサ内で実行される関数では、プロセッサに制御を渡す必要がな
く、入出力が完了するまで仮想プロセッサによるそれ以上の処理をブロックする、直接
的なファイル システム呼出しを行うことができます。
ユーザの問合せの通常の処理は、C 言語 UDR が持つ不正な動作の特徴に影響されませ
ん。これは、これらの UDR が CPU 仮想プロセッサ内では実行されないためです。動
作が不正なルーチンの詳細については、「IBM Informix: DataBlade API Programmer’s
Guide」を参照してください。
ユーザ定義仮想プロセッサの指定
パラメータ VPCLASS とオプション VPCLASS でユーザ定義 VP クラスを定義できま
す。また、制御独占型ユーザ定義仮想プロセッサも指定できます。詳しくは、197 ペー
ジの『VPCLASS の指定』および「IBM Informix: Dynamic Server 管理者の参照」の構
成パラメータに関する章を参照してください。
ユーザ定義仮想プロセッサ クラスへの UDR の割当て
SQL の CREATE FUNCTION 文はユーザ定義ルーチンを登録するものです。例えば、
次の CREATE FUNCTION 文では、ユーザ定義ルーチン GreaterThanEqual() を登録
し、このルーチンの呼出しを UDR というユーザ定義 VP クラスで実行することを指定
しています。
CREATE FUNCTION GreaterThanEqual(ScottishName, ScottishName)
RETURNS boolean
WITH (CLASS = UDR )
EXTERNAL NAME ‘/usr/lib/objects/udrs.so’
LANGUAGE C
この関数を実行するには、UDR クラスを定義するパラメータ VPCLASS がファイル
ONCONFIG に必要です。このパラメータがないと、関数 GreaterThanEqual の呼出し
に失敗します。
ヒント: CLASS ルーチン修飾子には、どの VP クラスの名前でも指定できます。UDR
を登録するときは、このクラス名は存在している必要はありません。ただし、
ルーチンを実行するためのユーザ定義 VP クラスを指定する UDR を実行する
場合は、このクラスが存在していなければならず、このクラスに仮想プロセッ
サが割り当てられている必要があります。
UDR クラスを構成するには、次のような行をファイル ONCONFIG に記述します。次
の行では、2 つの仮想プロセッサを保有し、優先度エージングを使用しない UDR クラ
スが構成されます。
VPCLASS
UDR
,num=2,noage
この行では、UDR VP クラスは、制御を渡す VP クラスとして定義されます。つま
り、この VP クラスにより、C 言語 UDR は UDR VP クラスにアクセスする必要があ
第 6 章 仮想プロセッサとスレッド
181
るほかのスレッドへ制御を渡すことができるようになります。構成パラメータ
VPCLASS の使用法の詳細については、「IBM Informix: Dynamic Server 管理者の参
照」を参照してください。
CREATE FUNCTION 文の詳細については、「IBM Informix: SQL ガイド: 構文」を参
照してください。
オンライン モードでのユーザ定義仮想プロセッサの追加と削除
ユーザ定義クラス内の仮想プロセッサは、データベース サーバがオンライン モードに
なっている間に追加または削除できます。追加と削除の方法については、198 ページの
『オンライン モードでの仮想プロセッサの追加』および 199 ページの『CPU およびユ
ーザ定義の仮想プロセッサの削除』を参照してください。
Java 仮想プロセッサ
Java UDR と Java アプリケーションは JVP (Java virtual processors: Java 仮想プロセ
ッサ) という特別な仮想プロセッサ上で実行されます。JVP は JVM (Java Virtual
Machine: Java 仮想マシン) をそのコード内に埋め込みます。JVP には CPU VP と同じ
機能があり、完全な SQL 問合せを処理できます。
JVP は、オペレーティング システムで使用可能な数まで指定できます。大量の Java
UDR や Java UDR を使用する並列 PDQ 問合せを実行する場合は、追加の JVP を構
成します。Java で記述された UDR の詳細については、「IBM Informix: J/Foundation
Developer’s Guide」を参照してください。
JVP を構成するには、構成パラメータ VPCLASS とキーワード jvp を使用します。詳
細については、「IBM Informix: Dynamic Server 管理者の参照」の構成パラメータに関
する章を参照してください。
ディスク入出力仮想プロセッサ
次のプロセッサ クラスはディスク入出力を実行するものです。
v PIO (physical-log I/O: 物理ログ入出力)
v LIO (logical-log I/O: 論理ログ入出力)
v AIO (asynchronous I/O: 非同期ログ入出力)
v CPU (kernel-asynchronous I/O: カーネル非同期入出力)
物理ログ ファイルと論理ログ ファイルがロウ ディスク領域になく、データベース サ
ーバで KAIO が実装されていない場合、物理ログ ファイルに対するすべての入出力は
PIO クラスによって実行され、論理ログ ファイルのすべての入出力は LIO クラスによ
って実行されます。
182
IBM Informix Dynamic Server 管理者ガイド
KAIO をサポートしないオペレーティング システムでは、データベース サーバは AIO
クラスの仮想プロセッサを使用して、物理的または論理的なログに関係しないデータベ
ース入出力を実行します。
プラットフォームで KAIO を利用できる場合には、データベース サーバは CPU クラ
スを使用して KAIO を実行します。データベース サーバで KAIO が実装される場合
は、物理ログと論理ログへの入出力も含めて、ロウ ディスク領域に対するすべての入出
力が KAIO スレッドによって実行されます。
UNIX のみ
UNIX プラットフォームで KAIO がサポートされているかどうかを確認するには、マシ
ン ノート ファイルを参照してください。
UNIX のみ の終り
Windows のみ
Windows では、KAIO がサポートされています。
Windows のみ の終り
ログなし入出力の詳細については、185 ページの『非同期入出力』を参照してくださ
い。
入出力の優先度
一般に、データベース サーバは、異なるタイプの入出力を異なる仮想プロセッサ クラ
スに割り当てて、ログなし入出力キューに優先度を割り当てることによって、ディスク
入出力に優先順位をつけます。優先順位を付けることにより、例えば、優先度の高いロ
グ入出力が優先度の低い一時ファイルへの書込みよりもキューの中で後ろに置かれるこ
とがなくなります。データベース サーバによって実行されるディスク入出力には、タイ
プごとに表 19 で示す優先度が与えられます。
表 19. データベース サーバによるディスク入出力の優先順位付け
優先度
入出力のタイプ
VP クラス
1 位
論理ログ入出力
CPU または LIO
2 位
物理ログ入出力
CPU または PIO
3 位
データベース入出力
CPU または AIO
3 位
ページ クリーニング入出力
CPU または AIO
3 位
先読み入出力
CPU または AIO
第 6 章 仮想プロセッサとスレッド
183
論理ログ入出力
仮想プロセッサの LIO クラスによって論理ログ ファイルへの 入出力が実行されるの
は次の場合です。
v KAIO が実装されていない場合
v 論理ログ ファイルがクックド ディスク領域にある場合
KAIO が実装されていて、論理ログ ファイルがロウ ディスク領域にある場合にのみ、
データベース サーバは CPU 仮想プロセッサ内の KAIO スレッドを使用して、論理ロ
グへの入出力を実行します。
論理ログ ファイルには、データベース サーバがトランザクションをロールバックした
り、システム障害から復旧したりできるようにするデータが格納されます。論理ログ フ
ァイルへの入出力は、データベース サーバによって実行される最高優先度のディスク入
出力です。
ミラーリングされていない DB 領域に論理ログ ファイルがある場合は、1 つの LIO 仮
想プロセッサのみがデータベース サーバによって実行されます。ミラーリングされてい
る DB 領域に論理ログ ファイルがある場合は、2 つの LIO 仮想プロセッサが、データ
ベース サーバによって実行されます。仮想プロセッサのこのクラスには、関連するパラ
メータはありません。
物理ログ入出力
仮想プロセッサの PIO クラスによって物理ログ ファイルへの入出力が実行されるのは
次の場合です。
v KAIO が実装されていない場合
v 物理ログ ファイルがバッファ付きファイル チャンクに格納される場合
KAIO が実装されていて、物理ログ ファイルがロウ ディスク領域にある場合にのみ、
データベース サーバは CPU 仮想プロセッサ内の KAIO スレッドを使用して、物理ロ
グへの入出力を実行します。物理ログ ファイルには、最後のチェックポイント 以降に
変更された DB 領域ページの更新前イメージ が格納されます (チェックポイントの詳
細については、439 ページの『チェックポイント』を参照してください。) 復旧の開始
時に、データベース サーバは論理ログからトランザクションを処理する前に物理ログ
ファイルを使用して、最後のチェックポイント以降に変更された DB 領域ページに更新
前イメージを復元します。物理ログ ファイルへの入出力は、論理ログ ファイルへの入
出力に次ぐ 2 番目に優先度の高い入出力です。
ミラーリングされていない DB 領域に物理ログ ファイルがある場合は、1 つの PIO 仮
想プロセッサのみがデータベース サーバによって実行されます。ミラーリング されて
いる DB 領域に物理ログ ファイルがある場合は、2 つの PIO 仮想プロセッサが、デー
タベース サーバによって実行されます。仮想プロセッサのこのクラスには、関連するパ
ラメータはありません。
184
IBM Informix Dynamic Server 管理者ガイド
非同期入出力
データベース サーバは、データベース入出力を非同期に実行します。つまり、入出力
は、入出力を要求するスレッドとは独立してキューに入れられて、実行されます。入出
力が非同期に実行されることにより、要求を行うスレッドは入出力の実行されている間
でも動作し続けることができます。
データベース サーバは次のどちらかの機能を使用して、すべてのデータベース入出力非
同期に実行します。
v AIO 仮想プロセッサ
v サポートするプラットフォームでの KAIO
データベース入出力には、SQL 文、先読み、ページ クリーニング、チェックポイン
ト、およびそのほかの入出力があります。
カーネル非同期入出力: データベース サーバは次の条件が揃っているときに KAIO
を使用します。
v コンピュータとオペレーティング システムでカーネル非同期入出力がサポートされ
ている。
v パフォーマンスが向上する。
v 入出力がロウ ディスク領域に対する入出力である。
データベース サーバは CPU 仮想プロセッサ上で KAIO スレッドを実行することによ
って KAIO を実装します。KAIO スレッドによってオペレーティング システムに対し
てシステム呼出しが実行され、オペレーティング システムによって仮想プロセッサとは
独立に入出力が実行されます。KAIO スレッドのほうが AIO 仮想プロセッサよりもデ
ィスク入出力のパフォーマンスが高くなります。これは、KAIO スレッドでは、CPU プ
ロセッサと AIO 仮想プロセッサとの間の切替えが必要ないためです。
UNIX のみ
Informix では、KAIO がサポートされているプラットフォームへデータベース サーバを
移植する場合に、KAIO を実装しています。データベース サーバ管理者は KAIO の構
成はしません。使用するプラットフォームで KAIO がサポートされるかどうかを確認す
るには、マシン ノート ファイルを参照してください。
UNIX のみ の終り
AIO 仮想プロセッサ: プラットフォームで KAIO がサポートされていない場合、ま
たは入出力がバッファ付きファイル チャンクに対する入出力である場合、データベース
サーバは AIO クラス仮想プロセッサを使用してデータベース入出力を実行します。す
べての AIO 仮想プロセッサは、AIO クラス内のすべての入出力要求を均等に処理しま
す。
第 6 章 仮想プロセッサとスレッド
185
データベース サーバはチャンクのファイル名に基づいてそれぞれのディスク チャンク
にキューを割り当てます。これらのキューを gfd キュー と呼ぶことがあります。デー
タベース サーバは、ディスク ヘッドの移動を最小にするアルゴリズムに従ってキュー
内の入出力要求を順に並べます。AIO 仮想プロセッサは、保留中の作業があるキューを
ラウンドロビン方式で処理します。
そのほかのすべての非チャンク入出力は AIO キューに置かれます。
データベース サーバによって最初に起動される AIO 仮想プロセッサの数を指定するに
は、パラメータ VPCLASS とキーワード aio を使用します。VPCLASS の詳細につい
ては、「IBM Informix: Dynamic Server 管理者の参照」の構成パラメータに関する章を
参照してください。
データベース サーバがオンライン モードになっている間に追加の AIO 仮想プロセッ
サを起動できます。詳しくは、198 ページの『オンライン モードでの仮想プロセッサの
追加』 を参照してください。
データベース サーバがオンライン モードになっている間は AIO 仮想プロセッサを削
除できなくなります。
必要な AIO 仮想プロセッサの数: AIO 仮想プロセッサを割り当てる場合の目標
は、入出力要求のキューの長さを短く維持する (つまり、キュー内に置かれる入出力要
求を可能な限り少なくする) のに十分な仮想プロセッサを割り当てることです。gfd キ
ューが一貫して短いことは、ディスク デバイスへの入出力が要求の発生と同じ早さで処
理されていることを意味します。コマンド onstat のオプション -g ioq を使用すると、
AIO 仮想プロセッサの gfd キューの長さを監視できます。詳細については、200 ページ
の『仮想プロセッサの監視』を参照してください。
使用するプラットフォームでデータベース サーバによって KAIO が実装され、すべて
の DB 領域がロウ ディスク領域で構成されている場合は、1 つの AIO 仮想プロセッ
サで十分なことがあります。
データベース サーバによって KAIO が実装されているが、チャンクにバッファ付きフ
ァイルを使用する場合は、バッファ付きファイルのチャンクで構成される DB 領域ごと
に 2 つの AIO 仮想プロセッサを割り当てます。使用するプラットフォームで KAIO
が実装されていない 場合は、データベース サーバが頻繁にアクセスするディスクごと
に 2 つの AIO 仮想プロセッサを割り当てます。
ピーク時の入出力要求の数を受け入れるのに十分な AIO 仮想プロセッサを割り当てて
ください。割り当てる AIO 仮想プロセッサが多すぎても通常は害にはなりません。
ネットワーク仮想プロセッサ
53 ページの『第 3 章 クライアント/サーバ通信』で説明したように、クライアントは
次の方法でデータベース サーバに接続します。
186
IBM Informix Dynamic Server 管理者ガイド
v ネットワーク接続経由
v パイプ経由
UNIX のみ
v 共有メモリ経由
UNIX のみ の終り
ネットワーク接続は、リモート コンピュータ上のクライアントによって行われるか、ま
たはリモート コンピュータから接続しているように振る舞う (ローカル ループバック
接続) ローカル コンピュータ上のクライアントによって行われます。
ネットワーク接続の指定
一般に、パラメータ DBSERVERNAME と DBSERVERALIASES では、ファイルまたは
レジストリ sqlhosts 内のエントリに対応する DB サーバ名を定義します。sqlhosts 内
のそれぞれの DB サーバ名パラメータには、インターフェイスとプロトコルの組合せを
指定するエントリ nettype があります。データベース サーバは一意のエントリ nettype
ごとに 1 つ以上のポーリング スレッド を実行します。フィールド nettype について
は、73 ページの『接続タイプ フィールド』を参照してください。
構成パラメータ NETTYPE は、インターフェイスとプロトコルの組合せについての任意
の構成情報を指定するものです。この構成パラメータを使用することで、インターフェ
イスとプロトコルの 1 つの組合せに複数のポーリング スレッドを割り当てることがで
き、ポーリング スレッドを実行する仮想プロセッサ クラス (CPU または NET) を指定
することもできます。この構成パラメータの詳細については、「IBM Informix: Dynamic
Server 管理者の参照」を参照してください。
CPU 仮想プロセッサまたはネットワーク仮想プロセッサ上でのポーリング ス
レッドの実行
ポーリング スレッドは、CPU 仮想プロセッサ上で実行されるか、またはネットワーク
仮想プロセッサ上で実行されます。通常、単一プロセッサ コンピュータでは特に、ポー
リング スレッドは CPU 仮想プロセッサ上のほうが効率的に実行されます。ただし、リ
モート クライアントが多いマルチプロセッサ コンピュータではこの限りではありませ
ん。
パラメータ NETTYPE には vp class というオプションのエントリがあり、このエント
リでは、CPU 仮想プロセッサクラス用かまたはネットワーク仮想プロセッサクラス用に
それぞれ CPU または NET を指定できます。
変数 DBSERVERNAME に関連付けられたインターフェイスとプロトコルの組合せ (ポ
ーリング スレッド) に仮想プロセッサ クラスを指定しなかった場合は、デフォルトで
CPU クラスになります。データベース サーバでは、DBSERVERNAME に関連付けら
第 6 章 仮想プロセッサとスレッド
187
れたインターフェイスとプロトコルの組合せがインターフェイスとプロトコルの主要な
組合せであり、最も効率的であると想定されます。
インターフェイスとプロトコルのほかの組合せでは、vp class が指定されていない場合
は NET がデフォルトになります。
データベース サーバがオンライン モードの間は、ポーリング スレッドを実行している
CPU 仮想プロセッサを削除することはできません。
注: ネットワーク接続用ポーリング スレッドと、CPU 仮想プロセッサごとに 1 つずつ
実行される、共有メモリ接続用ポーリング スレッドとを注意深く区別する必要があ
ります。TCP 接続はネットワーク仮想プロセッサ内のみに存在し、応答性を維持す
るために必要な最小限の接続のみを使用する必要があります。共有メモリ接続は
CPU 仮想プロセッサ内にのみ存在しなければならず、すべての CPU 仮想プロセッ
サで実行される必要があります。
ネットワーク仮想プロセッサ数の指定
ポーリング スレッドには別個の仮想プロセッサが必要であるため、インターフェイスと
プロトコルの組合せ用のポーリング スレッドの数を指定して、それらのスレッドを
NET クラスで実行するように指定すると、間接的にネットワーク仮想プロセッサの数を
指定することになります。VP class として CPU を指定する場合は、ポーリング スレ
ッドを実行するための十分な数の CPU 仮想プロセッサを割り当てる必要があります。
CPU ポーリング スレッドを実行する CPU 仮想プロセッサがデータベース サーバにな
い場合は、指定されたクラスのネットワーク仮想プロセッサがデータベース サーバによ
って起動され、そのスレッドが実行されます。
ほとんどのシステムでは、ネットワークのインターフェイスとプロトコルの組合せごと
に 1 つのポーリング スレッドで十分であり、したがって 1 つの仮想プロセッサで十分
です。200 人以上のネットワーク ユーザがいるシステムでは、追加の ネットワーク仮
想プロセッサを実行するとスループットが向上することがあります。この場合、インタ
ーフェイスとプロトコルの組合せごとの最適な仮想プロセッサ数を実験で確かめる必要
があります。
クライアント/サーバ接続のリスン スレッドとポーリング スレッド
データベース サーバを起動すると、ファイル ONCONFIG のパラメータ
DBSERVERNAME と DBSERVERALIASES で指定する DB サーバ名ごとに、リスン
スレッド という内部スレッドがプロセス oninit によって起動されます。これらの DB
サーバ名エントリのそれぞれの listen ポートを指定するには、sqlhosts 内の hostname
エントリと service name エントリの一意の組合せを listen ポートに割り当てます。例
えば、表 20 に示したファイルまたはレジストリ sqlhosts のエントリの場合、ホストの
port1 またはネットワーク アドレス myhost のリスン スレッドがデータベース サーバ
soc_ol1 によって起動されるようになります。
188
IBM Informix Dynamic Server 管理者ガイド
表 20. 各 listen ポートのリスン スレッド
DB サーバ名
ネット タイプ
ホスト名
サービス名
soc_ol1
onsoctcp
myhost
port1
リスン スレッドはポートをオープンし、指定されたインターフェイスとプロトコルの組
合せ用に 1 つのポーリング スレッドを要求して、クライアント要求のポートを監視し
ます。このポーリング スレッドは、CPU 仮想プロセッサ内かまたは使用されている接
続のネットワーク仮想プロセッサ内で実行されます。ポーリング スレッドの数について
は、188 ページの『ネットワーク仮想プロセッサ数の指定』を参照してください。
インターフェイスとプロトコルの組合せのポーリング スレッドを CPU 仮想プロセッサ
とネットワーク仮想プロセッサのどちらで実行するかを指定する方法については、187
ページの『CPU 仮想プロセッサまたはネットワーク仮想プロセッサ上でのポーリング
スレッドの実行』と、「IBM Informix: Dynamic Server 管理者の参照」の構成パラメー
タ NETTYPE を参照してください。
ポーリング スレッドはクライアントから接続要求を受け取ると、その要求をポートのリ
スン スレッドへ渡します。リスン スレッドはユーザを認証し、データベース サーバへ
の接続を確立して、スレッド sqlexec を起動します。スレッド sqlexec はクライアント
のための主要な処理を実行するセッション スレッドです。図 22 に、クライアント ア
プリケーションとの接続を確立する場合のリスン スレッドとポーリング スレッドの役
割を示します。
sqlexec
図 22. クライアントへの接続におけるポーリング スレッドとリスン スレッドの役割
第 6 章 仮想プロセッサとスレッド
189
ポーリング スレッドはクライアントからの要求を待って、スレッド sqlexec によって処
理される共有メモリにそれらの要求を入れます。ネットワーク接続の場合、ポーリング
スレッドは、共有メモリ グローバル プールのキューにメッセージを配置します。それ
から、要求を処理するためにポーリング スレッドによってクライアントのスレッド
sqlexec が覚醒されます。可能な場合は、ポーリング スレッドの助けなしにスレッド
sqlexec が直接クライアントへ書き戻します。一般に、ポーリング スレッドはクライア
ントからデータを読み込み、スレッド sqlexec はクライアントにデータを送信します。
UNIX のみ
共有メモリ接続では、ポーリング スレッドは共有メモリの通信部にメッセージを配置し
ます。
UNIX のみ の終り
図 23 に、ポーリング スレッドとスレッド sqlexec がクライアント アプリケーション
と通信する場合に実行する基本的なタスクを示します。
sqlexec
sqlexec
図 23. クライアント アプリケーションとの通信におけるポーリング スレッドとスレッド sqlexec
の役割
190
IBM Informix Dynamic Server 管理者ガイド
複数のリスン スレッドの起動
データベース サーバが特定のインターフェイスとプロトコルの組合せの接続要求を、単
一のポートおよび対応するリスン スレッドで十分に処理できない場合は、次の 2 つの
方法で接続要求の処理を改善できます。
v 追加ポート用のリスン スレッドを追加します。
v 別のネットワーク インターフェイス カードを追加します。
リスン スレッドの追加: 前述のとおり、構成パラメータ DBSERVERNAME と
DBSERVERALIASES で指定する DB サーバ名ごとに、データベース サーバによって
リスン スレッドが起動されます。
追加ポート用のリスン スレッドを追加するには、まずパラメータ DBSERVERALIASES
を使用して各追加ポートの DB サーバ名を指定する必要があります。例えば、図 24 の
パラメータ DBSERVERALIASES では、2 つの追加の DB サーバ名 soc_ol2 と soc_ol3
が、soc_ol1 として識別されるデータベース サーバ インスタンス用に定義されます。
DBSERVERNAME
DBSERVERALIASES
soc_ol1
soc_ol2,soc_ol3
図 24. 同じタイプの複数の接続のための複数の DB サーバ名の定義
データベース サーバの DB サーバ名を定義したら、インターフェイスとプロトコルの
組合せと、それらの組合せごとのポートをファイルまたはレジストリ sqlhosts に指定す
る必要があります。 各ポートは、ホスト名エントリとサービス名エントリの一意の組合
せによって識別されます。例えば、表 21 に示す sqlhosts のエントリでは、インターフ
ェイスとプロトコルの組合せ onsoctcp のためのリスン スレッドが、定義済みのポート
ごとに 1 つずつデータベース サーバによって起動されるようになります。
表 21. インターフェイスとプロトコルの単一の組合せでの複数のポートを listen するための sqlhosts エン
トリ
DB サーバ名
ネット タイプ
ホスト名
サービス名
soc_ol1
onsoctcp
myhost
port1
soc_ol2
onsoctcp
myhost
port2
soc_ol3
onsoctcp
myhost
port3
インターフェイスとプロトコルの組合せ用にパラメータ NETTYPE を含めると、インタ
ーフェイスとプロトコルのその組合せでのすべての接続にパラメータ NETTYPE が適用
されます。つまり、表 21 で onsoctcp 用のパラメータ NETTYPE が存在する場合は、
図に示したすべての接続にパラメータ NETTYPE が適用されます。この例で、パラメー
タ NETTYPE でこれ以上指定しない場合は、インターフェイスとプロトコルの組合せ
第 6 章 仮想プロセッサとスレッド
191
onsoctcp 用に 1 つの ポーリング スレッドがデータベース サーバによって実行されま
す。ファイルまたはレジストリ sqlhosts 内のエントリの詳細については、63 ページの
『接続ファイル』を参照してください。
ネットワーク インターフェイス カードの追加: ホスト コンピュータのネットワ
ーク インターフェイス カードが接続要求を十分に処理できない場合、または複数のネ
ットワークにデータベース サーバを接続する場合は、ネットワーク インターフェイス
カードを追加します。
複数のネットワーク インターフェイス カードをサポートするには、sqlhosts 内で各カ
ードに一意のホスト名 (ネットワーク アドレス) を割り当てる必要があります。例え
ば、図 24 と同じ DB サーバ名を使用した場合、192 ページの表 22 に示されたファイ
ルまたはレジストリ sqlhosts のエントリにより、データベース サーバは (表 21 のエン
トリと同様に) 同じインターフェイスとプロトコルの組合せ用に 3 つのリスン スレッ
ドを起動するようになります。ただし、この場合、スレッドのうち 2 つは 1 枚目のイ
ンターフェイス カード上のポート (myhost1) を listen し、3 番目のスレッドは 2 枚目
のインターフェイス カード上のポート (myhost2) を listen します。
表 22. インターフェイスとプロトコルの組合せ onsoctcp で 2 枚のネットワーク インターフェイス カー
ドをサポートするための sqlhosts のエントリの例
DB サーバ名
ネット タイプ
ホスト名
サービス名
soc_ol1
onsoctcp
myhost1
port1
soc_ol2
onsoctcp
myhost1
port2
soc_ol3
onsoctcp
myhost2
port1
通信サポート モジュール仮想プロセッサ
仮想プロセッサの CSM (Communications Support Module: 通信サポート モジュール)
クラスは、通信サポート サービスと通信サポート モジュール関数を実行するもので
す。
データベース サーバは、起動する CPU 仮想プロセッサと同数の CSM 仮想プロセッ
サを起動します。
通信サポート サービスの詳細については、 53 ページの『第 3 章 クライアント/サーバ
通信』を参照してください。
暗号化仮想プロセッサ
ONCONFIG 構成ファイルで VPCLASS パラメータの encrypt オプションを定義しない
場合、データベース サーバは、列レベルの暗号化用に定義された暗号化関数または復号
化関数が初めて呼び出されたときに、1 つの ENCRYPT VP を開始します。データベー
ス サーバの起動時間を短縮する必要がある場合は、複数の ENCRYPT VP を定義でき
ます。
192
IBM Informix Dynamic Server 管理者ガイド
暗号化 VP を構成するには、構成パラメータ VPCLASS とキーワード encrypt を使用
します。例えば、5 つの ENCRYPT VP を追加するには、ONCONFIG ファイルに次の
ように情報を追加します。
VPCLASS encrypt,num=5
次のように、onmode ユーティリティを使用して、同一の情報に修正できます。
onmode -p 5 encrypt
詳細については、「IBM Informix: Dynamic Server 管理者の参照」の構成パラメータお
よび onmode ユーティリティに関する章を参照してください。列レベルの暗号化の詳細
については、 142 ページの『列レベル暗号化の使用』を参照してください。
光仮想プロセッサ
仮想プロセッサの OPT (optical class: 光クラス) は 光ディスク記憶サブシステム のみ
で使用されます。光ディスク記憶サブシステム は構成パラメータ STAGEBLOB がある
場合に光クラスの仮想プロセッサを 1 つ起動します。光ディスク記憶サブシステム の
詳細については、「IBM Informix: Optical Subsystem Guide」を参照してください。
監査仮想プロセッサ
ファイル ONCONFIG で構成パラメータ ADTMODE を 1 に設定することで監査モー
ドを有効にすると、ADT (Audit Class: 監査クラス) の 1 つの仮想プロセッサがデータ
ベース サーバによって起動されます。データベース サーバの監査の詳細については、
「IBM Informix: Trusted Facility Guide」を参照してください。
そのほかの仮想プロセッサ
そのほかの仮想プロセッサは、現在のユーザまたはホスト システム名についての情報の
取出しなど、きわめて大きいスタックが必要になる可能性があるシステム呼出しの要求
を処理します。この仮想プロセッサ上では、128KB のスタックを持つ 1 つのスレッド
のみが実行されます。
第 6 章 仮想プロセッサとスレッド
193
194
IBM Informix Dynamic Server 管理者ガイド
第 7 章 仮想プロセッサの管理
仮想プロセッサ構成パラメータの設定 . . . . . . . . . . . . . . . .
テキスト エディタを使用した仮想プロセッサ パラメータの設定 . . . . . .
VPCLASS の指定. . . . . . . . . . . . . . . . . . . . .
優先度エージングの無効化 (UNIX) . . . . . . . . . . . . . . .
ISA を使用した仮想プロセッサ パラメータの設定. . . . . . . . . . .
ON-Monitor を使用した仮想プロセッサ パラメータの設定 . . . . . . . .
仮想プロセッサの起動と停止 . . . . . . . . . . . . . . . . . . .
オンライン モードでの仮想プロセッサの追加 . . . . . . . . . . . .
onmode を使用したオンライン モードでの仮想プロセッサの追加. . . . .
On-Monitor を使用したオンライン モードでの仮想プロセッサの追加 (UNIX) .
ネットワーク仮想プロセッサの追加 . . . . . . . . . . . . . .
CPU およびユーザ定義の仮想プロセッサの削除 . . . . . . . . . . .
仮想プロセッサの監視 . . . . . . . . . . . . . . . . . . . . .
コマンド行ユーティリティを使用した仮想プロセッサの監視 . . . . . . .
onstat -g ath . . . . . . . . . . . . . . . . . . . . . .
onstat -g glo . . . . . . . . . . . . . . . . . . . . . .
onstat -g ioq . . . . . . . . . . . . . . . . . . . . . .
onstat -g rea . . . . . . . . . . . . . . . . . . . . . .
SMI 表による仮想プロセッサの監視 . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
195
196
197
197
197
197
197
198
198
199
199
199
200
200
200
200
201
202
202
本章について
この章では、データベース サーバ仮想プロセッサに影響を与える構成パラメータの設定
方法、および仮想プロセッサの起動と停止の方法を説明します。
仮想プロセッサのクラスと、各クラスに指定する必要がある仮想プロセッサの数につい
ては、 161 ページの『第 6 章 仮想プロセッサとスレッド』を参照してください。
仮想プロセッサ構成パラメータの設定
ユーザ root または informix として、次のツールを使用してデータベース サーバ仮想
プロセッサの構成パラメータを設定します。
v テキスト エディタ
v IBM Informix Server Administrator (ISA)
© Copyright IBM Corp. 1996, 2004
195
UNIX のみ
v ON–Monitor
UNIX のみ の終り
構成パラメータに加えた変更を有効にするには、データベース サーバを停止して再起動
する必要があります。詳しくは、252 ページの『共有メモリの再初期化』を参照してく
ださい。
テキスト エディタを使用した仮想プロセッサ パラメータの設定
テキスト エディタ プログラムを使用して、任意の時にパラメータ ONCONFIG を設定
できます。エディタを使用して変更するパラメータを探し、新しい値を入力して、ディ
スクにファイルを再書込みします。
表 23 には、仮想プロセッサを構成するために使用するパラメータ ONCONFIG をリス
トします。これらのパラメータの仮想プロセッサへの影響については、176 ページの
『仮想プロセッサのクラス』を参照してください。
表 23. 仮想プロセッサを構成するための構成パラメータ
パラメータ
サブパラメータ
目的
MULTIPROCESSOR
マルチプロセッサ コンピュータの使用を指定しま
す。
NETTYPE
ネットワーク プロトコル スレッドと仮想プロセッサ
のパラメータを指定します。
SINGLE_CPU_VP
単一 CPU 仮想プロセッサの使用を指定します。
VPCLASS
adm adt cpu kio lio msc
opt lio shm soc str tli
仮想プロセッサのクラスを指定します。
VPCLASS
num=num_VPs
データベース サーバが起動する特定のクラスの仮想
プロセッサ数を指定します。
VPCLASS
max=max_VPs
クラスで使用できる仮想プロセッサの最大数を指定し
ます。
VPCLASS
noage
エージング優先順位を使用しないことを指定します。
VPCLASS
aff=processor_number
aff=start_range end_range
プロセッサ親和性が利用できる場合に CPU への割り
当てを指定します。
VPCLASS
user_defined
ユーザ定義仮想プロセッサを指定します。
VPCLASS
jvp
Java 仮想プロセッサ (JVP) を指定します。
VPCLASS
noyield
制御独占型仮想プロセッサを指定します。
196
IBM Informix Dynamic Server 管理者ガイド
VPCLASS の指定
NUMCPUVPS、NUMAIOVPS、NOAGE、AFF_SPROC、および AFF_NPROCS の各パラ
メータの代わりに、パラメータ VPCLASS を使用することをお勧めします。128 文字ま
での VPCLASS 名を指定できます。VPCLASS 名は、文字またはアンダスコアで始ま
り、文字、数字、アンダスコア、またはドル記号 ($) を含んでいる必要があります。
構成パラメータ VPCLASS で、仮想プロセッサと Java 仮想プロセッサのユーザ定義ク
ラスを指定します。構成パラメータ VPCLASS、およびそのデフォルトと値の範囲の詳
細については、「IBM Informix: Dynamic Server 管理者の参照」、180 ページの『仮想
プロセッサのユーザ定義クラス』、および 182 ページの『Java 仮想プロセッサ』を参
照してください。
優先度エージングの無効化 (UNIX)
プロセス優先度エージングを使用できるプラットフォームでこの機能を無効にするに
は、パラメータ VPCLASS とオプション noage を使用します。
UNIX でのこれらデータベース サーバ パラメータの推奨値については、ファイル マシ
ン ノート を参照してください。
ISA を使用した仮想プロセッサ パラメータの設定
ISA を使用して、仮想プロセッサ クラスについての情報を表示したり、仮想プロセッ
サ クラスを監視、追加、または削除したりできます。詳しくは、ISA オンライン ヘル
プを参照してください。
ON-Monitor を使用した仮想プロセッサ パラメータの設定
ON–Monitor を使用して仮想プロセッサ構成パラメータを設定するには、
「Parameters」>「perFormance」を選択します。
ネットワーク仮想プロセッサを指定する場合は、仮想プロセッサの数を入力し、インタ
ーフェイスとプロトコルの組合せ、ipcshm、ipcstr、tlitcp、tlispx、または soctcp の 1
つを入力します。
仮想プロセッサの起動と停止
データベース サーバを起動すると、ユーティリティ oninit は直接的および間接的に指
定された数とタイプの仮想プロセッサを起動します。仮想プロセッサの構成は、主にパ
ラメータ ONCONFIG で行いますが、ネットワーク仮想プロセッサは、ファイルまたは
レジストリ sqlhosts のパラメータで行います。仮想プロセッサ クラスの詳細について
は、176 ページの『仮想プロセッサのクラス』を参照してください。
データベース サーバでは、最大 1000 の仮想プロセッサを起動できます。
第 7 章 仮想プロセッサの管理
197
データベース サーバがオンライン モードになった場合、必要に応じて追加の仮想プロ
セッサを起動してパフォーマンスを向上させることができます。詳しくは、オンライン
モードでの仮想プロセッサの追加を参照してください。
CPU の仮想プロセッサおよびユーザ定義クラスは、データベース サーバがオンライン
モードのときに削除できます。詳しくは、199 ページの『CPU およびユーザ定義の仮想
プロセッサの削除』を参照してください。
データベース サーバを停止してすべての仮想プロセッサを停止するには、コマンド
onmode のオプション -k を使用します。onmode -k の使用方法の詳細については、
「IBM Informix: Dynamic Server 管理者の参照」のユーティリティに関する章を参照し
てください。
オンライン モードでの仮想プロセッサの追加
データベース サーバがオンライン モードにある間に起動できる追加の仮想プロセッサ
のクラスは、CPU、AIO、PIO、LIO、SHM、STR、TLI、SOC、JVP、およびユーザ定義
です。ミラーリングを使用しない場合は各 LIO および PIO クラスで 1 つの仮想プロ
セッサ、ミラーリングを使用する場合は 2 つの仮想プロセッサが自動的に起動されま
す。
次のいずれかの方法で、これら追加の仮想プロセッサを起動できます。
v ユーティリティ onmode のオプション -p
v ISA
ユーザ定義ルーチンを実行するために、ユーザ定義クラスの追加仮想プロセッサを起動
することもできます。ユーザ定義の仮想プロセッサの詳細については、181 ページの
『ユーザ定義仮想プロセッサ クラスへの UDR の割当て』を参照してください。
onmode を使用したオンライン モードでの仮想プロセッサの追加
データベース サーバがオンライン モードにある間に仮想プロセッサを追加する場合
は、コマンド onmode でオプション -p を使用します。正の数値を使用して、追加する
仮想プロセッサの数を指定します。オプションとして、仮想プロセッサ数の前にプラス
記号 (+) を指定できます。仮想プロセッサ数の後に、仮想プロセッサのクラスを小文字
で指定します。例えば、次のいずれかのコマンドによって AIO クラスの 4 つの追加仮
想プロセッサが起動されます。
onmode -p 4 aio
onmode -p +4 aio
ユーティリティ onmode は、即時に追加仮想プロセッサを起動します。
一度に追加できる仮想プロセッサのクラスは、1 つだけです。別のクラスの仮想プロセ
ッサを追加する場合は、onmode を再実行する必要があります。
198
IBM Informix Dynamic Server 管理者ガイド
On-Monitor を使用したオンライン モードでの仮想プロセッサの追加 (UNIX)
データベース サーバがオンラインの間に ON–Monitor を使用して仮想プロセッサを追
加する場合は、「Modes」>「Add-Proc」を選択します。仮想プロセッサは、CPU、
AIO、LIO、PIO、および NET クラスに追加できます。
ネットワーク仮想プロセッサを指定する場合は、まず仮想プロセッサの数を入力し、イ
ンターフェイスとプロトコルの組合せ、ipcshm、ipcstr、tlitcp、tlispx、または soctcp
の 1 つを入力します。
ON–Monitor を使用して、ユーザ定義クラスで追加の仮想プロセッサを起動することは
できません。詳細については、 198 ページの『onmode を使用したオンライン モードで
の仮想プロセッサの追加』を参照してください。
ネットワーク仮想プロセッサの追加
ネットワーク仮想プロセッサを追加すると、ポーリング スレッドが追加されます。各ス
レッドには、実行のために独自の仮想プロセッサが必要です。ポーリング スレッドを
CPU クラスで実行することをパラメータ NETTYPE で指定した場合、データベース サ
ーバのオンライン モード中にプロトコルのポーリング スレッドを追加しても、スレッ
ドの実行のために利用できる CPU 仮想プロセッサがない場合、新しいポーリング スレ
ッドは起動されません。
次の例では、ポーリング スレッドは、合計 240 個の接続を処理します。
NETTYPE ipcshm,4,60,CPU # Configure poll thread(s) for nettype
CPU およびユーザ定義の仮想プロセッサの削除
データベース サーバがオンライン モードにある間に、ユーティリティ onmode でオプ
ション -p を使用して、CPU 仮想プロセッサおよびユーザ定義クラスの仮想プロセッサ
を削除したり、終了したりすることができます。
CPU 仮想プロセッサの削除:
コマンド onmode の後に、削除する仮想プロセッサの数を負の数値で指定し、CPU ク
ラスを小文字で指定します。例えば、次のコマンドは 2 つの CPU 仮想プロセッサを削
除します。
% onmode -p -2 cpu
ポーリング スレッドを実行している CPU 仮想プロセッサを削除しようとすると、次の
メッセージが表示されます。
onmode: failed when trying to change the number of cpu virtual
processor by -number.
詳しくは、187 ページの『CPU 仮想プロセッサまたはネットワーク仮想プロセッサ上で
のポーリング スレッドの実行』を参照してください。
第 7 章 仮想プロセッサの管理
199
ユーザ定義仮想プロセッサの削除:
コマンド onmode の後に、削除する仮想プロセッサの数を負の数値で指定し、ユーザ定
義クラスを小文字で指定します。例えば、次のコマンドはクラス usr の 2 つの仮想プ
ロセッサを削除します。
onmode -p -2 usr
Windows のみ
Windows では、ユーザ定義仮想プロセッサのクラスを 1 つだけ割り当てることができ
ます。したがって、コマンド onmode -p vpclass のパラメータ number を省略してくだ
さい。
Windows のみ の終り
仮想プロセッサのユーザ定義クラスを作成し、ユーザ定義ルーチンをそのクラスに割り
当てる方法については、180 ページの『仮想プロセッサのユーザ定義クラス』を参照し
てください。
仮想プロセッサの監視
データベース サーバで構成した仮想プロセッサの数が、現在の動作レベルに最適である
かどうかを判断するには、仮想プロセッサを監視します。これら onstat のオプション
-g の詳細については、「IBM Informix: Dynamic Server パフォーマンス ガイド」の
CPU 使用率に対する構成の影響の章を参照してください。
コマンド行ユーティリティを使用した仮想プロセッサの監視
次の onstat のオプション -g を使用して、仮想プロセッサを監視できます。
v ath
v glo
v ioq
v rea
onstat -g ath
コマンド onstat のオプション -g ath は、システム スレッドおよび仮想プロセッサの
クラスに関する情報を表示します。
onstat -g glo
現在実行中の各仮想プロセッサについての情報と、各仮想プロセッサ クラスの累積統計
情報を表示するには、コマンド onstat のオプション -g glo を使用します。図 25 に、
このオプションでの出力例を示します。
200
IBM Informix Dynamic Server 管理者ガイド
MT global info:
sessions threads vps
1
15
8
lngspins
0
Virtual processor summary:
class
vps
usercpu
cpu
3
479.77
aio
1
0.83
pio
1
0.42
lio
1
0.27
soc
0
0.00
tli
0
0.00
shm
0
0.00
adm
1
0.10
opt
0
0.00
msc
1
0.28
adt
0
0.00
total
8
481.67
Individual virtual processors:
vp
pid
class
1
1776
cpu
2
1777
adm
3
1778
cpu
4
1779
cpu
5
1780
lio
6
1781
pio
7
1782
aio
8
1783
msc
tot
syscpu
190.42
0.23
0.10
0.22
0.00
0.00
0.00
0.45
0.00
0.52
0.00
191.93
total
670.18
1.07
0.52
0.48
0.00
0.00
0.00
0.55
0.00
0.80
0.00
673.60
usercpu
165.18
0.10
157.83
156.75
0.27
0.42
0.83
0.28
481.67
syscpu
40.50
0.45
98.68
51.23
0.22
0.10
0.23
0.52
191.93
total
205.68
0.55
256.52
207.98
0.48
0.52
1.07
0.80
673.60
図 25. onstat -g glo の出力
onstat -g ioq
追加の AIO 仮想プロセッサを割り当てる必要があるかどうかを判断するには、onstat
のオプション -g ioq を使用します。コマンド onstat のオプション -g ioq により、列
len に 入出力キュー長が表示されます。図 26 に例を示します。
入出力キュー長が増加している場合は、入出力要求は AIO 仮想プロセッサの処理能力
よりも早く蓄積します。入出力キュー長が継続的に入出力要求の蓄積を示す場合は、
AIO 仮想プロセッサの追加を検討してください。
第 7 章 仮想プロセッサの管理
201
onstat -g ioq
AIO I/O queues:
q name/id
len maxlen totalops
adt 0
0
0
0
msc 0
0
1
12
aio
0
0
4
89
pio 0
0
1
1
lio
0
0
1
17
kio 0
0
0
0
gfd
3
0
3
254
gfd
4
0
17
614
dskread dskwrite
0
0
0
0
68
0
0
1
0
17
0
0
242
12
261
353
dskcopy
0
0
0
0
0
0
0
0
図 26. onstat -g ioq と onstat -d の出力
onstat -g rea
レディー状態のキューのスレッド数を監視するには、onstat のオプション -g rea を使
用します。レディー状態のキューにあるスレッド数が、CPU クラスなどの仮想プロセッ
サのクラスで増加している場合は、構成にさらに仮想プロセッサを追加する必要がある
可能性があります。図 27 に、onstat のオプション -g rea の出力を示します。
Ready threads:
tid
tcb
rstcb
prty
status
vp-class
6
28
33
4
4
2
ready
ready
ready
3cpu
1cpu
3cpu
536a38
60cfe8
672a20
406464
40a124
409dc4
name
main_loop()
onmode_mon
sqlexec
図 27. onstat -g rea 出力
SMI 表による仮想プロセッサの監視
現在実行中の仮想プロセッサについて情報を取得するには、sysvpprof 表に問い合わせ
ます。この表には次の列があります。
202
列
説明
vpid
仮想プロセッサ ID 番号
class
仮想プロセッサのクラス
usercpu
分単位のユーザ CPU 消費時間
syscpu
分単位のシステム CPU 消費時間
IBM Informix Dynamic Server 管理者ガイド
第 8 章 共有メモリ
共有メモリ . . . . . . . . . . . . . . .
共有メモリの使用 . . . . . . . . . . . .
共有メモリの割当て . . . . . . . . . . .
共有メモリのサイズ . . . . . . . . . . .
SHMTOTAL を超えた場合の対応 . . . . . .
共有メモリを確保するプロセス . . . . . . . .
クライアントが通信部を確保する方法 (UNIX) . .
ユーティリティが共有メモリを確保する方法 . .
仮想プロセッサが共有メモリを確保する方法 . .
共有メモリ セグメントのキー値の取得 . . .
最初の共有メモリ セグメントの確保位置の指定
追加的な共有メモリ セグメントの確保 . . .
共有メモリの下端境界アドレスの定義 . . . .
共有メモリの常駐セグメント . . . . . . . . .
共有メモリの常駐部 . . . . . . . . . . . .
共有メモリ ヘッダ . . . . . . . . . . .
共有メモリのバッファ プール . . . . . . .
仮想部へのバッファ オーバーフロー . . . .
バッファ サイズ . . . . . . . . . . .
論理ログ バッファ . . . . . . . . . . .
物理ログ バッファ . . . . . . . . . . .
高可用性データ レプリケーション バッファ . .
ロック表 . . . . . . . . . . . . . .
共有メモリの仮想部 . . . . . . . . . . . .
共有メモリの仮想部の管理 . . . . . . . .
共有メモリの仮想部のサイズ . . . . . . .
共有メモリの仮想部のコンポーネント . . . . .
共有メモリの内部表 . . . . . . . . . .
先読みバッファ . . . . . . . . . . .
セッション データ . . . . . . . . . .
スレッド データ . . . . . . . . . . .
データ分散キャッシュ . . . . . . . . . .
ディクショナリ キャッシュ . . . . . . .
SQL 文キャッシュ . . . . . . . . . .
ソート用メモリ . . . . . . . . . . .
SPL ルーチンと UDR キャッシュ . . . . .
グローバル プール . . . . . . . . . .
共有メモリの通信部 (UNIX) . . . . . . . . .
共有メモリの仮想拡張部 . . . . . . . . . .
同時実行性制御 . . . . . . . . . . . . .
© Copyright IBM Corp. 1996, 2004
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
205
205
206
208
209
209
209
210
210
211
211
212
212
213
214
214
214
216
216
216
217
218
218
219
219
220
220
221
224
224
224
225
226
226
226
226
227
227
227
228
203
共有メモリのミューテックス . . . . . . . . . . . . . . . . . . . . . . .
共有メモリのバッファ ロック . . . . . . . . . . . . . . . . . . . . . .
バッファ ロックのタイプ . . . . . . . . . . . . . . . . . . . . . . .
共有バッファへのデータベース サーバ スレッドのアクセス . . . . . . . . . . . . .
FIFO/LRU 管理列. . . . . . . . . . . . . . . . . . . . . . . . . . .
LRU 管理列のコンポーネント . . . . . . . . . . . . . . . . . . . . .
LRU 順のページ . . . . . . . . . . . . . . . . . . . . . . . . . .
LRU 管理列とバッファ プールの管理 . . . . . . . . . . . . . . . . . . .
構成する LRU 管理列の数 . . . . . . . . . . . . . . . . . . . . . .
割り当てるクリーナの数 . . . . . . . . . . . . . . . . . . . . . . .
MLRU 管理列に追加されるページの数 . . . . . . . . . . . . . . . . . .
MLRU クリーニングの終了 . . . . . . . . . . . . . . . . . . . . . .
データベース サーバの先読み構成 . . . . . . . . . . . . . . . . . . . . .
バッファ ページへのデータベース サーバ スレッドのアクセス . . . . . . . . . . .
ディスクへのデータ フラッシュ . . . . . . . . . . . . . . . . . . . . . . .
バッファ プールのバッファのフラッシュ . . . . . . . . . . . . . . . . . . .
最初にフラッシュされる更新前イメージ . . . . . . . . . . . . . . . . . . .
物理ログ バッファのフラッシュ . . . . . . . . . . . . . . . . . . . . . .
バッファ フラッシュの同期化 . . . . . . . . . . . . . . . . . . . . . .
フラッシュ動作の説明 . . . . . . . . . . . . . . . . . . . . . . . . .
フォアグラウンド書込み . . . . . . . . . . . . . . . . . . . . . . .
LRU 書込み . . . . . . . . . . . . . . . . . . . . . . . . . . .
チャンク書込み . . . . . . . . . . . . . . . . . . . . . . . . . .
論理ログ バッファのフラッシュ . . . . . . . . . . . . . . . . . . . . . .
バッファなしログ機能を使用するデータベースでトランザクションが準備完了または終了した
場合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
ログ機能なしデータベースまたはバッファなしログ機能を使用するセッションが終了した場合
チェックポイントが発生した場合 . . . . . . . . . . . . . . . . . . . .
物理ログ ファイル内の更新前イメージを必要としないページが変更された場合 . . . . .
ラージ オブジェクト データのバッファリング . . . . . . . . . . . . . . . . . .
シンプル ラージ オブジェクトの書込み . . . . . . . . . . . . . . . . . . .
BLOB ページと共有メモリ . . . . . . . . . . . . . . . . . . . . . .
シンプル ラージ オブジェクトの作成 . . . . . . . . . . . . . . . . . . .
BLOB ページ バッファの作成 . . . . . . . . . . . . . . . . . . . . .
スマート ラージ オブジェクトへのアクセス . . . . . . . . . . . . . . . . .
64 ビット プラットフォームでのメモリ使用 . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
228
228
228
229
229
229
230
230
231
231
232
233
234
234
234
235
235
235
236
236
237
237
238
238
. 238
239
. 239
. 239
. 239
. 239
. 240
. 240
. 240
. 241
. 242
本章について
この章では、データベース サーバの共有メモリの内容、共有メモリ領域のサイズを決定
する要因、および共有メモリにあるデータの入出力方法について説明します。共有メモ
リの割当てを決定するデータベース サーバ構成パラメータの変更方法については、 245
ページの『第 9 章 共有メモリの管理』を参照してください。
204
IBM Informix Dynamic Server 管理者ガイド
共有メモリ
共有メモリは、データベース サーバ スレッドとプロセスでメモリ プールのアクセスを
共有してデータを共有できるようにするオペレーティング システムの機能です。データ
ベース サーバは、次の目的で共有メモリを使用します。
v メモリ使用量とディスク入出力の削減
v プロセス間の高速通信の実行
共有メモリを使用すると、関連するプロセス (ここでは仮想プロセッサ) が共有メモリ
に置かれているデータの専用コピーを管理する必要がなくなるため、データベース サー
バは、メモリの総合的な使用量を減らすことができます。
共有メモリを使用すると、共通プールとして管理されるバッファが、プロセス単位では
なくデータベース サーバ全体を 1 単位としてフラッシュされるため、ディスク入出力
の回数が減ります。さらに、前の読込み操作の結果としてすでにデータが共有メモリに
入っているため、多くの場合、仮想プロセッサはディスクからデータを読み込む必要が
なくなります。ディスク入出力の回数が減少すると、実行時間が短縮します。
共有メモリを使用すると、メモリ転送のスピードでメッセージの読込みと書込みが行わ
れるため、プロセス間通信を高速化することができます。
共有メモリの使用
データベース サーバは、次の目的で共有メモリを使用します。
v 仮想プロセッサとユーティリティでデータを共有できるようにする。
v IPC 通信を使用するローカル クライアント アプリケーションに高速の通信チャネル
を提供する。
図 28 に、共有メモリ スキーマを示します。
第 8 章 共有メモリ
205
図 28. データベース サーバによる共有メモリの使用方法
共有メモリの割当て
データベース サーバは共有メモリの以下の部分を作成します。
v 常駐 部
v 仮想 部
UNIX のみ
v IPC(Inter Process Communication: プロセス間通信) 部またはメッセージ部
ファイル sqlhosts で共有メモリ通信を指定している場合、通信部にメモリが割り当て
られます。
UNIX のみ の終り
v 仮想拡張 部
必要に応じて、オペレーティング システム セグメントが共有メモリの仮想部と仮想拡
張部に追加されます。
206
IBM Informix Dynamic Server 管理者ガイド
使用するプラットフォームに適した共有メモリの設定については、マシン ノートを参照
してください。207 ページの図 29 に、共有メモリの各部分の内容を示します。
データベース サーバ仮想プロセッサはすべて、同じ共有メモリ セグメントにアクセス
します。各仮想プロセッサは、バッファ、ロック、ラッチなどの共有メモリ資源へのポ
インタ セットを保持して作業を管理します。データベース サーバをオフライン モード
から静止モード、シングルユーザ モード、またはオンライン モードに移行すると、仮
想プロセッサによって共有メモリが確保されます。データベース サーバはロックとラッ
チを使用して、複数のスレッドによる共有メモリ資源への並行アクセスを管理します。
図 29. データベース サーバの共有メモリの内容
第 8 章 共有メモリ
207
共有メモリのサイズ
データベース サーバ共有メモリの各部は、1 つ以上のオペレーティング システムのメ
モリ セグメントで構成され、各セグメントはサイズが 4KB の一連のブロックに分割さ
れ、ビットマップによって管理されます。
ユーティリティ onstat が出力するヘッダ行には、データベース サーバ共有メモリのサ
イズ (KB 単位) が含まれています。共有メモリの各部へのメモリ割当て量は、onstat -g
seg を使用して監視することもできます。onstat の使用方法については、
「IBM Informix: Dynamic Server 管理者の参照」のユーティリティの章を参照してくだ
さい。
ファイル ONCONFIG のパラメータ SHMTOTAL を設定すると、システムまたはノー
ドにかかるメモリ オーバーヘッドの量を制限できます。パラメータ SHMTOTAL に
は、あらゆるメモリ割当てに使用する、共有メモリの合計量を指定します。ただし、
SHMTOTAL に設定した量以上のメモリが必要になった場合、特定の操作が失敗する可
能性があります。このような場合には、メッセージ ログに次のようなメッセージが記録
されます。
size of resident + virtual segments x + y > z
total allowed by configuration parameter SHMTOTAL
さらに、データベース サーバは、エラーの原因となる操作を開始したアプリケーション
にエラー メッセージを戻します。例えば、データベース サーバがインデックス作成や
ハッシュ結合などの操作を実行する際に、SHMTOTAL で指定されている量を超えるメ
モリを必要とする場合には、以下のいずれかに類似したエラー メッセージをアプリケー
ションに戻します。
-567
-116
Cannot write sorted rows.
ISAM error: cannot allocate memory.
データベース サーバはこれらのメッセージを送信し終わると、エラーの原因となった問
合せの実行により得られた結果をロールバックします。
ページ クリーナやチェックポイント処理状況などの内部操作によっても、データベース
サーバが SHMTOTAL の上限を超えることがあります。そのような状況になると、デー
タベース サーバは次のようなメッセージをメッセージ ログに書き込みます。例えば、
データベース サーバがページ クリーナ処理状況にさらにメモリを割り当てようとし、
失敗した場合について考えます。この結果、データベース サーバは以下のようなメッセ
ージをメッセージ ログに送信します。
17:19:13
17:19:13
17:19:13
17:19:13
17:19:13
208
Assert Failed: WARNING! No memory available for
page cleaners
Who: Thread(11, flush_sub(0), 9a8444, 1)
Results: Database server may be unable to
complete a checkpoint
Action: Make more virtual memory available to
database server
See Also: /tmp/af.c4
IBM Informix Dynamic Server 管理者ガイド
データベース サーバが追加メモリの割当てに失敗したことを報告した後、SHMTOTAL
の上限を超える原因となったトランザクションをロールバックします。ロールバック
後、メモリ不足による障害は直ちに解消され、トランザクションの実行が通常どおり継
続されます。
SHMTOTAL を超えた場合の対応
SHMTOTAL で許容した量を超えるメモリが必要になると、通常の処理負荷を超えた動
作が急増し、ある一時的な状況が発生します。データベース サーバに一時的なメモリ不
足を発生させた操作のみ、失敗となります。そのほかの操作は、通常どおり処理が継続
されます。
メッセージに、SHMTOTAL における許容量よりも多くのメモリが必要であると頻繁に
示される場合は、データベース サーバが適切に構成されていません。BUFFERPOOL 構
成パラメータで DS_TOTAL_MEMORY や buffers の値を小さくする方法と、
SHMTOTAL の値を大きくする方法があります。
共有メモリを確保するプロセス
次のプロセスが、データベース サーバ共有メモリを確保します。
UNIX のみ
v 共有メモリ通信部 (ipcshm) を介してデータベース サーバと通信するクライアント
アプリケーション プロセス
UNIX のみ の終り
v データベース サーバ仮想プロセッサ
v データベース サーバ ユーティリティ
以下の各セクションで、各タイプのプロセスがデータベース サーバ共有メモリを確保す
る方法を説明します。
クライアントが通信部を確保する方法 (UNIX)
共有メモリの通信部は、共有メモリ (nettype ipcshm) を介してデータベース サーバと
通信するクライアント アプリケーション プロセスにより、透過的に確保されます。ア
プリケーションに自動的にコンパイルされるシステム ライブラリ関数により、共有メモ
リの通信部を確保できます。共有メモリ接続の指定については、53 ページの『第 3 章
クライアント/サーバ通信』および 186 ページの『ネットワーク仮想プロセッサ』を参
照してください。
環境変数 INFORMIXSHMBASE を設定していない場合は、クライアント アプリケー
ションにより、プラットフォーム固有のアドレスで通信部が確保されます。データベー
第 8 章 共有メモリ
209
ス サーバの共有メモリ以外の共有メモリ セグメントが確保された場合は、環境変数
INFORMIXSHMBASE を設定して、データベース サーバの共有メモリ通信セグメント
を確保するアドレスを指定できます。collid 共有メモリ通信セグメントのアドレスを指
定すると、アプリケーションで使用されるそのほかの共有メモリ セグメントとの競合を
回避できます。環境変数 INFORMIXSHMBASE の設定方法については、
「IBM Informix: SQL ガイド: 参照」を参照してください。
ユーティリティが共有メモリを確保する方法
onstat、onmode、ontape などのデータベース サーバ ユーティリティによって共有メモ
リが確保されるときは、次のファイルが使用されます。
オペレーティング システム
ファイル
UNIX
$INFORMIXDIR/etc/.infos.servername
Windows
%INFORMIXDIR%¥etc¥.infos.servername
変数 servername は、ONCONFIG ファイルのパラメータ DBSERVERNAME の値で
す。ユーティリティは、環境変数 INFORMIXSERVER からファイル名の servername
部分を取得します。
データベース サーバの起動時には、プロセス oninit によってファイル ONCONFIG が
読み込まれ、ファイル .infos.servername が作成されます。データベース サーバが終了
すると、このファイルは削除されます。
仮想プロセッサが共有メモリを確保する方法
データベース サーバ仮想プロセッサは、初期化時に共有メモリを確保します。 この処
理が行われている間、データベース サーバでは次の 2 つの要件が満たされている必要
があります。
v 必ずすべての仮想プロセッサが、同じ共有メモリ セグメントを探してアクセスでき
ること
v 必ず共有メモリ セグメントが、同じコンピュータ上のデータベース サーバのほかの
インスタンス (存在する場合) に割り当てられた共有メモリ セグメントと異なる物理
メモリ位置に存在すること
データベース サーバでは、これらの要件を満たすために 2 つの構成パラメータ
SERVERNUM および SHMBASE が使用されます。
仮想プロセッサは、共有メモリを確保するときに以下の手順を実行します。
v ファイル ONCONFIG のパラメータ SERVERNUM にアクセスします。
v SERVERNUM を使用して共有メモリのキー値を計算します。
v 共有メモリのキー値を使用して共有メモリ セグメントを要求します。
210
IBM Informix Dynamic Server 管理者ガイド
オペレーティング システムは、最初の共有メモリ セグメントの共有メモリ識別子を
戻します。
v SHMBASE の位置で最初の共有メモリ セグメントをそのプロセス領域用に確保する
よう、オペレーティング システムに指示します。
v 必要に応じて、最初のセグメントと連続している追加の共有メモリ セグメントを確
保します。
以降のセクションでは、共有メモリ セグメントを確保する処理において、構成パラメー
タ SERVERNUM と SHMBASE の値が使用される方法について説明します。
共有メモリ セグメントのキー値の取得
構成パラメータ SERVERNUM の値と内部的に計算された 共有メモリ キー の数値に
よって、各共有メモリ セグメントの一意キー値が決定します。
共有メモリ セグメントのキー値を表示するには、コマンド onstat -g seg を実行しま
す。詳しくは、「IBM Informix: Dynamic Server パフォーマンス ガイド」の SHMADD
およびバッファ プールに関するセクションを参照してください。
仮想プロセッサは、オペレーティング システムに最初の共有メモリ セグメントを確保
するように要求するとき、セグメントを識別する一意キー値を与えます。それに対し
て、オペレーティング システムはキー値に関連した 共有メモリ セグメントの識別子
を戻します。仮想プロセッサは、この識別子を使用して、オペレーティング システムに
共有メモリのセグメントを仮想プロセッサのアドレス領域に確保するように要求しま
す。
最初の共有メモリ セグメントの確保位置の指定
ファイル ONCONFIG のパラメータ SHMBASE には、各仮想プロセッサによって確保
される最初の (基本の) 共有メモリ セグメントの仮想アドレスが指定されています。
各仮想プロセッサは、同じ仮想アドレスで最初の共有メモリ セグメントを確保します。
これにより、同じデータベース サーバ インスタンス内のすべての仮想プロセッサは、
共有メモリ アドレスを計算することなく、共有メモリの同じ位置を参照できます。デー
タベース サーバのインスタンスに対するすべての共有メモリ アドレスは、SHMBASE
との相対アドレスです。
警告: SHMBASE の値は変更しないことをお勧めします。
SHMBASE の値が重要なのは、次の理由によります。
v SHMBASE の特定の値は、プラットフォームによっても、プロセッサが 32 ビットで
あるか 64 ビットであるかによっても異なります。SHMBASE の値は任意の数値では
なく、仮想プロセッサが動的に追加的なメモリ領域を取得するときに、共有メモリ
セグメントを保護するための値です。
v 追加メモリが配置される仮想アドレスは、オペレーティング システムによって異な
ります。一部のアーキテクチャは、追加セグメントを収めるために、仮想プロセッサ
第 8 章 共有メモリ
211
データのセグメントの仮想上端境界アドレスを拡張します。このとき、データ セグ
メントが共有メモリ セグメントにまで広がる可能性があります。
UNIX のみ
v 一部の UNIX プラットフォームでは、パラメータ SHMBASE に仮想アドレス 0 を
指定する必要があります。アドレスを 0 にすると、UNIX カーネルによって、共有
メモリ セグメントの確保に最適なアドレスが選択されます。ただし、この方法がサ
ポートされていない UNIX アーキテクチャもあります。 また、一部のシステムで
は、カーネルによる選択が最適ではない場合もあります。
UNIX のみ の終り
SHMBASE については、Dynamic Server のマシン ノートを参照してください。
追加的な共有メモリ セグメントの確保
各仮想プロセッサでは、データベース サーバが獲得した総共有メモリ量を確保する必要
が生じます。仮想プロセッサは、個々の共有メモリ セグメントを確保した後で、確保し
た共有メモリ量と残留量を計算します。この処理を容易にするため、最初の共有メモリ
セグメントに共有メモリ ヘッダが書き込まれます。ヘッダ内の 16 バイトから、仮想プ
ロセッサは次のデータを得ることができます。
v このデータベース サーバ用の共有メモリの合計サイズ
v 個々の共有メモリ セグメントのサイズ
仮想プロセッサは、共有メモリ セグメントを追加的に確保する場合、最初のセグメント
を要求する場合と似た方法で、オペレーティング システムから追加共有メモリ セグメ
ントを要求します。ただし、追加セグメントには 共有メモリ キー の前回の値に 1 が
加算されます。仮想プロセッサは、オペレーティング システムに次の計算から得られる
アドレスにセグメントを確保するように命令します。
SHMBASE + (seg_size x number of attached segments)
仮想プロセッサは、総共有メモリ量を獲得するまでこのプロセスを繰り返します。
データベース サーバでは、(SERVERNUM * 65536) + shmkey で求められる初期キー値が
使用され、同一コンピュータ上のほかのデータベース サーバ インスタンスで使用され
ている共有メモリ キーで指定されている値を使用することなく、最高 65,536 個の共有
メモリ セグメントを要求できます。
共有メモリの下端境界アドレスの定義
オペレーティング システムがパラメータを使用して共有メモリの下端境界アドレスを定
義する場合に、そのパラメータが誤って設定されていると、共有メモリ セグメントは連
続して確保されなくなることがあります。
212
IBM Informix Dynamic Server 管理者ガイド
図 30 はこの問題を示しています。下端境界アドレスが、前のセグメントの終了アドレ
スに現行セグメントのサイズを加えたものより小さい場合は、オペレーティング システ
ムは、前のセグメントの終端を越えた位置に現行セグメントを確保します。このため、2
つのセグメントの間にギャップができます。共有メモリは、連続したメモリとして仮想
プロセッサに確保する必要があるため、このギャップが問題となります。この状態が発
生すると、データベース サーバはエラーを受け取ります。
この問題を解決するには、下端境界アドレスを指定しているオペレーティング システム
のカーネル パラメータを確認するか、カーネルを再構成して共有メモリ セグメントを
大きくできるようにします。オペレーティング システムのカーネル パラメータの詳細
については、248 ページの『共有メモリ下端境界アドレス (Windows)』を参照してくだ
さい。
図 30. 共有メモリ下端境界アドレスの概要
共有メモリの常駐セグメント
オペレーティング システムは、システム上で実行されるプロセスを切り替える場合、通
常、メモリ各部の内容をディスクと交換します。ただし、メモリの一部が常駐部 として
指定されている場合はディスクと交換されません。頻繁にアクセスするデータをメモリ
に常駐させると、データのアクセスに必要なディスク入出力操作の回数が減るため、パ
フォーマンスが向上します。
次の 2 つの条件を満たしている場合、データベース サーバは、仮想部を物理メモリに
保持するようオペレーティング システムに要求します。
v オペレーティング システムが共有メモリ常駐をサポートしている。
v ファイル ONCONFIG のパラメータ RESIDENT を、-1 または 0 より大きい値に設
定している。
第 8 章 共有メモリ
213
警告: パラメータ RESIDENT を -1 に設定するかどうかを検討するときは、すべてのア
プリケーションの共有メモリ使用状況を考慮に入れる必要があります。共有メモ
リをすべて Informix データベース サーバ用としてロックすると、同一コンピュ
ータで実行されるほかのアプリケーションのパフォーマンスに悪影響を与える可
能性があります。
構成パラメータ RESIDENT の詳細については、「IBM Informix: Dynamic Server 管理
者の参照」を参照してください。
共有メモリの常駐部
データベース サーバの共有メモリの常駐部には、データベース サーバの実行中にサイ
ズが変更されない、次のデータ構造体が格納されます。
v 共有メモリ ヘッダ
v バッファ プール
v 論理ログ バッファ
v 物理ログ バッファ
v ロック表
共有メモリ ヘッダ
共有メモリ ヘッダには、内部表、バッファ プールなど、共有メモリ内のほかの構造体
の記述がすべて含まれています。
また、これらの構造体の位置を示すポインタも含まれています。仮想プロセッサは初め
て共有メモリを確保するとき、ほかの構造体の位置をすべて知るために共有メモリ ヘッ
ダに含まれるアドレス情報を読み込みます。
共有メモリ ヘッダのサイズは約 200KB ですが、コンピュータ プラットフォームによ
り異なります。ヘッダのサイズは調整できません。
共有メモリのバッファ プール
共有メモリの常駐部のバッファ プールには、ディスクから読み込まれた DB 領域ペー
ジを格納するバッファが含まれています。バッファ プールには、共有メモリの常駐部の
中でも最も多くの領域が割り当てられています。
図 31 に、共有メモリ ヘッダおよびバッファ プールを示します。
214
IBM Informix Dynamic Server 管理者ガイド
図 31. 共有メモリのバッファ プール
BUFFERPOOL 構成パラメータを使用して、バッファ プール内のバッファ数などの、バ
ッファ プールに関する情報を指定します。適切なバッファ数を割り当てるには、1 ユー
ザあたりのバッファ数を最初 4 に設定し、大きくしていきます。ユーザ数が 500 を超
える場合は、最小必要数は 2000 です。バッファが少なすぎると、パフォーマンスに深
刻な影響を与えることがあります。データベース サーバを監視し、buffers の値を調整
して、許容値を判断する必要があります。バッファ数の調整の詳細については、
「IBM Informix: Dynamic Server パフォーマンス ガイド」を参照してください。
デフォルトでないページ サイズ用のバッファ プールが存在しないと、データベース サ
ーバは、大きいページ用のバッファを自動的に作成します。
デフォルトでないページ サイズを持つ DB 領域を作成する場合、DB 領域は対応する
バッファ プールを保有する必要があります。例えば、6KB のページ サイズを持つ DB
領域を作成する場合、6KB のサイズを保有するバッファ プールを作成する必要があり
ます。
構成パラメータ BUFFERPOOL の詳細については、「IBM Informix: Dynamic Server 管
理者の参照」を参照してください。
バッファの状態は、バッファ表を介して追跡されます。バッファは、共有メモリ内で
FIFO/LRU バッファ管理列として編成されます。バッファの獲得は、ミューテックス と
呼ばれるラッチの使用とロック アクセス情報を使用して管理されます。
LRU 管理列の動作については、229 ページの『FIFO/LRU 管理列』を参照してくださ
い。ミューテックスの詳細については、175 ページの『ミューテックス』を参照してく
ださい。
第 8 章 共有メモリ
215
仮想部へのバッファ オーバーフロー
64 ビット アドレッシングでは、バッファの最大数は 231-1 まで設定可能であるため、
大きいバッファ プールの場合、すべてのバッファを共有メモリの常駐部に保持できない
ことがあります。この場合には、バッファの一部をデータベース サーバの共有メモリの
仮想部で保持できます。
バッファ サイズ
バッファのサイズは、データベース サーバ ページのサイズと等しくなります。
入出力は、通常、バッファのサイズであるフル ページ単位で実行されます。例外は、先
読みバッファ、BLOB 領域バッファ、または軽量入出力バッファから実行される入出力
です。( 224 ページの『先読みバッファ』 および 240 ページの『BLOB ページ バッフ
ァの作成』 を参照してください。) どのような場合にプライベート バッファを使用す
るかについては、「IBM Informix: Dynamic Server パフォーマンス ガイド」にある軽量
入出力操作に関する説明を参照してください。
コマンド onstat -b を使用すると、バッファに関する情報が表示されます。onstat の詳
細については、「IBM Informix: Dynamic Server 管理者の参照」を参照してください。
論理ログ バッファ
データベース サーバは論理ログを使用して、最新の DB 領域バックアップ以降に行わ
れたデータの変更のレコードを格納します。論理ログはデータベース サーバの論理作業
単位を表すレコードを格納します。論理ログには、以下の 5 種類のログ レコードと、
そのほかの多数のレコードが含まれます。
v すべてのデータベース用の SQL データ定義文
v ログ機能によって作成されたデータベース用の SQL データ操作文
v データベースのログ機能状態に対する変更のレコード
v フル チェックポイントまたはファジー チェックポイントのレコード
v 構成に対する変更のレコード
データベース サーバが一度に使用するのは、3 個の論理ログ バッファのうちの 1 つの
みです。このバッファが、現行の論理ログ バッファです。データベース サーバは、現
行の論理ログ バッファをディスクへフラッシュする前に、このバッファのフラッシュ中
に書込みを続行できるように、2 番目の論理ログ バッファを現行の論理ログ バッファ
にします。2 番目の論理ログ バッファが充てんされた後で、最初の論理ログ バッファ
がフラッシュを終了した場合は、3 番目の論理ログ バッファが現行の論理ログ バッフ
ァになります。このプロセスを図 32 に示します。
216
IBM Informix Dynamic Server 管理者ガイド
(
)
(
)
(
)
図 32. 論理ログ バッファと、ディスク上の論理ログ ファイルとの関係
データベース サーバが論理ログ バッファをフラッシュする方法については、238 ペー
ジの『論理ログ バッファのフラッシュ』を参照してください。
論理ログ バッファのサイズは、ファイル ONCONFIG のパラメータ LOGBUFF に指定
します。バッファが小さいと、それより大きいレコードを格納する場合に問題が発生し
ます (例えば、DB 領域内のテキスト (TEXT) 型やバイト (BYTE ) 型)。この構成パラ
メータに割り当てることができる値については、「IBM Informix: Dynamic Server 管理
者の参照」を参照してください。
共有メモリ バッファが、テキスト (TEXT) 型およびバイト (BYTE) 型によって受ける
影響については、239 ページの『ラージ オブジェクト データのバッファリング』を参
照してください。
物理ログ バッファ
物理ログ バッファは、変更された DB 領域ページの一部の更新前イメージを保持する
ために使用されます。システム障害が発生した場合、データベースの一貫性は物理ログ
に保持された更新前イメージと物理ログ レコードを使用して復元されます。
物理ログ バッファは、実際には 2 個のバッファです。2 個のバッファを使用してデー
タベース サーバのプロセスは一方のバッファをディスク上の物理ログにフラッシュする
間に、実効状態のログ バッファに書き込みます。データベース サーバが物理ログ バッ
ファをフラッシュする方法については、235 ページの『物理ログ バッファのフラッシ
ュ』を参照してください。物理ログ ファイルの監視については、458 ページの『物理ロ
ギングと論理ロギングの動作の監視』を参照してください。
物理ログ バッファのサイズは、ファイル ONCONFIG のパラメータ PHYSBUFF に指
定します。物理ログ バッファへの 1 回の書込みで、ちょうど 1 ページが書き込まれま
第 8 章 共有メモリ
217
す。指定された物理ログ バッファのサイズがページ サイズで割り切れない場合、デー
タベース サーバはページ サイズで割り切れる最近似値に切り下げます。動作の種類に
よってはより早い時期にバッファをフラッシュする必要がありますが、バッファがフル
になると、データベース サーバはバッファをディスク上の物理ログ ファイルにフラッ
シュします。したがってバッファのサイズによってデータベース サーバがバッファをデ
ィスクへフラッシュする必要頻度が決まります。この構成パラメータの詳細について
は、「IBM Informix: Dynamic Server 管理者の参照」を参照してください。
高可用性データ レプリケーション バッファ
HDR (High-Availability Data Replication: 高可用性データ レプリケーション) には、2
つのコンピュータ上で実行されているデータベース サーバの 2 つのインスタンス、主
データベース サーバと副データベース サーバが必要です。データベース サーバに
HDR を実装すると、データベース サーバは、論理ログ レコードを副データベース サ
ーバに送信する前に、HDR バッファに保留しておきます。HDR バッファは、常に論理
ログ バッファと同じサイズです。論理ログ バッファのサイズの詳細については、216
ページの『論理ログ バッファ』を参照してください。HDR バッファの使用方法の詳細
については、489 ページの『HDR の動作』を参照してください。
ロック表
ロックは、ユーザ スレッドがロック表にエントリを書き込むときに生成されます。ロッ
ク表は使用できるロックのプールです。各ロックは 44 バイトです。単一トランザクシ
ョンが、複数のロックを所有できます。ロックと、ロックに関連付けられる SQL 文に
ついては、「IBM Informix: SQL ガイド: チュートリアル」を参照してください。
ロック表には、ロックに関する次の情報が格納されます。
v ロックを所有するトランザクションのアドレス
v ロックの種類 (排他ロック、更新ロック、共有ロック、バイト ロック、または意図ロ
ック)
v ロックされたページと行 ID 番号
v ロックが設定された表領域
v ロックされたバイトに関する情報 (スマート ラージ オブジェクトに対するバイト範
囲ロック)
– スマート ラージ オブジェクト ID
– スマート ラージ オブジェクトの、ロックされたバイトの開始オフセット
– オフセットを起点とした、ロックされたバイト数
ロック表の初期サイズを指定するには、構成パラメータ LOCKS を設定します。
218
IBM Informix Dynamic Server 管理者ガイド
セッションで割り当てられたロック数が LOCKS の値を超えると、ロック表のサイズは
最大 15 回まで倍増されます。LOCKS の最大値は 8,000,000 です。構成パラメータ
DEF_TABLE_LOCKMODE を使用して、新しい表のロック モードをページまたは行に
設定します。
ロックの使用と監視の詳細については、「IBM Informix: Dynamic Server パフォーマン
ス ガイド」のロックに関する章、および「IBM Informix: SQL ガイド: チュートリア
ル」を参照してください。LOCKS を使用してセッションのロック数を指定する方法の
詳細については、「IBM Informix: Dynamic Server 管理者の参照」の構成パラメータに
関する章、および「IBM Informix: Dynamic Server パフォーマンス ガイド」のメモリ使
用率に対する構成の影響に関する章を参照してください。
共有メモリの仮想部
共有メモリの仮想部は、データベース サーバによって拡張可能であり、オペレーティン
グ システムによってディスクにページアウトできます。データベース サーバの実行
中、仮想部には、必要に応じて追加的なオペレーティング システム セグメントが自動
的に確保されます。
共有メモリの仮想部の管理
データベース サーバは、メモリ プール を使用して、同じタイプおよびサイズのメモリ
割当てを追跡します。プールに関連割当てメモリを保持すると、メモリのフラグメント
化を減らすのに役立ちます。また、プールを構成する各断片を解放するのではなく、一
度に大きいメモリ割当てを解放できます。
すべてのセッションには 1 つ以上のメモリ プールがあります。メモリが必要となった
場合には、指定したプールがまず検索されます。指定プールにあるメモリのみでは足り
ない場合は、システム プールのメモリも使用します。システム プールのメモリを使用
しても足りない場合は、仮想部に割り当てるセグメントの数を動的に増やします。
仮想共有メモリは、プールから各サブシステム (セッション プール、スタック、ヒー
プ、制御ブロック、システム カタログ、SPL ルーチン キャッシュ、SQL 文キャッシ
ュ、ソート プール、メッセージ バッファ) に割り当てられます。プールの未使用領域
は、リンク リストを用いて追跡されます。メモリの一部が割り当てられるとき、十分な
サイズのフラグメント を取得するために、まず、プールのフリー リストが検索されま
す。見つからない場合、仮想部から新しいブロックが取得され、プールとして割り当て
られます。メモリが解放されると、未使用フラグメントとしてプールに戻され、プール
が廃棄されるまで残ります。例えば、クライアント アプリケーションのセッションが開
始されると、セッション プールにメモリが割り当てられます。セッションが終了する
と、割り当てられたメモリは未使用フラグメントとして戻されます。
第 8 章 共有メモリ
219
共有メモリの仮想部のサイズ
共有メモリの仮想部の初期サイズを指定するには、ファイル ONCONFIG のパラメータ
SHMVIRTSIZE を設定します。仮想共有メモリに後から追加するセグメントのサイズを
指定するには、パラメータ SHMADD を設定します。
PDQ 問合せに利用できるメモリ容量を指定するには、パラメータ
DS_TOTAL_MEMORY を設定します。
PDQ 問合せでない問合せに使用できるメモリ量を増やすときに、PDQ 優先順位が 0
(ゼロ) に設定されている場合は、次のオプションを使用してメモリ量を変更できます。
v DS_NONPDQ_QUERY_MEM 構成パラメータ
v onmode -wm コマンドまたは onmode -wf コマンド
v ON-Monitor pdQ メニューの Non PDQ Query Memory オプション
例えば、onmode ユーティリティを使用する場合は、次の例に示すような値を指定しま
す。
onmode -wf DS_NONPDQ_QUERY_MEM=500
DS_NONPDQ_QUERY_MEM の最小値は 128KB です。サポートされる最大値は、
DS_TOTAL_MEMORY の値の 25% です。
SHMVIRTSIZE、SHMADD、DS_TOTAL_MEMORY、DS_TOTAL_SIZE、および
DS_NONPDQ_QUERY_MEM 構成パラメータの詳細については、「IBM Informix:
Dynamic Server パフォーマンス ガイド」および「IBM Informix: Dynamic Server 管理者
の参照」を参照してください。また、253 ページの『共有メモリ仮想部へのセグメント
の追加』も参照してください。
共有メモリの仮想部のコンポーネント
共有メモリの仮想部には、次のデータが格納されます。
v 内部表
v 先読みバッファ
v セッション データ
v スレッド データ (スタックとヒープ)
v データ分散キャッシュ
v ディクショナリ キャッシュ
v SPL ルーチン キャッシュ
v SQL 文キャッシュ
v ソート用プール
v グローバル プール
220
IBM Informix Dynamic Server 管理者ガイド
共有メモリの内部表
データベース サーバの共有メモリには、共有メモリ リソースを追跡する 7 つの内部表
が含まれています。 共有メモリ内部表には、次のものがあります。
v バッファ表
v チャンク表
v DB 領域表
v ページ クリーナ表
v 表領域表
v トランザクション表
v ユーザ表
バッファ表: バッファ表は、共有メモリ プール内の各バッファのアドレスと状態を追
跡します。バッファには、使用される場合、ディスクからのデータのイメージやインデ
ックス ページが含まれます。ディスク ページの目的と内容の詳細については、267 ペ
ージの『ページとは』を参照してください。
バッファ表内の各バッファには、バッファ管理に必要な次の制御情報が含まれます。
v
バッファの状態
バッファの状態は、空、更新なし、または更新済みとして記述されます。変更されて
いないバッファにはデータが含まれていますが、このデータは上書きできます。変更
済み、つまり使用済みのバッファには、ディスクに書き込むまで上書きできないデー
タが含まれています。
v 現行のロック アクセス レベル
バッファが受け取るロック アクセス レベルは、ユーザ スレッドが実行している処
理のタイプによって異なります。データベース サーバでは、2 つのバッファ ロック
アクセス レベルをサポートしています。共有ロックおよび排他ロックです。
v バッファ待ちスレッド
各バッファ ヘッダは、バッファ待ちスレッドのリストと各バッファ待ちスレッドが
要求するロック アクセス レベルを保守します。
バッファ表には、バッファごとにエントリが 1 つあります。
データベース サーバ バッファの詳細については、214 ページの『共有メモリの常駐
部』を参照してください。バッファの監視方法については、255 ページの『バッファの
監視』を参照してください。
第 8 章 共有メモリ
221
データベース サーバは、割り当てられたバッファ数に基づいて、バッファ表に対応する
ハッシュ表のエントリ数を決定します。ハッシュ値の最大数は、BUFFERPOOL 構成パ
ラメータのいずれかのフィールドで指定される、buffers 値より小さい 2 の累乗値のう
ちの最大のものです。
チャンク表: チャンク表は、データベース サーバ内のすべてのチャンクを追跡しま
す。ミラーリングがオンになっている場合、共有メモリが初期化されるときに対応する
ミラー チャンク表も作成されます。ミラー チャンク表は、すべてのミラー チャンクを
追跡します。
共有メモリのチャンク表には、データベース サーバがディスク上でチャンクを検索する
ための情報が入っています。この情報には、初期チャンクの番号と、DB 領域の次のチ
ャンクの番号が含まれています。フラグによって記述されるチャンク状態には、ミラー
チャンク/主チャンク、オフライン モード/オンライン モード/復旧モードのいずれかで
あるか、または BLOB 領域の一部かどうかがあります。チャンクの監視については、
353 ページの『チャンクの監視』を参照してください。
チャンク表のエントリの最大数は、オペレーティング システムで許可される 1 プロセ
スあたりのファイル記述子の最大数によって制限されることがあります。通常、1 プロ
セスあたりのファイル記述子の数は、オペレーティング システムのカーネル構成パラメ
ータを使用して指定できます。詳細については、オペレーティング システムのマニュア
ルを参照してください。
DB 領域表: DB 領域表には、データベース サーバの格納領域が追跡されます。DB
領域表の情報には、各 DB 領域に関する次の情報が含まれます。
v DB 領域番号
v DB 領域名と所有者
v DB 領域のミラーリング状態 (ミラーリングの有無)
v DB 領域が作成された日時
格納領域が BLOB 領域である場合、フラグには、BLOB 領域が配置されているメディ
アが磁気メディア、リムーバブル メディア、光メディアのいずれであるかが示されま
す。格納領域が SB 領域である場合は、スマート ラージ オブジェクトのメタデータ、
およびユーザ データが含まれているページの大きい連続ブロックを追跡する内部表が含
まれています。
DB 領域の監視については、353 ページの『ディスクの使用状況の監視』を参照してく
ださい。
ページ クリーナ表: ページ クリーナ表は、各ページ クリーナ スレッドの状態と位
置を追跡します。ページ クリーナ スレッドの数は、ファイル ONCONFIG の構成パラ
222
IBM Informix Dynamic Server 管理者ガイド
メータ CLEANERS に指定します。ページ クリーナ スレッドの数を指定するときのヒ
ントについては、「IBM Informix: Dynamic Server 管理者の参照」の構成パラメータの
章を参照してください。
ページ クリーナ表には、ファイル ONCONFIG のパラメータ CLEANERS に指定され
たページ クリーナ スレッドの個数とは関係なく、常に 128 エントリが含まれていま
す。
ページ クリーナ スレッドの動作の監視については、「IBM Informix: Dynamic Server
管理者の参照」にあるユーティリティの章の、onstat のオプション -F を参照してくだ
さい。
表領域表: 表領域表は、データベース サーバ インスタンスのすべての実効表領域を
追跡します。実効表領域とは、データベース セッションが現在使用している表領域で
す。表領域表には、実効表ごとに 1 つのエントリがあります。実効表領域には、データ
ベース表、一時表およびシステム カタログ表のような内部制御表が含まれています。表
領域表の各エントリには、表領域、表領域名、ディスクの DB 領域の表領域表領域への
ポインタに関するヘッダ情報が含まれています。(共有メモリの実効表領域表は、表領域
表領域とは異なります。) 表領域の監視については、359 ページの『表領域とエクステ
ントの監視』を参照してください。
データベース サーバは DB 領域ごとに表領域表を 1 つ管理します。
トランザクション表: トランザクション表は、データベース サーバ内のすべてのト
ランザクションを追跡します。
トランザクション表から得られる追跡情報は、onstat のオプション -x の表示内に示さ
れます。onstat のオプション -x で表示される出力の例については、「IBM Informix:
Dynamic Server パフォーマンス ガイド」のトランザクションの監視を参照してくださ
い。
トランザクション表の中のエントリ数は、現行トランザクションの数に基づいて最大
32,767 まで自動的に増分されます。
トランザクションと、トランザクションに使用する SQL 文の詳細については、
「IBM Informix: SQL ガイド: チュートリアル」、「IBM Informix: SQL ガイド: 参
照」、および「IBM Informix: SQL ガイド: 構文」を参照してください。
UNIX のみ
トランザクション表は、特定の X/Open 環境もサポートしています。X/Open 環境のサ
ポートには、TP/XA が必要です。この環境でのトランザクションの詳細については、
「IBM Informix: TP/XA Programmer’s Manual」を参照してください。
UNIX のみ の終り
第 8 章 共有メモリ
223
ユーザ表: ユーザ表には、すべてのユーザ スレッドとシステム スレッドが追跡され
ます。各クライアント セッションは、1 つの主スレッドおよび 0 以上の副スレッドで
構成されます。副スレッドの数は、指定した並列度レベルによって異なります。システ
ム スレッドには、チェックポイントの監視および制御を行うスレッド、コマンド
onmode を処理するスレッド、B ツリー スキャナー スレッド、およびページ クリーナ
スレッドがあります。
データベース サーバは、必要に応じてユーザ表のエントリの数を増加します。ユーザ
スレッドは、コマンド onstat のオプション -u を使用して監視できます。
先読みバッファ
先読みバッファは、複数のページで構成された単一バッファです。 実際のページ数はプ
ラットフォームによって異なります。データベース サーバは先読みバッファを割り当て
て大量の読込みと書込みを行う場合のパフォーマンスを向上させます。
物理的に連続した複数ページをディスクに書き込む場合には、必ず先読みバッファを使
用します。例えば、一連の順次読込み (簡単な走査) を実行する場合、または DB 領域
に格納されているシンプル ラージ オブジェクトを共有メモリに読み込む場合、先読み
バッファが使用されます。
先読みバッファは制御できません。データベース サーバが簡単な走査を実行する場合
は、共有メモリから先読みバッファが割り当てられます。
コマンド onstat による先読みバッファの監視については、「IBM Informix: Dynamic
Server パフォーマンス ガイド」にある、入出力動作に対する構成の影響の章を参照し
てください。
セッション データ
クライアント アプリケーションによってデータベース サーバへの接続が要求される
と、データベース サーバではクライアントとのセッション が開始され、共有メモリ
に、セッション制御ブロック と呼ばれるセッションのデータ構造体が作成されます。セ
ッション制御ブロックには、セッション ID、ユーザ ID、クライアントのプロセス
ID、ホスト コンピュータ名、および各種の状態フラグが格納されます。
必要に応じて、セッション データにメモリが割り当てられます。
スレッド データ
セッションを開始し、クライアントをデータベース サーバに接続すると、主セッション
スレッドが起動し、共有メモリにスレッド制御ブロック が作成されます。
また、データベース サーバはそれ自身の内部スレッドを開始し、そのスレッド用のスレ
ッド制御ブロックを作成します。データベース サーバは、実行対象のスレッドを別のス
レッドに切り替える際に (コンテキスト スイッチング)、レジスタの内容、プログラム
カウンタ (次の命令のアドレス)、および広域ポインタなどスレッドに関する情報をスレ
224
IBM Informix Dynamic Server 管理者ガイド
ッド制御ブロックに保存します。スレッド制御ブロックとその使用方法の詳細について
は、171 ページの『コンテキスト スイッチング』を参照してください。
データベース サーバは、必要に応じてスレッド制御ブロックにメモリを割り当てます。
スタック: データベース サーバの各スレッドは、共有メモリの仮想部に固有のスタッ
ク領域を持っています。スレッドによるスタックの使用方法については、172 ページの
『スタック』を参照してください。セッションのスタック サイズを監視する方法につい
ては、「IBM Informix: Dynamic Server パフォーマンス ガイド」のセッションとスレッ
ドの監視のセクションを参照してください。
ユーザ スレッド用のスタック領域のサイズは、ファイル ONCONFIG のパラメータ
STACK SIZE に指定します。デフォルトのスタック サイズは 32KB です。ユーザ ス
レッドのスタック サイズをすべて変更する必要がある場合は、STACKSIZE の値を変更
します。スタック サイズの設定に関する情報および注意事項については、
「IBM Informix: Dynamic Server 管理者の参照」にある、構成パラメータの章の
STACKSIZE を参照してください。
環境変数 INFORMIXSTACKSIZE を設定すると、特定のセッションの主スレッドのス
タック サイズを変更できます。INFORMIXSTACKSIZE の値により、特定のユーザの
STACKSIZE の値が無効となります。特定のユーザのスタック サイズを無効にする方法
については、「IBM Informix: SQL ガイド: 参照」の環境変数 INFORMIXSTACKSIZE
の説明を参照してください。
スタック領域のサイズを変更する場合は、構成パラメータ STACKSIZE を変更するより
も、環境変数 INFORMIXSTACKSIZE を使用する方が安全です。環境変数
INFORMIXSTACKSIZE の影響を受けるのは、ある 1 ユーザのスタック領域に限られ
ます。最初に測定されていない、新しいクライアント アプリケーションに影響を与える
可能性はほとんどありません。
ヒープ: 各スレッドには、実行中に作成されるデータ構造体を保持するヒープがあり
ます。 ヒープは、スレッドが作成されるときに動的に割り当てられます。スレッド ヒ
ープのサイズは構成できません。
データ分散キャッシュ
データベース サーバは MEDIUM モードまたは HIGH モードの UPDATE
STATISTICS 文によって生成される分散統計情報を使用して、パフォーマンスに与える
影響が最も少ない問合せ予定を決定します。特定の列の分散統計情報に初めてアクセス
すると、ディスクのシステム カタログ表 sysdistrib から分散統計情報が読み出され、
データ分散キャッシュに格納されます。以後の問合せで同じ列にアクセスする場合は、
キャッシュに格納された統計情報を読み出して最適化を図ることができます。
分散統計情報を効率的にデータ分散キャッシュに保管し、そこから読み出すようにする
と、パフォーマンスが向上します。データ分散キャッシュのサイズは、構成パラメータ
第 8 章 共有メモリ
225
DS_HASHSIZE および DS_POOLSIZE を用いて構成できます。データ分散キャッシュ
のデフォルト サイズの変更については、「IBM Informix: Dynamic Server パフォーマン
ス ガイド」にある、問合せと問合せオプティマイザの章を参照してください。
ディクショナリ キャッシュ
あるセッションにおいて、システム カタログ表へのアクセスを必要とする SQL 文が実
行されると、読み込まれたシステム カタログ表は、アクセス効率の良い構造体に格納さ
れます。これらの構造体は、すべてのセッションが使用できるように、共有メモリの仮
想部に作成されます。これらの構造体はディクショナリ キャッシュを構成します。
ディクショナリ キャッシュのサイズは、構成パラメータ DD_HASHSIZE および
DD_HASHMAX で構成できます。これらのパラメータの詳細については、
「IBM Informix: Dynamic Server パフォーマンス ガイド」にある、メモリに対する構成
の影響の章を参照してください。
SQL 文キャッシュ
SQL 文キャッシュを使用すると、メモリ使用量を減らし、問合せ開始までの準備時間を
短縮できます。SQL 文キャッシュには、ユーザによって実行された構文解析および最適
化済みの SQL 文が格納されます。SQL 文キャッシュに格納されている文を実行する
と、文の構文解析および最適化が行われないため、パフォーマンスが向上します。
詳しくは、251 ページの『SQL 文キャッシュのパラメータの設定』を参照してくださ
い。これらのパラメータが SQL 文キャッシュのパフォーマンスに与える影響の詳細に
ついては、「IBM Informix: Dynamic Server パフォーマンス ガイド」を参照してくださ
い。
ソート用メモリ
次のデータベース操作では、データのソート時に共有メモリの仮想部が大量に消費され
ることがあります。
v 結合、グループ化、集計関数、およびソート操作が含まれる意思決定支援問合せ
v インデックス作成
v SQL の UPDATE STATISTICS 文
ソート用に割り当てられる仮想共有メモリの量は、ソートされる行の数、および行のサ
イズなどによって異なります。
並列ソートについては、「IBM Informix: Dynamic Server パフォーマンス ガイド」を参
照してください。
SPL ルーチンと UDR キャッシュ
SPL ルーチンは、実行可能フォーマットに変換された後 UDR (User-Defined Routine: ユ
ーザ定義ルーチン) キャッシュに格納されます。UDR キャッシュには、どのセッション
からもアクセスできます。
226
IBM Informix Dynamic Server 管理者ガイド
セッションが SPL ルーチンまたはそのほかのユーザ定義ルーチンに初めてアクセスす
る必要が生じたとき、データベース サーバがシステム カタログ表からその定義を読み
出し、UDR キャッシュに格納します。
UDR キャッシュのサイズは、構成パラメータ PC_HASHSIZE および PC_POOLSIZE
を用いて構成できます。UDR キャッシュのデフォルト サイズの変更については、
「IBM Informix: Dynamic Server パフォーマンス ガイド」にある、問合せと問合せオプ
ティマイザの章を参照してください。
グローバル プール
グローバル プールには、データベース サーバに対してグローバルな構造体が格納され
ます。例えば、グローバル プールには、ネットワーク プロトコル用ポーリング スレッ
ドがクライアントからのメッセージを保存するための、メッセージ キューが含まれてい
ます。メッセージは、スレッド sqlexec によってグローバル プールから取り出され、処
理されます。
詳細については、「IBM Informix: Dynamic Server パフォーマンス ガイド」のネットワ
ーク バッファ プールと共有メモリの仮想部に関するセクションを参照してください。
共有メモリの通信部 (UNIX)
少なくとも 1 つの接続を IPC (Inter Process Communication: プロセス間通信) 共有メモ
リ接続として構成すると、共有メモリの IPC 通信部にメモリが割り当てられます。デー
タベース サーバは、共有メモリの初期化時にこの割当てを行います。通信部には、共有
メモリを使用してデータベース サーバと通信するローカル クライアント アプリケーシ
ョン用のメッセージ バッファが含まれます。
共有メモリの通信部のサイズは、共有メモリ通信に必要であると予期された接続数
(nettype ipcshm) に 12KB を掛けた値とほぼ等しくなります。nettype ipcshm がない場
合、予期された接続数はデフォルトの 50 になります。クライアントが共有メモリの通
信部を確保する方法については、209 ページの『クライアントが通信部を確保する方法
(UNIX)』を参照してください。
共有メモリの仮想拡張部
共有メモリの仮想拡張部には、追加の仮想セグメントと仮想拡張セグメントが格納され
ます。仮想拡張セグメントには、ユーザ定義仮想プロセッサで実行される DataBlade モ
ジュールおよびユーザ定義ルーチン のスレッド ヒープが格納されます。
構成パラメータ SHMADD と SHMTOTAL の設定は、共有メモリの仮想拡張部にも、
共有メモリのほかの部分と同様に適用されます。
第 8 章 共有メモリ
227
同時実行性制御
同じ仮想プロセッサおよび個別の仮想プロセッサで動作するデータベース サーバ スレ
ッドは、共有メモリ内の資源へのアクセスを共有します。スレッドは、共有メモリに書
き込む場合は、ミューテックス およびロック という機構を使用してほかのスレッドが
同じ領域に同時に書き込まれないようにします。 ミューテックスにより、スレッドに共
有メモリ資源をアクセスする権利が付与されます。ロックは、ロックを設定したスレッ
ドがバッファでの作業を終了してロックを解除するまで、ほかのスレッドがバッファに
書き込まないようにします。
共有メモリのミューテックス
共有メモリ内のデータを変更しようとする複数のスレッドを調整するために、 ミューテ
ックス が使用されます。 変更可能なすべての共有メモリ資源は、ミューテックスに関
連付けられています。スレッドは、共有メモリ リソースを変更する前に、その資源に関
連付けられたミューテックスを獲得する必要があります。 スレッドは、ミューテックス
を獲得した後で資源を変更できます。変更が完了すると、スレッドはミューテックスを
解除します。
スレッドがミューテックスを獲得しようとして、ほかのスレッドがすでにミューテック
スを保有していることを検出した場合、このスレッドはミューテックスが解除されるま
で待機する必要があります。
例えば、2 つのスレッドがチャンク表内の同じスロットにアクセスを試行することがで
きても、チャンク表に関連付けられたミューテックスを獲得できるのはどちらか一方の
みです。ミューテックスを保有するスレッドのみが、チャンク表のそのエントリに書き
込むことができます。2 番目のスレッドは、ミューテックスが解除されるまで待ってそ
れを獲得する必要があります。
ミューテックス (ラッチとも呼ばれる) の監視については、254 ページの『共有メモリ
プロファイルとラッチの監視』を参照してください。
共有メモリのバッファ ロック
共有メモリの主な利点は、データベース サーバ スレッドが共有メモリ バッファ プー
ルに格納されているディスク ページへのアクセスを共有できる点です。データベース
サーバは、データ バッファのロック機能によってこのように並行性を向上させながら、
スレッドの排他レベルを保ちます。
バッファ ロックのタイプ
データベース サーバは、次の 2 種類のロックを使用して、共有メモリ バッファへのア
クセスを管理します。
v 共有ロック
v 排他ロック
228
IBM Informix Dynamic Server 管理者ガイド
これらのタイプのロックは、スレッドの実行中に必要となる排他レベルの処理を制御し
ます。
共有ロック: バッファにアクセスして同一のデータを読み込むスレッドが複数あり、
そのデータを変更するスレッドがない場合、バッファは共有モードとなり、共有ロック
がかけられます。
排他ロック: バッファは、1 つのスレッドがバッファの排他的なアクセスを要求する
場合に、排他モードにあり、排他ロックを保有します。バッファにアクセスするそのほ
かのすべてのスレッド要求は、待機状態のキューに入れられます。アクセスを実行して
いるスレッドは、排他ロックを解除できる状態になると、待機状態のキュー内の次のス
レッドを覚醒させます。
共有バッファへのデータベース サーバ スレッドのアクセス
データベース サーバ スレッドは、キューのシステムを介して共有バッファにアクセス
します。このとき、アクセスを同期化してデータを保護するために、ミューテックスと
ロックが使用されます。
FIFO/LRU 管理列
データは、キャッシュとしてバッファに保持されます。キャッシュされたデータを置き
換えるときには、LRU (Least Recently Used) 管理列が使用されます。Dynamic Server
も先入れ先出し法 (FIFO) 管理列を持っています。LRU 管理列の数を設定すると、実際
には、FIFO/LRU 管理列の数を設定したことになります。
BUFFERPOOL 構成パラメータを使用してバッファ プールに関する情報を指定します。
これには、データベース サーバ共有メモリを初期化するときに作成する LRU 管理列に
関する情報や、共有メモリ バッファをディスクにフラッシュする頻度を制御する、
lru_min_dirty および lru_max_dirty の値に関する情報などが含まれます。
注: バージョン 10.0 より前に BUFFERS、LRUS、LRU_MAX_DIRTY、および
LRU_MIN_DIRTY 構成パラメータで指定していた情報は、BUFFERPOOL 構成パラ
メータを使用して指定するようになりました。
LRU 管理列のコンポーネント
LRU 管理列は、次のリンク リストのペアで構成されています。
v キューにある、未使用ページまたは変更されていないページを追跡する FLRU (Free
Least-Recently Used) リスト
v キューにある、変更されたページを追跡する MLRU (Modified Least-Recently Used)
リスト
未使用もしくは未変更ページ リストは、キューのペアである FLRU キューと呼ばれ、
変更済みページ リストは、MLRU 管理列と呼ばれます。この 2 つの個別のリストによ
第 8 章 共有メモリ
229
り、未使用ページまたは変更されていないページをキュー内で検索する必要がなくなり
ます。図 33 に、LRU 管理列の構造を示します。
図 33. LRU 管理列
LRU 順のページ
データベース サーバは、ディスクからのページの読込み要求を処理するときに、メモリ
内で置き換えるページを決定する必要があります。データベース サーバは、ページをラ
ンダムに選択するのではなく、直前に参照されたページはしばらくの間参照されなかっ
たページではなく、今後参照されるページであると想定します。したがって、最後にア
クセスされたページを置き換えるのではなく、データベース サーバは最初にアクセスさ
れたページを置き換えます。ページを未使用時間の長いものから短いものの順に維持す
ることで、データベース サーバはメモリ内の長時間未使用のページを簡単に検出できま
す。
LRU 管理列とバッファ プールの管理
処理の開始前には、ページ バッファはすべて空であり、すべてのバッファはそれぞれ
FLRU キューの 1 つに含まれる 1 エントリとして表されます。バッファは、FLRU キ
ューに均等に分布しています。各キューに含まれるバッファの数を計算するには、バッ
ファの合計数を LRU 管理列の数で除算します。バッファと LRU 管理列の数は、
BUFFERPOOL 構成パラメータで指定します。
ユーザ スレッドが必要なバッファを獲得しようとするときに、データベース サーバは
ランダムに FLRU キューの 1 つを選択し、リスト内の使用後の経過時間が最も長いエ
ントリを使用します。最も前に使用されたページがラッチできる場合、そのページがキ
ューから削除されます。
FLRU キューがロックされ、最後のページをラッチできない場合に、データベース サー
バはランダムに別の FLRU キューを選択します。
ユーザ スレッドは、共有メモリで特定のページを検索する場合、バッファ表に格納され
ている制御情報からそのページの LRU 管理列内の位置を獲得します。
230
IBM Informix Dynamic Server 管理者ガイド
実行中のスレッドは、作業を終了するとバッファを解放します。ページが変更された場
合、そのバッファは MLRU 管理列の未使用時間が最も短い側の終端に配置されます。
ページが読み込まれただけで変更されていない場合、バッファは FLRU キューの最も後
に使用された側に戻されます。LRU 管理列の監視方法については、258 ページの『バッ
ファ プール動作の監視』を参照してください。
構成する LRU 管理列の数
複数 LRU キューには、次の 2 つの目的があります。
v これらのキューに対するユーザ スレッドの競合を減らします。
v 複数のクリーナが LRU 管理列からページをフラッシュして、使用済みページを許容
レベルの比率で保侍します。
LRUS の初期値は、コンピュータで利用できる CPU の数をもとに設定することをお勧
めします。単一プロセッサのコンピュータである場合は、BUFFERPOOL 構成パラメー
タの lrus の値を 4 に設定して起動してください。マルチプロセッサのコンピュータで
ある場合は、次の公式を使用します。
LRUS = max(4, (NUMCPUVPS))
BUFFERPOOL 構成パラメータで lrus の初期値を設定した後、LRU 管理列を onstat
-R で監視します。使用済み LRU 管理列の割合が常に lru_max_dirty で指定した値を
超えている場合は、lrus で指定した値を大きくし、LRU 管理列を追加します。
例えば、lru_max_dirty を 70 に設定している場合に、LRU 管理列が常に 75% 使用済
みであるとします。ここで、lrus の値を増やします。LRU 管理列の数を増やすと、キュ
ーの長さが短縮され、ページ クリーナによる処理が減少します。ただし、次のセクショ
ンで説明するように構成パラメータ CLEANERS を使用して十分な個数のページ クリ
ーナを割り当てる必要があります。
注: バージョン 10.0 より前に BUFFERS、LRUS、LRU_MAX_DIRTY、および
LRU_MIN_DIRTY 構成パラメータで指定していた情報は、BUFFERPOOL 構成パラ
メータを使用して指定するようになりました。
割り当てるクリーナの数
一般的には、アプリケーションにより頻繁に更新されるディスクに 1 つずつクリーナを
構成することをお勧めします。ただし、これ以降に説明するように、LRU 管理列の長さ
およびチェックポイント処理の頻度も考慮してください。
ページ クリーナがクリーニングを必要とするページ数に対応できるかどうかには、LRU
管理列の不足以外に、ページ クリーナ スレッドの割当てが十分であるかどうかも関係
しています。ページ クリーナはキューのクリーニングを行わないため、一部のキューで
は使用済みページの比率が lru_max_dirty で指定した BUFFERPOOL 値を超えること
第 8 章 共有メモリ
231
もあります。しばらくすると、ページ クリーナがクリーニング処理に追いつかなくな
り、バッファ プールの使用済みページの比率は lru_max_dirty で指定した比率よりも
高くなります。
例えば、パラメータ CLEANERS が 8 に設定されているとき、LRU 管理列の数を 8
から 12 に増やすとします。8 個のクリーナには追加した 4 個のキューのクリーニング
処理が割り当てられるため、パフォーマンスの向上はほとんど期待できません。
CLEANERS の数を 12 に増やすと、各キューが短縮されて 1 つのクリーナで効率的に
クリーニングできます。
CLEANERS の値を小さく設定しすぎると、ページ クリーナは、変更されたすべてのペ
ージをチェックポイント処理の実行時にディスクにフラッシュする必要が生じるため、
チェックポイント処理のパフォーマンスが低下することがあります。構成したページ ク
リーナの数が不十分だと、チェックポイント処理に時間がかかり、パフォーマンスが全
体的に低下します。
詳しくは、235 ページの『バッファ プールのバッファのフラッシュ』を参照してくださ
い。
MLRU 管理列に追加されるページの数
ページ クリーナ スレッドは、定期的に MLRU キュー内の変更済みバッファをディス
クにフラッシュします。クリーニングを開始するポイントを指定するには、
BUFFERPOOL 構成パラメータを使用して lru_max_dirty の値を指定します。
ページ クリーニングを開始するタイミングを指定すると、MLRU 管理列に追加される
ページ バッファの数は、lru_max_dirty の値によって制限されます。lru_max_dirty の
初期設定が 60.00 であるため、キューによって管理されているバッファの 60% が変更
されるとページ クリーニングが開始されます。
ページ クリーニングが開始される条件は、実際には複数存在します。そのうちの 1 つ
が、MLRU 管理列が lru_max_dirty の値に達するという条件です。データベース サー
バによるバッファ プールのフラッシュ方法の詳細については、234 ページの『ディスク
へのデータ フラッシュ』を参照してください。
図 34 に、lru_max_dirty の値を LRU 管理列に適用してページ クリーニングを開始す
るタイミングを指定し、それによって MLRU 管理列のバッファの数を制限する方法を
示します。
232
IBM Informix Dynamic Server 管理者ガイド
Buffers specified as 8000
lrus specified as 8
lru_max_dirty specified as 60 percent
Page cleaning begins when the number of buffers in the MLRU
queue is equal to lru_max_dirty.
Buffers per lru queue = (8000/8) = 1000
Max buffers in MLRU queue and point at which page cleaning
begins: 1000 x 0.60 = 600
図 34. lru_max_dirty がページ クリーニングを開始して MLRU 管理列のサイズを制限する方法
MLRU クリーニングの終了
また、MLRU のクリーニングが終了するタイミングを指定することもできます。
BUFFERPOOL 構成パラメータの lru_min_dirty 値に、MLRU 管理列に入れることがで
きるバッファの割合を指定します。lru_min_dirty が 50.00 に設定されている場合、
LRU 管理列のバッファが 50% 変更された場合にページ クリーニングが不要になりま
す。実際には、ページ クリーニングは、ページ クリーナ スレッドの命令によりこの点
を越えて続行できます。
図 35 に、lru_min_dirty の値を LRU 管理列に適用し、MLRU 管理列に入れることが
できるバッファの割合とページ クリーニングを終了するポイントを指定する方法を示し
ます。
Buffers specified as 8000
lrus specified as 8
lru_min_dirty specified as 50 percent
The acceptable number of buffers in the MLRU queue and
the point at which page cleaning can end is equal
to lru_min_dirty.
Buffers per LRU queue = (8000/8) = 1000
Acceptable number of buffers in MLRU queue and the point
at which page cleaning can end: 1000 x .50 = 500
図 35. lru_min_dirty がページ クリーニングが終了するタイミングを指定する方法
lru_max_dirty と lru_min_dirty の値には 10 進数値を使用できます。例えば、
lru_max_dirty を 1.0333 に、lru_min_dirty を 1.0 に設定すると、LRU の 3,100 使
用済みバッファでの書き込み、および 3,000 使用済みバッファでの停止をトリガしま
す。
第 8 章 共有メモリ
233
データベース サーバがバッファ プールをフラッシュする方法の詳細については、234
ページの『ディスクへのデータ フラッシュ』を参照してください。
データベース サーバの先読み構成
データベース サーバの構成を行うと、表またはインデックスを順次走査するとき、現行
ページの処理中に複数のページを先読みすることができます。先読みを行うと、ディス
ク入出力を待つ時間が短くなり、アプリケーションの実行速度が向上します。
データベース サーバは、データまたはインデックスの順次読込み中に必要に応じて先読
みを実行します。
先読みの実行時にディスクまたはインデックスから読み込まれるページ数を指定するに
は、ファイル ONCONFIG のパラメータ RA_PAGES を使用します。
パラメータ RA_THRESHOLD には、メモリ内の未処理ページ数を指定します。このペ
ージ数に達すると、別の先読みが実行されます。例えば、RA_PAGES が 10 で
RA_THRESHOLD が 4 の場合、データベース サーバは、バッファ内の未処理ページが
4 ページになったときに 10 ページを先読みします。
データベース サーバの先読みの使用状況を監視できるようにするコマンド onstat のオ
プション -p の出力例については、254 ページの『共有メモリ プロファイルとラッチの
監視』、および「IBM Informix: Dynamic Server 管理者の参照」のユーティリティの章
を参照してください。
バッファ ページへのデータベース サーバ スレッドのアクセス
データベース サーバは、共有ロック バッファリングを使用して、複数のスレッドが並
行して共有メモリ内のバッファをアクセスできるようにします。データベース サーバ
は、2 つのカテゴリのバッファ ロックを使用して、スレッドの排他レベルを損なわずに
この並行性を確保できるようにします。ロック アクセスの 2 つのカテゴリとは、共有
ロックと排他 ロックです。(詳しくは、228 ページの『バッファ ロックのタイプ』を参
照してください。)
ディスクへのデータ フラッシュ
バッファをディスクに書き出すことを、バッファをフラッシュする といいます。ユーザ
スレッドは、バッファのデータを変更するときにバッファに使用済み という印を付けま
す。データベース サーバは、バッファをディスクへフラッシュすると、バッファに未使
用 という印を付けて、バッファのデータを上書きできるようにします。
次のバッファがフラッシュされます。
v バッファ プール (このセクションで説明)
v 物理ログ バッファ
234
IBM Informix Dynamic Server 管理者ガイド
235 ページの『物理ログ バッファのフラッシュ』を参照。
v 論理ログ バッファ
238 ページの『論理ログ バッファのフラッシュ』を参照。
バッファのフラッシュは、ページ クリーナ スレッドによって管理されます。データベ
ース サーバは常に少なくとも 1 個のページ クリーナ スレッドを実行します。複数の
ページ クリーナ スレッドを実行するようにデータベース サーバを構成すると、フラッ
シュの効率を高めるために LRU 管理列がページ クリーナ間で分割されます。データベ
ース サーバで実行するページ クリーナ スレッドの数の指定については、
「IBM Informix: Dynamic Server 管理者の参照」の構成パラメータ CLEANERS を参照
してください。
物理ログ バッファ、変更済み共有メモリ ページ バッファおよび論理ログ バッファの
フラッシュは、データの一貫性を保つための特定の規則に従ってページ クリーナの動作
と同期している必要があります。
バッファ プールのバッファのフラッシュ
バッファのフラッシュは、次の条件を 1 つでも満たすと開始されます。
v MLRU 管理列のバッファ数が、BUFFERPOOL 構成パラメータの lru_max_dirty 値
に指定した数に達した場合。
v ページ クリーナ スレッドの処理が追いつかない場合。つまり、ユーザ スレッドが
必要なバッファを獲得しようとするときに使用できる未変更バッファが存在しない場
合。
v データベース サーバによるチェックポイント処理の実行が必要になった場合。(439
ページの『チェックポイント』を参照してください。)
最初にフラッシュされる更新前イメージ
バッファ フラッシュの無効規則に従うと、変更済みページの更新前イメージがディスク
にフラッシュされてから、変更済みページ自体がフラッシュされます。
実際には、最初に物理ログ バッファがフラッシュされ、次に変更済みページが含まれる
バッファがフラッシュされます。そのため、ユーザ スレッドがバッファを確保しようと
したときに利用できるバッファが残っていない場合、共有メモリ バッファ ページのフ
ラッシュ (フォアグラウンド書込み) が必要となります。しかし、そのバッファ ページ
の更新前イメージがディスクに書き込まれるまでフラッシュを行うことはできません。
物理ログ バッファのフラッシュ
更新されたディスク ページの更新前イメージは、一時的に物理ログ バッファに格納さ
れます。更新前イメージが物理ログ バッファに書き込まれても、ディスクの物理ログに
第 8 章 共有メモリ
235
書き込まれていない場合は、物理ログをディスクにフラッシュした後に、変更済みペー
ジをディスクにフラッシュする必要があります。 このアクションは、高速復旧機能のた
めに必要です。
物理ログ バッファと物理ログは、どちらもデータの物理的および論理的一貫性を保つた
めに提供されています。物理ロギング、チェックポイント処理、および高速復旧につい
ては、 431 ページの『第 16 章 物理ロギング、チェックポイント、および高速復旧』を
参照してください。
次のイベントが発生すると、現行の物理ログ バッファがフラッシュされます。
v 現行の物理ログ バッファが作成限界になった場合
v 共有メモリ内の変更済みページをフラッシュする必要がある時点で、更新前イメージ
が現行の物理ログ バッファに残っている場合
v フル チェックポイントまたはファジー チェックポイントが発生した場合
データ バッファをディスクへフラッシュする前に、必ず物理ログ バッファの内容をフ
ラッシュする必要があります。 この規則は高速復旧機能のために必要です。
データベース サーバは、一度に 2 つの物理ログ バッファのうちの 1 つだけを使用し
ます。このバッファが現行の物理ログ バッファです。データベース サーバは現行の物
理ログ バッファをディスクへフラッシュする前に、そのバッファのフラッシュ処理中に
書込みを続行できるようもう一方のバッファを現行バッファにします。
バッファ フラッシュの同期化
共有メモリが初期化されると、すべてのバッファが空になります。処理が行われると、
データ ページがディスクからバッファに読み込まれ、ユーザ スレッドはこれらのペー
ジの変更を開始します。
フラッシュ動作の説明
データベース サーバには 3 種類の書込みが定義されており、それぞれの書込みが行わ
れる回数は、カウントされています。これにより、バッファ フラッシュ処理を促す特定
の条件に関する情報が提供されます。
v フォアグラウンド書込み
v LRU 書込み
v チャンク書込み
データベース サーバによって管理されている書込みカウントを表示するには、onstat の
オプション -F を使用します。「IBM Informix: Dynamic Server 管理者の参照」のユー
ティリティの章を参照してください。
データベース サーバのミラーリングを行っている場合、データはすべて、まず主チャン
クに書き込まれます。次に、ミラー チャンクに対して書込みが繰り返されます。ミラー
236
IBM Informix Dynamic Server 管理者ガイド
チャンクへの書込みもカウントに含まれます。データベース サーバが実行する書込みタ
イプの監視の詳細については、258 ページの『バッファ プール動作の監視』を参照して
ください。
フォアグラウンド書込み
スレッド sqlexec によるディスクへのバッファの書込みは、フォアグラウンド 書込みと
呼ばれます。フォアグラウンド書込みは、スレッド sqlexec がユーザの代わりに LRU
管理列全体を検索しても、空のバッファまたは未変更のバッファを検出できない場合に
行われます。領域を作成するため、スレッド sqlexec によってページが一度に 1 ページ
ずつフラッシュされ、ディスクから読み込まれるデータが保持されます。(詳しくは、
229 ページの『FIFO/LRU 管理列』を参照してください。)
スレッド sqlexec が共有メモリ バッファの獲得のためにのみバッファ フラッシュを実
行する必要がある場合は、パフォーマンスが低下することがあります。フォアグラウン
ド書込みは発生しないようにしてください。フォアグラウンド書込み数のカウントを表
示するには onstat のオプション -F を実行します。フォアグラウンド書込みが頻繁に発
生する場合は、ページ クリーニング パラメータの値を調整してください。ページ クリ
ーナの数を増やすか、または BUFFERPOOL の lru_max_dirty 値を減らします。
LRU 書込み
フォアグラウンド書込みとは異なり、LRU 書込みは、スレッド sqlexec ではなくページ
クリーナによって実行されます。データベース サーバは、LRU 書込みをバックグラウ
ンド書込みとして実行します。バックグラウンド書込みは通常、使用済みバッファの比
率が BUFFERPOOL 構成パラメータの lru_max_dirty で指定した値を超える場合に発
生します。
また、フォアグラウンド書込みは LRU 書込みをトリガできます。フォアグラウンド書
込みが発生すると、書込みを実行したスレッド sqlexec はページ クリーナに警告を発し
て覚せいさせ、フォアグラウンド書込みを実行した LRU をクリーニングします。
正しく調整されたシステムでは、ページ クリーナはディスクから読み込むページを格納
するための未使用バッファ ページを十分に利用できるようにします。したがって、問合
せを実行するスレッド sqlexec は、問合せに必要なディスク ページを読み込む前に、デ
ィスクにページをフラッシュする必要がなくなります。このような状況によって、フォ
アグラウンド書込みを使用しない問合せのパフォーマンスが大幅に向上します。
フォアグラウンド書込みではなく LRU 書込みを使用することをお勧めします。ページ
クリーナ スレッドはスレッド sqlexec よりも効率的にバッファ書込みを実行します。
onstat のオプション -F を使用すると、両方の書込みを監視できます。
第 8 章 共有メモリ
237
チャンク書込み
チャンク書込み は通常、チェックポイントの処理中に、または共有メモリ バッファ プ
ール内のページがすべて変更されたときに、ページ クリーナ スレッドによって実行さ
れます。ソート書込みとして実行されるチャンク書込みは、データベース サーバで使用
できる最も効率の良い書込みです。
チャンク書込み中は、各ページ クリーナ スレッドが 1 つ以上のチャンクに割り当てら
れます。各ページ クリーナ スレッドはバッファ ヘッダ全体を読み込んで、その特定の
チャンクに関連するページを指すポインタの配列を作成します (ページ ヘッダの一部で
ある物理ページ番号アドレスにチャンクの番号が含まれているため、ページ クリーナ
は、この情報をアクセスします)。このソートにより、ディスク上でのヘッドの移動 (デ
ィスク シーク時間) が最小限に抑えられます。また、可能な場合には、書込み処理中に
ページ クリーナ スレッドによって先読みバッファが使用されます。
また、ユーザ スレッドはチェックポイント処理の完了を待つ必要があるため、ページ
クリーナ スレッドは CPU 時間獲得用の多数のスレッドと競合しません。その結果、ペ
ージ クリーナ スレッドは、より少ないコンテキスト スイッチングで処理を完了できま
す。
論理ログ バッファのフラッシュ
共有メモリの論理ログ バッファは、データベース サーバ ページの変更内容を記述する
レコードの、一時的な格納場所として使用されます。これらの変更のレコードは、論理
ログ バッファからディスク上の現行論理ログ ファイルに書き込まれ、最終的に論理ロ
グのバックアップ媒体に書き込まれます。論理ログ機能については、 393 ページの『第
14 章 論理ログ』を参照してください。
5 つのイベントにより、現行の論理ログ バッファがフラッシュされます。
v 現行の論理ログ バッファがいっぱいになった場合
v
バッファなしログ機能を使用するデータベースで、トランザクションが準備または
コミットされた場合
v ログ機能なしのデータベース セッションが終了した場合
v チェックポイントが発生した場合
v 物理ログ内の更新前イメージを要求しないページが変更された場合
次のセクションで、これらのイベントについて詳しく説明します。
バッファなしログ機能を使用するデータベースでトランザクションが準備完了
または終了した場合
次のログ レコードにより、バッファなしログ機能を使用するデータベース内の論理ログ
バッファがフラッシュされます。
v COMMIT
238
IBM Informix Dynamic Server 管理者ガイド
v PREPARE
v XPREPARE
v ENDTRANS
バッファ付きログ機能とバッファなしログ機能との比較については、「IBM Informix:
SQL ガイド: 構文」の SET LOG 文を参照してください。
ログ機能なしデータベースまたはバッファなしログ機能を使用するセッション
が終了した場合
ログ機能なしのデータベースの場合でも、データベース サーバは表またはエクステント
の生成のようなデータベースのスキーマを変更する特定の処理のログをとります。デー
タベース サーバがログ機能なしデータベースまたはバッファなしログ機能を使用するセ
ッションを終了すると、論理ログ バッファがフラッシュされてすべてのログ機能処理が
記録されます。
チェックポイントが発生した場合
チェックポイント処理の実行時に発生するイベントの詳細については、439 ページの
『チェックポイント』を参照してください。
物理ログ ファイル内の更新前イメージを必要としないページが変更された場合
物理ログ ファイル内の更新前イメージを必要としないページが変更されると、そのペー
ジをディスクへフラッシュする前に論理ログ バッファをフラッシュする必要がありま
す。
ラージ オブジェクト データのバッファリング
シンプル ラージ オブジェクト (テキスト (TEXT) 型またはバイト (BYTE) 型) は、DB
領域または BLOB 領域に格納できます。スマート ラージ オブジェクト (CLOB 型ま
たは BLOB 型) が格納できるのは SB 領域に限られます。 使用されるアクセス方法
は、格納領域の種類によって異なります。 以降の各セクションでは、それぞれのバッフ
ァリング方法について説明します。
シンプル ラージ オブジェクトの書込み
シンプル ラージ オブジェクトは、ほかの型の書込みと同一の方法で DB 領域のディス
ク ページに書き込まれます。詳しくは、234 ページの『ディスクへのデータ フラッシ
ュ』を参照してください。
シンプル ラージ オブジェクトは、BLOB 領域に割り当てることもできます。シンプル
ラージ オブジェクトを BLOB 領域に書き込む方法は、ほかのデータを共有メモリ バ
ッファに書き込み、ディスクにフラッシュする方法とは異なります。BLOB 領域につい
ては、「IBM Informix: Dynamic Server 管理者の参照」のディスク構造と格納の章を参
照してください。
第 8 章 共有メモリ
239
BLOB ページと共有メモリ
BLOB 領域の BLOB ページには、大量のデータが格納されます。したがって、データ
ベース サーバは、共有メモリ バッファ プールを経由して、BLOB ページを作成した
りアクセスしたりせず、また BLOB 領域の BLOB ページは、論理ログや物理ログに書
き込まれません。
BLOB 領域データが共有メモリ プールを経由して受け渡されるとすると、インデック
ス ページとデータ ページがプールから排除され、プールの効果が損なわれてしまいま
す。BLOB ページ データは、プールを経由しません。作成されると直接ディスクに書
き込まれます。
論理ログと物理ログのトラフィックを減らすため、データベース サーバは、DB 領域ペ
ージを書き込む場合とは異なる方法で、BLOB ページを磁気媒体から DB 領域バックア
ップ テープと論理ログ バックアップ テープに書き込みます。BLOB 領域のログの方
法については、400 ページの『BLOB 領域およびシンプル ラージ オブジェクトのログ
記録』を参照してください。
オプティカル媒体に格納された BLOB ページは、オプティカル媒体の信頼性があるた
め、DB 領域バックアップ テープと論理ログ バックアップ テープに書き込まれませ
ん。
シンプル ラージ オブジェクトの作成
シンプル ラージ オブジェクトのデータがディスクに書き込まれるときに、対応する行
がまだ存在していないことがあります。例えば挿入操作では、シンプル ラージ オブジ
ェクトはほかの行データよりも先に転送されます。データ行は、シンプル ラージ オブ
ジェクトの格納後に作成されます。データ行には、シンプル ラージ オブジェクトの格
納場所を示す 56 バイトの記述子が含まれます。シンプル ラージ オブジェクトの物理
的な格納方法については、「IBM Informix: Dynamic Server 管理者の参照」にある、デ
ィスク装置とディスク構造の章の、DB 領域 BLOB ページの構造を参照してください。
BLOB ページ バッファの作成
アプリケーション プロセスからシンプル ラージ オブジェクト データを受け取るため
に、BLOB 領域バッファのペアが作成されます。1 つは読込み用バッファ、1 つは書込
み用バッファで、それぞれのサイズは BLOB 領域 BLOB ページのサイズと等しくなっ
ています。各ユーザが使用できる BLOB 領域バッファは 1 組のみであるため、一度に
アクセスできるのは 1 つのシンプル ラージ オブジェクトに限られます。
シンプル ラージ オブジェクト データは、1KB のセグメントを 1 単位として、クライ
アント アプリケーション プロセスからデータベース サーバに転送されます。データベ
ース サーバは、1KB ずつ BLOB 領域バッファを満たし始め、一度に 2 個の BLOB
ページをバッファに入れます。データベース サーバは、1 つのページから次のページへ
の前方ポインタを追加するタイミングを決定できるように 2 個の BLOB ページをバッ
ファに入れます。最初のバッファを満たした時点で転送データが残っていることを検出
240
IBM Informix Dynamic Server 管理者ガイド
すると、データベース サーバは、次のページに正方向ポインタを追加してからディスク
にページを書き込みます。転送データがそれ以上なくなると、データベース サーバは正
方向ポインタなしで最後のページをディスクに書き込みます。
最初の BLOB 領域バッファがディスクに書き込まれるときに、スレッドは、ユーザ定
義の BLOB ページ サイズに基づいて入出力を実行しようとします。例えば BLOB ペ
ージのサイズが 32KB の場合、データベース サーバは 32,768 バイト単位でデータを
読み書きしようとします。使用しているハードウェア (ディスク コントローラなど) が
1 回の動作でこの量のデータを転送できない場合、オペレーティング システムのカーネ
ルは転送が完了するまでカーネル モードで内部的にループします。
BLOB 領域バッファは、スレッドが終了するまで保持されます。シンプル ラージ オブ
ジェクトがディスクに書き込まれると、BLOB 領域バッファのペアの割当てが解除され
ます。図 36 に、BLOB 領域へのシンプル ラージ オブジェクトの書込みプロセスを示
します。
図 36. BLOB 領域へのシンプル ラージ オブジェクトの書込み
BLOB 領域 BLOB ページは、未使用マップ ページによって割り当てられ、追跡されま
す。必要に応じて BLOB ページを接続するリンクと次の BLOB ページ セグメントを
指すポインタが作成されます。
操作 (挿入、更新、または削除) のレコードが論理ログ バッファに書き込まれます。
スマート ラージ オブジェクトへのアクセス
スマート ラージ オブジェクトは、共有メモリ バッファを介してアクセスされます。こ
れは、DB 領域に格納されているデータにアクセスするときと同様です。ただし、優先
順位の高いデータがバッファ プールからフラッシュされないように、スマート ラージ
オブジェクトのユーザ データ部は標準的なバッファ ページよりも低い優先順位でバッ
ファリングされます。バッファリングにより、頻繁にアクセスされるスマート ラージ
オブジェクトへのアクセスが高速化します。
第 8 章 共有メモリ
241
スマート ラージ オブジェクトは SB 領域に格納されます。シンプル ラージ オブジェ
クトを SB 領域に格納することはできません。スマート ラージ オブジェクトを BLOB
領域に格納することもできません。SB 領域は、ユーザ データ領域とメタデータ領域で
構成されています。ユーザ データ領域には、スマート ラージ オブジェクト データが
格納されます。メタデータ領域には、SB 領域の内容に関する情報が格納されます。SB
領域の詳細については、277 ページの『SB 領域』を参照してください。
スマート ラージ オブジェクトは共有メモリ バッファ プールを経由して受け渡されま
す。また、ログに記録されることもあります。バッファを割り当てるときには、そのこ
とを考慮する必要があります。共有メモリ バッファは、構成パラメータ BUFFERPOOL
を設定して割り当てます。一般的には、同時にオープンされるスマート ラージ オブジ
ェクト 1 つにつき、2 つのスマート ラージ オブジェクト ページを保持できるバッフ
ァを割り当てるようにします。先読みのために、さらにページを割り当てることもでき
ます。スマート ラージ オブジェクト用にバッファを調整する方法の詳細については、
「IBM Informix: Dynamic Server パフォーマンス ガイド」を参照してください。
論理ログ バッファのサイズを指定するには、構成パラメータ LOGBUFF を使用しま
す。次の構成パラメータの設定については、「IBM Informix: Dynamic Server 管理者の
参照」を参照してください。
v BUFFERPOOL
v LOGBUFF
ログに記録されるスマート ラージ オブジェクトのユーザ データ領域が受け渡されると
き、物理ログは経由しません。そのため、スマート ラージ オブジェクト用にパラメー
タ PHYSBUFF を調整する必要はありません。
SB 領域の構造の詳細については、「IBM Informix: Dynamic Server 管理者の参照」にあ
る、ディスク構造と格納の章の SB 領域構造を参照してください。SB 領域の作成につ
いては、「IBM Informix: Dynamic Server 管理者の参照」の、ユーティリティの章の
onspaces を参照してください。
64 ビット プラットフォームでのメモリ使用
64 ビット アドレッシングでは、広大なバッファ プールを使用して、ディスクからデー
タを取得するときの入出力操作回数を減らすことができます。64 ビット プラットフォ
ームでは広大なメモリ アドレス領域が使用できるため、次のメモリ関連構成パラメータ
の最大値が大きくなります。
v BUFFERPOOL
v CLEANERS
v DS_MAX_QUERIES
v DS_TOTAL_MEMORY
v LOCKS
242
IBM Informix Dynamic Server 管理者ガイド
v LRUS
v SHMADD
v SHMVIRTSIZE
各 64 ビット プラットフォームのマシン ノートは、これらの構成パラメータ、および
SHMMAX などのプラットフォーム固有パラメータの最大値がリストされています。構
成パラメータの詳細については、「IBM Informix: Dynamic Server 管理者の参照」、お
よび「IBM Informix: Dynamic Server パフォーマンス ガイド」の共有メモリの章を参照
してください。
第 8 章 共有メモリ
243
244
IBM Informix Dynamic Server 管理者ガイド
第 9 章 共有メモリの管理
オペレーティング システムの共有メモリ構成パラメータの設定 . .
共有メモリ セグメント サイズの最大値 . . . . . . . . .
2GB 以上のメモリの使用方法 (Windows) . . . . . . . .
共有メモリ識別子の最大数 (UNIX) . . . . . . . . . .
共有メモリ下端境界アドレス (Windows) . . . . . . . . .
セマフォ (UNIX) . . . . . . . . . . . . . . . . .
データベース サーバ共有メモリ構成パラメータの設定 . . . . .
共有メモリ常駐部のパラメータの設定 . . . . . . . . . .
共有メモリ仮想部のパラメータの設定 . . . . . . . . . .
共有メモリ パフォーマンスのパラメータの設定 . . . . . .
テキスト エディタを使用する共有メモリ パラメータの設定 . .
ISA を使用する共有メモリ パラメータの設定 . . . . . . .
ON-Monitor を使用する共有メモリ パラメータの設定 (UNIX) . .
SQL 文キャッシュのパラメータの設定 . . . . . . . . . .
共有メモリの再初期化 . . . . . . . . . . . . . . . .
共有メモリ常駐部の常駐のオン/オフ切替え . . . . . . . . .
オンライン モードにある常駐のオン/オフを切り替える方法 . .
データベース サーバ再起動時に常駐のオン/オフを切り換える方法
共有メモリ仮想部へのセグメントの追加 . . . . . . . . . .
共有メモリの監視 . . . . . . . . . . . . . . . . .
共有メモリ セグメントの監視 . . . . . . . . . . . .
共有メモリ プロファイルとラッチの監視 . . . . . . . . .
コマンド行ユーティリティの使用方法 . . . . . . . . .
IBM Informix Server Administrator の使用方法 . . . . . .
ON-Monitor の使用方法 (UNIX) . . . . . . . . . . .
SMI 表の使用方法 . . . . . . . . . . . . . . .
バッファの監視 . . . . . . . . . . . . . . . . .
コマンド行ユーティリティの使用方法 . . . . . . . . .
ON-Monitor の使用方法 (UNIX) . . . . . . . . . . .
SMI 表の使用方法 . . . . . . . . . . . . . . .
バッファ プール動作の監視 . . . . . . . . . . . . .
コマンド行ユーティリティの使用方法 . . . . . . . . .
SMI 表の使用方法 . . . . . . . . . . . . . . .
© Copyright IBM Corp. 1996, 2004
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
246
247
247
247
248
248
248
249
249
250
250
251
251
251
252
253
253
253
253
254
254
254
255
255
255
255
255
256
258
258
258
259
260
245
本章について
この章では、共有メモリの管理に関する次のタスクを実行する方法について説明しま
す。
v 共有メモリ構成パラメータの設定
v 共有メモリの再初期化
v データベース サーバ共有メモリ常駐部分の常駐のオン/オフ切替え
v 共有メモリ仮想部へのセグメントの追加
v 共有メモリの監視
この章では、構成パラメータ DS_TOTAL_MEMORY については説明しません。 このパ
ラメータでは、意思決定支援問合せ用メモリの割当て上限が設定されます。このパラメ
ータの詳細については、「IBM Informix: Dynamic Server パフォーマンス ガイド」を参
照してください。
オペレーティング システムの共有メモリ構成パラメータの設定
一部のオペレーティング システム 構成パラメータは、データベース サーバによる共有
メモリの使用に影響を与えます。 パラメータ名や使用されるパラメータはプラットフォ
ームによって異なるため、ここではパラメータ名を記載していません。 次のリストで
は、これらのパラメータについて機能別に説明します。
v バイトまたは KB 単位で示すオペレーティング システムの共有メモリ セグメント
サイズの最大値
v バイト単位で示す共有メモリ セグメント サイズの最小値
v 共有メモリ識別子の最大数
v 共有メモリ下端境界アドレス
v プロセスあたりに接続される共有メモリ セグメントの最大数
v システム全体の共有メモリの最大容量
UNIX のみ
v セマフォ識別子の最大数
v セマフォの最大数
v 識別子あたりのセマフォの最大数
UNIX では、マシン ノート ファイルに、オペレーティング システム リソースを構成
するために使用する推奨値が示されています。オペレーティング システムを構成する場
合は、これらの推奨値を使用してください。オペレーティング システム パラメータを
設定する方法については、オペレーティング システムのマニュアルを参照してくださ
い。
246
IBM Informix Dynamic Server 管理者ガイド
オペレーティング システムの 環境に関する詳細については、データベース サーバに添
付されている マシン ノート ファイルを参照してください。
UNIX のみ の終り
共有メモリ セグメント サイズの最大値
データベース サーバは、要求された共有メモリ セグメントを作成するときに、できる
限り大きいオペレーティング システム セグメントを取得しようとします。データベー
ス サーバが最初に取得しようとするセグメント サイズは、割り当てようとする各部
(常駐、仮想、または通信) のサイズを 8KB の最も近い倍数に切り上げたサイズです。
セグメント サイズが許容最大サイズよりも大きいと、オペレーティング システムから
エラーが戻されます。データベース サーバは、エラーを受け取ると、要求サイズを 2
で割って再度試行します。この試行は、8KB の倍数の最大セグメント サイズが取得で
きるまで継続します。 次に、要求した個数の追加セグメントが作成されます。
2GB 以上のメモリの使用方法 (Windows)
データベース サーバは Windows で 2GB を超える共有メモリ セグメントにアクセス
できます。ただし、Windows ブート ファイルのエントリで、この機能を有効にする必
要があります。
エントリを追加するには、最上位ディレクトリまたはルート ディレクトリにあるファイ
ル boot.ini を編集します。新規のブート オプションを追加するか、既存のブート オプ
ションを使用できます。2GB を超えるメモリのサポートを有効にするには、ブート行の
末尾に次のテキストを追加します。
/3GB
次の例は、2GB を超えるメモリのサポートを有効にしています。
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)¥WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)¥WINDOWS="Windows NT
Workstation Version 4.00"
/3GB
共有メモリ セグメントの最大サイズは、オペレーティング システムに依存しますが、
ドライバを追加していない Windows では約 3GB です。
共有メモリ識別子の最大数 (UNIX)
共有メモリ識別子は、仮想プロセッサが共有メモリへの接続を試行する場合に、データ
ベース サーバの動作に影響を与えます。オペレーティング システムは、共有メモリ識
別子で個々の共有メモリ セグメントを識別します。ほとんどのオペレーティング シス
テムでは、オペレーティング システム全体で設定された限度まで、仮想プロセッサが先
第 9 章 共有メモリの管理
247
着順に識別子を受け取ります。共有メモリ識別子の詳細については、210 ページの『仮
想プロセッサが共有メモリを確保する方法』を参照してください。
オペレーティング システムが割り当てることができる共有メモリの最大容量は、共有メ
モリ識別子の数に共有メモリ セグメント サイズの最大数を乗算して、算出できます。
共有メモリ下端境界アドレス (Windows)
Windows の DLL (Dynamic Link Library: ダイナミック リンク ライブラリ) のデフォ
ルトのロード アドレスは 0x10000000 です。Dynamic Server では、0x0C000000 のデフ
ォルト SHMBASE (Shared-Memory Base Address: 共有メモリ ベース アドレス) が使用
されます。したがって、データベース サーバの共有メモリは 0x10000000 まで増加させ
ることができます。これは 64MB の追加に相当します。
起動時の共有メモリが 64MB を超えているか、それに近い場合は、アドレスのクラッ
シュが発生する可能性があります。この場合は、ファイル ONCONFIG のパラメータ
SHMBASE を 0x20000000 などのより高い値に設定します。共有メモリ サイズを調べ
るには、onstat のオプション -g seg を実行して、総メモリ容量を表示します。
セマフォ (UNIX)
データベース サーバの操作には、仮想プロセッサごとに 1 個、共有メモリ (ipcshm プ
ロトコル) を介してデータベース サーバに接続するユーザごとに 1 個、データベース
サーバ ユーティリティに 6 個、そのほかの目的に 16 個の UNIX セマフォが必要で
す。
データベース サーバ共有メモリ構成パラメータの設定
共有メモリ構成パラメータは、目的別に次のカテゴリに分かれます。
v 共有メモリの常駐部に影響を与えるパラメータ
v 共有メモリの仮想部に影響を与えるパラメータ
v パフォーマンスに影響を与えるパラメータ
共有メモリ構成パラメータは、次の方法で設定できます。
v テキスト エディタの使用
v IBM Informix Server Administrator (ISA)
248
IBM Informix Dynamic Server 管理者ガイド
UNIX のみ
v ON–Monitor の使用
UNIX のみ の終り
UNIX で、どちらかの方法を使用するには、root またはユーザ informix である必要が
あります。Windows では、Informix-Admin グループのユーザである必要があります。
共有メモリ常駐部のパラメータの設定
表 24 に、バッファ プールと共有メモリ常駐部の内部表の構成を指定するファイル
ONCONFIG のパラメータを一覧表示します。構成パラメータに加えた変更を有効にす
るには、データベース サーバを停止してから再起動する必要があります。構成パラメー
タについては、「IBM Informix: Dynamic Server 管理者の参照」を参照してください。
表 24. 共有メモリ常駐部の構成
構成パラメータ
目的
BUFFERPOOL
DB 領域が使用する異なるページ サイズごとに定義する必要のある、バッフ
ァ プールに関する情報を指定します。
LOCKS
行、キー値、ページ、および表などのデータベース オブジェクトに対する初
期ロック数を指定します。
LOGBUFF
論理ログ バッファのサイズを指定します。
PHYSBUFF
物理ログ バッファのサイズを指定します。
RESIDENT
データベース サーバ共有メモリの常駐部の常駐を指定します。
SERVERNUM
ローカル ホスト コンピュータ上のデータベース サーバに一意の識別番号を
指定します。
SHMTOTAL
データベース サーバによって使用されるメモリの総容量を指定します。
共有メモリ仮想部のパラメータの設定
表 25 に、共有メモリの仮想部の構成に使用するパラメータ ONCONFIG を一覧表示し
ます。詳しくは、「IBM Informix: Dynamic Server パフォーマンス ガイド」のメモリに
対し構成が与える影響に関する章を参照してください。
第 9 章 共有メモリの管理
249
表 25. 共有メモリ仮想部の構成
構成パラメータ
目的
DS_HASHSIZE
データ分散キャッシュ内のリスト用ハッシュ バケット数
DS_POOLSIZE
データ分散キャッシュの最大エントリ数
PC_HASHSIZE
データベース サーバで使用する UDR キャッシュおよびそのほかのキャッ
シュのハッシュ バケット数を指定します。PC_HASHSIZE の設定方法の詳
細については、「IBM Informix: Dynamic Server パフォーマンス ガイド」
を参照してください。
PC_POOLSIZE
UDR (User-defined Routine: ユーザ定義ルーチン) キャッシュに格納でき
る、SPL ルーチンおよび外部ルーチンといった UDR の数を指定します。
また、このパラメータでは typename キャッシュや opclass キャッシュな
ど、ほかのデータベース サーバ キャッシュのサイズも指定されます。
PC_POOLSIZE の設定の詳細については、「IBM Informix: Dynamic Server
パフォーマンス ガイド」を参照してください。
SHMADD
動的に追加された共有メモリ セグメントのサイズを指定します。
SHMTOTAL
データベース サーバによって使用されるメモリの総容量を指定します。
SHMVIRTSIZE
共有メモリ仮想部の初期サイズを指定します。
STACKSIZE
データベース サーバ ユーザ スレッド用のスタック サイズを指定します。
共有メモリ パフォーマンスのパラメータの設定
表 26 に、共有メモリ パフォーマンス オプションを設定するパラメータ ONCONFIG
を一覧表示します。詳しくは、「IBM Informix: Dynamic Server 管理者の参照」の構成
パラメータに関する章を参照してください。
表 26. 共有メモリ パフォーマンス オプションの設定
構成パラメータ
目的
CKPTINTVL
データベース サーバによりチェックポイントが必要かどうかが検査される
までの最大経過秒数を指定します。
CLEANERS
実行されるページ クリーナ スレッド数を指定します。
RA_PAGES
データまたはインデックス レコードの順次スキャンが実行される場合に、
先読みを試行する必要があるディスク ページ数を指定します。
RA_THRESHOLD
読み込まれた後に、データベース サーバによってディスク上で先読みが行
われる未処理メモリ ページ数を指定します。
テキスト エディタを使用する共有メモリ パラメータの設定
常駐共有メモリ、仮想共有メモリ、および共有メモリ パフォーマンスの構成パラメータ
は、テキスト エディタを使用して設定できます。ファイル ONCONFIG でパラメータ
250
IBM Informix Dynamic Server 管理者ガイド
を検索し、単数または複数の新しい値を入力してから、ディスクに再びファイルを書き
込みます。変更を有効にするには、データベース サーバを停止してから再起動する必要
があります。
ISA を使用する共有メモリ パラメータの設定
次の共有メモリ パラメータを監視および設定するには、ISA を使用します。詳しく
は、ISA オンライン ヘルプを参照してください。
v onmode や onstat などのユーティリティ コマンドの実行
v パラメータ ONCONFIG の編集
v セグメントの監視
v プールの監視
v メモリの常駐部の監視
v メモリの非常駐部の監視
v データ ディクショナリ キャッシュの監視
ON-Monitor を使用する共有メモリ パラメータの設定 (UNIX)
ON–Monitor を使用して共有メモリの常駐部および仮想部の構成パラメータを設定する
には、「Parameters」>「Shared-Memory」を選択します。
システムのページ サイズを設定するには、ON–Monitor の「Parameters」>
「Shared-memory」を選択します。データベース サーバのページ サイズは、そのペー
ジの最後のエントリです。
重要: 構成パラメータ SHMADD および SHMTOTAL の設定は、共有メモリの常駐部
と仮想部の両方に影響を与えます。
ON–Monitor を使用して次の共有メモリ パフォーマンス オプションの構成パラメータ
を設定するには、「Parameters」>「perFormance」を選択します。
v CKPTINTVL
v RA_PAGES
v RA_THRESHOLD
SQL 文キャッシュのパラメータの設定
表 27 に、SQL 文キャッシュのさまざまな構成方法を示します。
第 9 章 共有メモリの管理
251
表 27. SQL 文キャッシュの構成
構成パラメータ
目的
コマンド onmode
STMT_CACHE
メモリ内の SQL 文キャッシュをオン、有
効、または無効にすることができます。オ
ンにすると、解析と最適化が行われた SQL
文を SQL 文キャッシュが保持できるかど
うかを指定できます。
onmode -e mode
STMT_CACHE_HITS
SQL 文キャッシュに文が完全に挿入される onmode -W
前に、文がヒット (参照) される回数を指定 STMT_CACHE_HITS
します。
STMT_CACHE_NOLIMIT
STMT_CACHE_SIZE 値よりも文のサイズが onmode -W
大きくなった場合に、SQL 文キャッシュの STMT_CACHE_NOLIMIT
中へ文を挿入するかどうかを制御します。
STMT_CACHE_NUMPOOL
SQL 文キャッシュのメモリ プール数を定
義します。
なし
STMT_CACHE_SIZE
SQL 文キャッシュのサイズを指定します。
onmode -W
STMT_CACHE_SIZE
SQL 文キャッシュを監視するには、次のオプション onstat を使用します。
v onstat -g ssc (onstat -g cac stmt と同じ)
v onstat -g ssc all
v onstat -g ssc pool
これらの構成パラメータ、onstat のオプション -g、およびコマンド onmode の詳細に
ついては、「IBM Informix: Dynamic Server 管理者の参照」のユーティリティの章を参
照してください。SQL 文キャッシュの使用、onstat のオプション -g を使用するキャッ
シュの監視、および構成パラメータの調整の詳細については、「IBM Informix: Dynamic
Server パフォーマンス ガイド」の問合せパフォーマンスの向上に関する部分を参照し
てください。 文の修飾と同一文の詳細については、「IBM Informix: SQL ガイド: 構
文」を参照してください。
共有メモリの再初期化
共有メモリを再初期化するには、データベース サーバをオフラインにしてからオンライ
ンに切り替えます。データベース サーバをオンライン モードからオフライン モードに
切り替える方法については、 117 ページの『オフライン モードへの即時移行』を参照し
てください。
252
IBM Informix Dynamic Server 管理者ガイド
共有メモリ常駐部の常駐のオン/オフ切替え
共有メモリ常駐部の常駐のオン/オフは、次の 2 つの方法で切り替えることができま
す。
v データベース サーバをオンライン モードにしたまま、共有メモリの常駐のオン/オフ
を即時に切り替えるには、ユーティリティ onmode を使用します。
v 次回にデータベース サーバ共有メモリを初期化したときに、共有メモリの常駐をオ
ン/オフに切り替えるには、ファイル ONCONFIG のパラメータ RESIDENT を変更し
ます。
共有メモリの常駐部の詳細については、214 ページの『共有メモリの常駐部』を参照し
てください。
オンライン モードにある常駐のオン/オフを切り替える方法
ユーティリティ onmode を使用すると、データベース サーバをオンライン モードにし
たまま常駐のオン/オフを切り替えることができます。
共有メモリ常駐部の常駐をただちにオンにするには、次のコマンドを実行します。
% onmode -r
共有メモリの常駐部の常駐をただちにオフにするには、次のコマンドを実行します。
% onmode -n
これらのコマンドによって、ファイル ONCONFIG のパラメータ RRESIDENT の値は
変更されません。つまり、この変更は永続的ではなく、次に共有メモリを初期化したと
きの常駐はパラメータ RESIDENT で指定した状態に戻ります。UNIX で、常駐のオン/
オフを切り替えるには、root またはユーザ informix である必要があります。Windows
で、常駐のオン/オフを切り替えるには、Informix-Admin グループのユーザである必要が
あります。
データベース サーバ再起動時に常駐のオン/オフを切り換える方法
テキスト エディタを使用して、常駐のオン/オフを切り替えることができます。常駐の
現行状態を変更するには、テキスト エディタを使用してパラメータ RESIDENT を探し
ます。RESIDENT を 1 に設定して常駐をオンにするか、0 に設定してオフにし、ファ
イルをディスクに再び書き込みます。変更を有効にするには、データベース サーバを停
止してから再起動する必要があります。
共有メモリ仮想部へのセグメントの追加
ユーティリティ onmode のオプション -a を使用すると、指定サイズのセグメントを共
有メモリ仮想部に追加できます。
第 9 章 共有メモリの管理
253
必要に応じて自動的にセグメントが追加されるため、通常は、共有メモリ仮想部にセグ
メントを追加する必要はありません。
ユーティリティ onmode のセグメント追加オプションは、オペレーティング システム
のセグメント数に制限があり、初期セグメント サイズが必要な大きさに対して小さすぎ
て、オペレーティング システムの共有メモリ セグメントの制限をほとんど超えてしま
う場合に役立ちます。
共有メモリの監視
ここでは、共有メモリ セグメント、共有メモリ プロファイル、および特定の共有メモ
リ リソース (バッファ、ラッチ、およびロック) の使用状況を監視する方法について説
明します。
ユーティリティ onstat のオプション -o を使用して、データベース サーバ共有メモリ
の静的スナップショットを取得し、後の分析と比較のために使用できます。
共有メモリ セグメントの監視
データベース サーバによって作成されるセグメントの数とサイズを調べるには、共有メ
モリ セグメントを監視します。共有メモリ セグメントは動的に割り当てられるため、
この数値は変化することがあります。割り当てられる共有メモリ セグメント数が多すぎ
る場合は、構成パラメータ SHMVIRTSIZE の値を増加させます。詳しくは、
「IBM Informix: Dynamic Server 管理者の参照」の構成パラメータに関する章を参照し
てください。
コマンド onstat のオプション -g seg は、セグメントのアドレスとサイズ、および未使
用または使用中のメモリ容量などの各共有メモリ セグメントの情報を一覧表示します。
onstat -g seg の出力例を次に示します。
Segment Summary:
(resident segments
id
key
300
1381386241
301
1381386242
are not
addr
400000
496000
locked)
size
614400
4096000
ovhd
800
644
class blkused blkfree
R
71
4
V
322
178
共有メモリ プロファイルとラッチの監視
共有メモリ リソースのパフォーマンスと使用状況を分析するには、データベース サー
バ プロファイルを監視します。「Profile」画面では、共有メモリの使用状況に関する累
積統計情報が管理されます。これらの統計情報を 0 にリセットするには、onstat のオ
プション -z を使用します。onstat により表示されるすべてのフィールドについては、
「IBM Informix: Dynamic Server 管理者の参照」のユーティリティに関する章を参照し
てください。
254
IBM Informix Dynamic Server 管理者ガイド
ラッチの使用に関する統計情報と特定のラッチについての情報を取得できます。 これら
の統計情報は、システム動作の尺度になります。
コマンド行ユーティリティの使用方法
次のコマンド行ユーティリティを使用すると、共有メモリとラッチを監視できます。
v onstat -s
v onstat -p
onstat -s: ラッチ情報を取得するには、コマンド onstat のオプション -s を使用しま
す。
onstat -p: データベース サーバの動作、およびラッチの待機 (フィールド lchwaits
を参照) に関する統計情報を表示するには、onstat のオプション -p を実行します。
これらの統計情報の例を次に示します。
Profile
dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached
382
400
14438
97.35 381
568
3509
89.14
isamtot open
9463
1078
ovlock
0
start
1584
read
2316
ovuserthread ovbuff
0
0
da-RA
204
rewrite delete
162
27
usercpu syscpu
13.55
13.02
bufwaits lokwaits lockreqs deadlks
14
0
16143
0
ixda-RA idx-RA
5
0
write
909
dltouts
0
commit
183
rollbk
1
numckpts flushes
5
18
ckpwaits compress seqscans
0
101
68
RA-pgsused lchwaits
148
12
IBM Informix Server Administrator の使用方法
ISA を使用して、ラッチ、スピン ロック、およびプロファイルの情報を取得できま
す。
ON-Monitor の使用方法 (UNIX)
「Status」>「Profile」を選択します。 画面には共有メモリ統計情報、現行動作モー
ド、ブート時間、現在時刻、およびラッチが表示されます。
SMI 表の使用方法
共有メモリ統計情報を取得するには、sysprofile 表に問い合わせます。この表には、
ovbuff、usercpu、および syscpu 統計情報を除く、onstat のオプション -p の出力で利
用できるすべての統計情報が含まれます。
バッファの監視
バッファの使用に関する統計情報と特定のバッファに関する情報の両方を取得できま
す。
第 9 章 共有メモリの管理
255
統計情報には、バッファにキャッシュされるデータ書込みの割合、バッファを取得する
ためのスレッドの待機回数が含まれます。 キャッシュされる書込みの割合は、パフォー
マンスの重要な尺度になります。(データベース サーバを調整するためにこの統計情報
を使用する方法については、「IBM Informix: Dynamic Server パフォーマンス ガイド」
を参照してください。)バッファの待機回数は、システム同時実行性の尺度になります。
特定のバッファに関する情報には、スレッドに保持される共有メモリ内のバッファすべ
てのリストが含まれます。 この情報を使用すると、特定のバッファの状態を追跡できま
す。 例えば、別のスレッドがそのバッファを待機しているかどうかを調べることができ
ます。
コマンド行ユーティリティの使用方法
次のコマンド行ユーティリティを使用して、バッファを監視できます。
v onstat -p
v onstat -B
v onstat -b
v onstat -X
v onstat -R
onstat -p: キャッシュされる読込みと書込みについての統計情報を取得するには、
onstat のオプション -p を実行します。 次のキャッシュ統計情報は、出力表示の一番上
にある行の 4 つのフィールドに表示されます。
v 共有メモリ バッファからの読込み回数 (bufreads)
v キャッシュされる読込みの割合 (%cached)
v 共有メモリへの書込み回数 (bufwrits)
v キャッシュされる書込みの割合 (%cached)
v 汎用ページの情報 (バッファ プールの非標準ページ)
onstat -p 出力におけるキャッシュされる読込みと書込みの統計情報の例を次に示しま
す。
Profile
dskreads pagreads bufreads %cached dskwrits pagwrits bufwrits %cached
382
400
14438
97.35 381
568
3509
89.14
...
プラットフォームによっては、読込みまたは書込みの回数が 232 を超えると、負の数が
表示されることがあります。
onstat のオプション -p では、セッションによるバッファの待機回数を示す統計情報
(bufwaits) も表示されます。
256
IBM Informix Dynamic Server 管理者ガイド
onstat -B: 次のバッファ情報を取得するには、onstat のオプション -B を実行しま
す。
v すべての通常共有メモリ バッファのアドレス
v 現在バッファを保持しているスレッドのアドレス
v 各バッファを待機している先頭スレッドのアドレス
v 定義済みバッファ プールでの情報
onstat -B のいくつかの出力例を次に示します。
Buffers
address
a0bd068
a0bd0e8
a0bd168
...
userthread flgs pagenum
0
806 1:10264
0
806 3:24099
0
6
1:1
1 modified,
memaddr nslots pgflgs xflgs owner
waitlist
a0ee800 6
52
0
0
a0ef000 1
41
0
0
a0ef800 88
15
8067c4
0
256 hash buckets, 2048 buffer size
onstat -b: 各バッファについて次の情報を取得するには、onstat のオプション -b を
実行します。
v スレッドによって現在保持されている各バッファのアドレス
v バッファに保持されているページのページ番号
v データ ページ、表領域ページなどのバッファに保持されているページのタイプ
v バッファに配置されるロックのタイプ (排他または共有)
v 現在バッファを保持しているスレッドのアドレス
v 各バッファを待機している先頭スレッドのアドレス
v 定義済みバッファ プールでの情報
ユーザ スレッドのアドレスを onstat のオプション -u の出力で表示されるアドレスと
比較して、セッション ID 番号を取得できます。
onstat -b のいくつかの出力例を次に示します。
Buffers
address userthread flgs pagenum memaddr nslots pgflgs xflgs owner waitlist
a0f7f28 0
c47 1:14322 a173000 9
11
10
0
0
a0fa2a8 0
47 1:14310 a196800 0
3
10
0
0
a0fac28 0
847 1:14307 a1a0000 74
52
10
0
0
a0fe3a8 0
47 1:14306 a1d7800
0
3
10
0
0
...
a133128 0
c47 1:14328 a525000 2
11
10
0
0
317 modified, 2048 hash buckets, 2048 buffer size
onstat によって表示されるフィールドの詳細については、「IBM Informix: Dynamic
Server 管理者の参照」のユーティリティに関する章を参照してください。
第 9 章 共有メモリの管理
257
onstat -X: onstat のオプション -b と同じ情報に加えて、先頭スレッドだけでなくバ
ッファを待機しているすべてのスレッドの完全 なリストを取得するには、onstat のオ
プション -X を実行します。
onstat -R: バッファに関する情報などの、バッファ プールに関する情報を表示するに
は、onstat -R を使用します。
ON-Monitor の使用方法 (UNIX)
onstat のオプション -p に関して 256 で言及したフィールド (bufreads、%cached、
bufwrits および %cached) にアクセスするには、「Status」>「Profile」を選択します。
ON-Monitor「Status」メニューの「Profile」オプションによる、キャッシュされる読込
みおよび書込み統計情報の例を以下に示します。
...
Disk Reads
177
...
Buff. Reads
330
%Cached
46.36
Disk Writes
4
Buff. Writes
0
%Cached
0.00
SMI 表の使用方法
キャッシュされる読込みおよび書込みと総バッファ待機回数についての統計情報を取得
するには、sysprofile 表に問い合わせます。 次の行が関係します。
行
説明
dskreads
ディスクからの読込み回数
bufreads
バッファからの読込み回数
dskwrites
ディスクへの書込み回数
bufwrites
バッファへの書込み回数
buffwts
任意のスレッドによるバッファの待機回数
バッファ プール動作の監視
バッファ可用性に関する統計情報と、各 LRU 管理列のバッファについての情報を取得
できます。
統計情報には、データベース サーバによりバッファの最大数を超える書込みが試行され
た回数と、ディスクへの書込み回数が含まれます。これらは、バッファをフラッシュさ
せたイベントによって分類されます。 この統計情報は、バッファ数が適切かどうかを判
断するのに役立ちます。データベース サーバ バッファの調整については、
「IBM Informix: Dynamic Server パフォーマンス ガイド」を参照してください。
各 LRU 管理列のバッファについての情報には、管理列の長さと、修正された管理列内
のバッファの割合があります。
258
IBM Informix Dynamic Server 管理者ガイド
コマンド行ユーティリティの使用方法
ユーティリティ onstat を使用して、バッファ プール動作についての情報を取得できま
す。onstat のオプションは、ISA から実行することもできます。
onstat のオプションの詳細については、「IBM Informix: Dynamic Server 管理者の参
照」のユーティリティの章を参照してください。
onstat -p: onstat のオプション -p の出力には、BUFFERPOOL 構成パラメータの
buffers 値で指定される共有バッファの最大数を超える書込みが試行された回数を示す
統計情報 (ovbuff) が含まれます。
onstat -p 出力における ovbuff フィールドのいくつかの例を次に示します。
...
ovtbls
0
...
ovlock
0
ovuserthread ovbuff
0
0
usercpu syscpu
13.55
13.02
numckpts flushes
5
18
onstat -F: 書込みタイプごとに、実行された書込みのカウント数を取得するには、
onstat のオプション -F を実行します。各種の書込みタイプの詳細については、236 ペ
ージの『フラッシュ動作の説明』を参照してください。
コマンド onstat のオプション -F では、次の書込みタイプの合計が表示されます。
v
フォアグラウンド書込み
v LRU 書込み
v
チャンク書込み
コマンド onstat のオプション -F では、ページ クリーナに関する次の情報も一覧表示
されます。
v ページ クリーナ番号
v ページ クリーナ共有メモリ アドレス
v ページ クリーナの現行状態
v ページ クリーナが割り当てられた LRU 管理列
onstat -F の出力例を次に示します。この情報では、バッファがいつ、どのようにフラッ
シュされるかを示します。
...
Fg Writes
0
LRU Writes
146
Chunk Writes
140
address flusher state
data
8067c4
0
I
0
states: Exit Idle Chunk Lru
= 0X0
第 9 章 共有メモリの管理
259
onstat -R: 各 LRU 管理列のバッファ数と、修正されたバッファまたは未使用バッフ
ァの数と割合を取得するには、onstat のオプション -R を実行します。
onstat -R の出力例を次に示します。
8 buffer LRU queue pairs
# f/m length % of pair total
0 f
3
37.5%
8
1 m
5
55.6%
2 f
5
45.5%
11
3 m
6
54.5%
4 f
2
18.2%
11
5 m
9
81.8%
6 f
5
50.0%
10
7 m
5
55.6%
8 F
5
50.0%
10
9 m
5
45.5%
10 f
0
0.0%
10
11 m
10 100.0%
12 f
1
11.1%
9
13 m
8
88.9%
14 f
2
28.6%
7
15 m
5
71.4%
53 dirty, 76 queued, 80 total, 128 hash buckets,
2048 buffer size start clean at 60% (of pair total) dirty,
or 6 buffs dirty, stop at 50%
SMI 表の使用方法
次の行に保持される書込みタイプについての統計情報を取得するには、sysprofile 表に
問い合わせます。
260
行
説明
fgwrites
フォアグラウンド書込み回数
lruwrites
LRU 書込み回数
chunkwrites
チャンク書込み回数
IBM Informix Dynamic Server 管理者ガイド
第 10 章 データ記憶域
記憶域の物理および論理単位 . . . . . . . . . . . . . .
チャンク . . . . . . . . . . . . . . . . . . . .
チャンク用のディスク割当て . . . . . . . . . . . . .
Windows でのディスク アクセス . . . . . . . . . .
UNIX 上のバッファなしまたはバッファ付きディスク アクセス
オフセットとは . . . . . . . . . . . . . . . . .
ページとは . . . . . . . . . . . . . . . . . . . .
BLOB ページとは . . . . . . . . . . . . . . . . .
SB ページとは . . . . . . . . . . . . . . . . . .
エクステント . . . . . . . . . . . . . . . . . . .
DB 領域. . . . . . . . . . . . . . . . . . . . .
データの格納場所の制御 . . . . . . . . . . . . . .
ルート DB 領域 . . . . . . . . . . . . . . . . .
一時 DB 領域 . . . . . . . . . . . . . . . . . .
BLOB 領域 . . . . . . . . . . . . . . . . . . . .
SB 領域 . . . . . . . . . . . . . . . . . . . . .
SB 領域を使用する利点 . . . . . . . . . . . . . .
SB 領域とエンタープライズ レプリケーション. . . . . . .
メタデータ、ユーザ データ、および予約された領域 . . . . .
データの格納場所の制御 . . . . . . . . . . . . . .
SB 領域の格納特性 . . . . . . . . . . . . . . . .
SB 領域のエクステント サイズ . . . . . . . . . . .
スマート ラージ オブジェクトの平均サイズ . . . . . .
バッファリング モード . . . . . . . . . . . . . .
最終アクセス時間 . . . . . . . . . . . . . . .
ロック モード . . . . . . . . . . . . . . . . .
ログ機能 . . . . . . . . . . . . . . . . . .
SB 領域特性の継承レベル . . . . . . . . . . . . . .
SB 領域に関するそのほかの情報 . . . . . . . . . . .
一時 SB 領域 . . . . . . . . . . . . . . . . . . .
一時 SB 領域と標準 SB 領域の相違点 . . . . . . . . .
一時スマート ラージ オブジェクト . . . . . . . . . .
EXT 領域 . . . . . . . . . . . . . . . . . . . .
データベースとは . . . . . . . . . . . . . . . . .
表. . . . . . . . . . . . . . . . . . . . . . .
Dynamic Server の表タイプ . . . . . . . . . . . . . .
標準永続表 . . . . . . . . . . . . . . . . . . .
ロウ表 . . . . . . . . . . . . . . . . . . . .
一時表 . . . . . . . . . . . . . . . . . . . .
表タイプの特性 . . . . . . . . . . . . . . . . .
© Copyright IBM Corp. 1996, 2004
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
263
264
264
264
265
266
267
268
269
270
272
272
275
275
276
277
277
278
278
279
281
281
281
282
282
282
282
283
284
286
286
287
288
289
290
291
292
292
293
293
261
表へのデータのロード . . . . . . . . .
表タイプの高速復旧 . . . . . . . . . .
ロウ表のバックアップと復元 . . . . . . .
一時表 . . . . . . . . . . . . . . .
ユーザによって作成される一時表 . . . . .
データベース サーバによって作成される一時表
表領域 . . . . . . . . . . . . . . . .
表内の表領域の最大数 . . . . . . . . . .
表とインデックス表領域 . . . . . . . . .
エクステントのインターリーブとは . . . . .
表のフラグメント化とデータの格納 . . . . . .
データ格納に必要なディスク容量 . . . . . . .
ルート DB 領域のサイズ . . . . . . . . .
物理ログと論理ログ . . . . . . . . . .
一時表 . . . . . . . . . . . . . .
重要なデータ . . . . . . . . . . . .
予備の領域 . . . . . . . . . . . . .
データベースに必要な容量 . . . . . . . .
ディスク レイアウトのガイドライン . . . . . .
DB 領域とチャンクのガイドライン. . . . . .
表位置のガイドライン . . . . . . . . . .
サンプル ディスク レイアウト . . . . . . . .
パフォーマンスを優先させたサンプル レイアウト .
可用性を最優先させたサンプル レイアウト . . .
論理ボリューム マネージャとは . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
293
293
294
294
295
296
297
297
298
299
300
302
302
303
303
303
303
304
304
304
305
306
307
308
310
本章について
この章では用語を定義し、 311 ページの『第 11 章 ディスク領域の管理』で説明されて
いる作業を実行するために理解しておくべき概念について説明します。 この章では次の
項目を扱います。
v ディスクにデータを格納するためにデータベース サーバで使用される物理単位と論
理単位の定義
v
データを格納する場合に必要となるディスク容量の計算方法
v
ディスク領域のレイアウト方法と、データベースと表の配置に関するガイドライン
この章で説明されている記憶域単位の最大値に関する補足説明については、現行の
Dynamic Server リリース ノートを参照してください。
262
IBM Informix Dynamic Server 管理者ガイド
記憶域の物理および論理単位
データベース サーバによるディスク領域の割当てには、記憶域の物理単位が使用されま
す。サイズが変動する記憶域の論理単位と異なり、各物理単位のサイズは固定されてい
るか、ディスクのアーキテクチャから決まるサイズが割り当てられています。データベ
ース サーバによるディスク領域管理では、次の物理単位が使用されます。
v チャンク
v ページ
v エクステント
v BLOB ページ
v SB ページ
データベース サーバによるデータ格納では、次の論理単位が使用されます。
v DB 領域
v 一時 DB 領域
v BLOB 領域
v SB 領域
v 一時 SB 領域
v EXT 領域
v データベース
v 表
v 表領域
v パーティション
データの物理的および論理的一貫性を確保するため、次の格納構造が保持されていま
す。
v 論理ログ
v 物理ログ
v 予約ページ
データベース サーバにサポートされているさまざまなデータ記憶域単位と、それら単位
間の関係を、次の各セクションで説明します。予約ページの詳細については、
「IBM Informix: Dynamic Server 管理者の参照」のディスク構造と格納の章を参照して
ください。
第 10 章 データ記憶域
263
チャンク
チャンク とは、データベース サーバのデータ格納専用の物理ディスクの最大単位で
す。チャンクは、管理者がディスク領域を割り当てるときに役立つ大きい単位です。各
チャンクの最大サイズは 4TB です。許容チャンク数は 32,766 個です。チャンクの最大
サイズおよび最大許容数を有効化する場合は、onmode のオプション -BC を実行する必
要があります。onmode のオプション -BC を実行しない場合は、チャンクの最大サイズ
は 2GB となります。
次の格納領域が最大容量に近づくと、データベース サーバ管理者はその格納領域に 1
つ以上のチャンクを追加します。
v DB 領域 (272を参照)
v BLOB 領域 (276を参照)
v SB 領域 (277を参照)
チャンクの名前、サイズおよび数については、319 ページの『格納領域およびチャンク
の名前の指定』、および 320 ページの『チャンクの最大サイズの指定』を参照してくだ
さい。
データベース サーバでは、チャンクはミラーリングにも使用されます。主チャンク と
は、データベース サーバによってミラーリングされるチャンク へデータがコピーされ
るときの、コピー元となるチャンクです。主チャンクに障害が発生すると、ミラーリン
グされたチャンクが自動的にオンラインになります。詳しくは、 465 ページの『第 18
章 ミラーリング』を参照してください。
チャンク用のディスク割当て
データベース サーバでは、通常のオペレーティング システム ファイル、またはロウ
ディスク デバイス がデータの格納に使用されます。UNIX については、パフォーマン
スを重視する場合、データの格納にロウ ディスク デバイスを使用するようお勧めしま
す。Windows では、管理を容易にするため、データの格納に NTFS ファイルを使用す
るようお勧めします。
NFS デバイスのベンダが IBM の認定を受けている場合に限り、Informix 格納領域を
NFS マウントされたディレクトリに配置できます。Informix データベース サーバの格
納領域のマウントに使用できる NFS 製品については、IBM Informix の Web サイトに
ある製品互換性の情報を参照してください。
Windows でのディスク アクセス
Windows では、ロウ ディスクおよび NTFS の両方で、KAIO (Kernel Asynchronous
I/O: カーネル非同期入出力) が使用されます。Windows のファイル システム マネージ
ャを使用すると、ディスク入出力のオーバーヘッドが増加するため、ロウ ディスクを使
用するほうがパフォーマンスはわずかに高くなります。しかし、標準的なデータ格納方
264
IBM Informix Dynamic Server 管理者ガイド
法は NTFS ファイルであるため、ロウ ディスクではなく NTFS ファイルを使用するよ
うお勧めします。ディスク アクセスの回数が非常に多い場合は、ロウ ディスクの使用
を検討してください。
Windows 上のロウ ディスク領域とは: Windows では、ロウ ディスク領域 は、
ドライブ名のない物理ドライブか、ディスク アドミニストレータ を使用してドライブ
名が割り当てられた論理ディスク パーティションのいずれかになります。ディスク領域
は、フォーマットされていてもいなくても構いません。その領域にデータが含まれてい
る場合は、領域をデータベース サーバに割り当てると、データが上書きされます。詳し
くは、318 ページの『Windows におけるロウ ディスク領域の割当て』を参照してくだ
さい。
NTFS ファイル: Windows のディスク領域では、FAT ファイルではなく NTFS ファ
イルを使用する必要があります。詳しくは、317 ページの『Windows での NTFS ファ
イル領域の割当て』を参照してください。
UNIX 上のバッファなしまたはバッファ付きディスク アクセス
ディスク領域の割当てには、2 種類の方法があります。
v オペレーティング システムでバッファリングされたファイルを使用する方法。これ
らのファイルは、しばしばクックド ファイルと呼ばれます。
v ロウ ディスク領域とも呼ばれる、バッファなしディスク アクセスを使用する方法
DB 領域がロウ ディスク デバイス (キャラクタ スペシャル デバイス とも呼ばれる)
にある場合は、データベース サーバはバッファなしディスク アクセスを使用します。
データベース サーバは直接ロウ ディスク デバイスへ入出力アクセスするため、クック
ド ファイルを使用する場合よりパフォーマンスが大きく向上します。また、ロウ ディ
スクでは、データベース サーバ メモリとディスク間のデータ転送が、データのコピー
を使用せずに直接行われます。
ロウ デバイスを作成するには、ブロック デバイス (ハード ディスク) をロウ インタ
ーフェイスとともに構成します。ブロック デバイスによって提供される格納領域は、ロ
ウ ディスク領域 と呼ばれます。ロウ ディスク領域のチャンクは、物理的に連続してい
ます。
ディレクトリ /dev にあるキャラクタ スペシャル ファイルの名前がチャンクの名前に
なります。多くのオペレーティング システムでは、キャラクタ スペシャル ファイルと
ブロック スペシャル ファイルは、ファイル名の最初の文字 (通常 r) で区別できます。
例えば /dev/rsd0f は、ブロック スペシャル デバイス /dev/sd0f に対応するキャラクタ
スペシャル デバイスです。
詳しくは、316 ページの『UNIX におけるロウ ディスク領域の割当て』を参照してくだ
さい。
第 10 章 データ記憶域
265
クックド ファイル とは、オペレーティング システムが管理する通常のファイルです。
クックド ファイル チャンクとロウ ディスク チャンクは、両方とも信頼性の高いチャ
ンクです。ロウ ディスク領域とは異なり、論理的に連続したクックド ファイルのブロ
ックは、必ずしも物理的に連続しているわけではありません。
クックド ファイルは、ロウ ディスク領域よりも割当てが簡単にできます。一方、クッ
クド ファイルを割り当てるには、既存のパーティション上にファイルを作成するだけで
済みます。 ファイルの絶対パス名が、チャンクの名前となります。これらの手順の詳細
については、316 ページの『UNIX でのクックド ファイル領域の割当て』を参照してく
ださい。
パフォーマンスがそれほど問題にならない学習環境や、静的データには、クックド ファ
イルが便利です。UNIX でクックド ファイルを使用する必要がある場合は、アクセス頻
度の最も低いデータをそのファイルに格納してください。次いで、使用頻度の低いファ
イル システムにそのファイルを格納してください。
クックド ファイル チャンクでは、オペレーティング システムがそのバッファ プール
のチャンク入出力 すべてを処理するため、確実にチャンクへの書込みすべてを物理的に
ディスクへ書き込むことができます。
重要: パフォーマンスを向上させるため、UNIX でロウ ディスク デバイスを使用する
ことをお勧めしますが、クックド書込みの入出力キャッシュが最近進歩してきた
ため、同じようなパフォーマンス(上回らない) が得られるようになってきまし
た。最善のデバイス パフォーマンスを確認するために、DB 領域および表レイア
ウトについて、両方のタイプのデバイスを使用して、システムでベンチマーク テ
ストを実行してください。
ロウ ディスクを使用する場合は、特別な操作を実行して 2GB より大きいチャンクやフ
ァイルを作成する必要はありません。クックド ファイルに大きいチャンクを作成する場
合、または大きいファイルでデータベースの各種のエクスポートとインポート ユーティ
リティを使用する場合は、大きいファイルを保持するファイルシステムを適切に構成す
る必要があります。
オフセットとは
システム管理者は物理ディスクをパーティション (1 つのディスク上で異なるパス名を
持つ別々の領域) に分割することがあります。ロウ ディスク デバイスにチャンクを割
り当てる場合は、ディスク パーティション全体の使用をお勧めしますが、オフセット
を使用してパーティションまたはクックド ファイルをさらに小さいチャンクに分割する
こともできます。詳しくは、304 ページの『ディスク レイアウトのガイドライン』を参
照してください。
ヒント: チャンクのサイズを 4TB に制限する場合は、各ディスク ドライブに 1 つの
チャンクを割り当ててディスクを分割化する必要はありません。
266
IBM Informix Dynamic Server 管理者ガイド
オフセットを使用すると、ディスク パーティション、ファイル、またはデバイス上にあ
る特定のチャンクの位置を指定できます。例えば、1,000KB のチャンクを作成して、こ
れを 500KB のチャンク 2 つに分割するとします。最初のチャンクに対しオフセット
0KB、2 番目のチャンクに対しオフセット 500KB を使用して、各チャンクの開始位置
を指定できます。
オフセットは、DB 領域、BLOB 領域、SB 領域にチャンクを作成、追加、または削除
するたびに指定できます。
データベース サーバによってパーティション情報が上書きされないように、オフセット
を指定する必要がある場合もあります。オフセットを指定するタイミングと方法につい
ては、316 ページの『UNIX におけるロウ ディスク領域の割当て』で説明します。
ページとは
ページ とは、データベース サーバが Informix データベースの読込みと書込みに使用す
る、ディスク格納領域の物理単位です。図 37 に、光ディスク表面の黒いセクタで表し
たページの概念を示します。
図 37. ディスク上のページ
ほとんどの UNIX プラットフォームでは、ページ サイズが 2KB になっています。
Windows では、ページ サイズは 4KB です。ページ サイズはハードウェアで決まるた
め、この値は変更できません。
図 38 に示すように、チャンクには一定数のページが含まれています。ページは常に全
体が 1 つのチャンク内に収まっていて、チャンクの境界を越えることはできません。
第 10 章 データ記憶域
267
図 38. 論理的に一連のページに分割されたチャンク
データベース サーバによるページ内のデータの編成方法については、「IBM Informix:
Dynamic Server 管理者の参照」のディスク構造と格納に関する章を参照してください。
BLOB ページとは
BLOB ページとは、データベース サーバが BLOB 領域内に、テキスト (TEXT) 型やバ
イト (BYTE) 型であるシンプル ラージ オブジェクトを格納するために使用する、ディ
スク領域の割当ての単位です。BLOB 領域については、276 ページの『BLOB 領域』を
参照してください。
BLOB ページ サイズは、データベース サーバのページ サイズの倍数で指定します。
BLOB ページは連続領域として割り当てられるため、シンプル ラージ オブジェクトの
格納場所は、可能な限りデータのサイズに近い BLOB ページにするほうが効率的で
す。図 39 に、3 つのデータ ページで表した BLOB ページの概念を示します。
図 39. ディスク上の BLOB ページ
Dynamic Server による BLOB ページ内のデータの編成方法については、
「IBM Informix: Dynamic Server 管理者の参照」のディスク構造と格納に関する章の
BLOB 領域と BLOB ページの構造を参照してください。
図 40 に示すように、チャンク内のページと同様、BLOB 領域内のチャンクは一定数の
BLOB ページで構成されます。BLOB ページは常に全体が 1 つのチャンクに収まって
いて、チャンクの境界を越えることはできません。
268
IBM Informix Dynamic Server 管理者ガイド
図 40. 論理的に一連の BLOB ページに分割された BLOB 領域内のチャンク
BLOB 領域に格納するのではなく、DB 領域にシンプル ラージ オブジェクトを格納す
ることもできます。ただし、シンプル ラージ オブジェクトのサイズが 2 ページを超え
る場合は、BLOB 領域に格納したほうがパフォーマンスが向上します。DB 領域に格納
されたシンプル ラージ オブジェクトはページを共有できますが、BLOB 領域に格納さ
れた場合はページを共有しません。
BLOB ページのサイズの判定方法については、338 ページの『BLOB ページ サイズの
判定』を参照してください。
SB ページとは
SB ページは、スマート ラージ オブジェクトを SB 領域へ格納するために、データベ
ース サーバで使用するページのタイプです。SB 領域については、277 ページの『SB
領域』を参照してください。BLOB ページと異なり、SB ページは自分で構成できませ
ん。SB ページのサイズは、データベース サーバのページ サイズと同じになり、UNIX
では通常 2KB、Windows では 4KB になります。
BLOB 領域内での割当て単位が BLOB ページであるのに対して、SB 領域内での割当
て単位はエクステントです。図 41 に示すように、チャンク内のページと同様、SB 領域
内のチャンクは一定数のスマート ラージ オブジェクト エクステントで構成されます。
エクステントは常に全体が 1 つのチャンクに収まり、チャンクの境界を越えることはで
きません。
第 10 章 データ記憶域
269
図 41. 論理的に一連のエクステントに分割された SB 領域内のチャンク
スマート ラージ オブジェクトは、DB 領域や BLOB 領域内に格納できません。詳しく
は、277 ページの『SB 領域』、および「IBM Informix: Dynamic Server 管理者の参照」
のディスク構造と格納に関する章の SB 領域構造を参照してください。
書込み操作時のバイト数などの検出結果を元に、スマート ラージ オブジェクトに対す
るエクステント サイズが、データベース サーバによって計算されます。詳しくは、281
ページの『SB 領域のエクステント サイズ』を参照してください。
エクステント
表を作成すると、その表に格納されるデータを保持するための固定容量領域がデータベ
ース サーバによって割り当てられます。この領域がいっぱいになると、追加の格納場所
となる領域を割り当てる必要があります。初期格納領域とそれ以降の格納領域の両方が
割り当てられるときにデータベース サーバが使用する記憶域の物理単位がエクステント
と呼ばれるものです。エクステントの概念を図 42 に示します。
図 42. ロウ ディスク デバイス上の 6 つの連続ページから構成されるエクステント
エクステントは、ある表のデータを格納する連続したページの集合から構成されます。
(290 ページの『表』を参照。) それぞれの永久データベース表には、それに関連付けら
270
IBM Informix Dynamic Server 管理者ガイド
れたエクステント サイズが 2 種類あります。初期エクステント サイズは、表が最初に
作成されたときに表に割り当てられる KB 数です。追加エクステント サイズは、初期
エクステントおよび以後のすべてのエクステントがいっぱいになったときに、表に割り
当てられる KB 数です。永続表およびユーザ定義の一時表では、エクステントが 16 回
追加されると、それ以降の追加エクステント サイズは指定された KB 数の 2 倍になり
ます。システムによって作成された一時表の場合は、エクステントが 4 回追加される
と、それ以降の追加エクステント サイズが 2 倍になります。
初期および追加エクステント サイズは、CREATE TABLE 文と ALTER TABLE 文を使
用して指定します。詳しくは、「IBM Informix: SQL ガイド: 構文」、および
「IBM Informix: Dynamic Server 管理者の参照」のディスク構造に関する部分を参照し
てください。
CLOB 型または BLOB 型用の列を持つ表を作成するときは、SB 領域に対するエクス
テントも定義します。詳しくは、281 ページの『SB 領域の格納特性』を参照してくだ
さい。
図 43 に、6 つのページがエクステントとして割り当てられるプロセスを示します。
v
エクステントは、常に全体が 1 つのチャンクに収まり、チャンクの境界を越えるこ
とはできません。
v 追加エクステント サイズとして指定された連続ディスク領域をデータベース サーバ
が見つけられない場合、DB 領域内の次のチャンクで連続する領域が探索されます。
第 10 章 データ記憶域
271
1
6
2
1
6
6
図 43. エクステント割当てのプロセス
DB 領域
DB 領域 とは、1 から 32,767 のチャンクを含むことのできる論理単位です。DB 領域
には、データベース、表、論理ログ ファイル、および物理ログを配置します。
データの格納場所の制御
データベース サーバ管理者の主な責務は、データベース サーバがデータを格納する場
所を制御することです。アクセス頻度の高い表や、ルート DB 領域、物理ログ、および
論理ログというクリティカル DB 領域 を最も高速のディスク ドライブに格納すると、
パフォーマンスを向上できます。重要なデータの格納場所となる物理デバイスを切り離
しておくことにより、重要でないデータが格納されているディスクに障害が発生して
も、そのディスク上のデータが利用できなくなるだけで済みます。
図 44 に示すように、データベースや表の配置の制御には、CREATE DATABASE 文ま
たは CREATE TABLE 文のオプション IN dbspace を使用します。(詳しくは、290 ペ
ージの『表』を参照してください。)
272
IBM Informix Dynamic Server 管理者ガイド
UNIX
DB
% onspaces -c -d stores_space -p /dev/rsd0f -o 0 -s 10000
CREATE TABLE stores_demo IN stores_space
/dev/rsd0f
図 44. CREATE TABLE... IN 文を使用する表の配置制御
DB 領域にデータベースまたは表を作成するには、まず DB 領域を作成する必要があり
ます。DB 領域の作成方法の詳細については、321 ページの『デフォルト ページ サイ
ズを使用する DB 領域の作成』を参照してください。
図 45 に示すように、DB 領域には 1 つ以上のチャンクが含まれます。 チャンクの追
加はいつでも行えます。DB 領域のチャンクの残り容量を監視し、DB 領域にさらにチ
ャンクを割り当てる必要があるかどうかを予測することは、データベース サーバ管理者
にとって優先度の高い作業です。(353 ページの『ディスクの使用状況の監視』を参
照。) DB 領域に複数のチャンクが含まれる場合、データが格納されるチャンクを指定
することはできません。
第 10 章 データ記憶域
273
図 45. 記憶域の論理単位と物理単位をリンクする DB 領域
データベース サーバによるデータベースと表の格納には、DB 領域が使用されます。
(290 ページの『表』を参照。)
標準または一時 DB領域を作成する場合は、DB 領域のページ サイズを指定できます。
BLOB 領域、SB 領域、または外部領域のページ サイズは指定できません。ページ サ
イズを指定しないと、ルート DB 領域のサイズはデフォルトのページ サイズになりま
す。詳しくは、 325 ページの『デフォルトでない ページ サイズを使用する DB 領域の
作成』を参照してください。
標準 DB 領域を作成する場合は、DB 領域の表領域表領域の最初および追加のエクステ
ント サイズを指定できます。表領域表領域のエクステント数を減らす場合、および主チ
ャンク以外のチャンクに表領域表領域のエクステントを配置しなければならない状況を
減らす場合に、これを行ってください。詳しくは、 323 ページの『表領域表領域の初期
および追加の追加エクステント サイズの指定』を参照してください。
ミラーリングされた DB 領域では、チャンクをそれぞれミラーリングできます。データ
ベース サーバによってミラー チャンクが割り当てられると、即時にそのミラー チャン
ク内のすべての領域にフルというフラグが立てられます。353 ページの『ディスクの使
用状況の監視』を参照。
274
IBM Informix Dynamic Server 管理者ガイド
ISA または onspaces を使用して次のタスクを実行する方法については、 311 ページの
『第 11 章 ディスク領域の管理』を参照してください。
v DB 領域の作成
v DB 領域へのチャンクの追加
v DB 領域の名前変更
v チャンクの削除
v DB 領域、BLOB 領域、または SB 領域の削除
ルート DB 領域
ルート DB 領域は、データベース サーバによって作成される初期 DB 領域です。ルー
ト DB 領域は、記憶域のすべての物理単位および論理単位の記述と追跡を行う予約ペー
ジと内部表を含む特殊な領域です。(これらの詳細については、290 ページの『表』と、
「IBM Informix: Dynamic Server 管理者の参照」のディスク構造と格納に関する章を参
照してください。) ディスク初期化中に作成されるチャンクは、ルート DB 領域の初期
チャンクとそのミラーのみです。ルート DB 領域へのほかのチャンクの追加は、ディス
ク初期化後に行います。
構成ファイル ONCONFIG の次のディスク構成パラメータは、ルート DB 領域の最初の
(初期) チャンクを参照します。
v ROOTPATH
v ROOTOFFSET
v ROOTNAME
v MIRRORPATH
v MIRROROFFSET
v TBLTBLFIRST
v TBLTBLNEXT
ルート DB 領域は、CREATE DATABASE 文によって作成されたすべてのデータベー
スの、デフォルトの DB 領域位置にもなっています。
ルート DB 領域は、要求されたデータ管理を実行するために、データベース サーバに
よって作成されるすべての一時表のデフォルト位置です。
ルート DB 領域に割り当てる領域の大きさについては、302 ページの『ルート DB 領
域のサイズ』で説明されています。データベース サーバのディスク領域を初期化したあ
とで、ルート DB 領域にさらにチャンクを追加することもできます。
一時 DB 領域
一時 DB 領域とは、一時表を格納する目的に限り予約されている DB 領域です。 ま
た、一時 DB 領域はミラーリングできません。
第 10 章 データ記憶域
275
明示的に指示しない限り、一時 DB 領域がデータベース サーバによって削除されるこ
とはありません。一時 DB 領域は、データベース サーバが異常停止した場合に DB 領
域の内容が保存されないという意味で、一時的なものと言えます。
データベース サーバを初期化するたびに、一時 DB 領域がすべて再初期化されます。
前回のデータベース サーバの停止後に残った表が、すべてクリアされるわけです。
一時 DB 領域に対する論理的および物理的なログの記録は実行されません。一時 DB
領域は物理ログに記録されないため、チェックポイントや入出力操作の数が減少しま
す。この結果、パフォーマンスが向上します。
表の作成、エクステントの割当て、および標準 DB 領域における一時表のための表の削
除は、データベース サーバによって記録されます。 一方、一時 DB 領域に保管されて
いる表はログに記録されません。一時 DB 領域の論理ログを抑制すると、論理復旧の過
程でロールフォワードされるログ レコード数も減り、その結果として不安定なダウン時
間中のパフォーマンスが向上します。
データベース サーバによる一時 DB 領域のバックアップが行われないため、一時 DB
領域を使用して一時表を格納すると、格納領域のバックアップ サイズも減少します。
複数の一時 DB 領域を保有する場合に、一時表に対して SELECT 文を実行すると、問
合せの結果はラウンドロビン順に挿入されます。
一時 DB 領域の作成方法の詳細については、330 ページの『一時 DB 領域の作成』を
参照してください。
重要: データベース サーバが、HDR ペアの副データベース サーバとして実行されてい
る場合、読取り専用問合せによって作成される内部一時表を格納するために、一
時 DB 領域が必要となります。
BLOB 領域
BLOB 領域は、テキスト (TEXT) 型とバイト (BYTE) 型のみを格納する、1 つ以上の
チャンクから構成される論理記憶単位です。BLOB 領域には、テキスト (TEXT) 型とバ
イト (BYTE) 型が可能な限り効率的に格納されます。別個の表 (290 ページの『表』参
照) に関連付けられたテキスト (TEXT) 型列とバイト (BYTE) 型列を同じ BLOB 領域
に格納できます。
BLOB 領域に格納されたデータは、データベース サーバによってディスクに直接書き
込まれます。このデータは常駐共有メモリを経由しません。常駐共有メモリを経由する
と、バッファ プール ページを多数占有し、ほかのデータやインデックスが押し出され
る可能性があります。同じ理由から、BLOB 領域に割り当てられたテキスト (TEXT) 型
オブジェクトとバイト (BYTE) 型オブジェクトは、論理ログと物理ログのいずれにも書
き込まれません。論理ログのバックアップでは、BLOB 領域オブジェクトがディスクか
276
IBM Informix Dynamic Server 管理者ガイド
ら論理ログ バックアップ テープに直接書き込まれることで、データベース サーバによ
って BLOB 領域が記録されます。BLOB 領域オブジェクトは、論理ログ ファイルを経
由しません。
BLOB 領域を作成するときは、1 つ以上のチャンクを BLOB 領域に割り当てます。 チ
ャンクの追加はいつでも行えます。チャンクの残り容量を監視して、チャンクを BLOB
領域に追加すべきかどうかを予測することは、データベース サーバ管理者の仕事です。
チャンクの残り容量の監視方法については、360 ページの『BLOB 領域内のシンプル
ラージ オブジェクトの監視』を参照してください。BLOB 領域の作成、BLOB 領域へ
のチャンクの追加、および BLOB 領域からのチャンクの削除の各方法については、
311 ページの『第 11 章 ディスク領域の管理』を参照してください。
BLOB 領域の構造については、「IBM Informix: Dynamic Server 管理者の参照」のディ
スク構造と格納に関する章を参照してください。
SB 領域
SB 領域は、スマート ラージ オブジェクト を格納する 1 つ以上のチャンクから構成
される論理記憶域単位です。スマート ラージ オブジェクトは、CLOB (Character Large
Object: 文字ラージ オブジェクト) 型と BLOB (Binary Large Object: バイナリ ラージ
オブジェクト) 型から構成されます。ユーザ定義データ型でも SB 領域を使用できま
す。型の詳細については、「IBM Informix: SQL ガイド: 参照」を参照してください。
SB 領域を使用する利点
SB 領域には、BLOB 領域に比べて次のような利点があります。
v 標準の UNIX ファイルに似た読込み、書込み、およびシーク特性
プログラマは UNIX や Windows の関数と同じような関数を使用して、スマート ラ
ージ オブジェクトの読込み、書込み、およびシークを行うことができます。Dynamic
Server からは DataBlade API および ESQL/C プログラミング インターフェイスの中
で、このスマート ラージ オブジェクト インターフェイスが提供されます。
v
復旧可能
SB 領域に格納されたデータに関する、すべての書込み操作を記録できます。トラン
ザクション中に障害が発生した場合は、変更をコミットしたり、ロールバックしたり
できます。
v
トランザクション排他モードに対応
スマート ラージ オブジェクトをきめ細かなレベル設定でロックでき、ロック期間は
トランザクション排他レベルのルールに従います。ロックと同時実行の詳細について
は、「IBM Informix: Dynamic Server パフォーマンス ガイド」を参照してください。
v 表の行にあるスマート ラージ オブジェクトの、1 つの文での抽出が不要
第 10 章 データ記憶域
277
DataBlade API または ESQL/C プログラミング インターフェイスを使用すると、ア
プリケーションによってスマート ラージ オブジェクトを一部分のみ格納したり、抽
出したりできます。DataBlade API 関数の詳細については、「IBM Informix:
DataBlade API Function Reference」を参照してください。ESQL/C 関数の詳細につい
ては、「IBM Informix: ESQL/C Programmer’s Manual」を参照してください。
SB 領域とエンタープライズ レプリケーション
エンタープライズ レプリケーションのレプリケーション サーバを定義するには、まず
SB 領域を作成する必要があります。エンタープライズ レプリケーションにより、複製
データがスマート ラージ オブジェクトにスプールされます。構成パラメータ
CDR_QDATA_SBSPACE で、SB 領域名を指定します。エンタープライズ レプリケー
ションは、デフォルトのロギング モードを使用して、行データをスプールする SB 領
域を作成します。構成パラメータ CDR_QDATA_SBSPACE は、最大 32 個の複数の
SB 領域を適用できます。エンタープライズ レプリケーションは、スプールされた行デ
ータを保管するために、ログ付き SB 領域およびログなし SB 領域の組合せをサポート
します。詳しくは、「IBM Informix: Dynamic Server エンタープライズ レプリケーショ
ン ガイド」を参照してください。
メタデータ、ユーザ データ、および予約された領域
BLOB 領域および DB 領域と同様に、SB 領域を作成するときは、1 つ以上のチャンク
を割り当てます。ただし、SB 領域の最初のチャンクには必ず 3 つの領域があります。
v メタデータ領域
メタデータ によって、SB 領域とその領域に格納されたスマート ラージ オブジェク
トの主要な点が識別され、データベース サーバを使用してスマート ラージ オブジ
ェクトの操作や復旧が実行できるようになります。
v ユーザ データ領域
ユーザ データとは、ユーザ アプリケーションによって SB 領域に格納されたスマー
ト ラージ オブジェクト データです。チャンクには、最大 2 つのユーザ領域があり
ます。
v 予約領域
メタデータ領域またはユーザ データ領域のいずれかが不足すると、予約領域の一部
が割り当てられます。 チャンクには、最大 2 つの予約領域があります。
SB 領域のメタデータとユーザ データを正しく割り当てる方法については、340 ページ
の『SB 領域のメタデータのサイズ設定』、および「IBM Informix: Dynamic Server パフ
ォーマンス ガイド」を参照してください。
SB 領域にチャンクを追加するときは、メタデータ領域とユーザ データ領域を格納する
かどうか、あるいはユーザ データ専用にチャンクを予約するかどうかを指定できます。
278
IBM Informix Dynamic Server 管理者ガイド
チャンクの追加はいつでも行えます。スマート ラージ オブジェクトを更新している場
合、ユーザ データへの入出力は、クックド チャンク ファイルよりロウ ディスクのほ
うが高速で行われます。SB 領域の作成、SB 領域へのチャンクの追加、および SB 領
域からのチャンクの削除の各方法については、 311 ページの『第 11 章 ディスク領域の
管理』を参照してください。
重要: SB 領域のメタデータは、データベースのログの設定に関係なく、常に記録されま
す。
データの格納場所の制御
表を作成するときは、列の型を指定できます。スマート ラージ オブジェクトの場合
は、CLOB 型、BLOB 型、またはユーザ定義データ型を指定できます。図 46 に示すよ
うに、スマート ラージ オブジェクトの配置を制御するには、CREATE TABLE 文の
PUT 節でオプション IN sbspace を使用します。
UNIX
SB
% onspaces -c -S s9_sbspc -g 4 -p./s9_sbspc -o 0 -s 2000
CREATE TABLE catalog
(...advert_descr CLOB, ...)
...PUT advert_descr IN s9_sbspc
s9_sbspc
図 46. スマート ラージ オブジェクトの配置の制御
PUT 節で SB 領域を指定するには、あらかじめ SB 領域を作成しておく必要がありま
す。コマンド onspaces のオプション -c -S で SB 領域を作成する方法については、
331 ページの『DB 領域または BLOB 領域へのチャンクの追加』を参照してください。
PUT 節でスマート ラージ オブジェクトの特性を指定する方法については、
「IBM Informix: SQL ガイド: 構文」の CREATE TABLE 文を参照してください。
PUT 節を指定しなかった場合は、構成パラメータ SBSPACENAME で指定したデフォ
ルトの SB 領域に、スマート ラージ オブジェクトが格納されます。SBSPACENAME
の詳細については、「IBM Informix: Dynamic Server 管理者の参照」の構成パラメータ
の章を参照してください。
図 47 に示すように、SB 領域には 1 つ以上のチャンクが含まれます。SB 領域に複数
のチャンクが含まれる場合、データの格納場所となるチャンクを指定することはできま
せん。
第 10 章 データ記憶域
279
チャンクの追加はいつでも行えます。SB 領域のチャンクの残り容量を監視し、SB 領域
にチャンクを追加する必要があるかどうかを予測することは、データベース サーバ管理
者にとって優先度の高い仕事です。SB 領域の監視方法の詳細については、
「IBM Informix: Dynamic Server パフォーマンス ガイド」を参照してください。
1
2
3
n
DB
1
1
SB
1
1
(SERIAL)
(SMALLINT)
(INTEGER)
CLOB
2
図 47. 記憶域の論理単位と物理単位をリンクする SB 領域
データベース サーバでは、スマート ラージ オブジェクトを含む表の列を格納するため
に SB 領域が使用されます。それ以外の表の列の格納には、DB 領域が使用されます。
SB 領域をミラーリングしておくと、メディア障害時の復旧が早まります。詳しくは、
465 ページの『ミラーリング』を参照してください。
onspaces を使用して次のタスクを実行する方法については、 311 ページの『第 11 章
ディスク領域の管理』を参照してください。
v SB 領域の作成
v SB 領域へのチャンクの追加
v スマート ラージ オブジェクトの格納特性の変更
v 一時 SB 領域の作成
v SB 領域の削除
280
IBM Informix Dynamic Server 管理者ガイド
SB 領域の格納特性
データベース サーバ管理者は、これらの格納特性の値としてシステム デフォルトを使
用することも、onspaces のオプション -c を用いて SB 領域を作成するときにタグ -Df
でこれらの値を指定することもできます。また、あとで onspaces のオプション -ch を
使用して SB 領域の特性を変更することもできます。データベース管理者やプログラマ
は、個々の表の格納域の特性と属性について、そのデフォルト値を上書きできます。
SB 領域のエクステント サイズ
表内のエクステントと同様に、SB 領域内のエクステントも、スマート ラージ オブジ
ェクト データの格納された一連のページの集合で構成されます。
SB 領域内の割当て単位がエクステントです。書込み操作時のバイト数などの検出結果
を元に、スマート ラージ オブジェクトに対するエクステント サイズが、データベース
サーバによって計算されます。例えば、ある操作で 30KB の書込みが要求されたとする
と、30KB のエクステント サイズが割り当てられます。
重要: ほとんどのアプリケーションについては、データベース サーバによる計算値をエ
クステント サイズに使用することをお勧めします。
スマート ラージ オブジェクトのサイズがわかっている場合は、次のいずれかの関数を
使用してエクステント サイズを設定できます。チャンクにスマート ラージ オブジェク
ト全体を格納できるエクステントがあれば、そのスマート ラージ オブジェクト全体が
1 つのエクステントとして割り当てられます。
v DataBlade API の mi_lo_specset_estbytes() 関数
スマート ラージ オブジェクトに対する DataBlade API 関数の詳細については、
「IBM Informix: DataBlade API Function Reference」を参照してください。
v ESQL/C の ifx_lo_specset_estbytes 関数
スマート ラージ オブジェクトに対する ESQL/C 関数の詳細については、
「IBM Informix: ESQL/C Programmer’s Manual」を参照してください。
エクステント サイズの調整方法については、「IBM Informix: Dynamic Server パフォー
マンス ガイド」の構成が入出力使用率に与える影響に関する章の、スマート ラージ オ
ブジェクトの説明を参照してください。
スマート ラージ オブジェクトの平均サイズ
スマート ラージ オブジェクトの長さはさまざまです。SB 領域に対する領域を計算す
るのに、スマート ラージ オブジェクトの平均サイズを指定できます。この平均サイズ
の指定は、onspaces のオプション -c -Df のタグ AVG_LO_SIZE で行います。
メタデータ領域のサイズと格納場所を指定するには、コマンド onspaces でフラグ -Ms
および -Mo を指定します。フラグ -Ms を使用しない場合は、AVG_LO_SIZE の値か
第 10 章 データ記憶域
281
ら、メタデータ領域に割り当てる領域の大きさが予測されます。詳しくは、340 ページ
の『SB 領域のメタデータのサイズ設定』 を参照してください。
バッファリング モード
SB 領域作成時のデフォルトのバッファリング モードはオンになっているため、共有メ
モリの常駐部分にあるバッファ プールが使用されることになります。
データベース管理者は、onspaces のオプション -c -Df のタグ BUFFERING でバッファ
リング モードを指定できます。デフォルトでは「buffering=ON」になっているため、バ
ッファ プールが使用されます。バッファリングをオフにすると、共有メモリの仮想部分
にあるプライベート バッファが使用されます。
重要: 一般に、スマート ラージ オブジェクトの読込みおよび書込み操作が 8KB 未満
の場合は、SB 領域の作成時にバッファリング モードを指定しないでください。
2KB や 4KB といった短いデータ ブロックの読込みまたは書込み時は、デフォ
ルトの「buffering=ON」のままのほうが高いパフォーマンスを得ることができま
す。
どのような場合にプライベート バッファを使用するかについては、「IBM Informix:
Dynamic Server パフォーマンス ガイド」にある入出力使用率に対する構成の影響の章
の、軽量入出力操作のセクションを参照してください。
最終アクセス時間
SB 領域を作成するとき、onspaces のオプション -c -Df のタグ ACCESSTIME を使用
して、スマート ラージ オブジェクトが最後に読込みまたは書込みされた時間を、デー
タベース サーバで保存するかどうか指定できます。デフォルトは
「ACCESSTIME=OFF」です。最終アクセス時間がメタデータ領域内に保存されます。
プログラマがこの最終アクセス時間を使用する方法の詳細については、「IBM Informix:
DataBlade API Programmer’s Guide」、および「IBM Informix: ESQL/C Programmer’s
Manual」を参照してください。
ロック モード
SB 領域を作成するとき、スマート ラージ オブジェクトの全体またはその一部のバイ
ト範囲をデータベース サーバによりロックするかどうかを、onspaces のオプション -c
-Df のタグ LOCK_MODE で指定できます。デフォルトは「LOCK_MODE=BLOB」であ
り、スマート ラージ オブジェクト全体がロックされます。詳しくは、「IBM Informix:
Dynamic Server パフォーマンス ガイド」のロックに関する章を参照してください。
ログ機能
SB 領域を作成するとき、スマート ラージ オブジェクトに対するログをオンにするか
どうかを指定できます。 デフォルトではログなしです。詳細については、401 ページの
『SB 領域とスマート ラージ オブジェクトのログ機能』を参照してください。
282
IBM Informix Dynamic Server 管理者ガイド
重要: ログ機能付きデータベースを使用している場合は、SB 領域に対するログをオンに
してください。ログの復旧が必要な障害が発生しても、スマート ラージ オブジ
ェクトと残りのデータベースとの一貫性を保つことができます。
ログ機能状態は、onspaces のオプション -c -Df のタグ LOGGING で指定します。デフ
ォルトは「LOGGING=off」です。ログ機能状態は、onspaces のオプション -ch -Df で
変更できます。SQL 文の CREATE TABLE または ALTER TABLE の PUT 節を使用
すると、このログ機能状態をオーバーライドできます。これらの SQL 文の詳細につい
ては、「IBM Informix: SQL ガイド: 構文」を参照してください。
DataBlade API および ESQL/C により提供されている関数を使用すると、プログラマは
このログ機能状態をオーバーライドできます。スマート ラージ オブジェクトに対する
DataBlade API 関数の詳細については、「IBM Informix: DataBlade API Function
Reference」を参照してください。スマート ラージ オブジェクトに対する ESQL/C 関数
の詳細については、「IBM Informix: ESQL/C Programmer’s Manual」を参照してくださ
い。
ある SB 領域に対するログをオンにすると、スマート ラージ オブジェクトは共有メモ
リの常駐部分を経由するようになります。アプリケーションからスマート ラージ オブ
ジェクトの一部のみを抽出することはできますが、バッファ プールと論理ログ バッフ
ァを経由する可能性のあるサイズの大きいデータについては考慮が必要です。詳細につ
いては、241 ページの『スマート ラージ オブジェクトへのアクセス』を参照してくだ
さい。
SB 領域特性の継承レベル
SB 領域特性の継承には、システム、SB 領域、列、およびスマート ラージ オブジェク
トの 4 つのレベルがあります。SB 領域の属性に対してシステムのデフォルト値を使用
することも、特定の SB 領域、表の列、またはスマート ラージ オブジェクトに対して
これらの値をオーバーライドすることもできます。図 48 に、スマート ラージ オブジ
ェクトに対する格納特性の階層構造を示します。
第 10 章 データ記憶域
283
(
)
SB
(onspaces
SB
onspaces -ch
SB
)
(CREATE TABLE
ALTER TABLE
)
mi_lo_create
(DataBlade API
ESQL/C
ifx_lo_create
)
図 48. 格納特性の階層構造
図 48 からは、次の方法でシステム デフォルトをオーバーライドできることがわかりま
す。
v コマンド onspaces のオプション -c -S のタグ -Df を使用して、特定の SB 領域の
システム デフォルトをオーバーライドします。
あとで onspaces のオプション -ch を使用して SB 領域の SB 領域属性を変更する
こともできます。タグ -Df の有効範囲については、「IBM Informix: Dynamic Server
管理者の参照」の onspaces に関するセクションを参照してください。
v CREATE TABLE 文または ALTER TABLE 文の PUT 節で属性を指定すると、特定
の列に対するシステム デフォルトをオーバーライドできます。
これらの SQL 文の詳細については、「IBM Informix: SQL ガイド: 構文」を参照し
てください。
v プログラマは、DataBlade API と ESQL/C のプログラミング インターフェイスによ
り提供される関数を使用して、特定のスマート ラージ オブジェクトに対する SB 領
域属性のデフォルト値をオーバーライドできます。
SB 領域に関するそのほかの情報
SB 領域の使用と管理に関連するさまざまな作業についての情報源のリストを表 28 に示
します。
284
IBM Informix Dynamic Server 管理者ガイド
表 28. SB 領域での作業に関する情報源
作業
参照先
スマート ラージ オブジェクトに対するメモリ
構成パラメータの設定
245 ページの『第 9 章 共有メモリの管理』
SB ページの理解
269 ページの『SB ページとは』
SB 領域に対する入出力特性の指定
281 ページの『SB 領域の格納特性』の onspaces オプ
ション
SB 領域に対する領域の割当て
339 ページの『SB 領域の作成』
SB 領域へのチャンクの追加
341 ページの『SB 領域へのチャンクの追加』
スマート ラージ オブジェクトに対する格納特
性の定義または変更
342 ページの『スマート ラージ オブジェクトの格納特
性の変更』
「IBM Informix: SQL ガイド: 構文」の CREATE
TABLE 文または ALTER TABLE 文の PUT 節
SB 領域の監視
364 ページの『SB 領域の監視』
「IBM Informix: Dynamic Server パフォーマンス ガイ
ド」の表のパフォーマンスに関する注意事項の章
SB 領域のログ機能のセット アップ
401 ページの『SB 領域とスマート ラージ オブジェク
トのログ機能』
SB 領域のバックアップ
410 ページの『SB 領域のバックアップ』
SB 領域の一貫性検査
546 ページの『メタデータの妥当性検査』
SB 領域の構造
「IBM Informix: Dynamic Server 管理者の参照」のディ
スク構造に関する章
SB 領域に対する onspaces の使用方法
「IBM Informix: Dynamic Server 管理者の参照」のユー
ティリティに関する章
CLOB 型または BLOB 型を持つ表の作成
IBM Informix: SQL ガイド: 構文
アプリケーション内のスマート ラージ オブジ
ェクトへアクセス
IBM Informix: DataBlade API Programmer’s
GuideIBM Informix: ESQL/C Programmer’s Manual
メタデータ領域のサイズの計算
「IBM Informix: Dynamic Server パフォーマンス ガイ
ド」の表のパフォーマンスに関する章
メタデータ入出力の向上
格納特性の変更
スマート ラージ オブジェクトのロックの理解
「IBM Informix: Dynamic Server パフォーマンス ガイ
ド」のロックに関する章
一時スマート ラージ オブジェクト用の SB 領
域の構成
「IBM Informix: Dynamic Server パフォーマンス ガイ
ド」の構成が入出力動作に与える影響に関する章
第 10 章 データ記憶域
285
一時 SB 領域
一時 SB 領域 を使用すると、メタデータ ログ機能やユーザ データ ログ機能なしで、
一時スマート ラージ オブジェクトを格納できます。一時スマート ラージ オブジェク
トを標準 SB 領域に格納すると、メタデータがログに記録されます。 一時 SB 領域
は、一時 DB 領域に似ています。一時 SB 領域を作成するには、コマンド onspaces の
オプション -c -S とオプション -t を使用します。詳しくは、342 ページの『一時 SB
領域の作成』を参照してください。
一時ラージ オブジェクトは、標準 SB 領域および一時 SB 領域のどちらにも格納でき
ます。
v パラメータ SBSPACETEMP で一時 SB 領域を指定すると、その一時 SB 領域には一
時スマート ラージ オブジェクトを格納できます。
v パラメータ SBSPACENAME で標準 SB 領域を指定すると、その標準 SB 領域には
一時および永続スマート ラージ オブジェクトを格納できます。
v CREATE TEMP TABLE 文で一時 SB 領域名を指定すると、その一時 SB 領域には
一時スマート ラージ オブジェクトを格納できます。
v CREATE TABLE 文で永続 SB 領域名を指定すると、その永続 SB 領域に一時スマ
ート ラージ オブジェクトを格納できます。
v パラメータ SBSPACETEMP および SBSPACENAME を省略すると、スマート ラー
ジ オブジェクトの作成時に、エラー メッセージ -12053 が表示される場合がありま
す。
v パラメータ SBSPACENAME で一時 SB 領域を指定しても、その一時 SB 領域に永
続 スマート ラージ オブジェクトを格納することはできません。格納できるのは、
一時スマート ラージ オブジェクトのみになります。
一時 SB 領域と標準 SB 領域の相違点
表 29 に、標準 SB 領域と一時 SB 領域の相違点を示します。
286
IBM Informix Dynamic Server 管理者ガイド
表 29. 一時 SB 領域と標準 SB 領域
特性
標準 SB 領域
一時 SB 領域
スマート ラージ オブジ
ェクトの格納
あり
なし
一時スマート ラージ オ
ブジェクトの格納
あり
あり
メタデータのログ機能
メタデータは常にログに記録されま
す。
メタデータはログに記録されません。
ユーザ データのログ機能 一時スマート ラージ オブジェクトの
ユーザ データはログに記録されませ
んが、永続スマート ラージ オブジェ
クトのユーザ データは、
LOGGING=ON であれば記録されま
す。
ユーザ データはログに記録されませ
ん。
高速復旧
なし (データベース サーバの再起動
時に SB 領域は空になります)。
あり
領域の作成と削除、およびチャンクの
追加はログに記録されます。
一時スマート ラージ オブジェクトを
クリーンアップしないで共有メモリを
初期化するには、oninit -p を指定し
ます。残した一時ラージ オブジェク
トの状態は不確定になります。
バックアップおよび復元
あり
なし
チャンクの追加と削除
あり
あり
構成パラメータ
SBSPACENAME
SBSPACETEMP
一時スマート ラージ オブジェクト
一時スマート ラージ オブジェクト は、バックアップからの復元や高速復旧でのログの
再実行を必要としないテキストやイメージ データ (CLOB や BLOB) を保管するために
使用します。一時スマート ラージ オブジェクトは、ユーザ セッションの間のみ保存さ
れるため、永続スマート ラージ オブジェクトより速く更新されます。
一時スマート ラージ オブジェクトの作成手順は永続スマート ラージ オブジェクトと
同じですが、ifx_lo_specset_flags 関数または mi_lo_specset_flags 関数のフラグ
LO_CREATE_TEMP を設定する必要があります。一時スマート ラージ オブジェクトか
ら永続スマート ラージ オブジェクトを作成する場合は、mi_lo_copy または
ifx_lo_copy を使用します。一時スマート ラージ オブジェクトを作成する方法について
は、「IBM Informix: DataBlade API Programmer’s Guide」を参照してください。
第 10 章 データ記憶域
287
重要: 一時ラージ オブジェクトへのポインタは、一時表のみに格納してください。一時
ラージ オブジェクトへのポインタを標準表に格納してデータベース サーバを再
起動すると、エラーが発生し、ラージ オブジェクトが存在しないというメッセー
ジが表示されます。
表 30 に、標準スマート ラージ オブジェクトと一時スマート ラージ オブジェクトの
相違点を示します。
表 30. 一時スマート ラージ オブジェクトと標準スマート ラージ オブジェクト
特性
スマート ラージ オブジェクト
一時スマート ラージ オブジェクト
作成フラグ
LO_CREATE_LOG または
LO_CREATE_NOLOG
LO_CREATE_TEMP
ロールバック
あり
なし
ログ
あり (オンに設定されている場
合)
なし
保存期間
永続的 (ユーザによって削除され ユーザ セッションまたはトランザクションの
るまで)
終了時に削除
格納される表タイプ
永続表または一時表
一時表
EXT 領域
EXT 領域は、外部データの位置を示す任意の文字列に関連付けられた論理名です。EXT
領域が参照するリソースは、その内容にアクセスするためのユーザ定義のアクセス方法
によって決まります。
例えば、データベース ユーザには独自のフォーマットにエンコードされたバイナリ フ
ァイルへのアクセスが必要です。まず最初に、データにアクセスするルーチンがセット
になったアクセス方法 を、開発者が作成します。これらのルーチンでは、データベース
サーバと外部ファイルとの間のすべての対話を担当します。次に、ターゲットのファイ
ルを格納する EXT 領域が DBA によってデータベースに追加されます。DBA によっ
て EXT 領域内に表が作成されると、ユーザは SQL 文を使用して独自ファイル内のデ
ータへアクセスできるようになります。これらのファイルの位置は、EXT 領域情報で知
ることができます。
EXT 領域はファイル名とは限りません。 例えば、ネットワーク位置である場合もあり
ます。 データをアクセスするルーチンは、どのような方法でも EXT 領域に関連付けら
れた文字列内の情報を使用できます。
ユーザ定義のアクセス方法については、「IBM Informix: Virtual-Table Interface
Programmer’s Guide」を参照してください。関数の作成方法と主アクセス方法の詳細に
ついては、「IBM Informix: SQL ガイド: 構文」を参照してください。
288
IBM Informix Dynamic Server 管理者ガイド
データベースとは
データベースとは、表とインデックスを含む論理記憶単位です。(290 ページの『表』を
参照。) 各データベースには、表、インデックス、SPL ルーチン、整合性制約などデー
タベース内のほとんどの要素に関する情報を追跡するシステム カタログも含まれていま
す。
データベースは、CREATE DATABASE 文によって指定された DB 領域内に格納され
ます。CREATE DATABASE 文で明示的に DB 領域名を指定しなかった場合、データ
ベースはルートの DB 領域に格納されます。CREATE DATABASE 文で DB 領域を指
定した 場合は、この DB 領域が次の表の格納場所になります。
v データベースのシステム カタログ表
v そのデータベースに属するすべての表
データベース stores_demo に含まれる表を図 49 に示します。
stores_demo
Customer
cust_calls
Orders
Items
Stock
call_type
manufact
State
Catalog
zip_ix
systables
sysviews
図 49. データベース stores_demo
データベースに適用されるサイズ制限は、DB 領域内での位置と関係があります。 デー
タベース内のすべての表が、ある 1 つの物理デバイス上に必ず作成されるようにするに
は、そのデバイスにチャンクを 1 つだけ割り当て、そのチャンクのみを含む DB 領域
を作成します。 データベースをその DB 領域内に配置してください。ある物理デバイ
スに割り当てられたチャンク内にデータベースを配置した場合、データベースのサイズ
はそのチャンクのサイズに制限されます。
作成したデータベースのリストを作成する方法については、352 ページの『データベー
スの表示』を参照してください。
第 10 章 データ記憶域
289
表
リレーショナル データベース システムでは、表は列見出しの行と、0 個以上のデータ
値の行から構成されます。列見出しの行により、1 つ以上の列の識別がなされており、
また、各列のデータ型の識別も行われます。
表を作成すると、ページ ブロック内にエクステントと呼ばれる表のためのディスク領域
が割り当てられます。(270 ページの『エクステント』を参照。) 初期および追加のエク
ステントについては、どちらも自分でサイズを指定できます。
表の作成時に DB 領域に名前を付けることによって、表を特定の DB 領域に配置でき
ます。通常、DB 領域の命名は CREATE TABLE のオプション IN dbspace で行いま
す。DB 領域を指定しなかった場合、データベース サーバにより、データベースが格納
されている DB 領域内に表が配置されます。
以下のようにすることもできます。
v 表をフラグメント化して、複数の DB 領域に分散させることもできます。ただし、フ
ラグメントを異なるページ サイズの DB 領域に置くことはできません。すべてのフ
ラグメントは、同じページ サイズでなければなりません。
その場合、表の分散スキームを定義して、表のどの行をどの DB 領域に配置するかを
指定する必要があります。
v フラグメント表が式ベースまたはラウンドロビンの分散スキームを使用する場合は、
1 つの DB 領域内にフラグメント表の複数のパーティションを作成できます。
すべての表および表のフラグメントは、それが作成された DB 領域内に格納されます。
このことから、データベース サーバ管理者は、DB 領域内に表を配置して、DB 領域が
いっぱいになったときにチャンクの追加を拒否することで、表の拡大を制限できます。
分散スキームの詳細については、「IBM Informix: データベース設計および実装 ガイ
ド」を参照してください。複数のディスクに表とインデックスをフラグメント化して、
パフォーマンス、同時実行性、データ可用性、およびバックアップ機能を向上させる方
法については、「IBM Informix: Dynamic Server パフォーマンス ガイド」を参照してく
ださい。
図 50 に示すとおり、表はエクステントから構成され、複数のチャンクにまたがること
ができます。
290
IBM Informix Dynamic Server 管理者ガイド
1
2
2
1
2
図 50. 複数のチャンクにまたがる表
シンプル ラージ オブジェクトは、表のデータ ページを持つ DB 領域と、それとは別
の BLOB 領域の、どちらの BLOB ページ内にも格納できます。光ディスク記憶サブシ
ステム を使用する場合は、シンプル ラージ オブジェクトを光ディスク記憶サブシステ
ムに格納することもできます。
表の格納場所に関するヒントについては、304 ページの『ディスク レイアウトのガイド
ライン』、および「IBM Informix: Dynamic Server パフォーマンス ガイド」を参照して
ください。
Dynamic Server の表タイプ
Dynamic Server のログ機能付きデータベースでは、ログ付き表またはログなし表を作成
できます。これらの 2 種類の表は、それぞれ STANDARD (標準) (ログ付き表)、およ
び RAW (ロウ) (ログなし表) と呼ばれます。 デフォルトの標準表は、以前のバージョ
ンと同様、特定のキーワードを指定しないで作成されます。標準表またはロウ表のいず
れかを作成し、後で表のタイプを変更することもできます。
ログ機能なしデータベースでは、標準表とロウ表の両方がログなしになります。このた
め、ログ機能なしデータベースの場合、標準とロウの唯一の違いは、ロウ表ではインデ
ックスと参照制約が使用できないという点になります。
表 31 に、Dynamic Server で使用できる表タイプの特性をリストしています。記載され
ているフラグ値は、systables の flags 列にある各表タイプの 16 進数の値です。
第 10 章 データ記憶域
291
表 31. Dynamic Server の表タイプ
特性
STANDARD
RAW
TEMP
永続的
はい
はい
いいえ
ログ付き
はい
いいえ
はい
インデックス
はい
いいえ
はい
ロールバック
はい
いいえ
はい
復旧可能
はい
はい (更新されていない
場合)
いいえ
復元可能
はい
はい (更新されていない
場合)
いいえ
ロード可能
はい
はい
はい
エンタープライズ レプ
リケーション
はい
いいえ
いいえ
フラグ値
なし
0x10
なし
標準永続表
標準表は、ログ機能付きデータベースで作成される表と同じものです。標準表では、ラ
イト アペンドを使用しません。レコードごとにすべての操作がログに記録されるため、
標準 表は復旧およびロールバックできます。また、標準表のバックアップや復元も実行
できます。 ログ機能を使用すると、ウォーム復元や時間指定復元を実行するときに、最
後の物理バックアップ以降の更新を適用できます。標準表では、エンタープライズ レプ
リケーションを使用できます。
標準表は、ログ機能付きおよびログ機能なしデータベースの両方で、デフォルトの表タ
イプとなっています。標準表は、ログ機能付きデータベースに格納するとログ付きにな
りますが、ログ機能なしデータベースではログなしになります。
ロウ表
ロウ表は、ログなしの永続表であり、ログ機能なしデータベースで作成される表に似て
います。ロウ表では、ライト アペンド を使用します。ライト アペンドとは、各表フラ
グメントの最後に行を早く追加する機能です。ロウ表では、更新、挿入、および削除が
サポートされていますが、いずれの操作もログには記録されません。また、ロウ表で
は、インデックス、参照制約、およびロールバックはサポートされていません。最後に
物理バックアップされてからロウ表が更新されていなければ、その物理バックアップを
使用して表を復元できます。高速復旧時には、標準表の未完了トランザクションはロー
ルバックされますが、ロウ表の未完了トランザクションはロールバックされません。ロ
グ機能付きデータベースおよびログ機能なしデータベースのいずれに格納しても、ロウ
表の属性は変化しません。
292
IBM Informix Dynamic Server 管理者ガイド
ロウ表は、主にデータの初期のロードと妥当性検査に使用します。ロウ表のロードで
は、dbexport、または高速モードの High-Performance Loader (HPL) など、任意のロー
ド ユーティリティを使用できます。ロウ表のロード中にエラーまたは障害が発生する
と、その時点でディスク上にあるデータ以外は失われます。
トランザクション内ではロウ表を使用しないことをお勧めします。データのロードが完
了したら、トランザクションで使用する前に、ALTER TABLE 文を使用して表のタイプ
を STANDARD に変更し、レベル 0 バックアップを実行してください。
警告: ロウ表や一時表では、エンタープライズ レプリケーションを使用しないでくださ
い。
一時表
一時表は、ログ付きの一時表であり、ユーザ セッションの終了時、データベースの停止
時、または障害後の再起動時に削除されます。一時表では、インデックス、制約、およ
びロールバックがサポートされています。 ただし、一時表を復旧、バックアップ、およ
び復元することはできません。 一時表では、ライト アペンドなどの一括操作がサポー
トされています。ライト アペンドとは、各表フラグメントの最後に、行を早く追加する
機能です。ライト アペンドの詳細については、「IBM Informix: Dynamic Server パフォ
ーマンス ガイド」を参照してください。
詳しくは、294 ページの『一時表』を参照してください。
表タイプの特性
ここでは、表のロード、高速復旧、および表タイプのバックアップと復元について説明
します。
表へのデータのロード
デフォルトで、Dynamic Server によって作成される標準表ではログが使用されます。デ
ータ ウェアハウス アプリケーションには、ロードにかなりの時間を要する大きい表が
含まれている場合があります。 ログなし表はログ付き表より速くロードできます。この
ような場合は、CREATE RAW TABLE 文を使用してロウ表を作成するか、またはロー
ドを実行する前に ALTER TABLE 文を使用して標準表をロウ表に変更します。ロード
が終了したら、その表に対して UPDATE STATISTICS を実行します。
非常に大きい表をロードするときにパフォーマンスを改善する方法については、
「IBM Informix: Dynamic Server パフォーマンス ガイド」を参照してください。ALTER
TABLE を使用して表のタイプをログ付きからログなしに変更する方法については、
「IBM Informix: SQL ガイド: 構文」を参照してください。
表タイプの高速復旧
表 32 に、Dynamic Server で使用できる表タイプの高速復旧時の動作を示します。
第 10 章 データ記憶域
293
表 32. 表タイプの高速復旧
表タイプ
高速復旧時の動作
STANDARD
高速復旧は成功します。コミットされたログ レコードはすべてロールフォワードされ、未
完了のトランザクションはすべてロールバックされます。
RAW
ロウ表の最後の変更以降のチェックポイントがすべて完了している場合は、すべてのデー
タを復旧できます。
最後のチェックポイント以降に実行された挿入、更新、および削除は復旧できません。
ロウ表の未完了トランザクションは、ロールバックされません。
ロウ表のバックアップと復元
表 33 で、Dynamic Server で使用できる表タイプのバックアップの動作について説明し
ます。
表 33. Dynamic Server 上の表のバックアップ
表タイプ
バックアップの可否
STANDARD
可。
TEMP
不可。
RAW
可。ロウ表を更新する場合は、バックアップを実行して、表のデータをすべて復元できる
ようにします。論理ログのバックアップのみでは、すべてのデータを復元できません。
重要: ロウ表をロードしたり、ロウ表のタイプを STANDARD に変更した後には、レベ
ル 0 バックアップを実行してください。
表 34 に、これらの表タイプの復元の動作を示します。
表 34. Dynamic Server 上の表の復元
表タイプ
復元の可否
STANDARD
可。ウォーム復元、コールド復元、および時間指定復元を実行できます。
TEMP
不可。
RAW
ロウ表を復元すると、復元された表には最後のバックアップ時にディスクに保存されたデ
ータのみが含まれます。ロウ表にはログ機能がないため、最後のバックアップ以降の変更
は復元されません。
一時表
データベース サーバには、次の 2 種類の一時表を格納するディスク領域が必要となり
ます。
294
IBM Informix Dynamic Server 管理者ガイド
v CREATE TEMP TABLE... または SELECT .... INTO SCRATCH などの SQL 文を使
用して作成される一時表
v 問合せを処理するためデータベース サーバによって作成される一時表
ユーザおよびデータベース サーバによって作成される両方の一時表を格納できる十分な
一時領域が構成されていることを確認してください。データベース サーバの使用方法に
よっては、永続格納領域と同じだけ、またはそれ以上の領域を一時格納領域として確保
する必要があります。
デフォルトで、一時表はルート DB 領域に格納されます。一時表をルート DB 領域に
格納しない場合は、DBSPACETEMP 環境変数または DBSPACETEMP 構成パラメータ
を使用して、一時表を格納する DB 領域のリストを指定してください。
ユーザによって作成される一時表
次のいずれかの SQL 文を使用して一時表を作成できます。
v CREATE TABLE 文のオプション TEMP TABLE
v SELECT 文の INTO TEMP 節 (例: SELECT * FROM customer INTO TEMPcust_temp)
一時表が使用できるのは、その表が作成されたセッションの間のみです。 セッションが
終了すると、表は自動的に削除されます。
ユーザによって作成される一時表には、次の基準が適用されます。
v 一時表を構築するための問合せで、行が何も戻されない場合は、フラグメント化され
ていない空の表が作成されます。
v 問合せによって戻される行のサイズが 8KB 以下である場合、一時表は 1 つの DB
領域のみに配置されます。
v 行が 8KB を超える場合は、複数のフラグメントが作成され、ラウンドロビン分散ス
キームに基づいて格納されます。ただし、ユーザによってフラグメント化の方法と表
の格納場所が指定されていない場合に限ります。
CREATE TEMP および SELECT...INTO TEMP の SQL 文を使用するときに、
DBSPACETEMP が設定されている場合は、次のようになります。
v リストの LOGGING DB 領域が使用されて、WITH LOG 節を指定または意味する表
が作成されます。
v リストの NON-LOGGING 一時 DB 領域が使用されて、WITH NO LOG 節を指定す
る表が作成されます。
CREATE TEMP および SELECT...INTO TEMP の SQL 文を使用するときに、
DBSPACETEMP が設定されていないか、正しいタイプの DB 領域が含まれていない場
合、Dynamic Server は、データベースの DB 領域を使用して一時表を格納します。詳
しくは、「IBM Informix: SQL ガイド: 構文」を参照してください。
第 10 章 データ記憶域
295
ユーザによって作成される一時表の格納場所: アプリケーションで一時表の格納
場所が指定できる場合は、一時表専用に作成するログ付き領域またはログなし領域を指
定できます。SCRATCH 表はログなしであるため、一時領域に作成する必要がありま
す。
一時 DB 領域と DB スライスを作成する方法については、onspaces のセクションを参
照してください。
一時表の格納場所を指定しない場合は、構成パラメータまたは環境変数
DBSPACETEMP の引数として指定した領域のいずれかに一時表が格納されます。最後
に一時表の格納に使用された DB 領域の名前は、データベース サーバによって追跡さ
れます。新たに一時格納領域が要求されると、リスト内の次の DB 領域が使用されま
す。このようにして、入出力が一時格納領域全体で均一に行われます。
DBSPACETEMP に対する引数として領域がリストされていない場合の一時表の格納場
所については、「IBM Informix: Dynamic Server 管理者の参照」の DBSPACETEMP の
セクションを参照してください。
アプリケーションを使用して一時表を作成した場合は、アプリケーションが終了する
か、または次のいずれかの操作が実行されるまで、その一時表を使用できます。
v 表が作成されたデータベースがアプリケーションによってクローズされ、別のデータ
ベース サーバのデータベースがオープンされる。
v 表が作成されたデータベースが、アプリケーションによってクローズされる。
v 一時表がアプリケーションによって明示的に削除される。
データベース サーバによって作成される一時表
データベースに対して問合せを実行するときやデータベースをバックアップするとき
に、データベース サーバによって一時表が作成される場合があります。 また、次のよ
うな状況で、一時表が作成されることもあります。
v GROUP BY 節または ORDER BY 節を含む文
v キーワード UNIQUE または DISTINCT を持つ集計関数を使用する文
v 自動インデックスまたはハッシュ結合を使用する SELECT 文
v 複雑な CREATE VIEW 文
v スクロール カーソルを作成する DECLARE 文
v 相関副問合せを含む文
v IN 節または ANY 節に生じる副問合せを含む文
v CREATE INDEX 文
一時表の作成を開始したプロセスが完了すると、その表はデータベース サーバによって
削除されます。
296
IBM Informix Dynamic Server 管理者ガイド
一時表を削除する前にデータベース サーバが停止した場合は、共有メモリが次に初期化
されるときに一時表のクリーンアップが実行されます。一時表をクリーンアップせずに
共有メモリを初期化するには、オプション -p を付けて oninit を実行します。
重要: バックアップ中に上書きされ、メモリ内で生じた問合せ処理からオーバーフロー
したデータの更新前イメージも、一時表に加えて、一時ディスク領域に格納され
ます。これらのすべての使用に足りるだけの十分な一時領域が構成されているこ
とを確認してください。
データベース サーバによって作成される一時表の格納場所: データベース サー
バによって作成された一時表は、構成パラメータ DBSPACETEMP、または環境変数
DBSPACETEMP で指定されているいずれかの DB 領域に格納されます。 構成パラメー
タよりも環境変数のほうが優先されます。
DBSPACETEMP に一時 DB 領域を指定しなかった場合、または指定した一時 DB 領域
に十分な空き容量がない場合、次の規則に従って標準の DB 領域内に表が作成されま
す。
v CREATE TEMP TABLE 文で一時表を作成すると、その表が属するデータベースが格
納されている DB 領域内にこの表が格納されます。
v SELECT 文でオプション INTO TEMP を使用して一時表を作成すると、この表はル
ート DB 領域に格納されます。
詳しくは、330 ページの『一時 DB 領域の作成』を参照してください。
表領域
データベース サーバ管理者は、特定の表によるディスクの使用を監視しなければならな
いことがあります。表領域 には、ある表、または表がフラグメント化されている場合
は、表のフラグメントに対して割り当てられたすべてのディスク領域が含まれます。関
連するインデックスに対して割り当てられたディスク領域は、別の表領域に含まれま
す。
例えば表領域は、部分的にも全体的にもどの特定のチャンクにも対応しません。 表領域
を構成するインデックスとデータは、複数のチャンクに分散させることができます。 た
だし、表領域は特定の表がチャンク境界を越えて占有する領域に対する、便利なアカウ
ント用エンティティを表しています。( 290 ページの『表』を参照。)
表内の表領域の最大数
1 つの表内には、最大 2**20 (つまり、1,048,576) の表領域を指定できます。
第 10 章 データ記憶域
297
表とインデックス表領域
表領域には、次のタイプのページが含まれます。
v データに割り当てられたページ
v インデックスに割り当てられたページ
v DB 領域のテキスト (TEXT) 型またはバイト (BYTE) 型の格納に使用されるページ
(ただし、BLOB 領域内のテキスト (TEXT) 型またはバイト (BYTE) 型の格納に使用
されるページを除く)
v 表エクステント内のページ使用状況を追跡するビットマップ ページ
インデックス表領域には、次のタイプのページが含まれます。
v インデックスに割り当てられたページ
v インデックス エクステント内のページ使用状況を追跡するビットマップ ページ
データベース stores_demo の一部を形成する 3 つの表に対する表領域を、図 51 に示
します。1 つの表領域には、1 つの表または表フラグメントしか存在しません。 インデ
ックスは、対応する表とは別の表領域に格納されます。BLOB ページは、DB 領域に格
納されているテキスト (TEXT) 型またはバイト (BYTE) 型を表します。
298
IBM Informix Dynamic Server 管理者ガイド
stores_demo
customer
Customer
Catalog
Orders
BLOB
BLOB
BLOB
BLOB
BLOB
Catalog
Orders
図 51. データベース stores_demo 内の表領域の例
エクステントのインターリーブとは
表領域に属するページは、エクステントとして割り当てられます。 エクステント内のペ
ージは連続していますが、エクステントは表が格納されている DB 領域全体に分散され
ていることがあり、別のチャンクにまで分散していることもあります。
図 52 ではこの状況を示しており、2 つの不連続なエクステントが table_1 の表領域に
属し、3 番目のエクステントが table_2 の表領域に属しています。そして、table_2 の
エクステントは table_1 の初期エクステントと 2 番目のエクステントとの間に位置し
ています。 この場合、エクステントはインターリーブされていることになります。
table_1 全体を順次アクセスするには、ディスクのヘッドが table_2 のエクステントを
越えて検索する必要があるため、table_1 のエクステントが連続している場合よりもパ
フォーマンスが低下します。エクステントのインターリーブを回避し、除去する方法に
ついては、「IBM Informix: Dynamic Server パフォーマンス ガイド」を参照してくださ
い。
第 10 章 データ記憶域
299
図 52. 1 つの DB 領域内の 2 つの異なる表領域に属する 3 つのエクステント
表のフラグメント化とデータの格納
フラグメント化機能により、データベースでのデータの格納場所の制御を拡張できま
す。 各表とインデックスの位置指定について、制限はありません。別の格納領域に存在
している表やインデックスの一部である、表とインデックスのフラグメント の位置につ
いても指定が可能です。 次の格納領域へフラグメント化できます。
v DB 領域
v SB 領域
通常表は、最初の作成時にフラグメント化します。CREATE TABLE 文は、次のどちら
かの形式になります。
CREATE TABLE tablename ... FRAGMENT BY ROUND ROBIN IN dbspace1,
dbspace2, dbspace3;
CREATE TABLE tablename ...FRAGMENT BY EXPRESSION
<Expression 1> in dbspace1,
<Expression 2> in dbspace2,
<Expression 3> in dbspace3;
キーワード FRAGMENT BY ROUND ROBIN と FRAGMENT BY EXPRESSION で
は、2 つの異なる分散スキームを参照します。 どちらの文でも、フラグメントと DB
領域が関連付けられます。
表をフラグメント化する場合は、この例に示すように、同じ DB 領域内に表の複数のパ
ーティションを作成することもできます。
300
IBM Informix Dynamic Server 管理者ガイド
CREATE TABLE tb1(a int)
FRAGMENT BY EXPRESSION
PARTITION part1 (a >=0 AND a < 5) in dbs1,
PARTITION part2 (a >=5 AND a < 10) in dbs1
...
;
データ位置の指定におけるフラグメントの役割を図 53 に示します。
図 53. 記憶域の論理単位 (表のフラグメントを含む) と物理単位をリンクする DB 領域
領域およびパーティションについては、 311 ページの『第 11 章 ディスク領域の管理』
を参照してください。
フラグメント化の詳細については、「IBM Informix: データベース設計および実装 ガイ
ド」および「IBM Informix: Dynamic Server パフォーマンス ガイド」を参照してくださ
い。
第 10 章 データ記憶域
301
データ格納に必要なディスク容量
必要なディスク容量は次の手順で判定します。
必要なディスク容量を見積もるには:
1. ルート DB 領域に必要なサイズを計算します。
2. オーバーヘッドと将来の拡大分も含めて、すべてのデータベース サーバのデータベ
ースに割り当てる総ディスク領域を予測します。
この手順については、次のセクションで説明します。
ルート DB 領域のサイズ
ルート DB 領域のサイズを計算するには、次の記憶域構造を考慮に入れてください。
v 物理ログ (最低 200KB)
v 論理ログ ファイル (最低 200KB)
v 一時表
v データ
v システム データベース (sysmaster、sysutils、syscdr、sysuuid) およびシステム カタ
ログ (バージョンによってサイズは異なる)
v 予約ページ (最大 24KB)
v 表領域表領域 (最低 100 から 200KB)
v 予備の領域
この見積りは、データベース サーバを初期化する前の初期ルート DB 領域サイズで
す。 ルート DB 領域の初期サイズは、物理ログ、論理ログ、および一時表をルート
DB 領域に格納するか、別の DB 領域に格納するかで異なります。 ただし、ルート
DB 領域は、ディスク初期化中の最小サイズ構成よりも大きい必要があります。
システムを初期化するときには、ログ サイズを小さくすることをお勧めします。例え
ば、1,000KB のログ ファイルを 3 つ作成するか、ログの合計サイズを 3,000KB にし
ます。初期化が完了したら、新しい DB 領域を作成し、論理ログ ファイルを移動して
サイズを変更します。ルート DB 領域にある元のログは削除します。 次に、物理ログ
をほかの DB 領域に移動します。 この手順を実行すると、ルート DB 領域がログによ
って受ける影響を、次のように最小限に抑えることができます。
v ログの移動後に大量の未使用領域が残りません (ルート DB 領域が拡大されない場
合)。
v 同じディスク内でログとルート DB 領域による領域および入出力の競合が発生しませ
ん (ルート DB 領域が拡大される場合)。
302
IBM Informix Dynamic Server 管理者ガイド
ログを移動する方法については、422 ページの『別の DB 領域への論理ログ ファイル
の移動』 および 455 ページの『物理ログの格納場所とサイズの変更』を参照してくだ
さい。
チャンクを追加して、ルート DB 領域にある空のチャンクを削除できます。 ルート
DB 領域は最初に小さく設定しておき、システムの拡大に合わせて拡張してください。
ただし、最初に作成した大きい初期ルート チャンクのサイズを後で小さくすることはで
きません。
物理ログと論理ログ
パラメータ ONCONFIG の PHYSFILE に格納される値によって、物理ログのサイズが
定義されます。物理ログのサイズ設定に関するヒントについては、434 ページの『物理
ログのサイズと格納場所』を参照してください。
論理ログ ファイルのサイズを計算するには、パラメータ ONCONFIG の LOGSIZE の
値と論理ログ ファイルの個数を乗算します。論理ログのサイズ設定に関するヒントにつ
いては、409 ページの『ログ ファイルのサイズと数の見積り』を参照してください。
一時表
一時表に必要となるディスク領域の容量を見積もるには、エンド ユーザ アプリケーシ
ョンを解析する必要があります。 そしてこれらの命令文の中で、同時に実行される数を
見積もってください。 戻される行と列により占有される領域は、必要な容量を見積もる
ときの目安になります。
ウォーム復元中に作成される最大の一時表のサイズは、論理ログのサイズと同じです。
論理ログ サイズは、すべての論理ログ ファイルのサイズを合計して計算します。
明示的な一時表のためにデータベース サーバが必要とするディスク容量を見積もるため
にも、エンド ユーザ アプリケーションを解析する必要があります。
一時領域を必要とする文のリストなどの詳細については、294 ページの『一時表』を参
照してください。
重要なデータ
ルート DB 領域には、データベースや表を格納しないようお勧めします。 ルート DB
領域、および物理ログや論理ログなどの重要なデータが格納されているそのほかの DB
領域はミラーリングしてください。 ルート DB 領域に格納する表がある場合は、それ
に割り当てるべきディスク容量を見積もります。
予備の領域
システム データベースの拡大を見込んで、ルート DB 領域では、拡張予約ページや十
分な未使用領域などの予備の領域を確保しておきます。拡張予約ページの数は、データ
ベース サーバにある主チャンク、ミラー チャンク、論理ログ ファイル、および格納領
域の数によって異なります。
第 10 章 データ記憶域
303
データベースに必要な容量
データベース サーバのデータの格納に必要な追加のディスク容量は、エンド ユーザの
ニーズと、オーバーヘッドおよび将来のデータの増大によって変わります。エンド ユー
ザが実行するアプリケーションでは、それぞれ記憶域の必要量が異なります。 ルート
DB 領域以外も含めて、割り当てるべきディスク容量を計算する手順のヒントを次に示
します。
v
格納すべきデータベースと表の数を決定します。そして、それぞれに必要な容量を
計算します。
v 各表の成長率を計算してから、その成長分を見込んだディスク容量を割り当てます。
v ミラーリングするデータベースと表を決定します。
表のサイズの計算方法については、「IBM Informix: Dynamic Server パフォーマンス ガ
イド」を参照してください。
ディスク レイアウトのガイドライン
効率的なディスク レイアウトを実現する上で、次の点が一般的な目標となります。
v ディスク ヘッドの移動量の抑制
v
ディスクの競合の減少
v
負荷の均等化
v
可用性の最大化
ディスク レイアウトを設計するときは、目標間のトレードオフを考慮する必要がありま
す。例えば、システム カタログ表、論理ログ、物理ログを分離すると、これらのリソー
ス間での競合が減少します。 しかし、そのようにすると、システム復元が必要な状況が
発生する可能性も増加します。ディスク レイアウト ガイドラインの詳細については、
「IBM Informix: Dynamic Server パフォーマンス ガイド」を参照してください。
DB 領域とチャンクのガイドライン
ここでは、特定のデータベースの特性に関する情報を必要としない、一般的なディスク
レイアウトの方法を説明します。
v ディスク パーティションをチャンクと関連付け、ルート DB 領域に少なくとも 1 つ
の追加 チャンクを割り当てます。
すでにパーティションに分割されているディスクでは、オフセットを使用する必要が
あります。詳しくは、316 ページの『UNIX におけるロウ ディスク領域の割当て』
を参照してください。
ヒント: チャンクの最大サイズを 4TB に設定する場合は、各ディスク ドライブに 1
つのチャンクを割り当ててディスクを分割化する必要はありません。
304
IBM Informix Dynamic Server 管理者ガイド
v ルート DB 領域、物理ログや論理ログ ファイルが格納された DB 領域といった、ク
リティカル DB 領域はミラーリングしてください。 使用頻度の高いデータベースや
表もミラーリングする必要があります。
DB 領域レベルでミラーリングを指定します。ある DB 領域に属しているすべてのチ
ャンクのミラーリングは、DB 領域レベルの設定に応じてオンまたはオフになりま
す。 主 DB 領域とミラーリングされた DB 領域は、別のディスク上に配置します。
理想的には、ディスクごとに処理するコントローラを分けてください。
v 一時表とソート ファイルを複数のディスクに分散させます。
一時表およびソート ファイル用に複数の DB 領域を定義する場合は、onspaces のオ
プション -t を使用します。これらの DB 領域を複数のディスクに配置し、構成パラ
メータ DBSPACETEMP でリストすると、一時表およびソート ファイルに関連する
入出力を複数のディスクに分散させることができます。構成パラメータまたは環境変
数 DBSPACETEMP の使用方法については、「IBM Informix: Dynamic Server 管理者
の参照」の構成パラメータに関する章を参照してください。
v
論理ログはルート DB 領域から移動しますが、物理ログはルート DB 領域に保持し
ます。ただし、システム カタログをルート DB 領域に格納する場合は、物理ログも
別の DB 領域に移動してください。
ログの格納場所に関するヒントについては、435 ページの『物理ログの格納場所の指
定』、および 394 ページの『論理ログ ファイルの格納場所』を参照してください。
422 ページの『別の DB 領域への論理ログ ファイルの移動』および 455 ページの
『物理ログの格納場所とサイズの変更』も参照してください。
v
バックアップと復元のパフォーマンスを向上するには
– システム カタログとシステム カタログによって追跡されるデータをクラスタ化し
ます。
– ON–Bar を使用して、高速テープ ドライブへの並列バックアップを実行する場合
は、データベースを複数の小さい DB 領域に格納してください。
その他のパフォーマンスに関する推奨事項については、「IBM Informix: バックア
ップおよび復元 ガイド」を参照してください。
表位置のガイドライン
ここでは、データベース内の表に関してある特性が与えられた状態で、ディスク レイア
ウトを最適化する方法を説明します。 この方法の多くは、表のフラグメント化を使用す
る高度な制御を行うことで実装できます。
v
使用頻度の高い表を別のディスクに分離します。
第 10 章 データ記憶域
305
使用頻度の高い表を専用のディスク デバイス上に分離するには、デバイスをあるチ
ャンクに割り当て、そのチャンクを DB 領域に割り当てます。そして、CREATE
TABLE 文でオプション IN dbspace を使用して DB 領域を作成し、この DB 領域に
頻繁に使用する表を配置します。
各チャンクに対する入出力操作のレベルを表示するには、onstat のオプション -g iof
を実行します。
v 使用頻度の高い表を複数のディスクにフラグメント化します。
v
関連する表を DB 領域でグループ化します。
DB 領域を含むデバイスに障害が発生した場合、その DB 領域内の表はすべてアクセ
ス不能になります。 ただし、ほかの DB 領域に格納された表はアクセスできます。
重要な情報が格納されている DB 領域に障害が発生した場合、コールド復元を実行す
る必要がありますが、重要でない DB 領域に障害が発生した場合は、ウォーム復元を
実行するだけですみます。
v 使用頻度の高い表をディスクの中央パーティションに配置します。
v 表のエクステント サイズを最適化します。
詳しくは、「IBM Informix: Dynamic Server パフォーマンス ガイド」の表のパフォーマ
ンスに関する注意事項の章を参照してください。onstat のオプションについては、
「IBM Informix: Dynamic Server 管理者の参照」を参照してください。
サンプル ディスク レイアウト
ディスク領域の構成を決めるとき、データベース サーバ管理者は一般に、次に挙げるう
ちの少なくとも 1 つは考慮します。
v ハイパフォーマンス
v 高可用性
v バックアップと復元の容易さと頻度
これらの目標のどれを達成しようとしても、ほかの目標が犠牲になります。例えば、ハ
イパフォーマンスを求めてシステムを設計すると、データの可用性に問題が生じる可能
性が出てくるのが普通です。次に、限定されたディスク リソースでディスク レイアウ
トを選択しなければならない場合の例を示します。説明するのは、2 種類の対処方法で
す。1 つはパフォーマンスの最適化で、もう 1 つは可用性と復元性の最適化です。
サンプルとして設定しているディスク レイアウトは、架空のスポーツ用品のデータベー
スです。このデータベースでは、データベース stores_demo の構造を使用しています
が、ボリュームは使用していません。この例では、データベース サーバは約 350 人の
ユーザと 3GB のデータを処理するように構成されています。 ディスク領域のリソース
は、次の表のとおりです。
306
IBM Informix Dynamic Server 管理者ガイド
ディスク ドライブ
ドライブのサイズ
ハイパフォーマンス
ディスク 1
2.5GB
いいえ
ディスク 2
3GB
はい
ディスク 3
2GB
はい
ディスク 4
1.5GB
いいえ
このデータベースには、cust_calls と items という 2 つの大きい表が含まれています。
これらの表には、どちらも 100 万以上の行があると考えてください。表 cust_calls に
は、販売者がカスタマから受けたすべての問合せが記録されています。 表 items に
は、販売者がこれまでに注文を受け、出荷した品目が各行に格納されています。
このデータベースには、items と orders という使用頻度の高い表が 2 つ含まれていま
す。 これらの表はいずれも、全国のユーザから定常的にアクセスされています。
残りの表は、郵便番号やメーカーなどを検索するためにデータベース サーバによって使
用される、ボリュームの小さい表です。
表名
最大サイズ
アクセス率
cust_calls
2.5GB
低い
items
0.5GB
高い
orders
50MB
高い
customers
50MB
低い
stock
50MB
低い
catalog
50MB
低い
manufact
50MB
低い
state
50MB
低い
call_type
50MB
低い
パフォーマンスを優先させたサンプル レイアウト
パフォーマンスを最適化したディスク レイアウトを 308 ページの図 54 に示します。
このディスク レイアウトでは、次の方法でパフォーマンスを向上させています。
v
論理ログを、ルート DB の DB 領域から別のディスク上の DB 領域へ移行する。
この方法では、論理ログと物理ログを分離し、ルート DB 領域に対する競合を減少さ
せます。
v DB 領域で最も使用頻度の高い 2 つの表を別々のディスクへ配置する。
第 10 章 データ記憶域
307
どちらのディスクにも、論理ログと物理ログは格納されません。表 items と表
orders を別々のハイパフォーマンス ディスクに格納できれば理想的です。しかし、
この方法では、ハイパフォーマンス ディスクの 1 つが非常に大きい表 cust_calls の
格納に必要であるため、不可能です。ほかの 2 つのディスクでは小さすぎます。
Rootdbs
phys_log_space
1
(2.5GB)
cust_calls
cust_calls_space
log_log_space
2
(3GB
items
)
items_space
stock
catalog
manufact
look_up2
state
call_type
3
customer
look_up3
(2GB
)
orders
orders_space
4
(1.5GB)
図 54. パフォーマンスを最適化したディスク レイアウト
可用性を最優先させたサンプル レイアウト
前のディスク レイアウトの欠点は、ディスク 1 とディスク 2 のどちらかに障害が発生
したときに、これらのディスク上の DB 領域をバックアップしてあったものから復元す
るまで、データベース サーバ全体がダウンすることです。つまり、このディスク レイ
アウトは可用性に関しては劣っています。
308
IBM Informix Dynamic Server 管理者ガイド
可用性を最適化しミラーリングを含む代わりのディスク レイアウトを 309 ページの図
55 に示します。このレイアウトでは、システム カタログ表、物理ログ、および論理ロ
グという重要なデータ領域を、すべて別のディスクにミラーリングしています。 前述の
レイアウトと同様に論理ログと物理ログを分離し、各ディスクを専用のディスクにミラ
ーリングできれば理想的です。 しかし、この方法ではディスクが必要数ないため、論理
ログと物理ログは両方とも、ルート DB 領域に格納されます。
stock
catalog
manufact
look_up1
Rootdbs
1
(2.5GB)
phys_log_space
log_log_space
state
call_type
Customer
4
look_up2
(1.5GB)
cust_calls
cust_calls_space
orders
orders_space
2
(3GB
)
items
items_space
3
(2GB
)
図 55. 可用性を最適化したディスク レイアウト
第 10 章 データ記憶域
309
論理ボリューム マネージャとは
LVM (Logical-Volume Manager: 論理ボリューム マネージャ) は、ユーザ定義の論理ボ
リュームを使用してディスク領域を管理するユーティリティです。
多くのコンピュータ メーカーでは、自社のコンピュータに独自の LVM を組み込んで
います。大部分の独自 LVM により管理されるディスクは、データベース サーバによ
るデータの格納と抽出に使用できます。次に説明するように、LVM には利点と欠点の
両方があります。
ほとんどの LVM では、1GB よりも大きいディスク領域を管理できます。データベー
ス サーバのチャンクのサイズは 4TB までに制限されていますが、このサイズに達する
のは、割り当てられているチャンクのオフセットがゼロの場合のみです。そのため、チ
ャンクとして割り当てられるボリュームのサイズを、4TB までに制限する必要がありま
す。
LVM を使用するとディスク ドライブを複数のボリュームに分割できるため、そのディ
スク上のデータの配置場所を調整できます。ディスク ドライブの最も中央のシリンダか
ら構成されるボリュームを定義して、使用頻度の高い表をそこへ配置すれば、パフォー
マンスを向上させることができます。(厳密には、ユーザが表を、ボリュームへ直接配置
できるわけではありません。 まずチャンクをボリュームとして割り当ててから、次にそ
のチャンクを DB 領域へ割り当て、最後に表を DB 領域に配置する必要があります。
詳しくは、272 ページの『データの格納場所の制御』を参照してください。
ヒント: 大容量のディスク ドライブを選択した場合には、ディスクのパーティションを
せずに 1 つのドライブにチャンクを割り当てることができます。
また、LVM を使用して複数のディスクにわたるボリュームを定義し、そのボリューム
に表を配置することで、パフォーマンスを向上させることもできます。
多くの LVM では、オペレーティング システム標準のフォーマット ユーティリティで
は得られないレベルの柔軟性も提供します。 その 1 つとして、論理ボリュームの定義
後にその位置を変更するという機能があります。そのため、オペレーティング システム
のフォーマット ユーティリティとは異なり、最初からディスク領域を適切にレイアウト
できなくても、それほど問題になりません。
LVM には、オペレーティング システム レベルのミラーリング機能を提供するものも
多くあります。詳しくは、467 ページの『その他のミラーリング方法』を参照してくだ
さい。
310
IBM Informix Dynamic Server 管理者ガイド
第 11 章 ディスク領域の管理
ディスク領域の割当て . . . . . . . . . . . . . . . . .
オフセットの指定 . . . . . . . . . . . . . . . . .
ルート DB 領域の初期チャンクへのオフセットの指定 . . . .
追加チャンクへのオフセットの指定 . . . . . . . . . .
オフセットを使用した複数チャンクの作成 . . . . . . . .
UNIX でのクックド ファイル領域の割当て . . . . . . . . .
UNIX におけるロウ ディスク領域の割当て . . . . . . . . .
ロウ デバイスへのシンボリック リンクの作成 (UNIX) . . . . .
Windows での NTFS ファイル領域の割当て . . . . . . . . .
Windows におけるロウ ディスク領域の割当て . . . . . . . .
格納領域およびチャンクの名前の指定 . . . . . . . . . . . .
チャンクの最大サイズの指定 . . . . . . . . . . . . . .
チャンクおよび格納領域の最大数の指定 . . . . . . . . . .
物理スキーマ変更後のバックアップ . . . . . . . . . . .
DB 領域の管理 . . . . . . . . . . . . . . . . . . .
デフォルト ページ サイズを使用する DB 領域の作成 . . . . .
表領域表領域の初期および追加の追加エクステント サイズの指定
デフォルトでない ページ サイズを使用する DB 領域の作成 . . .
デフォルトでないページ サイズのバッファ プールの作成 . . .
ページ サイズの定義 . . . . . . . . . . . . . . .
一時 DB 領域の作成 . . . . . . . . . . . . . . . .
ディスク領域不足の場合の対処 . . . . . . . . . . . . .
DB 領域または BLOB 領域へのチャンクの追加 . . . . . . .
ON-Monitor を使用してのチャンクの追加 (UNIX) . . . . . .
DB 領域の名前の変更 . . . . . . . . . . . . . . . .
DB 領域の名前変更後に必要な追加操作 . . . . . . . . .
DB 領域パーティションの管理 . . . . . . . . . . . . . .
BLOB 領域の管理 . . . . . . . . . . . . . . . . . .
BLOB 領域の作成 . . . . . . . . . . . . . . . . .
テキスト (TEXT) 型およびバイト (BYTE) 型データを格納するための
BLOB ページ サイズの判定 . . . . . . . . . . . . . .
データベース サーバのページ サイズの判定 . . . . . . .
BLOB 領域の格納統計の取得 . . . . . . . . . . . . .
SB 領域の管理 . . . . . . . . . . . . . . . . . . .
SB 領域の作成 . . . . . . . . . . . . . . . . . .
SB 領域のメタデータのサイズ設定 . . . . . . . . . . . .
SB 領域へのチャンクの追加 . . . . . . . . . . . . . .
スマート ラージ オブジェクトの格納特性の変更 . . . . . . .
一時 SB 領域の作成. . . . . . . . . . . . . . . . .
チャンクの削除 . . . . . . . . . . . . . . . . . . .
© Copyright IBM Corp. 1996, 2004
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
BLOB 領域の準備
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
314
314
315
315
315
316
316
317
317
318
319
320
320
320
321
321
323
325
326
330
330
331
331
332
333
333
334
335
336
337
338
338
338
339
339
340
341
342
342
343
311
チャンクが空かどうかの確認 . . . . . . . . . . . . .
onspaces を使用しての DB 領域からのチャンクの削除 . . . .
BLOB 領域からのチャンクの削除 . . . . . . . . . . .
onspaces を使用しての SB 領域からのチャンクの削除 . . . .
オプション -f (強制) の使用方法 . . . . . . . . . .
ポインタのないスマート ラージ オブジェクトの削除 . . .
格納領域の削除 . . . . . . . . . . . . . . . . . .
格納領域の削除の準備 . . . . . . . . . . . . . . .
ミラーリングされた格納領域の削除 . . . . . . . . . .
onspaces を使用した格納領域の削除 . . . . . . . . . .
ON-Monitor を使用した DB 領域または BLOB 領域の削除 (UNIX)
格納領域の削除後のバックアップ . . . . . . . . . . .
EXT 領域の管理 . . . . . . . . . . . . . . . . . .
EXT 領域の作成 . . . . . . . . . . . . . . . . .
EXT 領域の削除 . . . . . . . . . . . . . . . . .
アクセス不能フラグメントのスキップ . . . . . . . . . . .
構成パラメータ DATASKIP の使用方法 . . . . . . . . .
onspaces のデータ スキップ機能の使用方法 . . . . . . . .
onstat を使用してのデータ スキップ状態の確認 . . . . . .
SQL の SET DATASKIP 文の使用方法 . . . . . . . . .
トランザクションに対するデータ スキップ機能の影響 . . . .
データ スキップを使用するケースの判別 . . . . . . . . .
特定のフラグメントをスキップするケースの判別 . . . . .
すべてのフラグメントをスキップするケースの判別 . . . .
フラグメントの使用状況の監視 . . . . . . . . . . . .
データベースの表示 . . . . . . . . . . . . . . . . .
SMI 表の使用方法 . . . . . . . . . . . . . . . .
ISA の使用方法 . . . . . . . . . . . . . . . . .
ON-Monitor の使用方法 (UNIX) . . . . . . . . . . . .
ディスクの使用状況の監視 . . . . . . . . . . . . . .
チャンクの監視 . . . . . . . . . . . . . . . . .
onstat -d . . . . . . . . . . . . . . . . . . .
onstat -d update . . . . . . . . . . . . . . . .
onstat -D. . . . . . . . . . . . . . . . . . .
onstat -g iof . . . . . . . . . . . . . . . . .
oncheck -pr . . . . . . . . . . . . . . . . . .
oncheck -pe . . . . . . . . . . . . . . . . . .
IBM Informix Server Administrator の使用方法 . . . . . .
ON-Monitor の使用方法 (UNIX) . . . . . . . . . . .
SMI 表の使用方法 . . . . . . . . . . . . . . .
表領域とエクステントの監視 . . . . . . . . . . . . .
SMI 表の使用方法 . . . . . . . . . . . . . . .
BLOB 領域内のシンプル ラージ オブジェクトの監視 . . . .
onstat -O. . . . . . . . . . . . . . . . . . .
oncheck -pB による BLOB ページ使用率の測定 . . . . .
oncheck のオプション -pe を使用する BLOB 領域使用率の監視
312
IBM Informix Dynamic Server 管理者ガイド
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
344
344
345
345
345
345
346
346
346
347
347
347
348
348
348
349
349
349
349
350
350
351
351
351
351
352
352
352
352
353
353
353
354
355
355
356
357
358
358
359
359
360
360
360
361
362
oncheck のオプション -pT を使用する DB 領域内のシンプル
SB 領域の監視 . . . . . . . . . . . . . . . .
onstat -d の使用方法. . . . . . . . . . . . . .
oncheck -ce および oncheck -pe の使用方法 . . . . . .
oncheck -cs の使用方法 . . . . . . . . . . . . .
oncheck -ps の使用方法. . . . . . . . . . . . .
メタデータおよびユーザ データ領域の監視 . . . . . .
onstat -g smb c の使用方法 . . . . . . . . . . .
表へのデータのロード . . . . . . . . . . . . . . .
ラージ
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
オブジェクトの監視
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
. . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
362
364
365
366
367
368
369
370
371
本章について
この章では、データベース サーバによって制御されるディスク領域とデータを効率的に
管理する方法について説明します。ここでは、ユーザが 261 ページの『第 10 章 データ
記憶域』で説明されている用語と概念を理解していることを前提としています。
格納領域の管理には、次のユーティリティを使用できます。
v onspaces
v ISA
この章では次の項目を扱います。
v ディスク領域の割当て
v チャンク名、チャンクおよび格納領域の最大サイズと最大数の指定
v 物理スキーマ変更後のバックアップ
v DB 領域、BLOB 領域、および SB 領域の作成および削除
v DB 領域の名前変更
v DB 領域パーティションの管理
v DB 領域、BLOB 領域、および SB 領域のチャンクの追加と削除
v EXT 領域の作成および削除
v アクセス不能フラグメントのスキップ
v ディスク領域の使用状況の監視
v
シンプル ラージ オブジェクト データおよびスマート ラージ オブジェクト デー
タの監視
ディスク領域の管理については、「IBM Informix: Dynamic Server パフォーマンス ガイ
ド」も参照してください。特に、インターリーブされたエクステントの削除、空エクス
テント内の領域の再利用、およびディスク入出力の改善方法について説明されていま
す。
第 11 章 ディスク領域の管理
313
ディスク領域の割当て
ここでは、データベース サーバ用のディスク領域を割り当てる方法を説明します。 デ
ィスク領域を割り当てる前に、次のセクションを参照してください。
v 265 ページの『UNIX 上のバッファなしまたはバッファ付きディスク アクセス』
v 302 ページの『データ格納に必要なディスク容量』
v 304 ページの『ディスク レイアウトのガイドライン』
格納領域やチャンクを作成したり、または既存の格納領域をミラーリングしたりする前
に、チャンク ファイルのディスク領域を割り当てる必要があります。データベース サ
ーバ ディスク領域には、空のファイルまたはロウ ディスク領域のいずれかを割り当て
ることができます。
UNIX のみ
UNIX 環境では、ロウ ディスク領域を割り当てた場合は、UNIX のコマンド ln を使用
してキャラクタ スペシャル デバイス名とそのほかのファイル名の間にリンクを作成す
ることをお勧めします。このトピックの詳細については、317 ページの『ロウ デバイス
へのシンボリック リンクの作成 (UNIX)』を参照してください。
データベース サーバのディスク領域用に UNIX ファイルおよびその固有のオペレーテ
ィング システム インターフェイスを使用することを、クックド領域 を使用するともい
います。
UNIX のみ の終り
Windows のみ
Windows では、NTFS ファイルをデータベース サーバ ディスク領域として使用するこ
とをお勧めします。この推奨事項の詳細については、265 ページの『UNIX 上のバッフ
ァなしまたはバッファ付きディスク アクセス』を参照してください。
Windows のみ の終り
ディスクとコントローラ間でチャンクのバランスを取ることができます。1 つのディス
クに複数のチャンクを配置するとスループットが向上する場合があります。
オフセットの指定
ディスク領域のチャンクをデータベース サーバに割り当てる場合、次のいずれかの目的
のためにオフセットを指定します。
v データベース サーバがパーティション情報を上書きしないようにする。
v パーティション、ディスク デバイス、またはクックド ファイル上に複数のチャンク
を定義する。
314
IBM Informix Dynamic Server 管理者ガイド
オフセットの最大値は 4TB になります。
多くのコンピュータ システムと一部のディスク ドライブのメーカーでは、物理ディス
ク ドライブに関する情報をそのドライブ自体に保持しています。この情報を、VTOC
(Volume Table of Contents: ボリューム目録) またはディスク ラベルといいます。VTOC
は、通常、ドライブの最初のトラックに格納されています。代替セクタと不良セクタの
マッピングの表 (ベクトル変更表 ともいいます) も最初のトラックに格納されている可
能性があります。
パーティションをディスクの最初の部分に割り当てる場合は、オフセットを使用してオ
ペレーティング システムで必要な重要情報がデータベース サーバによって上書きされ
ないようにする必要があります。必要となる正確なオフセットについては、ディスク ド
ライブのマニュアルを参照してください。
警告: データベース サーバのインスタンスを複数実行する場合は、重複するチャンクを
定義しないように十分注意してください。チャンクが重複すると、あるチャンク
内のデータに、重複するチャンクに基づく無関係なデータがデータベース サーバ
によって上書きされることがあります。 この上書きにより、重複するデータは事
実上破壊されることになります。
ルート DB 領域の初期チャンクへのオフセットの指定
ルート DB 領域の初期チャンク、およびミラーリングされている場合はそのミラーにそ
れぞれパラメータ ROOTOFFSET とパラメータ MIRROROFFSET を使用して、オフセ
ットを指定してください。詳しくは、「IBM Informix: Dynamic Server 管理者の参照」
の構成パラメータに関する章を参照してください。
追加チャンクへのオフセットの指定
データベース サーバに領域を割り当てる場合、データベース サーバ領域の追加チャン
クにオフセットを指定するには、オフセットをパラメータとして指定する必要がありま
す。詳しくは、321 ページの『デフォルト ページ サイズを使用する DB 領域の作成』
を参照してください。
オフセットを使用した複数チャンクの作成
オフセットを指定し、使用可能な領域の合計より小さいチャンクを割り当てると、ディ
スク パーティション、ディスク デバイス、またはファイルから複数のチャンクを作成
できます。 オフセットはチャンクの先頭の位置を指定するものです。データベース サ
ーバは、オフセットにチャンクのサイズを加算してチャンクの最終バイトの格納位置を
測定します。
最初のチャンクには、必要に応じて初期オフセットを割り当て、割り当てられたディス
ク領域の合計サイズより小さいサイズを指定します。 追加のチャンクそれぞれには、そ
れまでに割り当てたすべてのチャンクと初期オフセットを含むサイズのオフセットを指
定し、割当て分として残っているディスク領域以下のサイズを割り当てます。
第 11 章 ディスク領域の管理
315
UNIX でのクックド ファイル領域の割当て
次の例では、UNIX 上のディスク領域のクックド ファイル usr/data/my_chunk を割り当
てる手順を示します。
クックド ファイル領域を割り当てるには:
1. ユーザ informix としてログインします。
su informix
2.
クックド領域を作成するディレクトリに移動します。
cd /usr/data
3. データベース サーバがディスク領域に使用するファイル名に NULLl を連結して、
チャンクを作成します。
cat /dev/null > my_chunk
4. ファイルのアクセス権を 660 (rw-rw----) に設定します。
chmod 660 my_chunk
5. ファイルのグループと所有者の両方を informix に設定する必要があります。
ls -l my_chunk -rw-rw---1 informix
informix
0 Oct 12 13:43 my_chunk
6. 格納領域またはチャンクを作成するには、onspaces を使用します。
割り当てたファイルを使用して格納領域を作成する方法については、321 ページの『デ
フォルト ページ サイズを使用する DB 領域の作成』、336 ページの『BLOB 領域の作
成』、および 339 ページの『SB 領域の作成』を参照してください。
UNIX におけるロウ ディスク領域の割当て
ロウ領域を割り当てるには、ロウ領域専用のディスク パーティションが必要です。ロウ
ディスク領域を作成するには、ディスクを再区分化する方法、既存のファイル システム
をアンマウントする方法のどちらでも使用できます。 デバイスをアンマウントする場合
は、その前に必ずファイルをバックアップしてください。
ロウ ディスク領域を割り当てるには:
1. ロウ デバイスを作成し、インストールします。
UNIX でロウ ディスク領域を割り当てる方法の詳細については、オペレーティング
システムのマニュアル、および 265 ページの『UNIX 上のバッファなしまたはバッ
ファ付きディスク アクセス』を参照してください。
2. キャラクタ スペシャル デバイスの所有権とアクセス権を informix に変更します。
キャラクタ スペシャル デバイスのファイル名は、通常は r で始まります。手順に
ついては、316 ページの『UNIX でのクックド ファイル領域の割当て』の 4 および
5 を参照してください。
316
IBM Informix Dynamic Server 管理者ガイド
3. キャラクタ スペシャル デバイスに対するオペレーティング システム アクセス権が
crw-rw---- であることを確認してください。
4. UNIX のリンク コマンド ln -s を使用して、キャラクタ スペシャル デバイス名と
そのほかのファイル名の間にシンボリック リンクを作成してください。詳しくは、
317 ページの『ロウ デバイスへのシンボリック リンクの作成 (UNIX)』を参照して
ください。
警告: データベース サーバのディスク領域用ロウ デバイスを作成した後、その作成し
たロウ デバイスにファイル システムを作成しないでください。また、データベ
ースのディスク領域として割り当てたロウ デバイスをスワップ領域としても使用
しないでください。
ロウ デバイスへのシンボリック リンクの作成 (UNIX)
シンボリック リンクを使用して、標準デバイス名を割り当てデバイスを指定します。キ
ャラクタ スペシャル デバイス名と別のファイル名との間のリンクを作成するには、
UNIX の link コマンド (通常は ln) を使用します。デバイス ディレクトリに対して
UNIX コマンド ls -l (BSD 版では ls -lg) を実行して、デバイスとリンクがともに存在
することを確認してください。ロウ デバイスとのリンクを以下の例に示します。オペレ
ーティング システムでシンボリック リンクがサポートされていない場合は、ハード リ
ンクが使用できます。
ln -s /dev/rxy0h /dev/my_root # orig_device link to symbolic_name
ln -s /dev/rxy0a /dev/raw_dev2
ls -l
crw-rw--- /dev/rxy0h
crw-rw--- /dev/rxy0a
lrwxrwxrwx /dev/my_root@->/dev/rxy0h
lrwxrwxrwx /dev/raw_dev2@->/dev/rxy0a
シンボリック リンクは次の理由で使用します。チャンクを作成したロウ デバイスで障
害が発生した場合、バックアップから復元するには、そのロウ デバイスを置換して、同
じパス名を使用する必要があります。 前回のバックアップ時にアクセス可能だったチャ
ンクは、すべて復元を実行するときにもアクセスできる必要があります。
シンボリック リンクはディスク障害の回復を簡略化します。シンボリック リンクを使
用することにより、チャンクが存在するディスクを即時に置換できます。 これで、障害
が発生したデバイスを別のデバイスで置換でき、新しいデバイスのパス名と障害が発生
したデバイスのファイル名をリンクすると、データを復元できます。 元のデバイスが修
復されるまで待機する必要はありません。
Windows での NTFS ファイル領域の割当て
Windows では、デフォルトで NTFS ファイルが使用されます。NTFS ファイル システ
ムでは、標準のファイル名をバッファなしファイルに使用できます。
第 11 章 ディスク領域の管理
317
データベース サーバ ディスク領域用に NTFS ファイル領域またはミラーリングされた
領域を割り当てるには、まず、NULL (ゼロ バイト) ファイルを作成します。
NTFS ファイル領域を DB 領域、BLOB 領域、または SB 領域に割り当てるには:
1. Informix-Admin グループのメンバとしてログインします。
2. MS-DOS コマンド シェルをオープンします。
3.
領域を割り当てるディレクトリに移動します。以下に例を示します。
c:> cd ¥usr¥data
4.
次のコマンドを使用して NULL ファイルを作成します。
c:> copy nul my_chunk
5. ファイルが作成されたかどうかを確認するには、コマンド dir を使用します。
ファイル領域の割当てが終了したら、onspaces を使用して通常どおり DB 領域または
そのほかの格納領域を作成できます。DB 領域または BLOB 領域の作成方法について
は、321 ページの『デフォルト ページ サイズを使用する DB 領域の作成』および 336
ページの『BLOB 領域の作成』を参照してください。
Windows におけるロウ ディスク領域の割当て
Windows で、ロウ ディスク領域を論理ドライブまたは物理ドライブとして構成できま
す。ドライブ名またはディスク番号を検索するには、Disk Administrator を実行しま
す。複数の物理ディスクが 1 つの論理ディスクに結合されていて、ドライブをストライ
プ化する必要がある場合、論理ドライブの指定のみが有効になります。
格納領域の作成またはチャンクの追加を行う場合は、Informix-Admin グループのメン
バである必要があります。ロウ ディスク領域は、フォーマットされていてもフォーマッ
トされていなくても構いません。
論理ドライブを指定するには:
1. ディスク パーティションにドライブ名を割り当てます。
2. ファイル ONCONFIG の ROOTDBS に次の値を指定します。
¥¥.¥drive_letter
3.
格納領域の作成またはチャンクの追加を行うには、論理ドライブのパーティション
を指定します。
次の例では、ドライブ e: 上の 5,000KB のチャンクが DB 領域 dpspc3 に追加され
ます。オフセットは 5,200KB です。
onspaces -a dbspc3 ¥¥.¥e: -o 5200 -s 5000
物理ドライブを指定するには:
1. ディスク パーティションにドライブ名が割り当てられていない 場合は、ファイル
ONCONFIG の ROOTDBS に次の値を指定します。
318
IBM Informix Dynamic Server 管理者ガイド
¥¥.¥PhysicalDrive<number>
2. 格納領域の作成またはチャンクの追加を行うには、物理ドライブのパーティションを
指定します。
次の例では、PhysicalDrive0 上の 5,000KB のチャンクが DB 領域 dpspc3 に追加さ
れます。オフセットは 5,200KB です。
onspaces -a dbspc3 ¥¥.¥PhysicalDrive0: -o 5200 -s 5000
警告: フォーマットしたドライブまたはディスク パーティションをロウ ディスク領域
として割り当てて、そのドライブまたはディスク パーティションにデータが含ま
れている場合、データベース サーバがそのディスク領域の使用を開始すると、デ
ータは上書きされます。データベース サーバにそのディスク領域を割り当てる前
には、ロウ ディスク領域にあるデータが上書き可能であることを確認する必要が
あります。
格納領域およびチャンクの名前の指定
チャンクの名前に対しては、格納領域の名前と同じ規則が適用されます。 格納領域また
はチャンクには、次のように明示的なパス名を指定します。
UNIX のみ
v UNIX 上でロウ ディスクを使用する場合は、リンクされたパス名を使用することを
お勧めします。(317 ページの『ロウ デバイスへのシンボリック リンクの作成
(UNIX)』を参照。)
UNIX のみ の終り
Windows のみ
v Windows 上でロウ ディスクを使用する場合、パス名の形式は次のようになります。x
にはディスク ドライブまたはパーティションを指定します。
¥¥.¥x:
Windows のみ の終り
v データベース サーバ ディスク領域用のファイルを使用する場合、パス名は絶対パス
とファイル名になります。
格納領域の作成またはチャンクの追加をするときは、次の命名規則を使用します。ファ
イル名には次の条件があります。
v 128 文字以下の一意の名前であること
第 11 章 ディスク領域の管理
319
v 文字またはアンダスコアで始まること
v 文字、数字、アンダスコア、ドル記号 ($) のみを使用すること
名前を引用符で囲まない場合は、大文字と小文字は区別されません。デフォルトでは、
名前の中の大文字はデータベース サーバによって小文字に変換されます。名前の中で大
文字を使用する場合は、名前を引用符で囲み、環境変数 DELIMIDENT を ON に設定し
ます。
チャンクの最大サイズの指定
ほとんどのプラットフォームで、最大チャンク サイズは 4TB ですが、一部 8TB のも
のもあります。使用するプラットフォームでサポートされているチャンク サイズを確認
するには、マシン ノート ファイルを参照してください。onmode -BC を実行しない場
合、最大チャンク サイズは 2GB です。
チャンクおよび格納領域の最大数の指定
格納領域のチャンクを最大 32,766 に、またデータベース サーバ システムの格納領域
を最大 32,766 に指定できます。格納領域は、DB 領域、BLOB 領域、および SB 領域
のいずれの組合せでも指定できます。
データベース サーバのインスタンス サイズに適用されるすべての制限を考慮すると、
インスタンスの最大サイズは約 8 ペタバイトになります。
チャンクと格納領域の最大数を有効化する場合は、onmode -BC を実行する必要があり
ます。
物理スキーマ変更後のバックアップ
次の操作を行う場合は、ルート DB 領域および変更した格納領域についてレベル 0 バ
ックアップを実行して、データを復元できるようにする必要があります。
v ミラーリングの追加または削除
v 論理ログ ファイルの削除
v 物理ログのサイズまたは格納場所の変更
v 格納域マネージャの構成の変更
v DB 領域、BLOB 領域、SB 領域の追加、移動、または削除
v DB 領域、BLOB 領域、SB 領域に対してのチャンクの追加、移動、または削除
重要: 新しい論理ログを追加する場合、その新しい論理ログを使用 するために、ルート
DB 領域および変更した DB 領域のレベル 0 バックアップを実行する必要はあ
りません。しかし、レベル 1 およびレベル 2 バックアップ時の障害の発生を防
止する目的で、レベル 0 バックアップを実行するようお勧めします。
320
IBM Informix Dynamic Server 管理者ガイド
次の場合のようにログ付き表タイプに切り替える前に、ログなしデータが復元されるよ
う、変更した格納領域のレベル 0 バックアップを実行する必要があります。
v
ログなしデータベースからログ付きデータベースに変換するとき
v ロウ表を標準に変換するとき
DB 領域の管理
このセクションでは、デフォルト ページ サイズを保有する標準および一時 DB 領域と
それを持たない DB 領域の作成、DB 領域を作成したときの、DB 領域における表領域
表領域の初期および追加のエクステント サイズの指定、および DB 領域または BLOB
領域へのチャンクの追加について説明します。
デフォルト ページ サイズを使用する DB 領域の作成
ここでは、onspaces を使用して、標準 DB 領域および一時 DB 領域を作成する方法に
ついて説明します。デフォルトでないページ サイズを持つ DB 領域の作成について
は、 325 ページの『デフォルトでない ページ サイズを使用する DB 領域の作成』を参
照してください。
ISA を使用した DB 領域の作成方法については、ISA のオンライン ヘルプを参照して
ください。
新しく追加された DB 領域は (存在する場合はそのミラーも)、即時に使用できます。ミ
ラーリングを使用している場合には、DB 領域を作成するときにその DB 領域をミラー
リングできます。 ミラーリングは直ちに有効になります。
onspaces を使用して標準 DB 領域を作成するには:
1. UNIX で DB 領域を作成するには、ユーザ informix または root としてログインす
る必要があります。
Windows では、Informix-Admin グループのメンバが DB 領域を作成できます。
2. データベース サーバが、オンライン モード、シングルユーザ モード、または静止
モードであることを確認します。
3. 314 ページの『ディスク領域の割当て』の説明に従って、DB 領域のディスク領域を
割り当てます。
4. DB 領域を作成するには、onspaces のオプション -c -d を使用します。
オプション -s (サイズ)、および -o (オフセット) のデフォルトの単位は KB です。
MB を KB に変換するには、1024 を掛けます。計算式は、10MB = 10 * 1024KB と
なります。
第 11 章 ディスク領域の管理
321
デフォルトでないページ サイズを持つ DB 領域を作成する場合の、追加の
onspaces オプションについては、 325 ページの『デフォルトでない ページ サイズ
を使用する DB 領域の作成』を参照してください。
5. DB 領域の表領域表領域の初期および追加のエクステント サイズを指定しない場合
は、手順 6 に進みます。
DB 領域の表領域表領域の初期および追加のエクステント サイズを指定する場合
は、 323 ページの『表領域表領域の初期および追加の追加エクステント サイズの指
定』の補足説明を参照してください。
6. DB 領域を作成したら、ルート DB 領域および新しい DB 領域のレベル 0 バック
アップを実行する必要があります。
次の例では、UNIX 上のロウ ディスク領域を使用して、10MB のミラーリングされた
DB 領域 dbspce1 を作成する方法を示します。主チャンクおよびミラーチャンクのオフ
セットは 5,000KB です。
onspaces -c -d dbspce1 -p /dev/raw_dev1 -o 5000 -s 10240 -m
/dev/raw_dev2 5000
次の例では、Windows 上のロウ ディスク領域 (ドライブ e:) を使用して、5MB の DB
領域 dbspc3 を作成する方法を示します。オフセットは 200KB です。
onspaces -c -d dbspc3 ¥¥.¥e: -o 200 -s 5120
onspaces を使用する DB 領域の作成については、「IBM Informix: Dynamic Server 管理
者の参照」のユーティリティに関する章、および 272 ページの『DB 領域』を参照して
ください。
ON-Monitor を使用して DB 領域を作成するには (UNIX):
1. 「Dbspaces」>「Create」を選択します。
2. 「Dbspace Name」フィールドに新しい DB 領域の名前を入力します。
3. DB 領域の初期チャンクのミラーを作成する場合は、「Mirror」フィールドに Y を
入力します。
ミラーを作成しない場合は、N を入力します。
4. 作成中の DB 領域が一時 DB 領域の場合は、「Temp」フィールドに Y を入力しま
す。
そうでない場合は、N を入力します。
5. 標準 DB 領域のページ サイズを指定する場合は、「Page Size」フィールドに KB
単位のサイズを入力します。サイズはルート DB 領域ページ サイズの倍数でなけれ
ばなりません。ページ サイズの指定の詳細については、 325 ページの『デフォルト
でない ページ サイズを使用する DB 領域の作成』を参照してください。
322
IBM Informix Dynamic Server 管理者ガイド
DB 領域内のすべての表、インデックス、およびその他のオブジェクトは、指定され
たサイズのページを使用します。
6. 主チャンク の「Full Pathname」フィールドに、DB 領域の最初の主チャンクの絶対
パス名を入力します。
7. 「Offset」フィールドにオフセットを指定します。
8. 「Size」フィールドにチャンクのサイズを KB 単位で入力します。
9. この DB 領域をミラーリングする場合は、画面のミラー チャンク セクションに、
ミラー チャンクの絶対パス名、サイズ、およびオプションのオフセットを入力しま
す。
詳しくは、「IBM Informix: Dynamic Server 管理者の参照」の ON–Monitor の章を参照
してください。
表領域表領域の初期および追加の追加エクステント サイズの指定
表領域表領域のエクステント数を減らす場合、および主チャンク以外のチャンクに表領
域表領域のエクステントを配置しなければならない状況を減らす場合に、初期および追
加のエクステント サイズを指定してください。(主チャンク とは、DB 領域の初期チャ
ンクです。)
初期エクステント サイズ、追加エクステント サイズ、または初期と追加のエクステン
ト サイズの両方のいずれかを指定できます。また、エクステント サイズを指定しない
こともできます。表領域表領域の初期または追加のエクステント サイズを指定しない場
合、Dynamic Server は既存のデフォルトのエクステント サイズを使用します。
TBLTBLFIRST および TBLTBLNEXT 構成パラメータを使用して、サーバが初期化され
るときに作成される ルート DB 領域の表領域表領域の初期および追加のエクステント
サイズを指定できます。
onspaces ユーティリティを使用して、ルート以外の DB 領域の表領域表領域の初期お
よび追加のエクステント サイズを指定できます。
DB 領域を作成する場合に限り、初期と追加のエクステント サイズを指定できます。
DB 領域の作成後には、初期と追加のエクステント サイズの指定を変更することはでき
ません。また、一時 DB 領域、SB 領域、BLOB 領域、または外部領域のエクステント
サイズを指定することもできません。DB 領域の作成後には、初期と追加のエクステン
ト サイズの指定を変更することはできません。
初期と追加のエクステント サイズを指定するには:
1. 表領域表領域で必要なページの総数を決定します。このページ数は、DB 領域に格納
される可能性のある表、分離インデックス、および表フラグメントの合計に、表領域
表領域の 1 ページを足した数に等しくなります。
2. ページ数に必要な KB 数を計算します。この数は、システム上のページの KB 数に
よって異なります。
第 11 章 ディスク領域の管理
323
3.
DB 領域の作成時に表領域表領域のすべてのエクステントを割り当てることが重要
かどうか、また、エクステントを隣接して割り当てるべきかどうかを考慮して、シス
テム上の領域管理の要件を決定します。これらの問題が重要なほど、初期エクステン
ト サイズを大きくする必要があります。エクステントが隣接していなかったり、副
チャンクにあったりしてもあまり問題でない場合は、初期と追加のエクステント サ
イズを小さくすることができます。
4. 次のようにエクステント サイズを指定します。
v ルート DB 領域の領域所要量の場合は、TBLTBLFIRST 構成パラメータに初期エ
クステント サイズを指定し、TBLTBLNEXT 構成パラメータに追加エクステント
サイズを指定します。次にデータベース サーバのインスタンスを初期化します。
v ルートでない DB 領域の領域所要量の場合は、DB 領域を作成する onspaces ユ
ーティリティを使用して、コマンド行で初期と追加のエクステント サイズを指定
します。
エクステント サイズは、KB 単位のページ サイズの倍数でなければなりません。初期
と追加のエクステント サイズを指定する場合は、次のガイドラインに従ってください。
エクステントのタイプ
最小サイズ
最大サイズ
ルートでない DB 領域の初 KB で指定された 50 ペー
期エクステント
ジ分のサイズ。これがシス
テム デフォルトになりま
す。
例えば、2KB のページ シ
ステムの場合、最小長は
100KB になります。
初期チャンクから、予約ペ
ージ、データベースのため
の表領域、および物理ログ
や論理ログなどのシステム
オブジェクトに必要な領域
を引いたサイズ。
ルート DB 領域Fの初期エ
クステント
KB で指定された 250 ペー
ジ分のサイズ。これがシス
テム デフォルトになりま
す。
初期チャンクから、予約ペ
ージ、データベースのため
の表領域、および物理ログ
や論理ログなどのシステム
オブジェクトに必要な領域
を引いたサイズ。
追加エクステント
システム上のディスク ペー 最大チャンク サイズから 3
ページ引いたサイズ。
ジ サイズの 4 倍。どの
DB 領域タイプでもデフォ
ルトは 50 ページです。
次の onspaces ユーティリティの -ef と -en オプションを使用して、ルート以外の DB
領域の表領域表領域の初期および追加のエクステント サイズを指定します。
v 初期エクステント サイズ: -ef size_in_kbytes
v 追加エクステント サイズ: -en size_in_kbytes
324
IBM Informix Dynamic Server 管理者ガイド
例えば、次のように指定します。
onspaces -c -d dbspace1 -p /usr/data/dbspace1
-o 0 -s 1000000 -e 2000 -n 1000
Oncheck -pt および oncheck -pT を使用して、表領域表領域の初期および追加のエクス
テント サイズを表示できます。
HDR が使用されており、DB 領域が主データベース サーバに作成される場合、初期と
追加のエクステント サイズは、ADDCHK ログ レコードによって副データベース サー
バに渡されます。
onspaces ユーティリティ、oncheck コマンド、および表領域表領域の初期と追加のエク
ステント サイズの指定の詳細については、「IBM Informix: Dynamic Server 管理者の参
照」を参照してください。
デフォルトでない ページ サイズを使用する DB 領域の作成
デフォルト ページ サイズで使用できるものよりキー長を長くする場合は、標準または
一時 DB領域にページ サイズを指定できます。ルート DB 領域はデフォルト ページ
サイズになっています。ページ サイズを指定する場合、サイズは、16KB バイト以下
の、デフォルト ページ サイズの倍数でなければなりません。
表を置く DB 領域とその表のインデックスを置く DB 領域を別にすることができま
す。これらのパーティションのページ サイズを異なるものにすることもできます。
DB 領域のページ サイズを指定する場合は、以下の作業を実行します。
1. ラージ チャンク モードが有効でない場合は、onmode -BC コマンドを使用してこ
のモードを有効にします。デフォルトでは、Dynamic Server 10.0 を初めて初期化す
ると、ラージ チャンク モードが有効になって Dynamic Server が起動します。
onmode ユーティリティについては、「IBM Informix: Dynamic Server 管理者の参
照」を参照してください。
2. DB 領域のページ サイズに対応するバッファ プールを作成します。onparams ユー
ティリティまたは BUFFERPOOL 構成パラメータを使用できます。DB 領域を作成
する前にこれを実行することをお勧めします。
ページ サイズに対応したバッファ プールを持たない DB 領域を作成する場合、
Dynamic Server は、ONCONFIG 構成ファイルで定義されたデフォルト パラメータ
を使用して自動的にバッファ プールを作成します。
同じページ サイズの複数のバッファ プールを作成することはできません。
詳しくは、『デフォルトでない ページ サイズを使用する DB 領域の作成』を参照
してください。
第 11 章 ディスク領域の管理
325
3. DB 領域を作成するときに DB 領域のページ サイズを定義します。onspaces ユーテ
ィリティまたは ON-Monitor を使用できます。詳しくは、 330 ページの『ページ サ
イズの定義』を使用してください。
例えば、6KB のページ サイズを持つ DB 領域を作成する場合、6KB のサイズを保有
するバッファ プールを作成する必要があります。新規バッファ プールのページ サイズ
を指定しない場合、Dynamic Server は、バッファ プールのデフォルト ページ サイズ
として、オペレーティング システムのデフォルト ページ サイズ (Windows では
4KB、ほとんどの UNIX では 2KB) を使用します。
注: デフォルトでないページ サイズを使用する場合、場合により物理ログのサイズを増
やす必要があります。デフォルトでないページを頻繁に更新するときは、場合によ
り物理ログを 150% から 200% 増やす必要があります。物理ログを調整するには試
験が必要な場合もあります。必要な場合は、物理ログがいっぱいになってチェック
ポイントがトリガされる頻度に応じて、物理ログのサイズを調整できます。
デフォルトでないページ サイズのバッファ プールの作成
バッファ プールを作成する場合、BUFFERPOOL 構成パラメータまたは onparams ユ
ーティリティを使用して、バッファ プールのサイズ、バッファ プール内の LRUS 数、
バッファ プール内のバッファ プール数、および lru_min_dirty と lru_max_dirty の値
などの、バッファ プールに関する情報を定義できます。
BUFFERPOOL 構成パラメータを使用してこの情報を指定します。
BUFFERPOOL 構成パラメータは、onconfig.std の 2 行で構成されます。
UNIX マシンでは、この行は次のとおりです。
BUFFERPOOL default,lrus=8,buffers=5000,lru_min_dirty=50,lru_max_dirty=60
BUFFERPOOL size=2K,buffers=5000,lrus=8,lru_min_dirty=50,lru_max_dirty=60
Windows マシンでは、この行は次のとおりです。
BUFFERPOOL default,lrus=8,buffers=2000,lru_min_dirty=50,lru_max_dirty=60
BUFFERPOOL size=4K,buffers=2000,lrus=8,lru_min_dirty=50,lru_max_dirty=60
上の行は、ページ サイズに対応したバッファ プールを持たない DB 領域を作成すると
きに使用されるデフォルト値を指定します。バッファ プールは、データベース サーバ
が起動するときに作成されます。下の行はデフォルト行であり、バッファ プールのデー
タベース サーバ デフォルト値を指定します。これらの値は、データベース サーバのデ
フォルト ページ サイズに基づいて決まります。
onspaces ユーティリティを使用して異なるページ サイズの DB 領域を追加するか、
onparams ユーティリティを使用して新規バッファ プールを追加する場合は、
ONCONFIG ファイルの BUFFERPOOL 構成パラメータに新規行が追加されます。各バ
326
IBM Informix Dynamic Server 管理者ガイド
ッファ プールのページ サイズは、オペレーティング システムのデフォルト ページ サ
イズの倍数でなければなりません。ONCONFIG ファイルに追加された 3 番目の
BUFFERPOOL 行の例を次に示します。
BUFFERPOOL default,lrus=8,buffers=5000,lru_min_dirty=50,lru_max_dirty=60
BUFFERPOOL size=2K,buffers=5000,lrus=8,lru_min_dirty=50,lru_max_dirty=60
BUFFERPOOL size=6K,buffers=3000,lrus=8,lru_min_dirty=50,lru_max_dirty=60
BUFFERPOOL 行のフィールドでは大文字と小文字が区別されないため、lrus、Lrus、
LRUS のどれを指定しても構いません。これらのフィールドが表示される順番は任意で
す。
新規バッファ プールのページ サイズを指定しない場合、Dynamic Server は、バッファ
プールのデフォルト ページ サイズとして、オペレーティング システムのデフォルト
ページ サイズ (Windows では 4KB、ほとんどの UNIX では 2KB) を使用します。
buffers の値がゼロ (0) または buffers の値が BUFFERPOOL 構成パラメータにない場
合、Dynamic Server は、指定されたページ サイズのバッファ プールを作成できませ
ん。
注: バージョン 10.0 より前に BUFFERS、LRUS、LRU_MAX_DIRTY、および
LRU_MIN_DIRTY 構成パラメータで指定していた情報は、BUFFERPOOL 構成パラ
メータを使用して指定するようになりました。BUFFERPOOL 構成パラメータを使
用して入力する情報は、推奨されないパラメータで以前に指定された情報に置換わ
ります。推奨されないパラメータに関する情報については、打ち切られた構成パラ
メータについて説明している「IBM Informix: Dynamic Server 管理者の参照」の付
録を参照してください。
BUFFERPOOL 構成パラメータまたは onparams ユーティリティを使用して指定する値
を次の表で説明します。
フィールド
説明
値の範囲
size
ページの KB 数を指定します。K が後に続き
ます。
サイズは 2K または 4K から 16 K
まで変わります。2K がデフォルト
です。
第 11 章 ディスク領域の管理
327
フィールド
説明
値の範囲
buffers
ページ サイズごとにバッファ数を指定しま
す。
UNIX の 32 ビット プラットフォ
ームの場合
データベース サーバ ユーザ スレッドが、ク
ライアント アプリケーションのために、ディ
スク入出力用に使用できるようにする共有メ
モリ バッファの最大数です。データベース
サーバに必要なバッファ数は、アプリケーシ
ョンによって異なります。
v ページ サイズが 2048 バイトに
等しい場合:
100 から 1,843,200 バッファ
(1843200= 1800 * 1024)
v ページ サイズが 4096 バイトに
等しい場合:
100 から 921,600 バッファ
例えば、データベース サーバにより時間の
(921,600 = ((1800 * 1024)/4096)
90% でアプリケーション データの 15% がア
* 2048 )
クセスされる場合、その 15% を保持できるだ
Windows の 32 ビット プラットフ
けのバッファを割り当てる必要があります。
ォームの場合:
バッファ数を大きくすると、システムのパフ
100 から 524,288 バッファ
ォーマンスが向上します。
(524,288 = 512 * 1024)
通常、バッファ領域は、物理メモリの 20 か
ら 25% の範囲で設定してください。それ以外 64 ビット プラットフォーム:
31
のすべての共有メモリ パラメータは、バッフ 100 から 2 -1 バッファ
ァ領域 (buffers * system_page_size) を物理メ ご使用の 64 ビット プラットフォ
モリの 20% に設定してから計算することをお ームの実際の値については、「リリ
ース ノート」を参照してくださ
勧めします。
い。Solaris の場合、バッファの最大
値は 536,870,912 です。
ページ サイズごとに共有メモリ バッファ プ
ール内の LRU (最低使用頻度) 管理列の数を
指定します。lru_min_dirty と lru_max_dirty
の値を組み合わせて LRUS の値を調整し、共
有メモリ バッファのディスクへのフラッシュ
頻度を制御できます。
lrus
1 から 128
LRUS の設定を高くしすぎると、ページ クリ
ーナ動作が必要以上に多くなります。
lru_min_dirty
328
ページ クリーニングが必須でなくなる LRU
管理列の更新済みページの割合を指定しま
す。場合によっては、このポイントを下回っ
た後でもページ クリーナによってクリーニン
グが続行されます。パラメータに範囲外の値
が指定された場合は、デフォルトである
50.00% が設定されます。
IBM Informix Dynamic Server 管理者ガイド
0 から 100 (小数値も使用可能)
フィールド
説明
値の範囲
lru_max_dirty
LRU 管理列内の更新済みページの割合を指定
します。指定した割合になると管理列がクリ
ーニングされます。パラメータに範囲外の値
が指定された場合は、デフォルトである
60.00% が設定されます。
0 から 100 (小数値も使用可能)
データベース サーバがオンライン、静止、またはシングル ユーザ モードの場合は、
onparams ユーティリティを使用して、異なるサイズの新規バッファ プールを追加する
こともできます。onparams ユーティリティを使用すると、指定する情報は自動的に
ONCONFIG ファイルに転送され、BUFFERPOOL キーワードを使用して新規の値が指定
されます。onconfig.std ファイルを編集して値を変更することはできません。
onparams ユーティリティを使用する場合は、次のように情報を指定します。
onparams -b -g <size of buffer page in Kbytes> -n <number of buffers>
-r <number of LRUs> -x <max dirty (fractional value allowed)>
-m <minimum dirty (fractional value allowed)>
次に例を示します。
onparams -b -g 6 -n 3000 -r 2 -x 2.0 -m 1.0
これにより、2% に設定された lru_min_dirty と 1% に設定された lru_min_dirty の 2
つの LRUS を持つ、6KB のサイズの 3000 個のバッファが追加されます。
onparams ユーティリティの詳細については、「IBM Informix: Dynamic Server 管理者の
参照」を参照してください。
既存のバッファ プールのサイズ変更または削除を行う必要がある場合は、データベース
サーバを再起動する必要があります。
PHYSBUFF 構成パラメータを最大ページ サイズの倍数に設定することをお勧めしま
す。例えば、最大ページ サイズが 16KB の場合は、PHYSBUFF パラメータを 32 に設
定します。
LG_ADDBPOOL ログ レコードと sysbufpool システム カタログ表には各バッファ プ
ールの情報が含まれます。
データベース サーバが稼働中に追加されたバッファ プールは、常駐メモリでなく、仮
想メモリに格納されます。使用中のメモリの可用性に応じて、起動時に ONCONFIG フ
ァイルで指定されたバッファ プール記入項目のみが常駐メモリに格納されます。
第 11 章 ディスク領域の管理
329
ページ サイズの定義
次のように、onspaces -k オプションを使用して、KB 単位でページ サイズを設定しま
す。
onspaces -c -d DBspace [-t] [-k pagesize]
-p path -o offset -s size [-m path offset]
ルート DB 領域はデフォルト ページ サイズになっています。
ページ サイズを指定する場合、ページ サイズは、16KB バイト以下の、デフォルト ペ
ージ サイズの倍数でなければなりません。
ON-Monitor を使用して DB 領域を作成する場合は、「Page Size」フィールドに KB
のページ サイズを入力してください。
ON-Monitor と onspaces ユーティリティの使用法の詳細については、「IBM Informix:
Dynamic Server 管理者の参照」を参照してください。
一時 DB 領域の作成
一時ファイルを割り当てる場所を指定するには、一時 DB 領域を作成します。
一時 DB 領域を定義するには:
1. ユーティリティ onspaces でオプション -c -d -t を使用します。
詳しくは、321 ページの『デフォルト ページ サイズを使用する DB 領域の作成』
を参照してください。
2. 環境変数 DBSPACETEMP または構成パラメータ DBSPACETEMP を使用して、デ
ータベース サーバが一時記憶域に使用できる DB 領域を指定します。
DBSPACETEMP 構成パラメータには、デフォルトでないページ サイズをもった DB
領域を指定できます。ただし、DBSPACETEMP リストのすべての DB 領域は同じペ
ージ サイズにする必要があります。
DBSPACETEMP の詳細については、「IBM Informix: Dynamic Server 管理者の参
照」の構成パラメータの章を参照してください。
3. 一時 DB 領域を複数作成する場合は、それぞれの一時 DB 領域を別々のディスクに
配置して、入出力を最適化する必要があります。
一時 DB 領域を作成する場合は、構成パラメータ DBSPACETEMP、環境変数
DBSPACETEMP のどちらかまたは両方を設定して、新しく作成した一時 DB 領域の存
在をデータベース サーバに認識させる必要があります。以下の 2 つの手順が完了する
と、データベース サーバで一時 DB 領域が使用されるようになります。
v 構成パラメータ DBSPACETEMP、環境変数 DBSPACETEMP のどちらかまたは両方
を設定します。
330
IBM Informix Dynamic Server 管理者ガイド
v データベース サーバを再初期化します。
次の例は、5MB の一時 DB 領域 temp_space を作成する方法を示しています。オフセ
ットは 5,000KB です。
onspaces -c -t -d temp_space -p /dev/raw_dev1 -o 5000 -s 5120
詳しくは、275 ページの『一時 DB 領域』を参照してください。
ディスク領域不足の場合の対処
作成中の DB 領域の最初のチャンクが UNIX のクックド ファイルまたは Windows の
NTFS ファイルである場合、データベース サーバではその最初のチャンク用に十分なデ
ィスク領域が確保されているかどうかを確認します。そのチャンクのサイズがディスク
上で使用できる領域より大きい場合、メッセージが表示され、DB 領域は作成されませ
ん。ただし、データベース サーバが初期チャンク用に作成したクックド ファイルは削
除されません。そのサイズは、DB 領域を作成する前にファイル システム上に残ってい
た領域を表します。 このファイルを削除して、領域を再利用してください。
DB 領域または BLOB 領域へのチャンクの追加
DB 領域、BLOB 領域、SB 領域がいっぱいの場合や、ディスク領域がさらに必要な場
合は、チャンク を追加します。チャンクを追加するには、onspaces または ISA を使用
します。ISA を使用したチャンクの追加方法については、ISA のオンライン ヘルプを
参照してください。
重要: 新しく追加されたチャンクおよびそのミラー (存在する場合) は、即時に使用でき
ます。ミラーリングされた格納領域にチャンクを追加する場合は、ミラー チャン
クも追加する必要があります。
onspaces を使用してチャンクを追加するには:
1. UNIX でチャンクを追加するには、ユーザ informix または root としてログインす
る必要があります。
Windows でチャンクを追加するには、Informix-Admin グループのメンバである必要
があります。
2. データベース サーバがオンライン、シングルユーザ、または静止モードであるこ
と、または高速復旧モードのクリーンアップ段階にあることを確認します。
3. 314 ページの『ディスク領域の割当て』の説明に従って、チャンクのディスク領域を
割り当てます。
4. チャンクを追加するには、onspaces のオプション -a を使用します。
格納領域がミラーリングされている場合は、主チャンクおよびミラー チャンクの両
方のパス名を指定する必要があります。
第 11 章 ディスク領域の管理
331
正しくないパス名、オフセット、またはサイズを指定すると、チャンクが作成され
ず、エラー メッセージが表示されます。331 ページの『ディスク領域不足の場合の
対処』も参照してください。
5. チャンクを追加した後、チャンクが格納されているルート DB 領域、DB 領域、
BLOB 領域、または SB 領域のレベル 0 バックアップを実行する必要があります。
次の例では、10MB のミラー チャンクが blobsp3 に追加されます。主チャンクとミラ
ー チャンクの両方に 200KB のオフセットが指定されます。ミラー チャンクを追加し
ない場合は、オプション -m を省略します。
onspaces -a blobsp3 -p /dev/raw_dev1 -o 200 -s 10240
-m /dev/raw_dev2 200
次の例では、ロウ ディスク領域の 5MB のチャンクが DB 領域 dbspc3 に追加されま
す。オフセットは 5,200KB です。
onspaces -a dbspc3 ¥¥.¥e: -o 5200 -s 5120
onspaces を使用しての DB 領域へのチャンクの追加方法については、「IBM Informix:
Dynamic Server 管理者の参照」のユーティリティに関する章を参照してください。
ON-Monitor を使用してのチャンクの追加 (UNIX)
DB 領域にチャンクを追加する手順は、次のとおりです。
1. 「Add Chunk」>「Dbspaces」を選択します。
2. Enter キーまたは矢印キーを使用して、新しいチャンクを格納する BLOB 領域また
は DB 領域を選択し、Ctrl キーを押しながら B キーを押すか F3 キーを押しま
す。
3. BLOB 領域または DB 領域をミラーリングするかどうかを、次の画面で指定しま
す。ミラーリングする場合は、「Mirror」フィールドに Y を入力します。
4. チャンクを追加する DB 領域が一時 DB 領域の場合は、「Temp」フィールドに Y
を入力します。
5. BLOB 領域または DB 領域をミラーリングすることにした場合は、主チャンクとミ
ラー チャンクの両方を指定する必要があります。
主チャンク セクションの「Full Pathname」フィールドに新しい主チャンクの絶対パ
ス名を入力します。
6. 「Offset」フィールドにオフセットを指定します。
7. 「Size」フィールドにチャンクのサイズを KB 単位で入力します。
8. このチャンクをミラーリングする場合は、画面のミラー チャンク セクションに絶対
パス名、サイズ、およびオプションのオフセットを入力します。
332
IBM Informix Dynamic Server 管理者ガイド
DB 領域の名前の変更
informix ユーザであるか、DBA アクセス権を持っているときに、データベース サーバ
が静止モード (その他のモードでない) の場合は、onspaces ユーティリティを使用して
DB 領域の名前を変更できます。
DB 領域の名前を変更するには、次の onspaces ユーティリティ コマンドを使用しま
す。
onspaces -ren old_dbspace_name-n new_dbspace_name
標準 DB 領域および、BLOB 領域、スマート BLOB 領域、一時領域、外部領域などの
他のすべての領域の名前を変更できます。ただし、ルート DB 領域、または物理ログを
含む DB 領域などのクリティカル DB 領域の名前を変更することはできません。
次の場合は、DB 領域と SB 領域の名前を変更できます。
v エンタープライズ レプリケーションが有効の場合
v 高可用性データ レプリケーション (HDR) 主データベース サーバ上にある場合
HDR 副データベース サーバ上、または HDR 副データベース サーバがエンタープラ
イズ レプリケーション構成の一部である場合は、DB 領域および SB 領域の名前を変
更することはできません。
DB 領域の名前変更操作では、DB 領域名のみが変更されます。データの再編成は行わ
れません。
DB 領域の名前変更コマンドは、名前が格納されているすべての場所の DB 領域名を更
新します。これには、ディスク上の予約ページ、システム カタログ、ONCONFIG 構成
ファイル、およびメモリ内のデータ構造体が含まれます。
警告: DB 領域の名前の変更後には、名前を変更した DB 領域およびルート DB 領域の
レベル 0 のアーカイブを実行してください。詳しくは、「IBM Informix バックア
ップおよび復元ガイド」を参照してください。
DB 領域の名前変更後に必要な追加操作
DB 領域の名前を変更する場合、古い DB 領域名を参照するストアド プロシジャの再
書込みと再コンパイルを行う必要があります。例えば、ALTER FRAGMENT キーワー
ドと DB 領域名に対する参照が含まれているストアド プロシジャの場合は、そのスト
アド プロシジャの再書込みと再コンパイルを行う必要があります。
DATASKIP 構成パラメータで指定された DB 領域の名前を変更する場合は、DB 領域
の名前を変更した後に、DATASKIP 構成パラメータを手作業で更新する必要がありま
す。
第 11 章 ディスク領域の管理
333
DB 領域パーティションの管理
式ベースまたはラウンドロビン分散スキームを使用するフラグメント表の場合、1 つの
DB 領域内に、表やインデックスのページのコレクションである、複数のパーティショ
ン を作成できます。
各式が特定のフラグメントに配置されるデータセットを指定する式ベース分散スキーム
を使用して、フラグメント表を作成するとします。この場合、データを分離して、1 月
分のデータをもった表のデータを 1 つの DB 領域に入れ、次の 11 か月分のデータを
他の 11 個の DB 領域に入れることができます。ただし、年間のすべてのデータに対し
て 1 つの DB 領域のみを使用する場合は、パーティションを作成して、各月のデータ
を 1 つの DB 領域の個々のパーティションに格納できるようにします。
パーティションを持つフラグメント表を作成する場合は、sysfragments システム カタ
ログの各行には、パーティション列にパーティション名が含まれます。パーティション
を持たないフラグメント表を作成する場合は、パーティション列には、DB 領域の名前
が表示されます。sysfragments カタログのフラグ列によって、フラグメント化スキーマ
にパーティションがあるかどうかがわかります。
パーティション化された表およびインデックスを作成できます。また、PARTITION キ
ーワードとパーティション名を使用して、パーティション フラグメントの作成、削除、
および変更を行うことができます。
パーティション化されたフラグメント表を作成するには、次の例のように SQL 構文を
使用します。
CREATE TABLE tb1(a int)
FRAGMENT BY EXPRESSION
PARTITION part1 (a >=0 AND a < 5) IN dbspace1,
PARTITION part2 (a >=5 AND a < 10) IN dbspace1
...
;
パーティションを含む表またはインデックス フラグメントを作成した場合、ALTER
FRAGMENT 文を使用するときは、次の例に示すように、パーティション名を含む構文
を使用する必要があります。
ALTER FRAGMENT ON TABLE tb1 INIT FRAGMENT BY EXPRESSION
PARTITION part_1 (a >=0 AND a < 5) IN dbspace1,
PARTITION part_2 (a >=5 AND a < 10) IN dbspace1;
ALTER FRAGMENT ON INDEX ind1 INIT FRAGMENT BY EXPRESSION
PARTITION part_1 (a >=0 AND a < 5) IN dbspace1,
PARTITION part_2 (a >=5 AND a < 10) IN dbspace1;
この例に示すように、CREATE TABLE、CREATE INDEX、および ALTER
FRAGMENT ON INDEX 文では、FRAGMENT BY EXPRESSION 節の代わりに
PARTITION BY EXPRESSION 節を使用できます。
334
IBM Informix Dynamic Server 管理者ガイド
ALTER FRAGMENT ON INDEX idx1 INIT PARTITION BY EXPRESSION
PARTITION part1
(a <= 10) IN idxdbspc1,
PARTITION part2
(a <= 20) IN idxdbspc1,
PARTITION part3 (a <= 30) IN idxdbspc1;
ALTER FRAGMENT 構文は、パーティションを持たないフラグメント化された表やイ
ンデックスをパーティションを持つ表やインデックスに変更するときに使用します。例
えば、下の構文は、複数の DB 領域を保有するフラグメント表を、パーティションを持
つ 1 つの表に変換する方法を示しています。
CREATE TABLE t1 (c1 int) FRAGMENT BY EXPRESSION
(c1=10) IN dbs1,
(c1=20) IN dbs2;
ALTER FRAGMENT ON TABLE t1 MODIFY dbs2 TO PARTITION part_3 (c1=20)
IN dbs1
下の構文は、フラグメント化されたインデックスを、パーティションを持つインデック
スに変換する方法を示しています。
CREATE TABLE
(c1=10)
CREATE INDEX
(c1=10)
t1 (c1 int) FRAGMENT BY EXPRESSION
IN dbs1, (c1=20) IN dbs2, (c1=30) IN dbs3
ind1 ON t1 (c1) FRAGMENT BY EXPRESSION
IN dbs1, (c1=20) IN dbs2, (c1=30) IN dbs3
ALTER FRAGMENT ON INDEX ind1 INIT FRAGMENT BY EXPRESSION
PARTITION part_1 (c1=10) IN dbs1, PARTITION part_2 (c1=20) IN dbs1,
PARTITION part_3 (c1=30) IN dbs1,
フラグメント化のガイドライン、インデックスをフラグメント化する手順、パーティシ
ョン化された接続インデックスや分離インデックスを作成する手順、およびパーティシ
ョンを含む接続インデックスや分離インデックスの作成に使用する SQL 文の例など
の、フラグメント化の詳細については、「IBM Informix: Dynamic Server パフォーマン
ス ガイド」を参照してください。
GRANT FRAGMENT、REVOKE FRAGMENT 文のパーティションに関する情報、
ALTER FRAGMENT 文の DROP、DETACH、および MODIFY 節の使用方法の詳細な
ど、構文の詳細については、「IBM Informix: SQL ガイド: 構文」を参照してくださ
い。
BLOB 領域の管理
ここでは、BLOB 領域の作成方法および BLOB ページ サイズの判定方法について説明
します。データベース サーバでは、DB 領域または BLOB 領域にテキスト (TEXT) 型
およびバイト (BYTE) 型データを格納できます。ただし、BLOB 領域の方が効率的に格
納できます。チャンクの追加方法については、331 ページの『DB 領域または BLOB 領
域へのチャンクの追加』を参照してください。
第 11 章 ディスク領域の管理
335
BLOB 領域の作成
BLOB 領域の作成には、onspaces、ISA、または ON–Monitor を使用できます。BLOB
領域名は 128 文字以下で指定します。 名前は一意で、文字またはアンダースコアで始
まる必要があります。この名前には、文字、数字、アンダースコア、ドル記号 ($) を使
用できます。
重要: データベース サーバに対してミラーリングが有効化されている場合は、DB 領域
を作成するときにその DB 領域をミラーリングできます。 ミラーリングは直ち
に有効になります。
BLOB 領域を作成する前の手順:
1. 314 ページの『ディスク領域の割当て』の説明に従って、BLOB 領域のディスク領
域を割り当てます。
2. 使用している環境に最適な BLOB ページ サイズを判定します。
これらの手順については、338 ページの『BLOB ページ サイズの判定』を参照して
ください。
onspaces を使用して BLOB 領域を作成するには:
1. UNIX で BLOB 領域を作成するには、ユーザ informix または root としてログイ
ンする必要があります。
Windows で BLOB 領域を作成するには、Informix-Admin グループのメンバである
必要があります。
2. データベース サーバがオンライン、シングルユーザ、または静止モードであるこ
と、または高速復旧モードのクリーンアップ段階にあることを確認します。
3. BLOB 領域を追加するには、onspaces のオプション -c -b を使用します。
a. BLOB 領域の明示的なパス名を指定します。BLOB 領域がミラーリングされてい
る場合は、主チャンクとミラー チャンクの両方のパス名およびサイズを指定する
必要があります。
b. オプション -o を使用して、BLOB 領域のオフセットを指定します。
c. オプション -s を使用して、BLOB 領域のチャンク サイズ (KB) を指定します。
d. オプション -g を使用し、BLOB ページあたりのディスク ページ数を考慮して
BLOB ページ サイズを指定します。
338 ページの『BLOB ページ サイズの判定』を参照してください。例えば、デ
ータベース サーバ インスタンスのディスク ページ サイズが 2KB で、BLOB
ページのサイズを 10KB にする場合は、このフィールドに 5 を入力します。
正しくないパス名、オフセット、またはサイズが指定されると、BLOB 領域が作成
されず、エラー メッセージが表示されます。331 ページの『ディスク領域不足の場
合の対処』も参照してください。
336
IBM Informix Dynamic Server 管理者ガイド
4. BLOB 領域を作成したら、ルート DB 領域および新しい BLOB 領域のレベル 0 バ
ックアップを実行する必要があります。
次の例では、10MB のミラー BLOB 領域 blobsp3 を作成する方法を示します。BLOB
ページ サイズは 10KB で、データベース サーバのページ サイズは 2KB です。主チ
ャンクとミラー チャンクに 200KB のオフセットが指定されます。この BLOB 領域
は、UNIX 上のロウ ディスク領域から作成されています。
onspaces -c -b blobsp3 -g 5 -p /dev/raw_dev1 -o 200 -s 10240 -m
/dev/raw_dev2 200
onspaces を使用しての DB 領域の作成の詳細については、「IBM Informix: Dynamic
Server 管理者の参照」のユーティリティに関する章を参照してください。
ON-Monitor を使用して BLOB 領域を作成するには (UNIX):
1. 「Dbspaces」>「BLOBSpace」を選択します。
2. 「BLOBSpace Name」フィールドに新しい BLOB 領域の名前を入力します。
3. BLOB 領域の初期チャンクのミラーを作成する場合は、「Mirror」フィールドに Y
を入力します。
そうでない場合は、N を入力します。
4. BLOB ページあたりのディスク ページの数を考慮して、「BLOBPageSize」フィー
ルドに BLOB ページ サイズを指定します。
338 ページの『データベース サーバのページ サイズの判定』を参照してください。
例えば、データベース サーバ インスタンスのディスク ページ サイズが 2KB で、
BLOB ページのサイズを 10KB にする場合は、このフィールドに 5 を入力します。
5. 主チャンクの「Full Pathname」フィールドに、BLOB 領域の最初の主チャンクの絶
対パス名を入力します。
6. 「Offset」フィールドにオフセットを指定します。
7. 「Size」フィールドにチャンクのサイズを KB 単位で入力します。
8. この BLOB 領域をミラーリングする場合は、画面のミラー チャンク セクションに
絶対パス名、サイズ、およびオプションのオフセットを入力します。
テキスト (TEXT) 型およびバイト (BYTE) 型データを格納するための BLOB
領域の準備
新しく作成された BLOB 領域は、テキスト (TEXT) 型またはバイト (BYTE) 型のデー
タの格納には即時に使用できません。BLOB 領域のログと復旧においては、BLOB 領域
を作成する文と、テキスト (TEXT) 型またはバイト (BYTE) 型のデータを BLOB 領域
に挿入する文が、別々の論理ログ ファイルに格納されている必要があります。 この要
件は、データベースのログ機能の状態に関係なく、すべての BLOB 領域に当てはまり
第 11 章 ディスク領域の管理
337
ます。この要件を満たすには、BLOB 領域を作成してから追加の論理ログ ファイルに
切り替えます。(手順については、401 ページの『BLOB ページを解放するためのログ
ファイルのバックアップ』を参照。)
BLOB ページ サイズの判定
BLOB 領域を作成する場合、典型的なシンプル ラージ オブジェクトのサイズと同じに
なるよう BLOB ページのサイズを設定します。つまり、領域を最も効率的に使用でき
るように BLOB ページ サイズを選択します。最適な BLOB ページ サイズを計算する
方法については、「IBM Informix: Dynamic Server パフォーマンス ガイド」の入出力動
作に影響を与える構成を説明する章の BLOB ページ サイズに関する注意事項を参照し
てください。
表にテキスト (TEXT) 型またはバイト (BYTE) 型の列が複数あり、各オブジェクトのサ
イズがかけ離れている場合は、BLOB ページのサイズをそれぞれ適切に設定した個別の
BLOB 領域に、それぞれの列を格納します。290 ページの『表』を参照してください。
データベース サーバのページ サイズの判定
BLOB ページ サイズの指定は、データベース サーバのページを考慮して行います。シ
ステムのデータベース サーバのページ サイズを判定するには、次のいずれかの方法を
使用します。
v ユーティリティ onstat のオプション -b を実行します。出力の最後の行にバッファ
サイズとしてシステム ページ サイズが表示されます。
v ユーティリティ oncheck のオプション -pr を実行して、予約ページ PAGE_PZERO
の内容を表示します。
UNIX のみ
v ON–Monitor で、「Parameters」>「Shared-Memory」、または「Parameters」>
「Initialize」のいずれかを選択して、システム ページ サイズを表示します。
UNIX のみ の終り
BLOB 領域の格納統計の取得
各 BLOB 領域の最適 BLOB ページ サイズを判定するには、次のデータベース サーバ
ユーティリティ コマンドを使用します。
v oncheck -pe
v oncheck -pB
コマンド oncheck -pe を使用すると、BLOB 領域に格納されたオブジェクトに関する次
のような必要な情報を参照できます。
v BLOB 領域チャンクに格納されたデータを持つ表ごとの完全な所有権情報。
database:owner.table として表示されます。
338
IBM Informix Dynamic Server 管理者ガイド
v 関連するテキスト (TEXT) 型およびバイト (BYTE) 型のデータを格納するためにそ
れぞれの表が使用する合計ページ数。
v BLOB 領域内の未使用ページおよびオーバーヘッド ページの合計ページ数。
コマンド oncheck -pB を使用すると、表、またはデータベースごとに次のような統計情
報が表示されます。
v
各 BLOB 領域で表またはデータベースが使用する BLOB ページ数
v 表またはデータベースの一部として格納された各シンプル ラージ オブジェクトが使
用する BLOB ページの平均使用率
詳しくは、362 ページの『oncheck のオプション -pe を使用する BLOB 領域使用率の
監視』、361 ページの『oncheck -pB による BLOB ページ使用率の測定』、および
「IBM Informix: Dynamic Server パフォーマンス ガイド」の表のパフォーマンスに関す
る注意事項の章にある、BLOB 領域 BLOB ページ サイズの最適化の説明を参照してく
ださい。
SB 領域の管理
ここでは、標準または一時 SB 領域の作成、メタデータおよびユーザ データ領域の監
視、SB 領域へのチャンクの追加、およびスマート ラージ オブジェクトの格納特性の
変更方法について説明します。
SB 領域の作成
SB 領域を作成するには、ユーティリティ onspaces または ISA を使用します。
onspaces を使用して SB 領域を作成するには:
1. UNIX で SB 領域を作成するには、ユーザ informix または root としてログインす
る必要があります。
Windows で SB 領域を作成するには、Informix-Admin グループのメンバである必
要があります。
2. データベース サーバがオンライン、シングルユーザ、または静止モードであるこ
と、または高速復旧モードのクリーンアップ段階にあることを確認します。
3. onspaces のオプション -c -S を使用して、SB 領域を作成します。
a. オプション -p を使用してパス名を、オプション -o を使用してオフセットを、
そしてオプション -s を使用して SB 領域のサイズをそれぞれ指定します。
b. SB 領域をミラーリングする場合は、オプション -m を使用してミラー パスとオ
フセットを指定します。
c. SB 領域のデフォルトの格納特性を使用する場合は、オプション -Df を省略しま
す。
第 11 章 ディスク領域の管理
339
別の格納特性を指定する場合は、オプション -Df を使用します。詳しくは、281
ページの『SB 領域の格納特性』 を参照してください。
d. SB 領域の最初のチャンクには、メタデータ領域が必要です。
SB 領域のメタデータ領域を指定したり、データベース サーバでメタデータ領域
のサイズの計算を行うことができます。詳しくは、340 ページの『SB 領域のメ
タデータのサイズ設定』を参照してください。
4. SB 領域を作成したら、ルート DB 領域および新しい SB 領域のレベル 0 バックア
ップを実行する必要があります。
5. 作成した SB 領域へスマート ラージ オブジェクトを格納するには、構成パラメー
タ SBSPACENAME で領域名を指定します。
6. onstat のオプション -d、onstat のオプション -g smb s、および oncheck のオプシ
ョン -cs、-cS、-ps または -pS を使用して、SB 領域の情報を表示します。
詳しくは、364 ページの『SB 領域の監視』を参照してください。
この例では、ミラーリングされた 20MB の SB 領域 sbsp4 を作成する方法を示しま
す。主チャンクとミラー チャンク用にそれぞれ 500KB のオフセットが指定され、
200KB のオフセットで 150KB のメタデータ サイズが指定されます。オプション -Df
のタグ AVG_LO_SIZE で、スマート ラージ オブジェクトの予想平均サイズを 32KB
と指定しています。
onspaces -c -S sbsp4 -p /dev/rawdev1 -o 500 -s 20480 -m /dev/rawdev2 500
-Ms 150 -Mo 200 -Df "AVG_LO_SIZE=32"
SB 領域の作成、およびスマート ラージ オブジェクトに対するデフォルト オプション
については、「IBM Informix: Dynamic Server 管理者の参照」のユーティリティに関す
る章の onspaces の説明を参照してください。スマート ラージ オブジェクトを作成す
る方法については、「IBM Informix: DataBlade API Programmer’s Guide」および
「IBM Informix: ESQL/C Programmer’s Manual」を参照してください。
ISA を使用して SB 領域を作成するには:
1. ISA を使用して SB 領域を作成します。
2. 詳しくは、ISA オンライン ヘルプを参照してください。
3. 新しい SB 領域とルート DB 領域をバックアップします。
SB 領域のメタデータのサイズ設定
SB 領域の最初のチャンクにはメタデータ領域が必要です。SB 領域にスマート ラージ
オブジェクトおよびチャンクを追加すると、メタデータ領域は拡大します。 さらに、メ
タデータ領域が不足した場合に備えて、ユーザ領域の 40% が予約されます。
したがって、SB 領域のメタデータ領域が不足しないようにメタデータ領域のサイズを
正しく設定することは重要です。 これは、次のいずれかの方法で行います。
340
IBM Informix Dynamic Server 管理者ガイド
v データベース サーバを使用し、新しい SB 領域チャンクのメタデータ領域サイズを
計算します。
v メタデータ領域のサイズを明示的に指定します。
SB 領域およびメタデータ領域のサイズの見積りについては、「IBM Informix: Dynamic
Server パフォーマンス ガイド」の表のパフォーマンスに関する注意事項を参照してく
ださい。369 ページの『メタデータおよびユーザ データ領域の監視』も参照してくださ
い。
SB 領域へのチャンクの追加
チャンクを SB 領域または一時 SB 領域に追加するには、ユーティリティ onspaces ま
たは ISA を使用します。チャンクのメタデータ領域の指定、データベース サーバによ
るメタデータ領域の計算、チャンクのユーザ データ専用化を行うことができます。
onspaces を使用してチャンクを SB 領域へ追加するには:
1. データベース サーバがオンライン、シングルユーザ、または静止モードであるこ
と、または高速復旧モードのクリーンアップ段階にあることを確認します。
2. onspaces のオプション -a を使用して、SB 領域のチャンクを作成します。
a. オプション -p を使用してパス名を、オプション -o を使用してオフセットを、
そしてオプション -s を使用してチャンク サイズをそれぞれ指定します。
b. チャンクをミラーリングする場合は、オプション -m を使用してミラー パスと
オフセットを指定します。
c. メタデータ領域のサイズとオフセットを指定するには、オプション -Mo および
-Ms オプションを使用します。
指定された大きさのメタデータ領域が、データベース サーバによって新しいチャ
ンクに割り当てられます。
d. データベース サーバで新しいチャンクのメタデータ サイズを計算する場合は、
オプション -Mo および -Ms を省略します。
データベース サーバによりスマート ラージ オブジェクトの予想平均サイズがユ
ーザ データ領域のサイズで割られます。
e. チャンクをユーザ データ専用にするには、オプション -U を使用します。
オプション -U を使用すると、このチャンクにはメタデータ領域が割り当てられ
ません。代わりに、SB 領域の別のチャンクのメタデータ領域を使用します。
3. SB 領域にチャンクを追加すると、ログ レコード CHRESERV および CHKADJUP
が書き込まれます。
4. ルート DB 領域および SB 領域のレベル 0 バックアップを実行します。
5. onstat のオプション -d および oncheck のオプション -pe を使用して、SB 領域の
チャンクで未使用の領域の容量を監視します。
第 11 章 ディスク領域の管理
341
詳しくは、364 ページの『SB 領域の監視』を参照してください。
次の例では、10MB のミラー チャンクが sbsp4 に追加されます。主チャンクとミラー
チャンクの両方に 200KB のオフセットが指定されます。ミラー チャンクを追加しない
場合は、オプション -m を省略します。オプション -U を使用すると、新しいチャンク
にユーザ データのみを格納するよう指定できます。
onspaces -a sbsp4 -p /dev/rawdev1 -o 200 -s 10240 -m /dev/rawdev2 200 -U
詳しくは、331 ページの『DB 領域または BLOB 領域へのチャンクの追加』および
「IBM Informix: Dynamic Server 管理者の参照」のユーティリティに関する章の
onspaces のセクションを参照してください。
スマート ラージ オブジェクトの格納特性の変更
SB 領域で使用される次のデフォルト格納特性を変更するには、コマンド onspaces のオ
プション -ch を使用します。
v エクステント サイズ
v スマート ラージ オブジェクトの平均サイズ
v バッファリング モード
v 最終アクセス時間
v ロック モード
v ログ
詳しくは、281 ページの『SB 領域の格納特性』および「IBM Informix: Dynamic Server
パフォーマンス ガイド」の表のパフォーマンスに関する注意事項の章にある SB 領域
の管理の説明を参照してください。
一時 SB 領域の作成
必要な情報および一時スマート ラージ オブジェクトが格納される場所を決定する規則
については、286 ページの『一時 SB 領域』を参照してください。一時スマート ラー
ジ オブジェクトは、標準または一時 SB 領域に格納できます。 一時 SB 領域のチャン
クは、追加または削除できます。
一時スマート ラージ オブジェクトを格納する一時 SB 領域を作成するには:
1.
一時 SB 領域の領域を割り当てます。詳しくは、314 ページの『ディスク領域の割
当て』を参照してください。
SBSPACETEMP の詳細については、「IBM Informix: Dynamic Server 管理者の参
照」の構成パラメータの章を参照してください。
2.
次の例のように、一時 SB 領域を作成します。
onspaces -c -S tempsbsp -t -p ./tempsbsp -o 0 -s 1000
342
IBM Informix Dynamic Server 管理者ガイド
次の onspaces のオプションを指定できます。
a. メタデータ領域およびオフセットを指定します (-Ms および -Mo)。
b. 格納特性を指定します (-Df)。
一時 SB 領域のログ機能をオンにすることはできません。
3. 構成パラメータ SBSPACETEMP をデフォルト一時 SB 領域の格納域名に設定しま
す。
データベース サーバを再起動します。
4. onstat のオプション -d を使用して、一時 SB 領域を表示します。
図 56 で、一時 SB 領域の最初の列 flags にある値 0xa001、および 2 番目の列
flags にある値 N S に注目してください。
5. 一時スマート ラージ オブジェクトを作成する場合は、フラグ LO_CREATE_TEMP
を指定します。
DataBlade API の使用例:
mi_lo_specset_flags(lo_spec,LO_CREATE_TEMP);
ESQL/C の使用例:
ifx_lo_specset_flags(lo_spec,LO_CREATE_TEMP);
スマート ラージ オブジェクトを作成する方法については、「IBM Informix: DataBlade
API Programmer’s Guide」および「IBM Informix: ESQL/C Programmer’s Manual」を参
照してください。
Dbspaces
address number flags
ab01660 5
0xa001
Chunks
address
ab01a50
fchunk nchunks flags owner
name
5
1
N S
informix tempsbsp
chk/dbs offset size free bpages flags pathname
5
5 0
500
347 347
POS
./tempsbsp
Metadata 100
74 100
図 56. 一時 SB 領域を表示する onstat -d の出力
チャンクの削除
DB 領域からチャンクを削除するには、onspaces または ISA を使用します。
チャンクを削除する前に、次の表を参考に、データベース サーバが正しいモードである
ことを確認してください。
第 11 章 ディスク領域の管理
343
削除するチャンクのタイプ
データベース サーバ
がオンライン モード
データベース サーバ
がシングルユーザまた
は静止モード
データベース サーバ
がオフライン モード
DB 領域のチャンク
はい
はい
いいえ
一時 DB 領域のチャンク
はい
はい
いいえ
BLOB 領域チャンク
いいえ
はい
いいえ
はい
いいえ
SB 領域または一時 SB 領域チ はい
ャンク
チャンクが空かどうかの確認
次のユーティリティを使用して DB 領域からチャンクを正常に削除する場合は、チャン
クにデータがない状態にする必要があります。オーバーヘッド ページ以外のすべてのペ
ージを解放します。
オーバーヘッド以外のエンティティにページが割り当てられたままになっていると、ユ
ーティリティから次のエラーが戻されます。
Chunk is not empty.
さらに、DB 領域が 2 つ以上のチャンクで構成されており、追加チャンクにユーザ デ
ータが含まれていない場合でも、追加チャンクに表領域表領域が含まれているときは、
そのチャンクを削除することはできません。
「Chunk is not empty」のメッセージを受け取る場合、oncheck のオプション -pe を実
行してエクステントの内容を表示することによって、チャンク内の領域にとどまってい
る表またはそのほかのエンティティを確認する必要があります。
通常は、ページを所有している表を削除すると、そのページを削除できます。その後で
ユーティリティ コマンドを再実行してください。
onspaces を使用しての DB 領域からのチャンクの削除
次の例では、UNIX 上の dbsp3 からチャンクが削除されます。300KB のオフセットが
指定されます。
onspaces -d dbsp3 -p /dev/raw_dev1 -o 300
この例の構文では、DB 領域の初期チャンクを削除することはできません。 代わりに
DB 領域を削除する必要があります。どれが DB 領域の初期チャンクかを確認するに
は、onstat -d の列 fchunk を参照してください。onstat の詳細については、
「IBM Informix: Dynamic Server 管理者の参照」のユーティリティに関する章を参照し
てください。
344
IBM Informix Dynamic Server 管理者ガイド
onspaces を使用しての DB 領域からのチャンクの削除については、「IBM Informix:
Dynamic Server 管理者の参照」のユーティリティに関する章を参照してください。
BLOB 領域からのチャンクの削除
BLOB 領域からチャンクを削除する手順は、344 ページの『onspaces を使用しての DB
領域からのチャンクの削除』で説明した DB 領域からチャンクを削除する手順と同じで
す。ただし、データベース サーバは静止またはシングルユーザ モードである必要があ
ります。これ以外は、DB 領域を指している部分を BLOB 領域に読み替えてください。
onspaces を使用しての SB 領域からのチャンクの削除
次の例では、UNIX 上の sbsp3 からチャンクが削除されます。300KB のオフセットが
指定されます。SB 領域または一時 SB 領域からチャンクを削除するときは、データベ
ース サーバをオンライン、シングルユーザ、または静止モードにする必要があります。
onspaces -d sbsp3 -p /dev/raw_dev1 -o 300
この例の構文では、SB 領域の初期チャンクを削除することはできません。 代わりに
SB 領域を削除する必要があります。どれが SB 領域の初期チャンクかを確認するに
は、onstat -d の列 fchunk を参照してください。
オプション -f (強制) の使用方法
onspaces のオプション -f を使用すると、メタデータが割り当てられていない SB 領域
チャンクを削除できます。チャンクに SB 領域のメタデータがある場合は、SB 領域全
体を削除する必要があります。SB 領域のどのチャンクにメタデータがあるかを確認す
るには、onstat -d の Chunks セクションを参照します。
onspaces -d sbsp3 -f
警告: SB 領域の強制削除を行うと、表と SB 領域との間で一貫性に関する問題が発生
する場合があります。
ポインタのないスマート ラージ オブジェクトの削除
各スマート ラージ オブジェクトには参照カウント、つまりスマート ラージ オブジェ
クトを指定するポインタ番号があります。参照カウントが 0 より大きいと、スマート
ラージ オブジェクトは使用中と見なされるため、削除されません。
参照カウントが 0 であるスマート ラージ オブジェクトが残ることは、ほとんどありま
せん。参照カウントが 0 であるスマート ラージ オブジェクトがいずれのアプリケーシ
ョンでも開かれていないなら、コマンド onspaces のオプション -cl を使用して、これ
らのスマート ラージ オブジェクトすべてを削除できます。
onspaces のオプション -cl の使用方法については、「IBM Informix: Dynamic Server 管
理者の参照」のユーティリティに関する章を参照してください。
第 11 章 ディスク領域の管理
345
格納領域の削除
DB 領域、一時 DB 領域、BLOB 領域、SB 領域、一時 SB 領域、EXT 領域のいずれ
かを削除するには、onspaces、ISA、または ON–Monitor を使用します。
UNIX で格納領域を削除するには、ユーザ root または informix としてログインしてい
る必要があります。Windows で格納領域を削除するには、Informix-Admin グループの
メンバである必要があります。
データベース サーバがオンライン、シングルユーザ、または静止モードの場合に限り、
格納領域を削除できます。
格納領域の削除の準備
DB 領域を削除する前には、その DB 領域に作成したすべてのデータベースと表を削除
する必要があります。 ルート DB 領域を削除することはできません。
BLOB 領域を削除する前には、その BLOB 領域を参照するテキスト (TEXT) 型または
バイト (BYTE) 型の列を持つすべての表を削除する必要があります。
oncheck のオプション -pe を実行して、DB 領域や BLOB 領域に表またはログ ファイ
ルが存在しないことを確認してください。
SB 領域を削除する前には、その SB 領域に格納されているオブジェクトを参照する
CLOB 型または BLOB 型の列を持つすべての表を削除する必要があります。SB 領域
の削除の場合、SB 領域を指す列を削除しなくても構いませんが、それらの列は NULL
になっている必要があります。つまり、すべてのスマート ラージ オブジェクトの割当
てが SB 領域から解除されている必要があります。
ヒント: ライト アペンドが実行中の DB 領域で表を削除すると、ライト アペンドの処
理が遅くなる場合があります。この問題の現象として、物理ロギングが挙げら
れます。ライト アペンドの処理が遅いと感じる場合、ライト アペンドの実行
前または実行中に DB 領域の表を削除しなかったかどうか確認してください。
表を削除してしまった場合は、ライト アペンドを実行する前に、onmode のオ
プション -c を使用してチェックポイントを強制実行してください。
ミラーリングされた格納領域の削除
ミラーリングされた格納領域を削除すると、ミラー領域も削除されます。
格納領域のミラーのみを削除するには、ミラーリングをオフにします。(481 ページの
『ミラーリングの終了』を参照。) この操作により DB 領域、BLOB 領域、または SB
領域のミラーが削除され、ほかの用途のためにチャンクが解放されます。
346
IBM Informix Dynamic Server 管理者ガイド
onspaces を使用した格納領域の削除
onspaces を使用して格納領域を削除するには、次の例のようにオプション -d を使用し
ます。
この例では、dbspce5 という DB 領域とそのミラーが削除されます。
onspaces -d dbspce5
この例では、blobsp3 という DB 領域とそのミラーが削除されます。
onspaces -d blobsp3
データが含まれている SB 領域を削除するには、オプション -f とともにオプション -d
を使用します。オプション -f を省略すると、データが格納されている SB 領域を削除
できません。次の例では、sbspc4 という SB 領域とそのミラーが削除されます。
onspaces -d sbspc4 -f
警告: オプション -f を使用すると、削除されたスマート ラージ オブジェクトへの無意
味なポインタがデータベース サーバ内の表に生じることがあります。
onspaces を使用する格納領域の削除については、「IBM Informix: Dynamic Server 管理
者の参照」のユーティリティに関する章を参照してください。
ON-Monitor を使用した DB 領域または BLOB 領域の削除 (UNIX)
ON–Monitor を使用して DB 領域や BLOB 領域を削除する手順は、次のとおりです。
1. 「Dbspaces」>「Drop」を選択します。
2. Enter キーまたは矢印キーを使用して、削除する DB 領域または BLOB 領域までス
クロールします。
3. Ctrl キーを押しながら B キーを押すか、または F3 キーを押します。
DB 領域または BLOB 領域の削除の確認が求められます。
格納領域の削除後のバックアップ
削除した格納領域と同じ名前を使用して格納領域を作成する場合は、再度レベル 0 バッ
クアップを実行して、将来の復元で新しい格納領域と古い格納領域を混同しないように
してください。詳しくは、「IBM Informix: バックアップおよび復元 ガイド」を参照し
てください。
警告: DB 領域、BLOB 領域、または SB 領域を削除すると、新たに解放されたチャン
クをほかの DB 領域、BLOB 領域、または SB 領域に再度割り当てられるよう
になります。 ただし、解放されたチャンクの再割当てを行う前に、ルート DB
領域および変更された格納領域に対してレベル 0 バックアップを実行する必要が
あります。 バックアップせずに引き続き復元を行うと、バックアップの予約ペー
ジが最新ではないために、復元が失敗する可能性があります。
第 11 章 ディスク領域の管理
347
EXT 領域の管理
EXT 領域には、ディスク領域の割当ては必要ありません。EXT 領域の作成と削除には
ユーティリティ onspaces を使用します。EXT 領域の詳細については、288 ページの
『EXT 領域』を参照してください。
EXT 領域の作成
EXT 領域を作成するには、ユーティリティ onspaces を使用します。ただし、有効なデ
ータ ソースと、そのデータ ソースにアクセスするための有効なアクセス方法が最初に
必要です。有効なアクセス方法または有効なデータ ソースがなくても EXT 領域の作成
はできますが、EXT 領域からデータを抽出しようとするたびにエラーが発生します。ア
クセス方法の詳細については、「IBM Informix: Virtual-Table Interface Programmer’s
Guide」を参照してください。
onspaces を使用して EXT 領域を作成するには、次の例に示すようにオプション -c を
使用します。この例では、EXT 領域 pass_space が作成され、UNIX パスワード ファ
イルに関連付けられます。
onspaces -c -x pass_space -l /etc/passwd
EXT 領域名は 128 文字以下で指定します。 名前は一意で、文字またはアンダースコア
で始まる必要があります。この名前には、文字、数字、アンダースコア、ドル記号 ($)
を使用できます。
重要: 前の例では、ファイル passwd に正しくアクセスする関数を提供するルーチンを
コーディングしてあることと、ファイル passwd 自体が存在することを想定して
います。EXT 領域を作成したら、ファイル passwd 内のデータにアクセスできる
ようにする適切なコマンドを実行する必要があります。ユーザ定義のアクセス方
法については、「IBM Informix: Virtual-Table Interface Programmer’s Guide」を参
照してください。
onspaces を使用した EXT 領域の作成の詳細については、「IBM Informix: Dynamic
Server 管理者の参照」ユーティリティに関する章を参照してください。
EXT 領域の削除
onspaces を使用して EXT 領域を削除するには、次の例のようにオプション -d を使用
します。既存の表またはインデックスに関連付けられている EXT 領域は削除できませ
ん。
この例では、pass_space という EXT 領域が削除されます。
onspaces -d pass_space
348
IBM Informix Dynamic Server 管理者ガイド
アクセス不能フラグメントのスキップ
フラグメント化の利点の 1 つに、入出力操作時に使用不能になっている表フラグメント
をスキップできることがあります。 例えば、ディスク障害によって現在停止しているチ
ャンクにフラグメントがある場合でも、問合せを続行できます。 この場合、ディスク障
害は、フラグメント表のデータの一部にしか影響を与えません。 対照的に、フラグメン
ト化されていない表は、障害の発生したディスクにある場合に完全にアクセス不能にな
ります。
この機能は次のようにして制御します。
v データベース サーバ管理者が構成パラメータ DATASKIP を使用
v 個々のアプリケーションで SET DATASKIP 文を使用
構成パラメータ DATASKIP の使用方法
パラメータ DATASKIP は、OFF、ALL、ON dbspace_list のいずれかに設定できます。
OFF に設定する場合、データベース サーバーはフラグメントをスキップしません。フ
ラグメントが使用不能の場合は、問合せでエラーが戻されます。ALL に設定すると、使
用できないすべてのフラグメントがスキップされます。ON dbspace_list に設定すると、
データベース サーバでは、指定した DB 領域にあるフラグメントがすべてスキップさ
れます。
onspaces のデータ スキップ機能の使用方法
使用できない場合にスキップする DB 領域を指定するには、ユーティリティ onspaces
のデータ スキップ機能を使用します。例えば、次のコマンドでは、dbspace1 および
dbspace3 にあるフラグメントをデータベース サーバがスキップして、dbspace2 内のフ
ラグメントはスキップしないように、パラメータ DATASKIP を設定しています。
onspaces -f ON dbspace1 dbspace3
この onspaces のオプションの完全な構文については、「IBM Informix: Dynamic Server
管理者の参照」のユーティリティに関する章を参照してください。
onstat を使用してのデータ スキップ状態の確認
現在データ スキップ機能が作用している DB 領域のリストを表示するには、ユーティ
リティ onstat を使用します。オプション -f を使用すると、構成パラメータ
DATASKIP で設定した DB 領域と、ユーティリティ onspaces のオプション -f で設定
した DB 領域の両方が表示されます。onstat -f を実行すると、次のようなメッセージ
が表示されます。
dataskip is OFF for all dbspaces
dataskip is ON for all dbspaces
databskip is ON for dbspaces:
dbspace1
dbspace2
...
第 11 章 ディスク領域の管理
349
SQL の SET DATASKIP 文の使用方法
アプリケーションでは、SQL の SET DATASKIP 文を使用して、フラグメントが使用
できない場合にそのフラグメントをスキップするかどうかを制御できます。 対象フラグ
メントの可用性に応じて問合せが異なる結果を戻すようになるため、アプリケーション
でこの文を実行するのは限られた状況のみにしてください。構成パラメータ DATASKIP
と同様に、 SET DATASKIP 文には、どのフラグメントをスキップするかをデータベー
ス サーバに指定する DB 領域のリストを指定できます。例えば、アプリケーション プ
ログラマがアプリケーションの先頭に次の文を含めたとします。
SET DATASKIP ON dbspace1, dbspace5
この文によって、次の両方の条件が満たされる場合に、データベース サーバは
dbspace1 または dbspace5 を必ずスキップするようになります。
v アプリケーションがいずれかの DB 領域にアクセスしようとしている。
v いずれかの DB 領域が使用不能であることをデータベース サーバが認識している。
dbspace1 と dbspace5 の両方とも使用不能であることが判明すると、データベース サ
ーバでは、この両方の DB 領域がスキップされます。
データベース サーバ管理者は SET DATASKIP 文の DEFAULT 設定を使用してデータ
スキップ機能を制御できます。アプリケーション開発者が次の文をアプリケーションに
含めた場合を考えます。
SET DATASKIP DEFAULT
この SQL 文に続いて問合せが実行されると、構成パラメータ DATASKIP の値がデー
タベース サーバによってチェックされます。この設定を使用するようにエンド ユーザ
に推奨しておくと、データベース サーバ管理者は、使用不能な 1 つ以上の DB 領域が
あることが判明した時点で即時に、どの DB 領域をスキップするかを指定できます。
トランザクションに対するデータ スキップ機能の影響
データ スキップ機能を有効にすると、必ず SELECT 文が実行されます。加えて、表が
ラウンドロビンでフラグメント化されている場合に 1 つ以上のフラグメントがオンライ
ンになっていると、INSERT 文は必ず成功します。ただし、データベースへの書込み操
作によってデータベースの整合性が損なわれる可能性がある場合、データベース サーバ
はその書込み操作を完了しません。 次の操作が失敗します。
v データベース サーバが停止フラグメントを削除できない場合の、すべての UPDATE
文および DELETE 文の操作
データベース サーバが停止フラグメントを削除できる 場合は、更新または削除の操
作は成功しますが、その結果は DATASKIP の設定に依存しません。
v 適切なフラグメントが停止している場合の、式による分散スキームに従ってフラグメ
ント化された表に対する INSERT 文の実行
350
IBM Informix Dynamic Server 管理者ガイド
v
停止フラグメント内のデータが制約に関係する場合の、参照制約検査を伴う操作
例えば、子行を持つ行をアプリケーションで削除する場合、その子行も削除可能でな
ければなりません。
v 対象のインデックスが停止チャンク内にある場合の、インデックス値に影響するすべ
ての操作 (例えば、インデックス付けされている列の更新)
データ スキップを使用するケースの判別
信頼できる結果が得られるとは限らないため、データ スキップ機能は控えめに、注意深
く使用することをお勧めします。 この機能は次の状況で使用するように考慮してくださ
い。
v
トランザクションの整合性が損なわれてもかまわない場合
v
トランザクションの整合性が損なわれないことを確認できる場合
後者は時間のかかる困難な作業になることがあります。
特定のフラグメントをスキップするケースの判別
状況によっては、データベース サーバで一部のフラグメントをスキップさせ、ほかのフ
ラグメントはスキップさせたくない場合があります。 これは通常、次のような場合で
す。
v 問合せ結果に大きく寄与しないフラグメントをスキップできる場合
v 一部のフラグメントが停止しており、問合せをキャンセルするよりも、それらのフラ
グメントをスキップして、限られた量のデータを戻すほうが望ましいと判断した場合
フラグメントをスキップするには、ON dbspace_list の設定を使用して、データベース
サーバにスキップさせるフラグメントがある DB 領域のリストを指定します。
すべてのフラグメントをスキップするケースの判別
構成パラメータ DATASKIP を ALL に設定すると、データベース サーバによって、使
用不能なすべてのフラグメントがスキップされるようになります。 このオプションは注
意して使用してください。ある DB 領域が使用不能な場合、問合せの実行前に SET
DATASKIP OFF 文を発行しなかったアプリケーションによって開始されるすべての問
合せが、エラーの対象になることがあります。
フラグメントの使用状況の監視
データベース管理者にとって、フラグメント化の次の要素を監視することは有用な場合
があります。
v フラグメント上でのデータ分散
v フラグメント上での入出力要求の均衡
v フラグメントを含むチャンクの状態
第 11 章 ディスク領域の管理
351
管理者は表フラグメント上でのデータ分散を監視できます。フラグメント化が、単一ユ
ーザの応答時間の短縮を目的として実行される場合は、各フラグメントにデータを均等
に分散する必要があります。フラグメント化のディスク使用状況を監視するには、デー
タベース サーバの表領域を監視する必要があります。これは、ディスク装置に対するフ
ラグメント単位が表領域であるためです。フラグメント表のデータ分散を監視する方法
については、359 ページの『表領域とエクステントの監視』を参照してください。
管理者は、フラグメントに格納されているデータに対する入出力要求のキューを監視す
る必要があります。入出力キューが不均衡になる場合、管理者は DBA と協力して、フ
ラグメント化ストラテジを調整する必要があります。各チャンクに対する入出力キュー
など、チャンクの使用状況を監視する方法については、353 ページの『チャンクの監
視』を参照してください。
管理者はフラグメントの可用性を監視し、1 つ以上のフラグメントを含む DB 領域に障
害が発生した場合に、適切な対策を講じる必要があります。チャンクが停止しているか
どうかの確認方法については、353 ページの『チャンクの監視』を参照してください。
データベースの表示
作成したデータベースを表示するには、次のツールを使用します。
v SMI 表
v ISA
v ON–Monitor
SMI 表の使用方法
データベース サーバによって管理されている各データベースの行を表示するには、表
sysdatabases に対して問合せを実行します。この表の列については、「IBM Informix:
Dynamic Server 管理者の参照」のデータベース sysmaster に関する章の sysdatabases
の説明を参照してください。
ISA の使用方法
ISA を使用して、sysdatabases の問合せを実行するには、次の手順に従ってください。
1. 「SQL」>「問合せ」を選択します。
2. 「データベース」リストからデータ「sysmaster」を選択します。
3. 次のコマンドを入力し、「実行」をクリックします。
select * from sysdatabases;
ON-Monitor の使用方法 (UNIX)
ON–Monitor を使用して各データベースの現在の状態を調べるには、「Status」>
「Databases」を選択します。ON–Monitor で表示できるデータベースは 100 個までで
352
IBM Informix Dynamic Server 管理者ガイド
す。データベース サーバに 100 個を超えるデータベースがある場合は、前述したよう
に、SMI 表を使用して完全なリストを表示します。
ディスクの使用状況の監視
ここでは、各種のデータベース サーバ記憶装置によって使用されるディスク領域を追跡
する方法について説明します。
ここで取り上げる内部的なデータベース サーバ格納装置の必要な情報については、
「IBM Informix: Dynamic Server 管理者の参照」のディスク構造と格納に関する章を参
照してください。
チャンクの監視
チャンクについて監視できる情報は次のとおりです。
v チャンク サイズ
v 未使用ページ数
v チャンク内の表
この情報により、チャンクによって使用されているディスク領域の追跡や、チャンクの
入出力動作の監視、およびフラグメント化の確認ができます。
onstat -d
ユーティリティ onstat のオプション -d を使用すると、すべての DB 領域、BLOB 領
域、および SB 領域の一覧が表示され、これらの領域内のチャンクについて次の情報が
表示されます。
v チャンクのアドレス
v チャンク番号、および対応する DB 領域番号
v デバイスへのページ単位のオフセット
v ページ単位のチャンクのサイズ
v チャンク内の未使用ページ数
v 物理デバイスのパス名
コマンド onstat のオプション -d を BLOB 領域チャンクのあるインスタンスに実行す
る場合、表示される未使用ページ数は最新ではありません。free の値の前に付いたティ
ルド (~) は、その値が概数であることを示します。コマンド onstat のオプション -d
では、削除が行われた論理ログがバックアップされて BLOB ページが解放されるま
で、その BLOB ページが使用可能として登録されません。このため、25 個のシンプル
ラージ オブジェクトを削除した直後に onstat のオプション -d を実行しても、新しく
解放された領域は onstat の出力には示されません。
第 11 章 ディスク領域の管理
353
BLOB 領域チャンクの正確な未使用 BLOB ページ数を取得するには、コマンド onstat
のオプション -d update を実行します。詳しくは、354 ページの『onstat -d update』を
参照してください。
図 57 に onstat -d の出力例を示します。chunk セクションの列 flags には、次の情報
が表示されます。
v チャンクは、主チャンク、ミラー チャンクのどちらか
v チャンクは、オンライン、停止中、復旧中、新しいチャンクのどれか
重要: ミラーリングをアクティブにする前、およびミラーリングを無効にした後は、ル
ート DB 領域、および変更された DB 領域に対してレベル 0 バックアップを実
行する必要があります。
Dbspaces
address number
flags
40c980
1
0x1
40c9c4
2
0x1
40ca08
3
0x11
3 active, 2047 maximum
fchunk
1
2
3
nchunks flags
1
N
1
N
1
N B
owner
informix
informix
informix
name
rootdbs
fstdbs
fstblob
Note: For BLOB chunks, the number of free pages shown is out of date.
Run ‘onstat -d update’ for current stats.
Chunks
address chk/dbs offset size
40c224 1 1 0
20000
40c2bc 2 2 0
2000
40c354 3 3 0
12500
3 active, 2047 maximum
free
14001
1659
~6250
bpages
6250
flags
POPOPOB
pathname
/home/server/root_chunk
/home/server/fst_chunk
/home/server/blob_chunk
図 57. onstat -d の出力
onstat -d update
onstat のオプション -d update を使用すると、onstat のオプション -d を使用した場合
と同じ情報に加えて、各 BLOB 領域チャンクの正確な BLOB ページ数を表示できま
す。図 58 では、fstblob という BLOB 領域に blob_chunk という 1 つのチャンクがあ
ります。
354
IBM Informix Dynamic Server 管理者ガイド
Dbspaces
address number flags
a7317d8 1
0x1
40c9c4 2
0x1
40ca08 3
0x11
3 active, 2047 maximum
fchunk
1
2
3
nchunks flags
1
N
1
N
1
N B
owner
informix
informix
informix
name
rootdbs
fstdbs
fstblob
Waiting for server to update BLOB chunk statistics:
Chunks
address chk/dbs offset size
40c224 1 1 0
20000
40c2bc 2 2 0
2000
40c354 3 3 0
12500
3 active, 2047 maximum
free
14001
1659
~6237
bpages
6250
flags
POPOPOB
pathname
/home/server/root_chunk
/home/server/fst_chunk
/home/server/blob_chunk
図 58. BLOB 領域に関する情報を示す onstat -d update の出力
onstat -D
onstat のオプション -D を使用すると、onstat のオプション -d を使用した場合と同じ
情報に加えて、チャンクから読み込まれたページ数がフィールド page Rd に表示され
ます。
図 59 に出力例を示します。
Dbspaces
address number flags
40d100
1
1
40d144
2
2
40d188 3
10
3 active, 2047 maximum
fchunk
1
2
3
Chunks
address chk/dbs offset
40c274 1 1 0
40c30c 2 2 0
40c8fc 2 2 0
40c3a4 3 3 0
3 active, 2047 maximum
page Rd
146
1
36
4
nchunks
1
1
1
page Wr
4
0
0
0
flags
N
M
N B
owner
informix
informix
informix
name
rootdbs
cookedspace
cookedblob
pathname
/home/server/root_chunk
/home/server/test_chunk
/home/server/test_mirr
/home/server/blob_chunk
図 59. onstat -D の出力
onstat -g iof
onstat のオプション -g iof を使用すると、各チャンクからの読込み数と各チャンクへの
書込み数が表示されます。あるチャンクに対する入出力動作の量が不均衡な場合、その
チャンクはシステムの障害となる可能性があります。このオプションは、フラグメント
第 11 章 ディスク領域の管理
355
表のそれぞれのフラグメントに対する入出力要求の分散を監視するのに役立ちます。図
60 に出力例を示します。
...
AIO
gfd
3
4
5
global files:
pathname
raw_chunk
cooked_chk1
cooked_chk2
totalops
38808
7925
3729
dskread dskwrite
27241
11567
5660
2265
2622
1107
io/s
6.7
1.4
0.6
図 60. onstat -g iof の出力
oncheck -pr
チャンクの情報は、データベース サーバによって予約ページ PAGE_1PCHUNK および
PAGE_2PCHUNK に格納されます。
これらの予約ページの内容を表示するには、oncheck のオプション -pr を実行します。
図 61 に oncheck -pr の出力例を示します。この出力は基本的には onstat -d のものと
同じです。ただし、最後のチェックポイント以降にチャンク情報が変更されている場合
は、oncheck -pr の出力にはそれらの変更は示されません。
356
IBM Informix Dynamic Server 管理者ガイド
Validating PAGE_1DBSP & PAGE_2DBSP...
Using dbspace page PAGE_2DBSP.
DBspace number
DBspace name
Flags
Number of chunks
First chunk
Date/Time created
Partition table page number
Logical Log Unique Id
Logical Log Position
Oldest Logical Log Unique Id
Last Logical Log Unique Id
Dbspace archive status
1
rootdbs
0x20001
No mirror chunks
2
1
07/28/2000 14:46:55
14
0
0
0
0
No archives have occurred
.
.
Validating PAGE_1PCHUNK & PAGE_2PCHUNK...
Using primary chunk page PAGE_2PCHUNK.
Chunk number
Flags
Chunk path
Chunk offset
Chunk size
Number of free pages
DBSpace number
1
0x40
Chunk is online
/home/server/root_chunk
0 (p)
75000 (p)
40502
1
.
.
.
図 61. DB 領域およびチャンクの情報を示す oncheck -pr の出力
oncheck -pe
チャンク内の情報の物理レイアウトを取得するには、oncheck のオプション -pe を実行
します。DB 領域、BLOB 領域、および SB 領域の一覧が表示されます。358 ページの
図 62 に oncheck -pe の出力例を示します。
表示される情報は次のとおりです。
v DB 領域の名前、所有者、作成日
v チャンクのページ単位のサイズ、使用ページ数、および未使用ページ数
v チャンク内のすべての表のリスト、初期ページ番号、および表のページ単位の長さ
チャンク内の表は順序どおりに表示されます。 この出力は、チャンクのフラグメント化
を確認するのに役立ちます。未使用ページが十分あるにもかかわらずデータベース サー
バがチャンク内にエクステントを割り当てることができない場合は、チャンクのフラグ
メント化が適切に行われていない可能性があります。
第 11 章 ディスク領域の管理
357
DBSpace Usage Report:
rootdbs
Owner:
Chunk Pathname
1 /home/server/root_chunk
informix
Size
75000
Description
------------------------------------------RESERVED PAGES
CHUNK FREELIST PAGE
rootdbs:’informix’.TBLSpace
PHYSICAL LOG
FREE
LOGICAL LOG: Log file 2
LOGICAL LOG: Log file 3
...
sysmaster:’informix’.sysdatabases
sysmaster:’informix’.systables
...
Chunk Pathname
2 /home/server/dbspace1
Created: 08/08/2000
Used
19420
Offset
Size
-------------------0
12
12
1
13
250
263
1000
1263
1500
2763
1500
4263
1500
10263
10267
Size
5000
Description
------------------------------------------RESERVED PAGES
CHUNK FREELIST PAGE
dbspace1:’informix’.TBLSpace
FREE
Free
55580
Used
53
4
8
Free
4947
Offset
Size
-------------------0
2
2
1
3
50
53
4947
図 62. oncheck -pe の出力
IBM Informix Server Administrator の使用方法
コマンド ISA を使用して、次のタスクを実行できます。
v 予約ページの確認
v 格納領域の確認
v DB 領域、一時 DB 領域、BLOB 領域、一時 SB 領域、および SB 領域の追加
v チャンクの表示と格納領域への追加
v データ スキップ状態の確認
v 外部領域の表示と追加
v データベースのページ数、割り当て済み領域の割合、および使用済み領域の表示
v ONDBSPACEDOWN のオーバーライド
ON-Monitor の使用方法 (UNIX)
コマンド ON–Monitor を使用して、次のタスクを実行できます。
358
コマンド ON_Monitor
説明
「Status」>「Spaces」
格納領域およびチャンクの状態に関する情報を表示
します。
IBM Informix Dynamic Server 管理者ガイド
「Dbspaces」>「Create」
DB 領域を作成します。
「Dbspaces」>「BLOBSpace」
BLOB 領域を作成します。
「Dbspaces」>「Mirror」
格納領域のミラーを追加または削除します。
「Dbspaces」>「Info」
格納領域に関する情報を表示します。
「Dbspaces」>「Add Chunk」
チャンクを格納領域に追加します。
「Dbspaces」>「dataSkip」
データ スキップを開始または停止します。
「Dbspaces」>「Chunk」
DB 領域または BLOB 領域にチャンクを追加しま
す。
「Dbspaces」>「Drop」
DB 領域または BLOB 領域を削除します。
「Dbspaces」>「Status」
チャンクのミラー状態を変更します。
SMI 表の使用方法
チャンクの状態に関する情報を取得するには、syschunks 表に対して問合せを行いま
す。 関連するのは次の列です。
列
説明
chknum
DB 領域内のチャンク数
dbsnum
DB 領域数
chksize
チャンクのページ単位の合計サイズ
nfree
未使用ページ数
is_offline
チャンクが停止中かどうか
is_recovering
チャンクが復旧中かどうか
mis_offline
ミラー チャンクが停止中かどうか
mis_recovering
ミラー チャンクが復旧中かどうか
syschkio 表には次の列があります。
列
説明
pagesread
チャンクから読み込まれたページ数
pageswritten
チャンクに書き込まれたページ数
表領域とエクステントの監視
データベース、表、または表フラグメントによるディスクの使用状況を確認するには、
表領域とエクステントを監視します。表のフラグメント化を使用している場合は、表に
よるディスクの使用状況の監視が特に重要であり、表データと表インデックス データが
フラグメント上に適切に分散されているかどうかを確認することが必要です。
第 11 章 ディスク領域の管理
359
エクステントの情報を取得するには、oncheck のオプション -pt を実行します。
oncheck のオプション -pT を使用すると、オプション -pt を使用した場合と同じ情報
に加えて、ページおよびインデックスの使用に関する追加情報が表示されます。
SMI 表の使用方法
各表領域についての情報を取得するには systabnames 表に対して問合せを行います。表
systabnames には、各表領域ごとに、対応する表、データベース、表の所有者を示す列
があります。
各エクステントについての情報を取得するには、sysextents 表に対して問合せを行いま
す。表 sysextents には、データベース、エクステントが属する表、およびエクステント
の物理アドレスとサイズを示す列があります。
BLOB 領域内のシンプル ラージ オブジェクトの監視
使用可能な領域を確認したり、BLOB ページ サイズが最適かどうかを確認するには、
BLOB 領域を監視します。
onstat -O
onstat のオプション -O を使用すると、ステージング領域の BLOB 領域と、光ディス
ク記憶サブシステム のメモリ キャッシュについての情報が表示されます。図 63 に、
このオプションの出力例を示します。 表示される合計数は、セッションからセッション
へ累積されます。onstat のオプション -z を実行した場合のみ、この合計数は 0 にリセ
ットされます。
Subsystem not available
Optical StageBlob Cache
System Cache Totals:
Size Alloc Avail. Number Kbytes Number Kbytes
0
0
0
0
0
0
0
User Cache Totals:
SID User
Size Number Kbytes Number Kbytes
No sessions currently using the cache
System Blob Totals:
User Blob Totals:
図 63. onstat -O の出力
表示の最初のセクションには、次のシステム キャッシュの合計情報が示されます。
360
列
説明
size
構成パラメータ OPCACHEMAX に指定されたサイズ
alloc
データベース サーバによってキャッシュに割り当てられた 1KB の断
片の数
avail
alloc のうちの未使用部分を KB 単位で表した値
IBM Informix Dynamic Server 管理者ガイド
number
データベース サーバによってオーバーフローなしで正常にキャッシュ
に入れられたシンプル ラージ オブジェクトの数
kbytes
データベース サーバによってオーバーフローなしでキャッシュに入れ
られたシンプル ラージ オブジェクトの KB 数
number
データベース サーバによってステージング領域の BLOB 領域に書き
込まれたシンプル ラージ オブジェクトの数
kbytes
データベース サーバによってステージング領域の BLOB 領域に書き
込まれたシンプル ラージ オブジェクトの KB 数
size の出力は、構成パラメータ OPCACHEMAX に指定されたメモリ量を表しますが、
メモリは必要になるまで OPCACHEMAX に割り当てられません。したがって、alloc の
出力は、処理されたシンプル ラージ オブジェクトの 1KB の断片の数のみを表しま
す。alloc と avail の出力の値が等しい場合、キャッシュは空になっています。
表示の 2 番目のセクションには、次のユーザ キャッシュの合計情報が示されます。
列
説明
SID
ユーザのセッション ID
user
クライアントのユーザ ID
size
環境変数 INFORMIXOPCACHE が設定されている場合に、指定され
たサイズ
環境変数 INFORMIXOPCACHE が設定されていない場合は、構成パ
ラメータ OPCACHEMAX に指定されているサイズが使用されます。
number
データベース サーバによってオーバーフローなしでキャッシュに入れ
られたシンプル ラージ オブジェクトの数
kbytes
データベース サーバによってオーバーフローなしでキャッシュに入れ
られたシンプル ラージ オブジェクトの KB 数
number
データベース サーバによってステージング領域の BLOB 領域に書き
込まれたシンプル ラージ オブジェクトの数
kbytes
データベース サーバによってステージング領域の BLOB 領域に書き
込まれた、シンプル ラージ オブジェクトの KB 単位のサイズ
oncheck -pB による BLOB ページ使用率の測定
コマンド oncheck のオプション -pB を使用すると、BLOB ページの平均使用率を示す
統計情報が表示されます。多数のシンプル ラージ オブジェクトで使用率が低くなって
いることが統計情報に示される場合は、BLOB 領域内の BLOB ページのサイズを変更
することでデータベース サーバのパフォーマンスが向上する可能性があります。
第 11 章 ディスク領域の管理
361
oncheck のオプション -pB は、データベース名または表名をパラメータとして指定して
実行してください。次の例では、データベース stores_demo の sriram.catalog 表に格納
されているすべてのシンプル ラージ オブジェクトの格納情報が抽出されます。
oncheck -pB stores_demo:sriram.catalog
oncheck -pB 出力の解釈に関する詳細については、「IBM Informix: Dynamic Server パ
フォーマンス ガイド」の表のパフォーマンスの注意事項の章にある BLOB 領域 BLOB
ページ サイズの最適化の説明を参照してください。
oncheck のオプション -pe を使用する BLOB 領域使用率の監視
コマンド oncheck のオプション -pe を使用すると、BLOB 領域の使用率に関する情報
が表示されます。
v チャンクごとの、テキスト (TEXT) 型およびバイト (BYTE) 型のデータを格納する
表の名前
v 表ごとの、使用されているディスク ページ数 (BLOB ページではない)
v チャンクごとの、残りの未使用ディスク ページ数
v チャンクごとの、使用されているオーバーヘッド ページ数
図 64 に oncheck -pe の出力例を示します。
BLOBSpace Usage Report: fstblob
Chunk: 3 /home/server/blob_chunk
Owner:
informix Created: 03/01/99
Size
Used
Free
4000
304
3696
Disk usage for Chunk 3
Total Pages
-----------------------------------------------------OVERHEAD
8
stores_demo:chrisw.catalog
296
FREE
3696
図 64. BLOB 領域の使用を示す oncheck -pe の出力
oncheck のオプション -pT を使用する DB 領域内のシンプル ラージ オブジ
ェクトの監視
oncheck のオプション -pT を使用して、DB 領域を監視し、テキスト (TEXT) 型とバ
イト (BYTE) 型のデータによって使用されている DB 領域のページ数を確認できま
す。
このコマンドには、データベース名または表名をパラメータとして指定してください。
データベース内のそれぞれの表、または指定した表について、総合的な表領域レポート
が表示されます。
362
IBM Informix Dynamic Server 管理者ガイド
総合レポートに続いて、エクステント内のページの詳しい使用状況がページ タイプごと
に表示されます。テキスト (TEXT) 型およびバイト (BYTE) 型のデータに関する情報に
ついては、列 Type を参照してください。
データベース サーバでは、同一の BLOB ページに複数のシンプル ラージ オブジェク
トが格納できます。したがって、テキスト (TEXT) 型またはバイト (BYTE) 型のデータ
が表領域に格納されているページの数は確認できますが、表内のシンプル ラージ オブ
ジェクトの数を見積もることはできません。
図 65 に出力例を示します。
TBLSpace Usage Report for mydemo:chrisw.catalog
Type
Pages
Empty Semi-Full
Full Very-Full
---------------- ---------- ---------- ---------- ---------- ---------Free
7
Bit-Map
1
Index
2
Data (Home)
9
Data (Remainder)
0
0
0
0
0
Tblspace BLOBs
5
0
0
1
4
---------Total Pages
24
Unused Space Summary
Unused data bytes in Home pages
Unused data bytes in Remainder pages
Unused bytes in Tblspace Blob pages
Index Usage Report for index
3564
0
1430
111_16 on mydemo:chrisw.catalog
Average
Average
Level
Total No. Keys Free Bytes
----- -------- -------- ---------1
1
74
1058
----- -------- -------- ---------Total
1
74
1058
Index Usage Report for index
111_18 on mydemo:chrisw.catalog
Average
Average
Level
Total No. Keys Free Bytes
----- -------- -------- ---------1
1
74
984
----- -------- -------- ---------Total
1
74
984
図 65. テキスト (TEXT) 型およびバイト (BYTE) 型のデータを示す oncheck -pT の出力例
第 11 章 ディスク領域の管理
363
SB 領域の監視
SB 領域内で監視する最も重要な領域の 1 つは、メタデータ ページが使用している領
域です。SB 領域を作成する場合、メタデータ領域のサイズを指定します。また、SB 領
域にチャンクを追加するごとにメタデータ領域がチャンクに追加されるよう指定できま
す。
新しいスマート ラージ オブジェクトの挿入時にメタデータ領域が使用できない場合、
エラーが発生します。 管理者は、メタデータ領域の可用性を監視し、エラーが発生しな
いようにしてください。
次のコマンドを使用して SB 領域を監視します。
コマンド
説明
onstat -g smb s
システム内のすべての SB 領域に関する次の格納属性を表示します。
v SB 領域名、フラグ、所有者。
v ログ機能状態。
v スマート ラージ オブジェクトの平均サイズ。
v 初期エクステント サイズ、追加エクステント サイズ、最小エクステント サイズ。
v 最大入出力アクセス時間。
v ロック モード。
onstat -g smb c
各 SB 領域チャンクに関する次の情報を表示します。
v チャンク番号および SB 領域名。
v チャンク サイズおよびパス名。
v ユーザ データ の合計ページと未使用ページ。
v 各ユーザ データ領域およびメタデータ領域に含まれるページ数、およびその格納場
所。
370 ページの『onstat -g smb c の使用方法』を参照。
364
IBM Informix Dynamic Server 管理者ガイド
コマンド
説明
oncheck -ce
oncheck -pe
SB 領域の使用に関する次の情報を表示します。
v スマート ラージ オブジェクト データを格納している表の名前 (チャンク別)。
v SB ページではない使用済みのディスク ページ数 (表別)。
v 未使用のユーザ データ ページ数 (チャンク別)。
v ユーザ データ 予約ページ数 (チャンク別)。
v 使用済みのメタデータ ページ数 (チャンク別)。
この出力では、次の合計が表示されます。
v ユーザ データ領域およびメタデータ領域すべての使用済みページの合計数。システ
ムにより予約領域用の 53 ページが、ユーザ データ領域およびメタデータ領域の合
計に追加されます。
v メタデータ領域内の未使用ページ数。
v すべてのユーザ データ領域内の未使用ページ数。
366 ページの『oncheck -ce および oncheck -pe の使用方法』および 369 ページの『メ
タデータおよびユーザ データ領域の監視』を参照。
onstat -d
各 SB 領域内のチャンクに関する次の情報を表示します。
v 各 SB 領域チャンク内、メタデータ領域内、およびユーザ データ領域内の未使用の
SB ページ数。
v 各 SB 領域チャンク内、メタデータ領域内、およびユーザ データ領域内の SB ペー
ジの合計数。
『onstat -d の使用方法』を参照。
oncheck -cs
oncheck -ps
SB 領域のメタデータ領域に関する情報の妥当性検査を実行し、その情報を表示しま
す。367 ページの『oncheck -cs の使用方法』および 368 ページの『oncheck -ps の使
用方法』を参照。
oncheck -cS
スマート ラージ オブジェクト エクステントおよび SB 領域のユーザ データ領域に関
する情報を表示します。
oncheck -pS
スマート ラージ オブジェクト エクステント、SB 領域のユーザ データ領域、および
メタデータ領域に関する情報を表示します。oncheck のオプション -cS および -pS の
詳細については、「IBM Informix: Dynamic Server パフォーマンス ガイド」の表のパフ
ォーマンスの注意事項の章にある SB 領域の管理の説明を参照してください。
onstat -d の使用方法
onstat のオプション -d を使用すると、各 SB 領域内のチャンクに関する次の情報を表
示できます。
v 各 SB 領域チャンク内、メタデータ領域内、およびユーザ データ領域内の未使用の
SB ページ数
第 11 章 ディスク領域の管理
365
v 各 SB 領域チャンク内、メタデータ領域内、およびユーザ データ領域内の SB ペー
ジの合計数
図 66 は、onstat -d 出力で表示された rootdbs および SB 領域 s9_sbspc に関する情報
を示しています。列 Flags のフラグ 8000 および S は SB 領域を表しています。各
SB 領域チャンクの最初の行には、全 SB 領域およびユーザ データ領域に関する情報が
表示されます。メタデータ領域に関する情報は、2 番目の行に表示されます。この例で
は、列 Size に s9_sbspc の合計ページ数が 1000 と表示されています。ユーザ データ
領域は、842 ページでそのうち 726 ページが未使用です。メタデータ領域は、105 ペー
ジでそのうち 60 ページが未使用です。
使用されている領域の総容量を調べるには、コマンド oncheck -pe を実行します。詳し
くは、366 ページの『oncheck -ce および oncheck -pe の使用方法』を参照してくださ
い。
Dbspaces
address number flags
a1b01d8 1
1
a1b0658 2
8000
2 active, 2047 maximum
Chunks
address
a1b0320
a1b04f8
chk/dbs offset
1 1 0
2 2 0
Metadata
2 active, 2047 maximum
fchunk
1
2
size
75000
1000
105
nchunks
1
1
free
64588
726
60
flags
N
N S
bpages
842
105
owner
name
informix rootdbs
informix s9_sbspc
flags pathname
PO/ix/ids9.2/root_chunk
POS
/ix/ids9.2/./s9_sbspc
図 66. SB 領域に関する情報を示す onstat -d の出力
onstat のオプション -d は、削除が行われた論理ログがバックアップされて SB ページ
が解放されるまで、その SB ページを使用可能として登録しません。このため、25 個
のスマート ラージ オブジェクトを削除した直後に onstat のオプション -d を実行して
も、新しく解放された領域は onstat の出力には示されません。
oncheck -ce および oncheck -pe の使用方法
oncheck -ce を実行すると、各 SB 領域チャンクのサイズ、使用済み領域の総容量、ユ
ーザ データ領域内の未使用領域の容量を表示できます。oncheck のオプション -pe で
は、オプション -ce を使用した場合と同じ情報に加えて、チャンクの使用状況の詳細が
表示されます。 最初に DB 領域が表示され、次に SB 領域が表示されます。-pe 出力
では、SB 領域使用についての次の情報が表示されます。
v スマート ラージ オブジェクト データを格納している表の名前 (チャンク別)。
v SB ページではない 使用済みのディスク ページ数 (表別)。
v 未使用のユーザ データ ページ数 (チャンク別)。
v 使用済みのメタデータ ページ数 (チャンク別)。
366
IBM Informix Dynamic Server 管理者ガイド
この出力では、次の合計が表示されます。
v ユーザ データ領域、メタデータ領域、および予約領域で使用されているページの合
計数。
システムにより予約領域用の 53 ページが、ユーザ データ領域およびメタデータ領
域の合計に追加されます。
v メタデータ領域内の未使用ページ数。
v ユーザ データ領域内の未使用ページ数。
ヒント: oncheck のオプション -pe を使用すると、SB 領域の使用情報は、SB ページ
ではなくデータベース サーバ ページ数として表示されます。
図 67 に出力例を示します。この例では、SB 領域 s9_sbspc について、メタデータ領域
内の使用されている合計ページ数は 214 ページで、60 ページが未使用です。またユー
ザ データ領域については 726 ページが未使用です。
Chunk Pathname
2 /ix/ids9.2/./s9_sbspc
Size
1000
Used
940
Free
60
Description
Offset
Size
-------------------------------------------------- -------- -------RESERVED PAGES
0
2
CHUNK FREELIST PAGE
2
1
s9_sbspc:’informix’.TBLSpace
3
50
SBLOBSpace LO [2,2,1]
53
8
SBLOBSpace LO [2,2,2]
61
1
...
SBLOBSpace LO [2,2,79]
SBLOBSpace FREE USER DATA
s9_sbspc:’informix’.sbspace_desc
s9_sbspc:’informix’.chunk_adjunc
s9_sbspc:’informix’.LO_hdr_partn
s9_sbspc:’informix’.LO_ud_free
s9_sbspc:’informix’.LO_hdr_partn
FREE
SBLOBSpace FREE USER DATA
Total Used:
Total SBLOBSpace FREE META DATA:
Total SBLOBSpace FREE USER DATA:
168
1
169
474
478
482
490
495
519
579
305
4
4
8
5
24
60
421
214
60
726
図 67. SB 領域の使用を示す oncheck -pe の出力
oncheck -cs の使用方法
oncheck のオプション -cs および -Cs を使用すると、SB 領域内のメタデータ領域に妥
当性検査を行うことができます。図 68 に s9_sbspc の -cs の出力例を示します。コマ
ンド行で SB 領域名を指定していない場合は、oncheck により、すべての SB 領域のメ
タデータが検査および表示されます。
第 11 章 ディスク領域の管理
367
oncheck -cs 出力を使用すると、メタデータ領域に残されている領域の容量を確認でき
ます。 領域がフルである場合は、十分なメタデータ領域がある別のチャンクをメタデー
タ領域に割り当ててください。メタデータ領域内の使用されているページ数を調べるに
は、列 Used の数を合計します。メタデータ領域内の未使用ページ数を調べるには、列
Free の合計数を参照します。
例えば、図 68 に示されているフィールド値に基づくと、s9_sbspc のメタデータ領域内
で使用されているページの合計数は 33 * 2KB (66KB) ページです。また、メタデータ
領域内の未使用のページの合計数は、62 ページ (124KB) です。
Validating space ’s9_sbspc’ ...
SBLOBspace Metadata Partition
s9_sbspc:’informix’.TBLSpace
s9_sbspc:’informix’.sbspace_desc
s9_sbspc:’informix’.chunk_adjunc
s9_sbspc:’informix’.LO_hdr_partn
s9_sbspc:’informix’.LO_ud_free
Partnum
0x200001
0x200002
0x200003
0x200004
0x200005
Used
6
2
2
21
2
Free
44
2
2
11
3
図 68. oncheck -cs の出力
oncheck -ps の使用方法
oncheck のオプション -ps を使用すると、SB 領域パーティションのメタデータ領域に
関する情報の妥当性検査を実行し、その情報を表示できます。369 ページの図 69 に
s9_sbspc の -ps の出力例を示します。コマンド行で SB 領域名を指定していない場合
は、oncheck により格納領域すべての表領域情報の妥当性検査が実行され、その情報が
表示されます。
未使用のメタデータ領域の容量を監視するには、次のコマンドを実行します。
oncheck -ps spacename
-ps 出力には、メタデータ領域内のロック範囲、partnum、割当ておよび使用されている
ページ数、エクステント サイズ、メタデータ領域の行数に関する情報が含まれます。
oncheck -ps 出力を使用すると、メタデータ領域に残されている領域の容量を確認でき
ます。 領域がフルである場合は、十分なメタデータ領域がある別のチャンクをメタデー
タ領域に割り当ててください。
スマート ラージ オブジェクトを格納している表を含む DB 領域に対して、oncheck の
オプション -ps を実行すると、表の行数を確認できます。
368
IBM Informix Dynamic Server 管理者ガイド
Validating space ’s9_sbspc’ ...
TBLSpace Report for
TBLspace Flags
Partition partnum
Number of rows
Number of special columns
Number of keys
Number of extents
Current serial value
First extent size
Next extent size
Number of pages allocated
Number of pages used
Number of data pages
Number of rows
Partition lockid
Optical Cluster Partnum
Current SERIAL8 value
Current REFID value
Created
2801
Page Locking
TBLspace use 4 bit bit-maps
Permanent System TBLspace
0x200001
92
0
0
1
1
50
50
50
6
0
0
2097153
-1
1
1
Thu Jun 25 14:14:33 1999
図 69. oncheck -ps の出力
メタデータおよびユーザ データ領域の監視
データベース サーバにより、ユーザ データ領域の 40% が予約領域 として予約されま
す。データベース サーバはこの予約領域をメタデータまたはユーザ データのいずれか
に使用します。メタデータ領域は、スマート ラージ オブジェクトがその SB 領域に追
加されるに従って一杯になります。メタデータまたはユーザ データ領域が不足すると、
データベース サーバにより予約領域のブロックが不足する領域に移動されます。
予約領域がすべて使用されると、ユーザ データ領域に未使用の領域がある場合でも、メ
タデータ領域への領域の移動は行われません。
1. スマート ラージ オブジェクトを SB 領域に追加する場合は、oncheck のオプショ
ン -pe または onstat のオプション -g smb c を使用して、メタデータ領域、ユーザ
データ領域、および予約領域の領域を監視します。例については、366 ページの
『oncheck -ce および oncheck -pe の使用方法』を参照してください。
2. メッセージ ログを使用して、メタデータ スチールを監視します。
データベース サーバにより、予約領域からメタデータ領域に割り当てられたページ
数に関するメッセージが出力されます。
3. SB 領域でメタデータ領域およびユーザ データ領域を使い切る前に、別のチャンク
を SB 領域に追加します。
詳しくは、341 ページの『SB 領域へのチャンクの追加』を参照してください。
第 11 章 ディスク領域の管理
369
4. 予約領域からメタデータ領域またはユーザ データ領域に領域が移動された場合は、
ログ レコード FREE_RE および CHKADJUP が書き込まれます。
詳しくは、340 ページの『SB 領域のメタデータのサイズ設定』を参照してください。
onstat -g smb c の使用方法
onstat のオプション -g smb c を使用すると、各 SB 領域チャンクの未使用領域の容
量、およびユーザ データ領域、メタデータ領域、予約領域のページ サイズを監視でき
ます。図 70 では、sbspace1 の chunk 2 について、使用されているページ数 (usr pgs)
は 2253 で、未使用のページ数 (free pg) は 2245 です。最初のユーザ データ領域
Ud1 については、開始ページのオフセットが 53 で、ページ数は 1126 です。メタデー
タ領域 Md については、開始ページのオフセットが 1179 で、ページ数は 194 です。
予約データ Ud2 については、開始ページのオフセットが 1373 で、ページ数は 1127
です。
Chunk Summary:
sbnum 2 chunk 2
chunk: address flags
offset size
303cf2a8 F------- 0
2500
path: /usr11/myname/sbspace1
Ud1 :
Md :
Ud2 :
start pg
53
1179
1373
npages
1126
194
1127
図 70. onstat -g smb c の出力
370
IBM Informix Dynamic Server 管理者ガイド
orig fr
2253
usr pgs
2253
free pg
2245
表へのデータのロード
既存の表へは次の方法でデータをロードできます。
データのロード方法
テキスト (TEXT)
型またはバイト
(BYTE) 型データ
CLOB 型または
BLOB 型データ
DB–Access LOAD 文
はい
はい
「IBM Informix: SQL ガイド:
構文」の LOAD 文に関する説
明
ユーティリティ dbload
はい
はい
IBM Informix: 移行ガイド
ユーティリティ dbimport
はい
はい
IBM Informix: 移行ガイド
プログラム ESQL/C
はい
はい
IBM Informix: ESQL/C
Programmer’s Manual
ユーティリティ onload
いいえ
いいえ
IBM Informix: 移行ガイド
onpladm ユーティリティ
はい (詳細モード)
はい (詳細モード)
IBM Informix Server
Administrator
High-Performance Loader
(HPL)
はい (詳細モード)
はい (詳細モード)
IBM Informix: ハイ パフォーマ
ンス ローダ ユーザーズ ガイ
ド
参照先
重要: データベース サーバには、テキスト (TEXT) 型およびバイト (BYTE) 型のデー
タがデータベース内へロードされた後に、それらのデータを圧縮するメカニズム
はありません。
第 11 章 ディスク領域の管理
371
372
IBM Informix Dynamic Server 管理者ガイド
第 3 部 ロギングとログ管理
© Copyright IBM Corp. 1996, 2004
373
374
IBM Informix Dynamic Server 管理者ガイド
第 12 章 ログ機能
ログ機能を必要とするデータベース サーバ プロセス . . . . . . . .
トランザクション ログ機能とは . . . . . . . . . . . . . . . .
SQL 文とデータベース サーバ動作のログ . . . . . . . . . . . .
常にログ記録される動作 . . . . . . . . . . . . . . . . .
トランザクション ログ機能を使用するデータベースでログ記録される動作
ログ記録されない動作 . . . . . . . . . . . . . . . . . .
データベースのログ機能状態 . . . . . . . . . . . . . . . . .
バッファなしトランザクション ログ機能 . . . . . . . . . . . .
バッファ付きトランザクション ログ機能 . . . . . . . . . . . .
ANSI 標準準拠のトランザクション ログ機能 . . . . . . . . . .
データベース ログ機能なし . . . . . . . . . . . . . . . .
ログ バッファリング状態の異なるデータベース . . . . . . . . .
X/Open DTP 環境でのデータベース ログ機能 . . . . . . . . . .
ログ機能状態またはモードの設定と変更 . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
376
377
378
378
379
380
381
381
382
382
382
383
383
383
本章について
この章では、Informix データベースのログ機能について、以下の点を中心に説明しま
す。
v データベース サーバ プロセスのうち、ログ機能を必要とするものはどれか。
v トランザクション ログ機能とは何か。
v データベース サーバの動作のうち、ログに記録されるものはどれか。
v データベース ログ機能状態とは何か。
v データベース ログ機能状態の設定や変更を行えるのはどのユーザか。
同一のデータベース サーバ インスタンスで管理されるデータベースすべては、トラン
ザクション ログ機能を使用するかどうかに関係なく、同一の論理ログにログ レコード
を記録します。通常、データベース ユーザは、トランザクション ログがバッファに入
れられているかどうか、また表ではログ機能が使用されるのかどうか注意する必要があ
ります。
データベース ログ機能状態を変更する場合は、 383 ページの『ログ機能状態またはモー
ドの設定と変更』を参照してください。
© Copyright IBM Corp. 1996, 2004
375
ログ機能を必要とするデータベース サーバ プロセス
Dynamic Server が、トランザクションの処理、データ格納の追跡、データの一貫性の確
保などを実行すると、一部のアクションに対して自動的に論理ログ レコード が作成さ
れます。ほとんどの場合、論理ログ レコードがそれ以外の目的で使用されることはあり
ません。ただし、例えばトランザクションのロールバックや、システム障害発生後の高
速復旧を実行する必要がある場合などは、論理ログ レコードが重要になります。論理ロ
グ レコードは、データ復旧メカニズムの中核といえます。
論理ログ レコードは、論理ログ に格納されます。論理ログは、論理ログ ファイル で
構成されています。これらの論理ログ ファイルは、正常にオフラインの場所に転送され
る、つまりバックアップ されるまで、データベース サーバによってディスク上で管理
されます。バックアップされた論理ログ ファイルは、データ復元に使用されるか、また
はレコードが復元に必要ないと判断されるまで、データベース サーバ管理者によって保
存されます。論理ログの詳細については、 393 ページの『第 14 章 論理ログ』を参照し
てください。
論理ログ レコード自体は、可変長レコードです。このため、論理ログ バッファ内のペ
ージに書き込める論理ログ レコードの数は、増加していきます。ただし通常は、ページ
がいっぱいになる前に論理ログ バッファがフラッシュされます。論理ログ レコードの
フォーマットの詳細については、「IBM Informix: Dynamic Server 管理者の参照」の論
理ログ レコードの解釈に関する章を参照してください。
論理ログ レコードは、データの復元やデータの一貫性の確保のためのデータベース サ
ーバのさまざまな機能において、次のように使用されます。
v トランザクション ロールバック。トランザクション ログ機能を使用していて、トラ
ンザクションをロールバックする必要が生じた場合、トランザクション中に行われた
変更を元に戻すために論理ログ レコードが使用されます。詳しくは、377 ページの
『トランザクション ログ機能とは』を参照してください。
v 高速復旧。データベース サーバが制御を失って停止した場合、まだディスクへフラ
ッシュされていない更新のうちで最も古いもの以降に行われたトランザクションがす
べて復旧され、コミットされていないトランザクションはすべてロールバックされま
す。そのときに論理ログ レコードが使用されます。なお、共有メモリ内とディスク
上のすべてのデータが同じである場合には、それらは物理的に一貫している といえ
ます。論理ログ レコードは、高速復旧でデータベース サーバ全体の論理的一貫状態
が最新の論理ログ レコードの時点まで戻されるときに使用されます。(詳しくは、446
ページの『フル チェックポイント後の高速復旧について』を参照してください。)
v データ復元。格納領域の最新のバックアップと論理ログ バックアップを使用して、
データベース サーバ システムを論理ログ レコードが最後にバックアップされた時
点の状態に再構築します。論理的復元では、最後の格納領域バックアップ以降のログ
レコードすべてが適用されます。
v 据置き検査。トランザクションで SET CONSTRAINTS 文を使用して検査を
DEFERRED に設定すると、そのトランザクションがコミットされるまでデータベー
376
IBM Informix Dynamic Server 管理者ガイド
ス サーバは制約を検査しません。トランザクションのコミット中に制約エラーが発
生すると、論理ログ レコードを使用してトランザクションがロールバックされま
す。詳しくは、「IBM Informix: SQL ガイド: 構文」の SET Database Object Mode
文に関する説明を参照してください。
v カスケード削除。参照制約によるカスケード削除では、親行の削除後、子行が削除さ
れる前にシステム障害が発生した場合、トランザクションを確実にロールバックする
ために論理ログ レコードが使用されます。表の継承については、「IBM Informix: デ
ータベース設計および実装 ガイド」を参照してください。主キー制約および外部キ
ー制約については、「IBM Informix: SQL ガイド: チュートリアル」を参照してくだ
さい。
v 分散トランザクション。分散トランザクションに関係している各データベース サー
バでは、そのトランザクションの論理ログ レコードが保持されています。これによ
って、トランザクションを実行するデータベース サーバのいずれかで障害が発生し
た場合でも、データの整合性と一貫性が保証されます。詳しくは、573 ページの『2
相コミットと論理ログ レコード』を参照してください。
v 高可用性データ レプリケーション (HDR)。HDR では、2 つの異なるデータベース
サーバ上でのデータの一貫性を保つために論理ログ レコードが使用されます。一方
のデータベース サーバで障害が発生すると、即時にもう一方をバックアップ データ
ベース サーバとして使用できます。詳しくは、489 ページの『HDR の動作』を参照
してください。
v エンタープライズ レプリケーション。エンタープライズ レプリケーションでは論理
ログ レコードからデータが複製されるため、データベース ログ機能を使用する必要
があります。詳しくは、「IBM Informix: Dynamic Server エンタープライズ レプリケ
ーション ガイド」を参照してください。
トランザクション ログ機能とは
データベースの SQL データ操作文によって論理ログ レコードが作成される場合、デー
タベースまたは表はトランザクション ログ機能を備えている、または使用している と
いいます。
データベースがトランザクション ログ機能を使用しているかどうかは、データベースの
ログ機能状態 で示されます。データベースでバッファ付きとバッファなしのどちらのロ
グ機能が使用されているか、あるいは ANSI 標準準拠のログ機能が使用されているかど
うかは、ログ バッファリング モード でわかります。詳しくは、381 ページの『データ
ベースのログ機能状態』、および 385 ページの『第 13 章 データベース ログ機能モー
ドの管理』を参照してください。
データベース作成時には、トランザクション ログ 機能を使用するかどうか、使用する
のであればどのログ バッファリング機構を使用するかを指定できます。また、データベ
ースの作成後には、データベース ログ機能をオフにしたり、バッファ付きのログ機能に
変更したりすることもできます。すべてのデータベースに対してトランザクション ログ
第 12 章 ログ機能
377
機能をオフにしても、一部のイベントは常にログに記録されます。詳しくは、378 ペー
ジの『常にログ記録される動作』および 383 ページの『X/Open DTP 環境でのデータベ
ース ログ機能』を参照してください。
データベース内では、ログ付き表またはログなし表を使用できます。 表のタイプは、表
の作成者が指定します。 ログなし表を使用する場合でも、一部のイベントは常にログに
記録されます。詳しくは、291 ページの『Dynamic Server の表タイプ』を参照してくだ
さい。
SQL 文とデータベース サーバ動作のログ
データベース サーバでログ記録される動作には、次の 3 種類があります。
v 常にログ記録される動作
v トランザクション ログ機能を使用するデータベースでのみログ記録される動作
v ログ記録されない動作
常にログ記録される動作
トランザクション ログ機能をオフにしている場合や、ログなし表を使用している場合で
も、常に論理ログ レコードを生成するデータベース操作があります。
以下の操作は、常に永続表にログ記録されます。
v SQL データ定義文
v 格納領域のバックアップ
v チェックポイント
v チャンクや DB 領域の追加など、データベース サーバの構成に関する管理上の変更
v
表に対する新しいエクステントの割当て
v データベースのログ機能状態に対する変更
v スマート ラージ オブジェクトの操作
– 作成
– 削除
– エクステントの割当てと割当て解除
– 切捨て
– チャンク フリー リスト ページの結合と分割
– LO ヘッダと LO 参照数の変更
v SB 領域のメタデータ
v BLOB 領域
SQL データ定義文については、表 35 を参照してください。
378
IBM Informix Dynamic Server 管理者ガイド
表 35. SQL データ定義文
ALTER ACCESS METHOD
CREATE ROUTINE
DROP TABLE
ALTER FRAGMENT
CREATE ROW TYPE
DROP TRIGGER
ALTER FUNCTION
CREATE SCHEMA
DROP TYPE
ALTER INDEX
CREATE SYNONYM
DROP VIEW
ALTER OPAQUE TYPE
CREATE TABLE
GRANT
ALTER PROCEDURE
CREATE TEMPORARY TABLE
GRANT FRAGMENT
ALTER ROUTINE
CREATE TRIGGER
RENAME COLUMN
ALTER TABLE
CREATE VIEW
RENAME DATABASE
CREATE ACCESS METHOD
DROP ACCESS METHOD
RENAME INDEX
CREATE AGGREGATE
DROP AGGREGATE
RENAME TABLE
CREATE CAST
DROP CAST
REVOKE
CREATE DATABASE
DROP DATABASE
REVOKE FRAGMENT
CREATE DISTINCT TYPE
DROP FUNCTION
ROLLBACK WORK
CREATE EXTERNAL TABLE
DROP INDEX
START VIOLATIONS TABLE
CREATE FUNCTION
DROP OPCLASS
TRUNCATE TABLE
CREATE INDEX
DROP PROCEDURE
STOP VIOLATIONS TABLE
CREATE OPAQUE TYPE
DROP ROLE
UPDATE STATISTICS
CREATE OPCLASS
DROP ROUTINE
CREATE PROCEDURE
DROP ROW TYPE
CREATE ROLE
DROP SYNONYM
トランザクション ログ機能を使用するデータベースでログ記録される動作
トランザクション ログ機能を使用するデータベースでは、次の SQL 文によって 1 つ
以上のログ レコードが生成されます。これらの文をロールバックすると、そのロールバ
ックについてもログ レコードが生成されます。
DELETE
LOAD
UNLOAD
FLUSH
PUT
UPDATE
INSERT
SELECT INTO TEMP
次の SQL 文は、特別な場合にログ レコードを生成します。
第 12 章 ログ機能
379
SQL 文
文が生成するログ レコード
BEGIN WORK
トランザクション ログ機能が使用されていなければ、エラーを戻します。ログ
レコードは、トランザクションがほかのログ作業を行っている場合に作成され
ます。
COMMIT WORK
トランザクション ログ機能が使用されていなければ、エラーを戻します。ログ
レコードは、トランザクションがほかのログ作業を行っている場合に作成され
ます。
EXECUTE
ログ レコードが生成されるかどうかは、実行されるコマンドによって異なりま
す。
EXECUTE FUNCTION
ログ レコードが生成されるかどうかは、実行される関数によって異なります。
EXECUTE IMMEDIATE
ログ レコードが生成されるかどうかは、実行されるコマンドによって異なりま
す。
EXECUTE PROCEDURE ログ レコードが生成されるかどうかは、実行される手続きによって異なりま
す。
ログ記録されない動作
次の SQL 文は、データベース ログ機能のモードに関係なく、ログ レコードを作成し
ません。
ALLOCATE COLLECTION
DEALLOCATE ROW
LOCK TABLE
ALLOCATE DESCRIPTOR
DECLARE
OPEN
ALLOCATE ROW
DESCRIBE
OUTPUT
CLOSE
DISCONNECT
PREPARE
CONNECT
FETCH
SELECT
DATABASE
FREE
SET ...
DEALLOCATE COLLECTION
GET DESCRIPTOR
UNLOCK TABLE
DEALLOCATE DESCRIPTOR
GET DIAGNOSTICS
WHENEVER
DEALLOCATE ROW
INFO
一時 DB 領域の一時表では、378 ページの『常にログ記録される動作』にリストされて
いる SQL 文も含めて、一切のログ記録が行われません。DBSPACETEMP に一時 (ログ
なし) DB 領域が含まれている場合、まずこれらの一時 DB 領域にログなし表が配置さ
れます。詳しくは、303 ページの『一時表』を参照してください。
380
IBM Informix Dynamic Server 管理者ガイド
データベースのログ機能状態
376 ページの『ログ機能を必要とするデータベース サーバ プロセス』にリストされて
いる機能を利用するには、データベースでトランザクション ログ機能を使用する必要が
あります。
データベース サーバで管理しているデータベースは、すべてログ機能状態を保持してい
ます。ログ機能状態には、そのデータベースに対してトランザクション ログ機能を使用
しているかどうかが示されます。使用している場合には、採用されているログ バッファ
リング機構も示されます。データベースのトランザクション ログ機能状態を確認するに
は、391 ページの『データベースのログ機能モードの監視』で説明されているデータベ
ース サーバのユーティリティを使用します。 データベースのログ機能状態には、以下
のようなログ機能タイプが示されます。
v バッファなしトランザクション ログ機能
v バッファ付きトランザクション ログ機能
v ANSI 標準準拠のトランザクション ログ機能
v
ログ機能なし
論理ログ レコードは、すべて共有メモリ内の論理ログ バッファを経由して、ディスク
上の論理ログに書き込まれます。ただし、論理ログ バッファがフラッシュされる時期
は、バッファ付きトランザクション ログ機能とバッファなしトランザクション ログ機
能とで異なります。詳しくは、206 ページの図 28 および 238 ページの『論理ログ バ
ッファのフラッシュ』を参照してください。
バッファなしトランザクション ログ機能
バッファなしログ機能を使用するデータベースに対してトランザクションを開始する場
合、論理ログ バッファにあるレコードは、コミット処理中に確実にディスクに書き込ま
れます。論理ログ レコードは、COMMIT 文の実行後 (分散トランザクションの場合は
PREPARE 文の実行前)、アプリケーションに制御が戻るときにディスクに書き込まれま
す。バッファにあるトランザクションがコミットされると、つまりコミット レコードが
論理ログ バッファへ書き込まれると、レコードはただちにフラッシュされます。
バッファがフラッシュされるときにディスクに書き込まれるのは、使用済みページに限
られます。 ただし、使用済みページの中には空き容量のあるページも含まれており、あ
る程度の領域が無駄になります。そのため、単一のデータベース サーバ上の全データベ
ースでバッファ付きログ機能を使用している場合と比べ、ディスク上の論理ログ ファイ
ルがいっぱいになる時期が早まります。
バッファなしログ機能でも、コミットされたトランザクションはすべて確実に復旧でき
ます。そのため、ほとんどのデータベースには、バッファなしログ機能が最も適してい
ます。 障害が発生しても、失われるのはその障害が発生した時点でまだコミットされて
いなかったトランザクションのみです。ただしバッファなしログ機能では、論理ログ バ
第 12 章 ログ機能
381
ッファがディスクへフラッシュされる頻度が高く、しかもバッファには空き容量の残っ
ているページも多数あるため、バッファ付きログ機能に比べ、論理ログがいっぱいにな
る時期が早まります。
バッファ付きトランザクション ログ機能
バッファ付きログ機能を使用するデータベースに対してトランザクションを開始する
と、レコードは可能な限り長時間論理ログ バッファ内に保持 (バッファリング) されま
す。共有メモリ内の論理ログ バッファからディスク上の論理ログへのフラッシュは、以
下のいずれかの状況になるまで行われません。
v バッファがいっぱいになる。
v バッファなしログ機能を使用するデータベースのコミットにより、バッファがフラッ
シュされる。
v チェックポイントが発生した場合。
v 接続がクローズされる。
バッファ付きログ機能を使用しているときに障害が発生すると、論理ログ バッファに格
納されていた障害発生時点のトランザクションは、復旧できないことがあります。 つま
り、コミットされたトランザクションをある程度失う可能性があります。一方、この危
険性を伴う代わりに、変更処理中のパフォーマンスはわずかに向上します。 頻繁に更新
され、更新速度が重要視されるデータベースには、障害が発生したときでも更新を再現
できるならば、バッファ付きログ機能が最も適しています。論理ログ バッファのサイズ
を調整すると、システムのパフォーマンスと、システム障害の発生時にトランザクショ
ンを失う危険性とのバランスをとることができます。
ANSI 標準準拠のトランザクション ログ機能
ANSI 標準準拠データベースのログ機能状態には、データベース所有者がキーワード
MODE ANSI を使用してこのデータベースを作成したことが示されます。ANSI 標準準
拠データベースでは、常にバッファなしトランザクション ログ機能が使用され、トラン
ザクション処理に ANSI の規則が強制的に適用されます。ANSI 標準準拠データベース
のバッファリング状態は変更できません。
データベース ログ機能なし
データベースに対するログ機能をオフにすると、トランザクションはログに記録されな
くなりますが、ほかの操作はログに記録されます。詳しくは、378 ページの『常にログ
記録される動作』を参照してください。通常、データのロード中や、問合せのみを実行
しているときには、ログ機能をオフにします。
復旧元が信頼できる場合には、データベースに対するトランザクション ログ機能を無効
にすると、データベース サーバの処理負荷を軽減できます。例えば、テープまたは
ASCII ファイルなどの復旧可能ソースから多数の行をデータベースにロードする場合に
は、トランザクション ログ機能は必要ありません。この場合には、ログ記録をオフにす
382
IBM Informix Dynamic Server 管理者ガイド
るとロードが高速になります。ただし、そのデータベースにほかのユーザがアクセスし
ている場合は、ログ機能を再び開始するまで、そのユーザによるトランザクションの論
理ログ レコードは記録されません。ログ機能を再び開始するには、レベル 0 バックア
ップを行う必要があります。
ログ バッファリング状態の異なるデータベース
1 つのデータベース サーバ上のデータベースに対しては、すべて同一の論理ログと論理
ログ バッファが使用されます。そのため、異なるログ バッファリング状態を持つデー
タベースに対するトランザクションを、同一の論理ログ バッファに書き込むことができ
ます。例えば、バッファ付きログ機能を使用するデータベースに対するトランザクショ
ンおよび バッファなしログ機能を使用するデータベースに対するトランザクションの両
方が 存在する場合、バッファがいっぱいになるか、または バッファなしログ機能を使
用するデータベースに対するトランザクションが完了すると、バッファがフラッシュさ
れます。
X/Open DTP 環境でのデータベース ログ機能
X/Open DTP (Distributed Transaction Processing: 分散トランザクション処理) 環境のデー
タベースでは、バッファなしログ機能 を使用する必要があります。バッファなしログ機
能を使用すると、データベース サーバ論理ログを常に一貫した状態に保ち、トランザク
ション マネージャと同期化することができます。バッファ付きログ機能で作成されたデ
ータベースを X/Open DTP 環境で開くと、データベースの状態は自動的にバッファなし
ログ機能に変更されます。データベース サーバでは、ANSI 標準準拠と非 ANSI デー
タベースの両方がサポートされています。詳しくは、558 ページの『トランザクション
マネージャ』を参照してください。
ログ機能状態またはモードの設定と変更
データベースのログ機能状態およびバッファリング モードは、CREATE DATABASE
文を使用してデータベースを作成するユーザが初期設定を行います。 CREATE
DATABASE 文の詳細については、「IBM Informix: SQL ガイド: 構文」を参照してくだ
さい。
CREATE DATABASE 文でログ機能状態を指定しなかった場合、データベースはログ機
能なしで作成されます。
ログ機能状態を変更できるのは、データベース サーバ管理者のみです。この項目につい
ては、385 ページの『第 13 章 データベース ログ機能モードの管理』を参照してくだ
さい。一般のエンド ユーザがデータベースのログ機能状態を変更することはできませ
ん。
第 12 章 ログ機能
383
データベースでログ機能が使用されていない場合、バッファ付きとバッファなしのどち
らのログ機能が適しているかについて検討する必要はありません。ログ機能を指定して
バッファリング モードを指定しなかった場合のデフォルト設定は、バッファなしログ機
能です。
セッション実行中 であれば、エンド ユーザも、バッファなしログ機能からバッファ付
きログ機能へ、およびバッファ付きログ機能からバッファなしログ機能への変更を行う
ことができます。ただし、ANSI 標準準拠のログ機能には変更できません。この変更
は、アプリケーションから SET LOG 文を使用して行います。SET LOG 文の詳細につ
いては、「IBM Informix: SQL ガイド: 構文」を参照してください。
384
IBM Informix Dynamic Server 管理者ガイド
第 13 章 データベース ログ機能モードの管理
データベース ログ機能モードの変更 . . . . . . . . .
ondblog によるデータベース ログ機能モードの変更 . . . .
ondblog によるバッファリング モードの変更 . . . . .
ondblog によるログ機能モード変更のキャンセル方法 . . .
ondblog によるログ機能の終了 . . . . . . . . . .
ondblog による ANSI 標準準拠データベースへの変換 . .
ANSI 標準準拠データベースのログ機能モードの変更 . . .
ontape によるデータベース ログ機能モードの変更 . . . .
ontape によるトランザクション ログ機能の有効化 . . .
ontape によるログ機能の終了 . . . . . . . . . . .
ontape によるバッファリング モードの変更 . . . . . .
ontape による ANSI 標準準拠データベースのへの変換 . .
ISA によるデータベース ログ機能モードの変更 . . . . .
ON-Monitor によるデータベース ログ機能モードの変更 (UNIX)
表ログ機能モードの変更 . . . . . . . . . . . . .
ログ機能をオフにするための表の変更 . . . . . . . .
ログ機能をオンにするための表の変更 . . . . . . . .
トランザクションの監視 . . . . . . . . . . . . .
データベースのログ機能モードの監視 . . . . . . . . .
SMI 表によるログ機能モードの監視 . . . . . . . .
ON-Monitor によるログ機能モードの監視 (UNIX) . . . .
ISA によるログ機能モードの監視 . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
386
387
387
387
387
388
388
388
388
389
389
389
390
390
390
390
390
391
391
391
391
392
本章について
この章では、データベース ログ機能モードの変更について、次の点を説明します。
v データベース ログ機能モード
v ondblog によるデータベース ログ機能モードの変更
v ontape によるデータベース ログ機能モードの変更
v ON–Monitor によるデータベース ログ機能モードの変更
v トランザクション ログ機能の監視
データベース サーバ管理者は、次のようにデータベースのログ機能モードを変更できま
す。
v トランザクション ログ機能のバッファ付きからバッファなしへの変更
v トランザクション ログ機能のバッファなしからバッファ付きへの変更
v データベースの ANSI 標準準拠への変換
© Copyright IBM Corp. 1996, 2004
385
v データベースに対するバッファ付きまたはバッファなしトランザクション ログ機能
の追加
v データベースのトランザクション ログ機能の終了
データベース ログ機能モード、トランザクション ログ機能を使用する状況、バッファ
付きトランザクション ログ機能を使用する状況については、 375 ページの『第 12 章
ログ機能』を参照してください。データベースの現在のログ機能モードを調べる方法に
ついては、391 ページの『データベースのログ機能モードの監視』を参照してくださ
い。
データベース ログ機能モードの変更
ログ機能の追加や変更には、ondblog、ontape、または ISA を使用します。その後、
ON–Bar、または ontape を使用してデータをバックアップしてください。 ON–Bar ま
たは ontape を使用する場合、データベース サーバはオンライン、シングルユーザ、ま
たは静止モードである必要があります。
ON–Bar および ontape については、「IBM Informix: バックアップおよび復元 ガイ
ド」を参照してください。
データベース サーバ管理者がデータベース ログ機能モードを変更する方法を 表 36 に
示します。 ログ機能モードの変更の中には、即時に反映されるものと、レベル 0 バッ
クアップが必要なものがあります。
表 36. ログ機能モード トランザクション
バッファなしログ機 バッファ付きログ機 ANSI 標準準拠に変
能に変換
能に変換
換
変更前
ログ機能なしに変換
ログ機能なし
該当しない
レベル 0 バックア
ップ (該当する格納
領域)
レベル 0 バックア
ップ (該当する格納
領域)
レベル 0 バックア
ップ (該当する格納
領域)
バッファなしロ
グ機能
はい
該当しない
はい
はい
バッファ付きロ
グ機能
はい
はい
該当しない
はい
ANSI 標準準拠
不正
不正
不正
該当しない
次に、データベース ログ機能モードを変更するときの一般的な注意点について説明しま
す。
v ログ機能モードの変更中は、データベース サーバに排他ロックがかけられ、他のユ
ーザによるデータベースへのアクセスが禁止されます。変更が完了すると、ロックが
解除されます。
386
IBM Informix Dynamic Server 管理者ガイド
v ログ機能モードの変更中に障害が発生した場合は、データベース サーバのデータ復
旧後、ISA のログ機能モード、またはデータベース sysmaster 内の sysdatabases 表
のフラグを検査してください。詳しくは、391 ページの『データベースのログ機能モ
ードの監視』を参照してください。その後ログ機能モードを再度変更してみてくださ
い。
v バッファ付きまたはバッファなしのログ機能の選択後は、アプリケーション内で SQL
の SET LOG 文を使用して、ログ機能モードを切り替えられるようになります。この
変更は 1 つのセッション内のみで有効です。SET LOG については、「IBM Informix:
SQL ガイド: 構文」を参照してください。
v データベースにログ機能を追加したときは、そのデータベースのすべての格納領域で
レベル 0 バックアップを次回実行するまで、変更は反映されません。
ondblog によるデータベース ログ機能モードの変更
ユーティリティ ondblog を使用すると、1 つ以上のデータベースのログ機能モードを変
更できます。 データベースにログ機能を追加した場合、データベースが含まれる DB
領域のレベル 0 バックアップを作成するまで、変更は反映されません。詳細について
は、「IBM Informix: Dynamic Server 管理者の参照」の ondblog の使用法に関するセク
ションを参照してください。
ondblog によるバッファリング モードの変更
stores_demo というデータベースのバッファリング モードを、バッファ付きログ機能か
らバッファなしログ機能に変更するには、次のコマンドを実行します。
ondblog unbuf stores_demo
stores_demo というデータベースのバッファリング モードを、バッファなしログ機能か
らバッファ付きログ機能に変更するには、次のコマンドを実行します。
ondblog buf stores_demo
ondblog によるログ機能モード変更のキャンセル方法
次回レベル 0 バックアップを実行する前にログ機能モードの変更要求をキャンセルする
には、次のコマンドを実行します。
ondblog cancel stores_demo
ログ機能の変更は即時に実行されるため、変更はキャンセルできないことに注意してく
ださい。
ondblog によるログ機能の終了
ファイル dbfile にリストされた 2 つのデータベースのログ機能を終了するには、次の
コマンドを実行します。
ondblog nolog -f dbfile
第 13 章 データベース ログ機能モードの管理
387
ondblog による ANSI 標準準拠データベースへの変換
ondblog を使用して、stores_demo というデータベースを ANSI 標準準拠データベース
へ変換するには、次のコマンドを実行します。
ondblog ansi stores_demo
ANSI 標準準拠データベースのログ機能モードの変更
データベースをいったん ANSI モードで作成または変換すると、簡単にはほかのログ機
能モードに変更できなくなります。誤ってデータベースを ANSI モードに変換してしま
った場合、次の手順でログ機能モードを変更します。
ログ機能モードを変更するには:
1. データをアンロードするには、dbexport またはほかの移行ユーティリティを使用し
ます。ユーティリティ dbexport はファイル schema を作成します。
データのロードとアンロードの方法については、「IBM Informix: 移行ガイド」を参
照してください。
2. バッファ付ログ機能を使用するデータベースを再作成してからデータをロードするに
は、コマンド dbimport -l buffered を使用します。
バッファなしのログ機能を使用するデータベースを再作成してからデータをロードす
るには、コマンド dbimport -l を使用します。
ontape によるデータベース ログ機能モードの変更
バックアップ ツールとして ontape を使用する場合は、データベースのログ機能モード
の変更に ontape を使用できます。
ontape によるトランザクション ログ機能の有効化
データベース ログ機能モードを変更する前に、386 ページの『データベース ログ機能
モードの変更』を参照してください。
ontape によるデータベースへのログ機能の追加は、レベル 0 バックアップの作成と同
時に行います。
例えば、ontape で stores_demo というデータベースにバッファ付きログ機能を追加す
るには、次のコマンドを実行します。
ontape -s -B stores_demo
ontape で stores_demo というデータベースにバッファなしログ機能を追加するには、
次のコマンドを実行します。
ontape -s -U stores_demo
388
IBM Informix Dynamic Server 管理者ガイド
これらのコマンドは、トランザクション ログ機能をオンにするだけでなく、全システム
格納領域のバックアップも作成します。ontape からバックアップ レベルの入力要求が
あったときは、レベル 0 バックアップを指定します。
ヒント: ontape では、全格納領域のレベル 0 バックアップを実行する必要がありま
す。
ontape によるログ機能の終了
ontape で stores_demo というデータベースのログ機能を終了するには、次のコマンド
を実行します。
ontape -N stores_demo
ontape によるバッファリング モードの変更
ontape を使用して、格納領域のバックアップを作成せずに stores_demo というデータ
ベースのバッファリング モードをバッファ付きログ機能からバッファなしログ機能に変
更するには、次のコマンドを実行します。
ontape -U stores_demo
ontape を使用して、格納領域のバックアップを作成せずに stores_demo というデータ
ベースのバッファリング モードをバッファなしログ機能からバッファ付きログ機能に変
更するには、次のコマンドを実行します。
ontape -B stores_demo
ontape による ANSI 標準準拠データベースのへの変換
トランザクション ログ機能を使用している stores_demo というデータベースを、
ontape を使用して ANSI 標準準拠データベースへ変換するには、次のコマンドを実行
します。なお変換前のログ機能は、バッファなしでもバッファ付きでも構いません。
ontape -A stores_demo
トランザクション ログ機能を使用していない stores_demo というデータベースを、
ontape を使用して ANSI 標準準拠データベースへ変換するには、次のコマンドを実行
します。
ontape -s -A stores_demo
このコマンドでは、データベースを ANSI 標準準拠にするのと同時に、格納領域のバッ
クアップを作成します。レベルの入力要求があったら、レベル 0 バックアップを指定し
ます。
ヒント: ログ機能モードを ANSI 標準準拠へ変更すると、簡単にはそれ以上変更できな
くなります。ANSI 標準準拠データベースのログ機能モードを変更するには、デ
ータをアンロードし、新しいログ機能モードでデータベースを作成し直してデ
第 13 章 データベース ログ機能モードの管理
389
ータを再ロードしてください。詳しくは、388 ページの『ANSI 標準準拠デー
タベースのログ機能モードの変更』を参照してください。
ISA によるデータベース ログ機能モードの変更
ISA は、ユーティリティ ondblog を使用してデータベース ログ機能モードを変更しま
す。 ログ機能をオンにすると、レベル 0 バックアップを実行します。詳しくは、ISA
のオンライン ヘルプ、および 387 ページの『ondblog によるデータベース ログ機能モ
ードの変更』を参照してください。
ON-Monitor によるデータベース ログ機能モードの変更 (UNIX)
ON–Monitor を使用すると、ログ バッファリング モードのバッファなしとバッファ付
きを切り替えられます。データベースにログ機能を追加したり、また、データベースを
ANSI 標準準拠に変換する場合は、ON–Monitor を使用できません。ontape を使用する
必要があります。
データベースのログ バッファリング モードを変更するには、「Logical-Logs」>
「Databases」を使用します。
表ログ機能モードの変更
デフォルトでは、ログ機能を使用する標準の表が作成されます。ログ機能なしの表を作
成するには、CREATE TABLE 文の WITH LOG 節を使用します。CREATE TABLE 文
および ALTER TABLE 文の詳細については、「IBM Informix: SQL ガイド: 構文」を
参照してください。詳しくは、291 ページの『Dynamic Server の表タイプ』を参照して
ください。
ログ機能をオフにするための表の変更
ログ機能を持つ表からログ機能なしの表へ切り替えるには、SQL ALTER TABLE 文
で、RAW のオプション TYPE を使用します。例えば、次の文は表 tablog をロウ表へ
変更します。
ALTER TABLE tablog TYPE (RAW)
ログ機能をオンにするための表の変更
ログ機能なしの表からログ機能を持つ表へ切り替えるには、SQL ALTER TABLE 文
で、STANDARD のオプション TYPE を使用します。例えば、次の文は表 tabnolog を
標準表へ変更します。
ALTER TABLE tabnolog TYPE (STANDARD)
390
IBM Informix Dynamic Server 管理者ガイド
警告: 表を STANDARD に変更する時は、その表のログ機能をオンにします。 表を復
元できるようにする必要があるなら、表を変更した後にレベル 0 バックアップを
実行します。
トランザクションの監視
このセクションには、トランザクションの監視方法を説明している参照先が記載されて
います。
コマンド
説明
参照先
onstat -x
トランザクションを監視します。
571 ページの『広域トランザクションの監
視』
onstat -g sql
SQL 文を監視します。セッション ID お 「IBM Informix: Dynamic Server パフォー
よびデータベースごとに表示されます。 マンス ガイド」のパフォーマンスの監視
onstat -g stm
PREPARE 文で処理された SQL 文のメ
モリ使用を監視します。
「IBM Informix: Dynamic Server パフォー
マンス ガイド」のメモリ使用率
データベースのログ機能モードの監視
ここでは、データベースと表のログ機能モードを監視する方法について説明します。
SMI 表によるログ機能モードの監視
ログ機能モードを調べるには、データベース sysmaster の sysdatabases 表に問い合わ
せます。この表には、データベース サーバに管理されている各データベースに対応する
行が含まれています。フィールド flags には、そのデータベースのログ機能モードが示
されます。フィールド is_logging、is_buff_log、および is_ansi には、ログ機能がアクテ
ィブかどうか、およびバッファ付きログ機能または ANSI 標準準拠ログ機能が使用され
ているかどうかが示されます。この表の各列の説明については、「IBM Informix:
Dynamic Server 管理者の参照」のデータベース sysmaster に関する章の sysdatabases
のセクションを参照してください。
ON-Monitor によるログ機能モードの監視 (UNIX)
ON–Monitor を使用してデータベースのログ機能モードを調べるには、「Status」>
「Databases」オプションを選択します。データベース ログ機能がオンになっている
と、ON–Monitor でバッファリング モードが表示されます。ON–Monitor で表示できる
データベースは 100 個までです。データベース サーバに 100 個を超えるデータベース
がある場合は、391 ページの『SMI 表によるログ機能モードの監視』で説明されている
ように、SMI 表を使用して完全なリストを表示します。
第 13 章 データベース ログ機能モードの管理
391
ISA によるログ機能モードの監視
ISA を使用して、データベース ログ機能状態およびバッファリング モードを表示する
には、「SQL」>「スキーマ」を選択します。
392
IBM Informix Dynamic Server 管理者ガイド
第 14 章 論理ログ
論理ログとは何か . . . . . . . . . . . . . . . . . . . . . . . . . .
論理ログ ファイルの格納場所 . . . . . . . . . . . . . . . . . . . . . .
論理ログ ファイルの識別方法 . . . . . . . . . . . . . . . . . . . . . .
論理ログ ファイルの状態フラグ . . . . . . . . . . . . . . . . . . . . . .
論理ログのサイズ . . . . . . . . . . . . . . . . . . . . . . . . . .
論理ログ ファイルの数 . . . . . . . . . . . . . . . . . . . . . . . .
パフォーマンスに関する注意事項 . . . . . . . . . . . . . . . . . . . .
動的ログ割当て . . . . . . . . . . . . . . . . . . . . . . . . . . .
論理ログ ファイルの解放 . . . . . . . . . . . . . . . . . . . . . . . .
次の論理ログ ファイルが使用中の場合の処置 . . . . . . . . . . . . . . . .
次のログ ファイルが最後のチェックポイントを含む場合の処置 . . . . . . . . . .
BLOB 領域およびシンプル ラージ オブジェクトのログ記録 . . . . . . . . . . . .
BLOB 領域を起動するためのログ ファイルの切替え . . . . . . . . . . . . . .
BLOB ページを解放するためのログ ファイルのバックアップ . . . . . . . . . . .
テキスト型およびバイト型挿入後または削除後の BLOB 領域のバックアップ . . . . .
SB 領域とスマート ラージ オブジェクトのログ機能 . . . . . . . . . . . . . . .
SB 領域ログ機能の使用方法 . . . . . . . . . . . . . . . . . . . . . .
スマート ラージ オブジェクトに対するログ機能の選択 . . . . . . . . . . . .
更新されたスマート ラージ オブジェクトに対するログ機能 . . . . . . . . . .
SB 領域に対するログ機能のオンとオフの切替え . . . . . . . . . . . . . .
スマート ラージ オブジェクト ログ レコードの使用方法 . . . . . . . . . . . .
スマート ラージ オブジェクト データのログ記録時におけるロング トランザクションの防止
ログ機能プロセス . . . . . . . . . . . . . . . . . . . . . . . . . .
DB 領域のログ機能 . . . . . . . . . . . . . . . . . . . . . . . . .
BLOB 領域のログ機能 . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
393
394
395
396
396
397
397
398
399
399
400
400
401
401
401
401
402
402
403
403
404
405
405
405
405
本章について
375 ページの『第 12 章 ログ機能』およびこの章では、論理ログがデータベース サー
バによりどのように使用されるかについて説明します。論理ログ作業を実行する方法に
ついては、407 ページの『第 15 章 論理ログ ファイルの管理』、および 385 ページの
『第 13 章 データベース ログ機能モードの管理』を参照してください。
論理ログとは何か
格納領域の最終バックアップ以降のトランザクション履歴とデータベース サーバの変更
履歴を保持するため、データベース サーバにより、ログ レコードの生成が行なわれま
す。ログ レコードは、3 つ以上の論理ログ ファイルで構成される循環ファイルの論理
ログ に格納されます。このログが論理 ログと呼ばれるのは、データベースの物理動作
© Copyright IBM Corp. 1996, 2004
393
でなく論理動作をログ レコードが表すためです。格納領域バックアップと論理ログ バ
ックアップを合せて考えると、ここにはデータベース サーバ データ全体のコピーが常
に含まれています。
データベース サーバ管理者は、論理ログを構成して管理する必要があります。例えば、
ログ ファイルを定期的にバックアップしないと、論理ログが作成限界に達し、データベ
ース サーバの処理が一時停止してしまいます。
データベース管理者の責任には、以下のタスクが含まれます。
v 論理ログの適切な格納場所の選択
394 ページの『論理ログ ファイルの格納場所』を参照。
v 論理ログ ファイルの状態の監視
395 ページの『論理ログ ファイルの識別方法』を参照。
v 論理ログ用の適切な容量のディスク領域の割当て
396 ページの『論理ログのサイズ』を参照。
v 必要に応じた追加ログ ファイルの割当て
416 ページの『ログ ファイルの割当て』を参照。
v 論理ログ ファイルの記憶媒体へのバックアップ
410 ページの『論理ログ ファイルのバックアップ』および 399 ページの『論理ログ
ファイルの解放』を参照。
v BLOB 領域および SB 領域のログ機能の管理
400 ページの『BLOB 領域およびシンプル ラージ オブジェクトのログ記録』および
401 ページの『SB 領域とスマート ラージ オブジェクトのログ機能』を参照。
論理ログ ファイルの格納場所
ディスク領域が初期化されると、論理ログ ファイルと物理ログはルート DB 領域に配
置されます。この処理は、ユーザによる制御ができません。ルート DB 領域への書込み
を減らし、競合を最小にしてパフォーマンスを向上させるには、論理ログ ファイルをル
ート DB 領域から、使用中の表や物理ログによって共有されていないディスク上の DB
領域に移動します。422 ページの『別の DB 領域への論理ログ ファイルの移動』を参
照してください。
さらにパフォーマンスを向上させるには、論理ログ ファイルを 2 つのグループに分け
て、データを格納していない 2 つのディスクに格納します。例えば、6 つの論理ログ
ファイルがある場合、ファイル 1、3、5 をディスク 1 に、ファイル 2、4、6 をディス
394
IBM Informix Dynamic Server 管理者ガイド
ク 2 に配置します。このように配置すると、同一のディスク ドライブで、現行の論理
ログ ファイルへの書込みとテープへのバックアップを一度に処理する必要がなくなるた
め、パフォーマンスが向上します。
論理ログ ファイルには重大な情報が記述されているため、データを最大限保護するため
にミラーリングする必要があります。論理ログ ファイルを別の DB 領域に移動する場
合、その DB 領域でミラーリングを開始するように設計してください。
論理ログ ファイルの識別方法
記憶媒体にバックアップされているかどうかに関係なく、個々の論理ログ ファイルには
一意の ID 番号が付けられています。データベース サーバ ディスク領域を初期化した
後で最初に作成限界になる論理ログ ファイルを 1 として順番に番号が付けられます。
現行の論理ログ ファイルが作成限界になると、データベース サーバは次の論理ログ フ
ァイルに切り替えます。新しいログ ファイルの一意の ID 番号は、1 だけ増加します。
新しく追加された、または削除マークが付けられたログ ファイルには、一意の ID 番号
0 が付けられます。
各論理ログ ファイルに割り当てられる実際のディスク領域には、ログ ファイル番号 と
いう ID 番号が付けられます。例えば、6 つの論理ログ ファイルを設定すると、これら
のファイルのログ番号は 1 から 6 になります。ただし、ログ番号は順番になっていな
いことがあります。論理ログ ファイルがバックアップされてから解放されると、データ
ベース サーバでは論理ログ ファイル用にディスク領域を再利用します。
表 37 に、ログ番号と一意の ID 番号の関係を示します。ログ 7 はログ 5 の後に挿入
されており、2 巡目で初めて使用されます。
表 37. 論理ログ ファイルの番号付けの順序
ログ ファイル番号
1 巡目の一意の ID 番号
2 巡目の一意の ID 番号
3 巡目の一意の ID 番号
1
1
7
14
2
2
8
15
3
3
9
16
4
4
10
17
5
5
11
18
7
0
12
19
6
6
13
20
第 14 章 論理ログ
395
論理ログ ファイルの状態フラグ
論理ログ ファイルのすべてに、最初の位置に、追加 (A)、削除 (D)、未使用 (F)、使用
済み (U) の状態フラグのうちのいずれかが設定されています。表 38 に、可能なログ状
態フラグの組合せを示します。
表 38. 論理ログ状態フラグ
状態フラグ
論理ログ ファイルの状態
A------
ログ ファイルが追加 されました。使用できますが、まだ未使用です。
D------
U-B 状態のログ ファイルを削除すると、そのログ ファイルに削除 マークが付けられま
す。すべての格納領域のレベル 0 バックアップを実行すると、このログ ファイルは削除
されて使用していた領域が解放され、再使用できるようになります。
F------
ログ ファイルは未使用 で、使用できます。
論理ログ ファイルはバックアップされた後に解放されます。論理ログ ファイル内のトラ
ンザクションはすべてクローズされて、このファイルに格納されている最も古い更新内容
はディスクへフラッシュされます。
U
ログ ファイルは使用 されていますが、バックアップされていません。
U-B----
ログ ファイルはバックアップ されていますが、復旧用にまだ必要です。復旧に必要でな
くなると、ログ ファイルは解放されます。
U-B---L
ログはバックアップされていますが、復旧用にまだ必要です。最後のチェックポイント レ
コードを含んでいます。
U---C
データベース サーバにより、ログ ファイルが現在 使用されています。
U---C-L
この現在のログ ファイルには、最後 のチェックポイント レコードが含まれます。
ログ ファイルを番号でリストに示し、状態フラグおよびログ領域の使用率を監視するに
は、コマンド onstat のオプション -l を使用します。詳しくは、414 ページの『onstat
-l』を参照してください。
論理ログのサイズ
使用するログ ファイルの数とサイズを決定します。 必要以上にディスク領域を割り当
てると、領域が無駄になります。ただし、十分にディスク領域を割り当てないと、パフ
ォーマンスが低下することがあります。論理ログ ファイルのサイズと数を決定するに
は、次の点に注意してください。
v 論理ログ ファイルの最小サイズは 200KB です。
v 論理ログ ファイルの最大サイズは 1,048,576 ページ分です。これは 0x100000 に相
当します。
v ログ ファイルが小さいと、ログ ファイルを含むディスクに障害が発生した場合に、
より後の状態に復旧できます。ログの継続バックアップが設定されている場合、ログ
396
IBM Informix Dynamic Server 管理者ガイド
ファイルがいっぱいになると、ログ ファイルが自動的にバックアップされます。ロ
グが小さいと、論理復旧に少し時間がかかる場合があります。
v 多くのユーザが同時にログに書き込む場合は、大きいログ ファイルを使用してくだ
さい。
論理ログ ファイルの数
論理ログ ファイルの数を決める場合、次の点に注意します。
v 常に、3 個以上、32,767 個以下の論理ログ ファイルが必要です。ログ ファイルの数
は、ログ ファイルのサイズによって異なります。
v 論理ログ ファイルの数は、論理ログのバックアップの頻度に影響を与えます。
v 論理ログ ファイルの数は、BLOB 領域の BLOB ページを再利用できるまでの時間に
影響を与えます。401 ページの『BLOB ページを解放するためのログ ファイルのバ
ックアップ』を参照してください。
パフォーマンスに関する注意事項
ある一定のレベルのシステム使用状態では、論理ログ ディスク領域の割当てが少ないと
論理ログ領域が作成限界になるのが早くなり、バックアップとチェックポイントのため
にユーザによる操作がブロックされる可能性が高くなります。論理ログのサイズを調整
して、システムに最適な値を見つけてください。
v
論理ログのバックアップ
論理ログ ファイルが作成限界に達したら、バックアップを実行する必要がありま
す。バックアップ処理を実行すると、論理ログ ファイルと同じディスクにあるデー
タに関するトランザクションの処理を妨げることがあります。物理ログ、論理ログ、
およびユーザ データは別々のディスクに格納してください。「IBM Informix: バック
アップおよび復元 ガイド」を参照してください。
v
チェックポイント
チェックポイントによってユーザ プロセスが少しの間ブロックされます。ログ ファ
イルのバックアップおよび解放が頻繁に行われると、チェックポイントも頻繁に発生
します。
v
論理ログのサイズ
論理ログが小さいほど、早く作成限界に達します。419 ページの『論理ログ ファイ
ルの手動追加』で説明されているように、大きい論理ログ ファイルを追加できま
す。
v 個々の論理ログ レコードのサイズ
論理ログ レコードのサイズは、処理動作とデータベース サーバ環境の両方により変
化します。一般に、データ行が長いほど、論理ログ レコードは大きくなります。論
理ログには、挿入、更新、または削除された行のイメージが含まれています。更新
第 14 章 論理ログ
397
は、更新前イメージと更新後イメージの両方を含む場合があるため、挿入や削除で使
用する領域の 2 倍の領域を使用することがあります。 挿入では更新後イメージのみ
が格納され、削除では更新前イメージのみが格納されます。
v 論理ログ レコードの件数
論理ログに書き込まれる論理ログ レコードの件数が多いほど、論理ログは早く作成
限界になります。トランザクション ログ機能付きデータベースでは、トランザクシ
ョン ログ機能がないデータベースのトランザクションよりも、論理ログが早く作成
限界に達します。
v ログのバッファリング タイプ
バッファなしトランザクション ログ機能を使用するデータベースでは、バッファ付
きトランザクション ログ機能を使用するデータベースに比べて、論理ログが早く作
成限界に達します。
v 表に対するエンタープライズ レプリケーション
エンタープライズ レプリケーションでは、複製する表の更新前イメージと更新後イ
メージを生成するため、論理ログが作成限界になることがあります。
v ロールバックの頻度
ロールバックが多いほど、論理ログが早く作成限界になります。ロールバック レコ
ードは小さくても、ロールバック自体のために論理ログ ファイル領域が必要です。
v スマート ラージ オブジェクトの数
ユーザ データ ログ機能を有効にし、ユーザ データの更新量が多いスマート ラージ
オブジェクトを使用すると、驚異的なスピードで論理ログが作成限界に達する場合が
あります。メタデータをログに記録しない場合は、一時スマート ラージ オブジェク
トを使用してください。
動的ログ割当て
動的ログ割当てを使用すると、ロング トランザクションのロールバック中にログ ファ
イルが作成限界に達し、システムがハングするのを防ぐことができます。この機能は、
実行中のトランザクションが次のログ ファイルに含まれている場合にのみアクティブに
なります。コミットされていない、またはロールバックされていないトランザクション
がロング トランザクション限界に達すると、トランザクション は長く なります。
次のログ ファイルに実行中のトランザクションが含まれていると、データベース サー
バは自動的に (動的に) 現行のログ ファイルの後のログ ファイルを割り当てます。動
的ログ割当てにより、次の動作を行うことができます。
v システム稼働中にログ ファイルを追加
v 現行のログ ファイルの後にログ ファイルを挿入
398
IBM Informix Dynamic Server 管理者ガイド
v ルート DB 領域がバックアップされていない状態での、新しいログ ファイルへの即
時アクセス
動的ログ割当てをテストする最善の方法として、すべてのログ ファイルにまたがるトラ
ンザクションを行い、次いで onstat -l を使用して新しく追加されたログ ファイルを確
認します。詳しくは、416 ページの『ログ ファイルの割当て』を参照してください。
重要: 動的ログ ファイル割当てを使用している場合でも、ログ ファイルが作成限界に
達するのを防ぐには、ログ ファイルのバックアップを行う必要があります。ログ
ファイルが作成限界に達すると、バックアップを実行するまでシステムはハング
します。
論理ログ ファイルの解放
データベース サーバは、トランザクションをコミットしたりロールバックしたりするた
びに、トランザクションが開始された論理ログ ファイルの解放を試行します。データベ
ース サーバによって論理ログ ファイルが解放されて再利用できるようになるには、次
の基準を満たす必要があります。
v ログ ファイルがバックアップされていること。
v 実行中のトランザクションに、論理ログ ファイル内のレコードが 1 つも関連付けら
れていないこと。
v 論理ログ ファイルに、ディスクにフラッシュされていない、最も古い更新内容が含
まれていないこと。
次の論理ログ ファイルが使用中の場合の処置
データベース サーバが次の論理ログ ファイルに切り替えようとしたときに、次の順序
のログ ファイルがまだ使用中であることがわかると、ただちにすべての処理が一時停止
されます。ほかの論理ログ ファイルが未使用状態であっても、データベース サーバは
使用中のファイルをスキップして順番から外れた未使用ファイルに書き込むことはでき
ません。処理が停止されるのは、論理ログ ファイル内のデータを保護するためです。
論理ログ ファイルは、次のいずれかの理由で使用中の状態になっていることがありま
す。
v
ファイルに、最後のチェックポイントか、ディスクにまだフラッシュされていな
い、最も古い更新が含まれている。
コマンド onmode -c を出して、フル チェックポイントを実行し、論理ログ ファイ
ルを解放します。詳しくは、460 ページの『フル チェックポイント処理の強制実
行』を参照してください。
v
実行中のトランザクションがファイルに含まれている。
第 14 章 論理ログ
399
実行中のトランザクションとは、427 ページの『ロング トランザクションのロール
バックに対する限界の設定』に説明されているロング トランザクションです。
v
ファイルがバックアップされていない。
論理ログ ファイルがバックアップされていない場合は、ON–Bar または ontape を使
用して論理ログ ファイルをバックアップすると処理が再開されます。
次のログ ファイルが最後のチェックポイントを含む場合の処置
次のログ ファイルに最後のチェックポイントまたは最も古い更新が含まれている場合、
データベース サーバによって処理が一時停止されることはありません。データベース
サーバは、最後の使用可能ログに切り替えるとき、前のチェックポイント レコードか、
またはディスクにフラッシュされていない最も古い更新内容が、最後の使用可能ログに
続くログに存在している場合、常に完全チェックポイントを強制します。例えば、4 つ
の論理ログ ファイルが次の表に示す状態にある場合、データベース サーバにより論理
ログ ファイル 3 への切替えが行なわれるときにチェックポイントが強制されます。
ログ ファイル番号
論理ログ ファイルの状態
1
U-B----
2
U---C--
3
F
4
U-B---L
BLOB 領域およびシンプル ラージ オブジェクトのログ記録
シンプル ラージ オブジェクト (テキスト (TEXT) 型およびバイト (BYTE) 型) データ
は非常に大きいものとなる可能性があり、論理ログ レコードに記録できないことがあり
ます。シンプル ラージ オブジェクトを常にログに記録すると、大量であるため論理ロ
グの記録速度が低下します。
データベース サーバでは、小さいシンプル ラージ オブジェクトは DB 領域に格納
し、大きいシンプル ラージ オブジェクトは BLOB 領域に格納するようにデータベー
スを設計していることを前提としています。
v DB 領域に格納されているシンプル ラージ オブジェクトは、ログ レコードに記録さ
れます。
v BLOB 領域に格納されているシンプル ラージ オブジェクトは、ログ レコードに記
録されません。論理ログをバックアップする場合にのみ、BLOB 領域データは論理ロ
グに記録されます。
BLOB 領域内のシンプル ラージ オブジェクトの更新を頻繁に行なうアプリケーション
のパフォーマンスを全体的に向上するには、論理ログのサイズを縮小します。ログを小
さくすると、再利用する必要のあるシンプル ラージ オブジェクトへのアクセスを改善
400
IBM Informix Dynamic Server 管理者ガイド
できます。詳しくは、「IBM Informix: Dynamic Server パフォーマンス ガイド」の構成
が入出力使用率に与える影響に関する章を参照してください。
BLOB 領域を起動するためのログ ファイルの切替え
次の論理ログ ファイルに切り替える必要があるのは、次に示すような場合です。
v BLOB 領域にシンプル ラージ オブジェクトを直ちに挿入する場合で、BLOB 領域を
作成した後
v 新しいチャンクを使用する BLOB 領域にシンプル ラージ オブジェクトを挿入する
場合で、既存の BLOB 領域に新しいチャンクを追加した後
データベース サーバでは、BLOB 領域を作成する文、BLOB 領域内にチャンクを作成
する文、および BLOB 領域にシンプル ラージ オブジェクトを挿入する文を個別の論
理ログ ファイルに入れる必要があります。この要件は、データベースのログ機能状態と
は無関係です。
次のログ ファイルへの切替えについては、411 ページの『次の論理ログ ファイルへの
切替え』を参照してください。
BLOB ページを解放するためのログ ファイルのバックアップ
BLOB 領域ページに格納されているデータを削除しても、それらのページが再利用でき
るように解放されるとは限りません。BLOB 領域ページは、次の両方の 処理が実行さ
れた場合に限り解放されます。
v 列に対する UPDATE か行の削除によって、テキスト (TEXT) 型またはバイト
(BYTE) 型が削除された場合
v テキスト (TEXT) 型またはバイト (BYTE) 型を含む行の INSERT を格納する論理ロ
グがバックアップされている場合
テキスト型およびバイト型挿入後または削除後の BLOB 領域のバックアップ
BLOB 領域に格納されているシンプル ラージ オブジェクトに対するトランザクション
を含むすべての BLOB 領域と論理ログを必ずバックアップします。ログのバックアッ
プ中、データベース サーバは、論理ログ内のデータ ポインタを使用して、変更後のテ
キスト (TEXT) 型とバイト (BYTE) 型を BLOB 領域から論理ログにコピーします。
SB 領域とスマート ラージ オブジェクトのログ機能
277 ページの『SB 領域』で説明した SB 領域には、メタデータとユーザ データという
2 つのコンポーネントが格納されます。デフォルトでは、SB 領域はログに記録されま
せん。
SB 領域のメタデータ コンポーネントには、特定の SB 領域に格納されたスマート ラ
ージ オブジェクトの重要な特性が記述されています。メタデータには、スマート ラー
第 14 章 論理ログ
401
ジ オブジェクトへのポインタが含まれます。メタデータが損傷したりアクセス不能にな
ると、SB 領域が破損し、その SB 領域に格納されたスマート ラージ オブジェクトは
復旧できなくなります。
標準 SB 領域のメタデータは、データベースのログ機能がオフになっていても、常に
ログに記録されます。SB 領域のメタデータをログに記録することにより、メタデータ
を一貫したトランザクション状態に確実に復旧できます。しかし、一時 SB 領域のメタ
データはログに記録されません。
SB 領域ログ機能の使用方法
SB 領域をログに記録すると、データベース サーバの速度が低下し、論理ログが短時間
でいっぱいになってしまいます。SB 領域に対するログ機能を使用するときは、ログ デ
ータを格納できるよう、論理ログのサイズを大きくしておく必要があります。詳しく
は、409 ページの『スマート ラージ オブジェクトをログに記録するときのログ サイズ
の見積り』を参照してください。
データベースに対するログ機能をオンにしても、レベル 0 バックアップを実行するまで
ログ機能は開始されません。ただし、スマート ラージ オブジェクトに対するログ機能
をオンにすると、そのオブジェクトに対する変更はただちにログに記録されます。ログ
のエントリ量を減らすには、ログ機能をオフにした状態でスマート ラージ オブジェク
トをロードし、その後ログ機能をオンにしてスマート ラージ オブジェクトに対する更
新をキャプチャすることもできます。
警告: スマート ラージ オブジェクトに対するログ機能をオンにする場合、スマート ラ
ージ オブジェクトを復旧および復元できるように、即時にレベル 0 バックアッ
プを実行する必要があります。
詳しくは、410 ページの『SB 領域のバックアップ』、および「IBM Informix: バックア
ップおよび復元 ガイド」を参照してください。
スマート ラージ オブジェクトに対するログ機能の選択
データを頻繁に更新する場合や、更新されたデータの復旧可能性が重要な場合は、スマ
ート ラージ オブジェクトに対するログ機能をオンにしてください。データベースで
は、操作 (挿入、更新、削除、読込み、または書込み) のレコードが論理ログ バッファ
に書き込まれます。CLOB 型または BLOB 型の修正された部分がログ レコードに含ま
れます。
パフォーマンスを向上させるには、スマート ラージ オブジェクトに対するログ機能を
オフにします。また、主にデータの分析のみを行い更新はあまり行わない場合、または
データの復旧性が重要でない場合にも、ログ機能をオフにしてください。
402
IBM Informix Dynamic Server 管理者ガイド
更新されたスマート ラージ オブジェクトに対するログ機能
スマート ラージ オブジェクトを更新するとき、オブジェクト全体はログに記録されま
せん。スマート ラージ オブジェクトのログ機能を有効にした状態で、オフセット Y
に X バイトのデータを書き込んでいるとします。データベース サーバでは、次がログ
に記録されます。
v Y がラージ オブジェクトの終わりに設定されている場合、X バイト (更新されたバ
イト範囲) がログに記録されます。
v Y がラージ オブジェクトの始め、または中間にある場合、次に示すもののうち、最
も小さいものをログに記録します。
– 古いイメージと新しいイメージの相違
– 更新前イメージと更新後イメージ
– 更新前イメージと更新後イメージが同一の場合、何もログに記録されません。
SB 領域に対するログ機能のオンとオフの切替え
SB 領域に対するログ機能を使用する場合は、SB 領域を作成するときにコマンド
onspaces のオプション -Df LOGGING=ON を指定して実行します。SB 領域のログ機
能をオフにしている場合、特定の列にあるスマート ラージ オブジェクトのログ機能を
オンにすることができます。スマート ラージ オブジェクトが含まれている 1 つの列に
対してログ機能をオンにし、ほかの列ではログ機能をオフにすることも可能です。
SB 領域のスマート ラージ オブジェクトがログに記録されたことを確認するには、次
のコマンドを使用してください。
oncheck -pS sbspace | grep “Create Flags”
デフォルトのログ機能オプションを使用して SB 領域にスマート ラージ オブジェクト
を作成している場合、出力にフラグ LO_NOLOG があるなら、この SB 領域のスマート
ラージ オブジェクトはログに記録されていません。出力にフラグ LO_LOG があるな
ら、この SB 領域のスマート ラージ オブジェクトすべてはログに記録されています。
SB 領域のログ機能状態は、以下のいずれの方法でも変更できます。
第 14 章 論理ログ
403
指定する関数または文
ログの動作
参照先
onspaces -ch -Df LOGGING=ON
既存の SB 領域に対するログ機能 342 ページの『スマート ラージ
のオンとオフの切替え
オブジェクトの格納特性の変更』
IBM Informix: Dynamic Server 管
理者の参照
列にロードしたスマート ラージ
CREATE TABLE 文または alter
table 文の PUT 節でのオプション オブジェクトすべてのログ機能を
オンにする
LOG
282 ページの『ログ機能』
mi_lo_create DataBlade API 関数
スマート ラージ オブジェクトが
最初にロードされるときに、その
オブジェクトのログ機能をオフに
する
IBM Informix: DataBlade API
Function Reference
mi_lo_alter DataBlade API 関数
ロードが完了したら、ログ機能を
オンにする
IBM Informix: DataBlade API
Function Reference
ifx_lo_create ESQL/C 関数
スマート ラージ オブジェクトが
最初にロードされるときに、その
オブジェクトのログ機能をオフに
する
IBM Informix: ESQL/C
Programmer’s Manual
ifx_lo_alter ESQL/C 関数
ロードが完了したら、ログ機能を
オンにする
IBM Informix: ESQL/C
Programmer’s Manual
IBM Informix: SQL ガイド: 構文
スマート ラージ オブジェクト ログ レコードの使用方法
オプション LOG を使用してスマート ラージ オブジェクトを作成すると、論理ログに
よってスマート BLOB ログ レコード が作成されます。スマート BLOB ログ レコー
ドには、ユーザ データやメタデータの変更が記録されます。スマート ラージ オブジェ
クトが更新されると、SB ページの修正された部分のみがログ レコード内に表示されま
す。ユーザ データ ログ レコードは、スマート ラージ オブジェクトに対してログ機能
が有効でない限り、論理ログ内に表示されません。
警告: 頻繁に更新されるスマート ラージ オブジェクトに対しログ機能を有効にする場
合は注意が必要です。このログ機能のオーバーヘッドにより、データベース サー
バの処理速度が大幅に低下することがあります。
スマート ラージ オブジェクトのログ レコードについては、「IBM Informix: Dynamic
Server 管理者の参照」の論理ログ レコードの解釈に関する章を参照してください。
404
IBM Informix Dynamic Server 管理者ガイド
スマート ラージ オブジェクト データのログ記録時におけるロング トランザ
クションの防止
1 つのスマート ラージ オブジェクトに対するデータの収集プロセスが長時間続く場
合、スマート ラージ オブジェクトを使用できます。例えば、音質の悪い音声情報を長
時間記録するアプリケーションの場合を考えてみます。収集されるデータの量は適当で
も、記録セッションが長く続いてロング トランザクションの事態が発生することがあり
ます。
ヒント: ロング トランザクションの発生を防ぐには、スマート ラージ オブジェクトへ
の書込みを定期的にコミットします。
ログ機能プロセス
ここでは、DB 領域、BLOB 領域、および SB 領域について、ログ機能プロセスを詳し
く説明します。ここでの情報は、通常のデータベース サーバ管理タスクを実行する場合
には必要ありません。
DB 領域のログ機能
データベース サーバでは、DB 領域に格納されているデータが関係する操作を実行する
場合、次のログ機能プロセスを使用します。
1. データ ページをディスクから共有メモリ ページ バッファに読み込みます。
2. 必要に応じて、変更していないページを物理ログ バッファにコピーします。
3. 新しいデータをページ バッファに書き込みます。必要に応じて、トランザクション
の論理ログ レコードを作成します。
4. 物理ログ バッファをディスク上の物理ログへフラッシュします。
5. 論理ログ バッファをディスク上の論理ログ ファイルにフラッシュします。
6. ページ バッファをフラッシュしてディスクに書き戻します。
BLOB 領域のログ機能
データベース サーバでは BLOB 領域データをログに記録しますが、BLOB 領域データ
は共有メモリやディスク上の論理ログ ファイルを通過しません。BLOB 領域に格納さ
れたデータは、直接ディスクからテープにコピーされます。BLOB 領域オーバーヘッド
ページ (未使用マップ ページとビットマップ ページ) の修正のレコードのみが、論理
ログに書き込まれる BLOB 領域データです。
第 14 章 論理ログ
405
406
IBM Informix Dynamic Server 管理者ガイド
第 15 章 論理ログ ファイルの管理
ログ ファイルのサイズと数の見積り . . . . . . . . . . . . . . .
スマート ラージ オブジェクトをログに記録するときのログ サイズの見積り .
論理ログ ファイルの数の見積り . . . . . . . . . . . . . . . .
論理ログ ファイルのバックアップ . . . . . . . . . . . . . . . .
BLOB 領域のバックアップ . . . . . . . . . . . . . . . . .
SB 領域のバックアップ . . . . . . . . . . . . . . . . . .
次の論理ログ ファイルへの切替え . . . . . . . . . . . . . . . .
論理ログ ファイルの解放 . . . . . . . . . . . . . . . . . . .
状態 D のログ ファイルの削除 . . . . . . . . . . . . . . . .
状態 U のログ ファイルの解放 . . . . . . . . . . . . . . . .
状態 U-B または F のログ ファイルの解放 . . . . . . . . . . . .
状態 U-C または U-C-L のログ ファイルの解放 . . . . . . . . . .
状態 U-B-L のログ ファイルの解放 . . . . . . . . . . . . . .
ロギング動作の監視 . . . . . . . . . . . . . . . . . . . . .
論理ログの使用率の監視 . . . . . . . . . . . . . . . . . .
onstat -l . . . . . . . . . . . . . . . . . . . . . . .
oncheck -pr . . . . . . . . . . . . . . . . . . . . . .
一時論理ログ ファイルの監視 . . . . . . . . . . . . . . . .
SMI 表の使用方法 . . . . . . . . . . . . . . . . . . . .
ON-Monitor の使用方法 (UNIX) . . . . . . . . . . . . . . . .
ログ バックアップ状態の監視 . . . . . . . . . . . . . . . .
ログ ファイルの割当て . . . . . . . . . . . . . . . . . . . .
ログの動的追加 . . . . . . . . . . . . . . . . . . . . .
動的に追加されたログ ファイルのサイズと数 . . . . . . . . . .
動的に追加されたログ ファイルの格納場所 . . . . . . . . . . .
論理ログ ファイルの手動追加 . . . . . . . . . . . . . . . .
論理ログ ファイルの削除 . . . . . . . . . . . . . . . . . . .
論理ログ ファイルのサイズ変更 . . . . . . . . . . . . . . . . .
別の DB 領域への論理ログ ファイルの移動. . . . . . . . . . . . .
ログ構成パラメータの変更 . . . . . . . . . . . . . . . . . .
ON-Monitor を使用する LOGFILES の変更 (UNIX) . . . . . . . . .
論理ログ レコードの表示 . . . . . . . . . . . . . . . . . . .
動的に追加されたログのイベントの監視 . . . . . . . . . . . . . .
ロング トランザクションのロールバックに対する限界の設定 . . . . . . .
ロング トランザクション限界 (LTXHWM) . . . . . . . . . . . .
排他アクセス ロング トランザクション限界 (LTXEHWM) . . . . . . .
ロング トランザクションを防止するためのログ ファイルのサイズ調整 . .
ロング トランザクションによるハングからの復旧 . . . . . . . . . .
© Copyright IBM Corp. 1996, 2004
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
409
409
409
410
410
410
411
411
412
412
412
413
413
414
414
414
415
415
416
416
416
416
417
417
418
419
420
422
422
423
424
425
425
427
427
428
428
429
407
本章について
データベースでトランザクション ロギングを使用しない場合でも、論理ログ ファイル
を管理する必要があります。論理ログの必要な情報については、 393 ページの『第 14
章 論理ログ』を参照してください。
この章で説明する変更を行うには、UNIX では informix または root としてログインす
る必要があります。Windows では、Informix-Admin グループのメンバである必要があ
ります。
論理ログをセットアップするときには、次の作業を実行します。
v データベース サーバを初期化する前に、パラメータ LOGFILES を使用して、作成す
る論理ログ ファイルの数を指定します。
v データベース サーバをオンラインにした後、システムで必要な論理ログ ファイルの
サイズと数を見積もります。
409 ページの『ログ ファイルのサイズと数の見積り』を参照してください。
v デフォルト値を使用しない場合は、構成パラメータ LOGSIZE および LOGBUFF を
変更します。
423 ページの『ログ構成パラメータの変更』を参照してください。
v 見積り数の論理ログ ファイルを追加します。
416 ページの『ログ ファイルの割当て』を参照してください。
定期的に、次の作業を実行します。
v 論理ログ ファイルのバックアップ
v 次の論理ログ ファイルへの切替え
v 論理ログ ファイルの解放
v ロギング動作とログ バックアップ状態の監視
必要に応じて、随時次の作業を実行します。
v 論理ログ ファイルの追加
v 論理ログ ファイルの削除
v 論理ログ ファイルのサイズ変更
v 論理ログ ファイルの移動
v 論理ログ構成パラメータの変更
v
論理ログのイベント アラームの監視
v トランザクションの限界の設定
408
IBM Informix Dynamic Server 管理者ガイド
ログ ファイルのサイズと数の見積り
論理ログ ファイルのサイズを設定するには、構成パラメータ LOGSIZE を使用しま
す。データベース サーバ システムに必要な論理ログ領域の大きさを、必要領域をすべ
て使用する前に予想するのは困難です。
論理ログの容量を増やす最も簡単な方法は、論理ログ ファイルを新たに追加することで
す。419 ページの『論理ログ ファイルの手動追加』を参照してください。
次の式は、推奨される最小 の全ログ領域設定を KB 単位で示したものです。
LOGSIZE = (((connections * maxrows) * rowsize) / 1024) / LOGFILES
式の要素
説明
LOGSIZE
各論理ログ ファイルのサイズを KB 単位で指定します。
connections
ファイルまたはレジストリ sqlhosts およびパラメータ NETTYPE で指定されているネ
ットワーク タイプすべての最大接続数を指定します。構成パラメータ NETTYPE を構
成ファイル内に複数設定して複数の接続を構成した場合、各 NETTYPE のフィールド
users を合計して、その合計値を、前の式の connections に代入します。
maxrows
単一トランザクションで更新される最大行数を指定します。
rowsize
表の行の平均サイズをバイト単位で指定します。rowsize を計算するには、syscolumns
システム カタログ表から行内の列の長さを取得して合計します。
1024
LOGSIZE を KB 単位に変換します。
LOGFILES
論理ログ ファイルの数を指定します。
スマート ラージ オブジェクトをログに記録するときのログ サイズの見積り
スマート ラージ オブジェクトのユーザ データをログに記録する場合、ログ サイズ
は、書き込まれるデータ量よりも十分に 大きくする必要があります。スマート ラージ
オブジェクトを標準 SB 領域に格納すると、スマート ラージ オブジェクトはログに記
録されない場合でも、メタデータは常に記録されます。スマート ラージ オブジェクト
を一時 SB 領域に格納すると、ログは記録されません。
論理ログ ファイルの数の見積り
パラメータ LOGFILES では、システム初期化時の論理ログ ファイル数を指定します。
論理ログ ファイルのすべてのサイズが同じ場合、次のようにして、論理ログ ファイル
に割り当てる領域の合計を計算できます。
total logical log space = LOGFILES * LOGSIZE
データベース サーバに格納されているログ ファイルのサイズが一定でない場合は、論
理ログ サイズの計算に上記の式 (LOGFILES * LOGSIZE) を使用することはできませ
第 15 章 論理ログ ファイルの管理
409
ん。この式を使用する代わりに、ディスク上の各ログ ファイルのサイズを合算する必要
があります。onstat -l の出力でフィールド size を確認します。詳しくは、414 ページ
の『onstat -l』を参照してください。
LOGSIZE、LOGFILES、および NETTYPE については、「IBM Informix: Dynamic
Server 管理者の参照」の構成パラメータの章を参照してください。
論理ログ ファイルのバックアップ
論理ログには、実行されたトランザクションの履歴が含まれています。論理ログ ファイ
ルを記憶媒体にコピーする処理のことを、論理ログ ファイルをバックアップ するとい
います。論理ログ ファイルのバックアップには、次の 2 つの目的があります。
v 論理ログ レコードを記憶媒体に格納して、データの復元が必要な場合にロールフォ
ワードできるようにする。
v 論理ログ ファイル領域を新しい論理ログ レコード用に使用できるようにする。
ログ ファイルのバックアップを実行しないと、ログ領域が不足することがありま
す。
論理ログの手動バックアップを開始したり、継続バックアップをセット アップしたりで
きます。格納領域を復元したら、論理ログを復元してデータを一貫した状態にする必要
があります。ログのバックアップの詳細については、「IBM Informix: バックアップおよ
び復元 ガイド」を参照してください。
BLOB 領域のバックアップ
論理ログと BLOB 領域のどちらを先にバックアップしても構いません。
BLOB 領域のデータをバックアップする方法:
1. BLOB 領域内のシンプル ラージ オブジェクトに対するトランザクションが現行の
論理ログに含まれている場合、その論理ログをクローズします。
2. シンプル ラージ オブジェクトの更新後可能な限り早く論理ログと BLOB 領域のバ
ックアップを実行します。
警告: これらの BLOB 領域と論理ログをバックアップしないと、BLOB 領域データを
復元できないことがあります。BLOB 領域が停止するまで待機してログのバック
アップを実行すると、データベース サーバがその BLOB 領域にアクセスして、
変更後のデータを論理ログにコピーすることはできなくなります。
SB 領域のバックアップ
スマート ラージ オブジェクトに対してロギングをオンにする場合、SB 領域のレベル
0 バックアップを実行する必要があります。
410
IBM Informix Dynamic Server 管理者ガイド
図 71 は、バックアップされていない SB 領域に対してロギングをオンにした場合に行
われる動作を示しています。スマート ラージ オブジェクト LO1 に対する変更のう
ち、ログに記録されたものは障害が発生しても復旧できます。しかし、ログに記録され
なかったものは失われます。つまり、LO1 を完全に復元することはできません。
高速復旧では、LO1 に対してコミットされたトランザクションは、すべてロールフォワ
ードされます。LO1 がログに記録されていない場合は、コミットされなかったトランザ
クションがロールバック不能になります。その結果、LO1 の内容は正しくなくなりま
す。詳しくは、444 ページの『高速復旧』を参照してください。
LO1 (
)
図 71. SB 領域に対するロギングの有効化
次の論理ログ ファイルへの切替え
次の場合は、現行の論理ログ ファイルがフルになる前に、次の論理ログ ファイルに切
り替える必要があります。
v 現行のログをバックアップする。
v 新しい BLOB 領域と BLOB 領域チャンクを実効状態にする。
データベース サーバをオンライン モードにしたままで、この変更を行うことができま
す。次のコマンドを実行して、使用可能な次のログ ファイルに切り替えます。
onmode -l
変更は即時に有効になります。 コマンド行に、数字の 1 ではなく小文字の L を入力
してください。
論理ログ ファイルの解放
新しく追加されたログ ファイル (状態 A) は、即時に使用できます。また、直ちに削除
することもできます。
次の理由により、論理ログ ファイルの解放が必要となる場合があります。
v データベース サーバが処理を停止しないようにする。
第 15 章 論理ログ ファイルの管理
411
v 削除された BLOB ページに使用されていた領域を解放する。
ログ ファイルを解放する手順はログ ファイルの状態によって異なります。以下の各セ
クションで、個々の状態の手順について説明します。論理ログ ファイルの状態を確認す
る方法については 396 ページの『論理ログ ファイルの状態フラグ』、および 414 ペー
ジの『ロギング動作の監視』を参照してください。
ヒント: ON–Bar または ontape を使用して格納領域と論理ログをバックアップする方
法については、「IBM Informix: バックアップおよび復元 ガイド」を参照して
ください。
状態 D のログ ファイルの削除
使用済みのログ ファイルを削除すると、そのファイルは削除済みとしてマーク (状態
D) されます。このログ ファイルを再使用することはできません。onparams によって
次のメッセージが出力されます。
Log file log_file_number has been pre-dropped. It will be
deleted from the log list and its space can be reused
once you take level 0 archives of all BLOBspaces,
Smart BLOBspaces and non-temporary DBspaces.
ログ ファイルを削除する場合は、格納領域すべてのレベル 0 バックアップを作成して
ください。
状態 U のログ ファイルの解放
ログ ファイルにレコードが含まれ、まだバックアップされていない (状態 U) 場合は、
通常使用しているバックアップ ツールを使用してファイルをバックアップします。
ログ ファイルをバックアップしても空き状態 (F) にならない場合、その状態は U-B ま
たは U-B-L に変化します。次の『状態 U-B または F のログ ファイルの解放』、また
は 413 ページの『状態 U-B-L のログ ファイルの解放』を参照してください。
状態 U-B または F のログ ファイルの解放
ログ ファイルがバックアップされ、まだ使用中の (状態 U-B) 場合は、ログ ファイル
内の一部のトランザクションがまだ実行中かまたは高速復旧に必要な最も古い更新がそ
のログ ファイルに含まれています。状態 F のログ ファイルもそれまでに使用されて
いたファイルであるため、状態 U-B と同じ規則が適用されます。
バックアップされて使用中のログ ファイルを解放する方法:
1. トランザクションの完了を待てない場合は、データベース サーバを静止モードにし
ます。115 ページの『オンライン モードから静止モードへの即時移行』を参照して
ください。アクティブなトランザクションがすべてロールバックされます。
412
IBM Informix Dynamic Server 管理者ガイド
2. 状態が U-B のログ ファイルには最も古い更新が含まれている可能性があるため、
コマンド onmode -c を使用してフル チェックポイントを強制する必要がありま
す。
バックアップされた、使用中ではない (状態 U-B) ログ ファイルを解放する必要はあり
ません。次の例では、ログ 34 を解放する必要はありませんが、ログ 35 と 36 は解放
する必要があります。ログ 35 には最後のチェックポイントが含まれており、ログ 36
はバックアップされたが使用中になっています。
34
35
36
37
U-B-U-B-L
U-B-U-C--
Log is used, backed
Log is used, backed
Log is used, backed
This is the current
up,
up,
up,
log
and not in use
contains last checkpoint
and not in use
file, not backed up
ヒント: L を含まない U-B 状態の論理ログは、アクティブ トランザクションによって
使用されておらず、また最も古い更新内容が含まれていない場合のみ解放でき
ます。
状態 U-C または U-C-L のログ ファイルの解放
現行のログ ファイルを解放するには、次の手順に従います。
現行のログ ファイル (状態 C) の解放:
1. 次のコマンドを実行して、現行のログ ファイルを次の使用可能なログ ファイルに切
り替えます。
onmode -l
2. ON–Bar または ontape を使用して元のログ ファイルをバックアップします。
3. すべてのログ ファイルのバックアップが完了すると、次に使用できるログ ファイル
に切り替えて、新しい現行のログ ファイルをバックアップするよう促されます。
すでにこのログ ファイルに切り替えられているため、バックアップは必要ありませ
ん。
現行のログ ファイルを解放した後、ログ ファイルの状態が U-B または U-B-L になっ
ている場合は、412 ページの『状態 U-B または F のログ ファイルの解放』、または
『状態 U-B-L のログ ファイルの解放』を参照してください。
状態 U-B-L のログ ファイルの解放
ログ ファイルがバックアップされ、それに含まれるすべてのトランザクションがクロー
ズされているのに、ファイルが解放されていない (状態 U-B-L) 場合は、この論理ログ
ファイルに最新のチェックポイント レコードが含まれています。
状態 U-B-L のログ ファイルを解放するには、データベース サーバで新しいチェック
ポイントを作成する必要があります。チェックポイントを強制するため、次のコマンド
を実行します。
第 15 章 論理ログ ファイルの管理
413
onmode -c
UNIX のみ
ON–Monitor でチェックポイントを強制実行するには、「Force-Ckpt」を選択します。
UNIX のみ の終り
ロギング動作の監視
論理ログ ファイルを監視すると、すべてのファイル内の合計使用可能領域、現行ファイ
ル内の使用可能領域、およびファイルの状態 (例えば、ログがバックアップ済みかどう
か) を確認できます。論理ログ バッファの監視については、458 ページの『物理ロギン
グと論理ロギングの動作の監視』を参照してください。
論理ログの使用率の監視
次のコマンド行ユーティリティを使用して論理ログ ファイルを監視できます。
onstat -l
ユーティリティ onstat -l の表示は、物理ログ情報、論理ログ情報 (一般)、および個々
の論理ログ ファイルの情報という 3 つのセクションで構成されています。
各論理ログ ファイルの情報を含むセクションには、次の内容が表示されます。
v 論理ログ ファイル記述子のアドレス
v ログ ファイル番号
v 各ログの状態を示す状態フラグ (空き、バックアップ済み、現行など)
v ログ ファイルの一意 ID 番号
v ファイルの開始ページ
v ページ内のファイル サイズ、使用されているページ数、および使用されているペー
ジの割合
図 72 で示す出力を取得するには
v onparams -a -i を使用し、ログ 1 の後にログ 7 を挿入します。
v onmode -l を使用し、ログ 7 を現行のログ ファイルに設定します。
v onparams -a -i を使用し、ログ 7 の後にログ 8 を挿入します。
ログをリストから削除するか、データベース サーバがログ ファイルを追加すると、ロ
グ ファイル番号 (フィールド numbers) も番号順ではなくなります。onstat -l の詳細
については、「IBM Informix: Dynamic Server 管理者の参照」のユーティリティに関す
る章を参照してください。
414
IBM Informix Dynamic Server 管理者ガイド
...
address
a32eaf0
a32eb30
a328a88
a337718
a337750
a337788
a3377c0
a3377f8
...
number
1
7
8
2
3
4
5
6
flags
U-B---U---C-L
A-----U-B---U-B---U-B---U-B---U-B----
uniqid
7
8
0
2
3
4
5
6
begin
1004ef
1027d2
102d72
1007dd
100acb
1007dd
1010a7
101395
size
750
750
750
750
750
750
750
750
used
750
464
0
750
750
750
750
643
%used
100.00
61.87
0.00
100.00
100.00
100.00
100.00
85.73
図 72. 論理ログ ファイルの状態を示す onstat -l の出力
oncheck -pr
論理ログ ファイルの情報はデータベース サーバによってチェックポイント情報専用の
予約ページに格納されます。この情報はチェックポイント時にのみ更新されるため、
onstat -l オプションで表示される情報ほど新しくはありません。これらのオプションを
使用した予約ページ情報の表示の詳細については、「IBM Informix: Dynamic Server 管
理者の参照」のユーティリティの章を参照してください。
チェックポイント予約ページはコマンド oncheck -pr で表示できます。図 73 に論理ロ
グ ファイルの出力の一例を示します。
...
Log file number
1
Unique identifier
7
Log contains last checkpoint Page 0, byte 272
Log file flags
0x3 Log file in use
Current log file
Physical location
0x1004ef
Log size
750 (p)
Number pages used
1
Date/Time file filled
01/29/2001 14:48:32
...
図 73. 論理ログ ファイル情報を含む oncheck -pr の出力
一時論理ログ ファイルの監視
ウォーム復元中に永久ログは使用できないため、データベース サーバは一時論理ログ
を使用して、トランザクションをロールフォワードします。ロールフォワードが完了す
ると、データベース サーバは一時ログ ファイルを解放します。ウォーム復元中に
onstat -l を実行すると、出力には一時ログ ファイルに関する 4 番目のセクションが含
第 15 章 論理ログ ファイルの管理
415
まれます。出力のフォーマットは、通常のファイルと同じになります。一時ログ ファイ
ルでは、B、C、F、および U 状態フラグのみが使用されます。
SMI 表の使用方法
syslogs 表に対する問合せを行うと論理ログ ファイルについての情報を取得できます。
この表には、各論理ログ ファイルの行があります。列は次のとおりです。
列
説明
number
論理ログ ファイルの ID 番号
uniqid
ログ ファイルの一意 ID 番号
size
ファイル サイズ (ページ単位)
used
使用されているページ数
is_used
ログ ファイルが使用されているかどうかを示すフラグ
is_current
ログ ファイルが現行かどうかを示すフラグ
is_backed_up
ログ ファイルがバックアップされたかどうかを示すフラグ
is_new
格納領域の最後のバックアップ以降にログ ファイルが追加されたかど
うかを示すフラグ
is_archived
ログ ファイルがアーカイブ テープに書き込まれたかどうかを示すフ
ラグ
is_temp
ログ ファイルに一時ログ ファイルとしてのフラグが付いているかど
うかを示すフラグ
ON-Monitor の使用方法 (UNIX)
「Status」>「Logs」オプションでは、論理ログ ファイルについて、onstat -l オプショ
ンで表示されるものとほとんど同じ情報が表示されます。加えて、論理ログ ファイルが
置かれている DB 領域の列があります。
ログ バックアップ状態の監視
ログの状態を監視して、どのログがバックアップ済みかを表示するには、コマンド
onstat -l を使用します。B の状態フラグは、そのログがバックアップ済みであることを
示します。
ログ ファイルの割当て
データベース サーバを初期化すると、構成パラメータ LOGFILES で指定した数の論理
ログ ファイルが作成されます。これらのログ ファイルのサイズは、パラメータ
LOGSIZE で指定したサイズになります。
416
IBM Informix Dynamic Server 管理者ガイド
ログの動的追加
構成パラメータ DYNAMIC_LOGS は、データベース サーバが論理ログ ファイルを動
的に追加するタイミングを決定します。DYNAMIC_LOGS のデフォルト値 2 を使用す
ると、次のアクティブ ログ ファイルに最も古い実行中のトランザクションの先頭が含
まれる場合に、新しいログ ファイルが動的に追加され、アラームが発生します。
データベース サーバにより、次の時点で論理ログ領域が検査されます。
v 新しいログ ファイルに切り替えた後
v 論理復旧のトランザクション クリーンアップ段階を開始するとき
パラメータ DYNAMIC_LOGS が 1 に設定されており、次のアクティブ ログ ファイル
に実行中のトランザクションからのレコードが含まれる場合、新しいログ ファイルを手
動で追加するようプロンプトが表示され、アラームが発生します。ログ ファイルを追加
すると、データベース サーバによりトランザクション処理が再開されます。
パラメータ DYNAMIC_LOGS が 0 に設定されている場合、ロング トランザクション
ロールバック中に論理ログの領域が不足すると、データベース サーバがハングすること
があります。ロング トランザクションが発生すると、最初の論理ログ ファイルは解放
されず、再利用できなくなります。この問題を解決するには、DYNAMIC_LOGS を 2
に設定し、データベース サーバを再起動してください。これで、ロング トランザクシ
ョンを完了できます。
詳しくは、425 ページの『動的に追加されたログのイベントの監視』および 427 ページ
の『ロング トランザクションのロールバックに対する限界の設定』を参照してくださ
い。
動的に追加されたログ ファイルのサイズと数
ログ ファイルを動的に追加すると、データベース サーバは次の要因に基づいてログ フ
ァイルのサイズを計算します。
v 平均ログ サイズ
v 使用できる連続領域の容量
論理ログの領域が不足している場合、トランザクションを完了するのに必要なだけのロ
グ ファイルがデータベース サーバにより追加されます。追加されるログ ファイルの数
は次の制限を受けます。
v サポートされているログ ファイルの最大数
v ログ ファイルのディスク領域容量
v ルート チャンクの未使用連続領域容量
第 15 章 論理ログ ファイルの管理
417
ディスク領域不足により新しいログ ファイルの追加が停止した場合、エラー メッセー
ジが書き込まれ、アラームが発生します。既存の DB 領域に DB 領域またはチャンク
を追加してください。これで、データベース サーバによりトランザクション処理が自動
的に再開されます。
ルート チャンクの予約ページには、各ログ ファイルの情報が格納されます。この情報
を含むエクステントは、ログ ファイルの追加に応じて拡張されます。サポートされてい
る最大 32,767 個のログ ファイルを追跡するには、各ルート チャンクに 1.4MB のエ
クステント 2 個が必要です。
リバージョン中に、非ルート チャンクからチャンク予約ページのエクステントが割り当
てられると、サーバはルート チャンクへの書込みを試行します。ルート チャンクに十
分な領域がない場合、リバージョンは失敗します。必要な領域を示すメッセージが、オ
ンライン ログに表示されます。リバージョンを再試行する前に、ルート チャンクから
この必要な領域を解放する必要があります。
動的に追加されたログ ファイルの格納場所
データベース サーバは、次の検索順序でログ ファイルを DB 領域に割り当てます。
DB 領域に論理ログ ファイルまたは物理ログが含まれる場合、その DB 領域はクリテ
ィカルになります。
パス
ログ ファイルの割当て場所
1
最新のログ ファイルが含まれる DB 領域。
この DB 領域がフルの場合、他の DB 領域が検索されます。
2
ログ ファイルを含むミラーリングされた DB 領域。
ルート DB 領域は除きます。
3
すでにログ ファイルを含むすべての DB 領域。
ルート DB 領域は除きます。
4
物理ログを含む DB 領域。
5
ルート DB 領域。
6
ミラーリングされたすべての DB 領域。
7
すべての DB 領域。
新しいログ ファイルの割当てにこの検索順序を使用しない場合、パラメータ
DYNAMIC_LOGS を 1 に設定し、新しいログを使用する格納場所で onparams -a -i
を実行する必要があります。詳しくは、425 ページの『動的に追加されたログのイベン
トの監視』を参照してください。
418
IBM Informix Dynamic Server 管理者ガイド
論理ログ ファイルの手動追加
次の理由で論理ログ ファイルを手動で追加することがあります。
v 論理ログに割り当てるディスク領域を増やすため
v 論理ログ ファイルのサイズを変更するため
v 実行中のトランザクションを完了するため
v 論理ログ ファイルを異なる DB 領域に移動する処理の一環として
警告: 次の作業は実行できません。
v BLOB 領域または SB 領域にログ ファイルを追加する。
v デフォルトでないページ サイズを持つ DB 領域に論理または物理ログを追加
する。
論理ログ ファイルは、一度に 1 個ずつ最大 32,767 個まで任意の DB 領域に追加でき
ます。ログ ファイルを DB 領域に追加すると、その DB 領域は即時にクリティカル
DB 領域になります。格納領域のバックアップ中に論理ログ ファイルを追加できます。
論理ログ ファイルは、次の 2 つの方法で追加できます。
v コマンド onparams -a または ISA を使用して、ファイル リストの終わりに追加す
る。
v コマンド onparams -a -i または ISA を使用し、現行の論理ログ ファイルの後に追
加する。
onparams を使用して論理ログ ファイルを追加する方法:
1. UNIX ではユーザ informix または root として、Windows では Informix-Admin グ
ループのメンバとしてログインします。
2. データベース サーバがオンライン、シングルユーザ、または静止モードであるこ
と、または高速復旧モードのクリーンアップ段階にあることを確認します。
クリーンアップ フェーズ中に、次のメッセージがログに書き込まれます。
Logical recovery has reached the transaction cleanup phase.
3. ログ ファイルをログ ファイル リストの最後に追加するか、または現行のログ ファ
イルの後に追加するかを決定します。
パラメータ値 DYNAMIC_LOGS に関係なく、現行のログ ファイルの後にログ ファ
イルを挿入できます。新しいサイズのログ ファイルを追加しても、LOGSIZE の値
は変更されません。
a. 次のコマンドにより、DB 領域 logspace のログ ファイル リストの最後に論理ロ
グ ファイルが追加されます。追加するログ ファイルのサイズには、構成パラメ
ータ LOGSIZE で指定された値が使用されます。
onparams -a -d logspace
第 15 章 論理ログ ファイルの管理
419
b. 次のコマンドにより、DB 領域 logspace の現行のログ ファイルの後に、
1,000KB の論理ログ ファイルが挿入されます。
onparams -a -d logspace -s 1000 -i
c. 新しいサイズ (この例では 250KB) の論理ログ ファイルを追加するには、次のコ
マンドを実行します。
onparams -a -d logspace -s 250
4. onstat -l を使用して、ログ ファイルの状態を検査します。新しいログ ファイルの
状態は A で、即時に使用できます。
5. 次回にデータをバックアップするとき、ルート DB 領域および新しいログ ファイル
を含む DB 領域でレベル 0 バックアップを実行します。
ログ ファイルを追加したすぐ後にバックアップを行う必要はありませんが、データ
構造体が変更されているため、次回のバックアップではレベル 0 バックアップを行
う必要があります。データのバックアップについては、「IBM Informix: バックアッ
プおよび復元 ガイド」を参照してください。
onparams を使用して論理ログ ファイルを追加する方法については、「IBM Informix:
Dynamic Server 管理者の参照」のユーティリティの章を参照してください。
ISA を使用して論理ログ ファイルを追加する方法:
1. 「ログ」>「論理」を選択し、「ログ ファイルの追加」をクリックします。
2. onstat -l を使用して、ログ ファイルの状態を検査します。
詳しくは、ISA のオンライン ヘルプを参照してください。
ON-Monitor を使用して論理ログ ファイルを追加する方法 (UNIX):
1. ログ ファイルの追加方法については onparams の代わりに ON–Monitor を使用する
点以外は、419 ページの『論理ログ ファイルの手動追加』を参照してください。
2. 論理ログ ファイルを追加するには、「Parameters」>「Add-Log」を選択します。
3. 新しい論理ログ ファイルを配置する DB 領域の名前を「Dbspace Name」フィール
ドに入力します。
ログ ファイルのサイズが自動的に「Logical Log Size」フィールドに表示されます。
新しいログ ファイルのサイズは常に LOGSIZE で指定されている値になります。
論理ログ ファイルの削除
論理ログ ファイルを削除し、DB 領域内の使用できるディスク領域の量を増やすために
は、onparams または ISA を使用できます。データベース サーバは、少なくとも 3 つ
の論理ログ ファイルを常に必要とします。3 個のログ ファイルのみで論理ログが構成
されている場合、ログを削除することはできません。
420
IBM Informix Dynamic Server 管理者ガイド
ログ ファイルの削除に関するルールが次のように変更されました。
v 書き込まれたことのないログ ファイル (状態 A) を削除すると、削除はデータベース
サーバにより即時に削除され、領域が解放されます。
v 使用済みログ ファイル (状態 U-B) を削除する場合、そのログ ファイルは削除済み
(D) としてマークされます。ログ ファイルとルート DB 領域を含む DB 領域でレベ
ル 0 バックアップを実行すると、削除済みとしてマークされたログ ファイルは削除
され、領域が解放されます。
v 現在使用中のログ ファイル (状態 C) または最後のチェックポイント レコードを含
むログ ファイル (状態 L) を削除することはできません。
onparams を使用して論理ログ ファイルを削除する方法:
1. データベース サーバが、オンライン モード、シングルユーザ モード、または静止
モードであることを確認します。
2. ログ ファイル番号 21 の論理ログ ファイルを削除するには、次のコマンドを実行し
ます。
onparams -d -l 21
ログ ファイルは一度に 1 つずつ削除します。削除する各論理ログのログ ファイル
番号を把握している必要があります。
3. ログ ファイルの状態が新しく追加 (A) の場合、ログ ファイルは即時に削除されま
す。
ログ ファイルが使用済み (状態 U) の場合、削除済み (D) としてマークされます。
4. 使用済みのログ ファイルを削除するには、すべての DB 領域でレベル 0 バックア
ップを実行します。
このバックアップにより、削除したログ ファイルがデータベース サーバによって復
元中に使用されるのを防ぐことができ、現在の論理ログ ファイル数に関する情報を
予約ページへ必ず含めることができるようになります。
onparams を使用して論理ログ ファイルを削除する方法については、「IBM Informix:
Dynamic Server 管理者の参照」のユーティリティの章を参照してください。
論理ログ ファイルと一意の ID 番号を表示する onlog の使用方法については、425 ペ
ージの『論理ログ レコードの表示』を参照してください。
ON_Monitor を使用して論理ログ ファイルを削除する方法 (UNIX):
1. データベース サーバが、オンライン モード、シングルユーザ モード、または静止
モードであることを確認します。
2. 論理ログ ファイルを削除するには、「パラメータ」>「ログ削除」を選択します。
3. ログ ファイルの状態が新しく追加 (A) の場合、ログ ファイルは即時に削除されま
す。
第 15 章 論理ログ ファイルの管理
421
ログ ファイルが使用済み (状態 U) の場合、削除済み (D) としてマークされます。
4. 使用済みのログ ファイルを削除するには、すべての DB 領域でレベル 0 バックア
ップを実行します。
ヒント: ルート DB 領域が一度もバックアップされていない場合、使用済みのログ フ
ァイルはただちに削除できます。
論理ログ ファイルのサイズ変更
ログ ファイルのサイズを変更する場合、希望のサイズの新しいログ ファイルを追加し
て、古いログ ファイルを削除すると簡単に変更できます。論理ログ ファイルのサイズ
は次の方法で変更できます。
v
-s オプション付きで onparams を使用して、サイズの異なる新しいログ ファイル
を追加します。
419 ページの『論理ログ ファイルの手動追加』を参照してください。
v サイズの大きいログ ファイルを作成する場合は、ファイル ONCONFIG の LOGSIZE
の値を増やします。
423 ページの『ログ構成パラメータの変更』を参照してください。
別の DB 領域への論理ログ ファイルの移動
394 ページの『論理ログ ファイルの格納場所』で説明したように、パフォーマンス上の
理由や DB 領域の空き領域を増やすために、論理ログ ファイルを移動する場合があり
ます。論理ログ ファイルの格納場所を確認する方法については、414 ページの『ロギン
グ動作の監視』を参照してください。論理ログ ファイルの移動は難しくありませんが、
時間がかかることがあります。
論理ログ ファイルの移動は次の 2 つの簡単な操作の組合せです。
v 現行の DB 領域からの論理ログ ファイルの削除
v 新しい DB 領域への論理ログ ファイルの追加
ここに示す手順は、6 個の論理ログ ファイルをルート DB 領域から別の DB 領域
dbspace_1 に移動する例です。
警告: デフォルトでないページ サイズを持つ DB 領域へ論理および物理ログ ファイル
を移動することはできません。
ルート DB 領域から論理ログ ファイルを移動する例:
1. データベース サーバが、オンライン モード、シングルユーザ モード、静止モー
ド、または高速復旧モードであることを確認します。
2. dbspace_1 に 6 個の新しい論理ログ ファイルを追加します。
422
IBM Informix Dynamic Server 管理者ガイド
419 ページの『論理ログ ファイルの手動追加』を参照してください。
3. すべての格納領域でレベル 0 バックアップを実行し、現行のログ ファイルを除くす
べてのログ ファイルを解放します。
onbar -l -b -c を使用している場合は、現行のログ ファイルを含むすべてのログ フ
ァイルがバックアップされます。411 ページの『論理ログ ファイルの解放』を参照
してください。
4. 新しい現行のログ ファイルに切り替えるには onmode -l を使用します。
411 ページの『次の論理ログ ファイルへの切替え』を参照してください。
5. ルート DB 領域の 6 個の論理ログ ファイルをすべて削除します。
現行の論理ログ ファイルは削除できません。
420 ページの『論理ログ ファイルの削除』を参照してください。
6. ルート DB 領域と dbspace_1 のレベル 0 バックアップを作成します。
詳しくは、「IBM Informix: バックアップおよび復元 ガイド」を参照してください。
ログ構成パラメータの変更
テキスト エディタまたは ISA を使用して、パラメータ ONCONFIG を変更できます。
次の表に、論理ログの構成パラメータを示します。詳しくは、「IBM Informix: Dynamic
Server 管理者の参照」の構成パラメータに関する章を参照してください。
構成パラメータ
最小値
デフォルト値
最大値
DYNAMIC_
LOGS
0 または 1
2
2
LOGBUFF
2 * ページ サイズ
32KB
LOGSIZE 値
LOGFILES
3 ファイル
6 ファイル
32,767 ファイル
LOGSIZE
UNIX 上で 1,500KB
2,000KB
詳しくは、
「IBM Informix: Dynamic
Server 管理者の参照」を
参照してください。
Windows 上で 500KB
LTXEHWM
LTXHWM 値
90%
100%
LTXHWM
1%
80%
100%
重要: LOGFILES に対する変更は、ディスク領域を再初期化するまで有効になりませ
ん。
ファイル ONCONFIG の論理ログ構成パラメータの変更:
第 15 章 論理ログ ファイルの管理
423
1. データベース サーバをオフライン モードにするか、静止モードまたはシングルユー
ザ モードにします。
2. ISA またはテキスト エディタを使用して、構成パラメータを更新します。
パラメータ DYNAMIC_LOGS、LTXHWM および LTXEHWM はファイル
onconfig.std に含まれていません。これらのパラメータの値を変更するには、ファイ
ル ONCONFIG にこれらのパラメータを追加します。
3. データベース サーバを停止して再起動します。
4. この手順は、LOGFILES を変更する場合にのみ実行してください。
a. すべてのデータベース サーバ データをアンロードします。
復元するとパラメータが以前の値に戻るため、格納領域のバックアップに依存し
てデータのアンロードと復元を行うことはできません。
b. データベース サーバのディスク領域を再初期化します。
詳しくは、102 ページの『ディスク領域の初期化』を参照してください。
c.
すべてのデータベースと表を再作成します。
d. すべてのデータベース サーバ データを再ロードします。
データのロードとアンロードについては、「IBM Informix: 移行ガイド」を参照し
てください。
5. 変更した論理ログを有効にするためにルート DB 領域をバックアップします。
ON-Monitor を使用する LOGFILES の変更 (UNIX)
ON–Monitor を使用して、LOGFILES の値を変更できます。
これらの値の変更方法:
1. すべてのデータベース サーバ データをアンロードします。
復元するとパラメータが以前の値に戻るため、格納領域のバックアップに依存してデ
ータのアンロードと復元を行うことはできません。
2. 「Parameters」>「Initialize」を選択して、ディスク領域を再初期化します。
3. 「Log.Log Size」というラベルのフィールドで LOGSIZE の値を変更するか、または
「Number of Logical Logs」というラベルのフィールドで LOGFILES の値を変更し
ます。
4. データベース サーバのディスク領域の初期化を進めます。
5. すべてのデータベースと表を再作成します。
6. すべてのデータベース サーバ データを再ロードします。
データのロードとアンロードについては、「IBM Informix: 移行ガイド」を参照して
ください。
424
IBM Informix Dynamic Server 管理者ガイド
論理ログ レコードの表示
論理ログ レコードを表示して解釈するには、ユーティリティ onlog を使用します。
onlog の使用方法については、「IBM Informix: Dynamic Server 管理者の参照」のユー
ティリティに関する章を参照してください。
動的に追加されたログのイベントの監視
動的に追加されたログ ファイルにより発生する次のイベント アラームを監視します。
表 39を参照してください。各アラームが発生すると、メッセージがメッセージ ログに
書き込まれます。詳しくは、「IBM Informix: Dynamic Server 管理者の参照」のイベン
ト アラームおよび構成パラメータに関する章を参照してください。
ログ ファイルを追加するコマンド onparams をイベント クラス ID 27、「ログ ファ
イル必要」のアラーム スクリプトに含めることができます。さらに、スクリプトでコマ
ンド onstat -d を実行して十分な領域を確認したり、十分な領域のある場所でコマンド
onparams a -i を実行したりすることもできます。新しいログを現在のログ ファイルの
すぐ後に追加するには、オプション -i を使用する必要があります。
第 15 章 論理ログ ファイルの管理
425
表 39. 動的に追加されたログ ファイル のイベント アラーム
クラス
ID
重要度
クラス メッセージ
26
3
動的に追加されたログ このメッセージは、データベース サーバによりログ ファ
ファイル log_number イルが動的に追加されたときに表示されます。
メッセージ
ログ ファイル log_number が DB 領域 dbspace_number
に動的に追加されました。
27
4
ログ ファイルが必要
です。
DYNAMIC_LOGS を 1 に設定し、データベース サーバに
ログ ファイルを追加してないときには、次のメッセージ
が表示されます。
注意: 最も古い論理ログ log_number に、オープンしてい
るトランザクション transaction_address からのレコー
ドが含まれています。論理ログ出力は、ログ ファイルが
追加されるまでブロックされます。次の例のように、
onparams -a コマンドで -i (挿入) オプションを使用し
て、ログ ファイルを追加してください。
onparams -a -d dbspace -s size-i
その後で、トランザクションを可能な限り早く完了してく
ださい。
28
4
ログ ファイル用の領
域がありません。
注意: 最も古い論理ログ log_number に、オープンしてい
るトランザクション transaction_address からのレコー
ドが含まれているため、サーバはログ ファイルの動的追
加を試行していますが、使用可能な領域がありません。DB
領域またはチャンクを追加してください。その後で、トラ
ンザクションを可能な限り早く完了してください。
表 40 に、構成パラメータ DYNAMIC_LOGS の各設定で、データベース サーバにより
実行される動作を示します。
426
IBM Informix Dynamic Server 管理者ガイド
表 40. DYNAMIC_LOGS の設定
DYNAMIC_
LOGS
意味
イベント
アラーム
追加ログの待機 ログの動的追加
2 (デフォルト)
実行中のトランザクションによって
システムがハングするのを防止でき
るように、新しいログ ファイルの自
動割当てを行います。
はい
(26、28)
いいえ
はい
1
手動で新しいログ ファイルを追加し
ます。
はい (27)
はい
いいえ
0
ログ ファイルを割り当てず、実行中
のトランザクションに関して次のメ
ッセージを発行します。
いいえ
いいえ
いいえ
WARNING: The oldest logical-log file
log_number contains records from an
open transaction
transaction_address, but the
dynamic log feature is turned off.
ロング トランザクションのロールバックに対する限界の設定
データベース サーバでは、構成パラメータ LTXHWM および LTXEHWM を使用し
て、ロング トランザクションの上限を設定します。DYNAMIC_LOGS が 1 または 2
に設定されていると、デフォルトの LTXHWM 値が 80% になり、LTXEHWM の値は
90% になります。DYNAMIC_LOGS を 0 に設定すると、デフォルトの LTXHWM の
値が 50 % になり、デフォルトの LTXHEWM の値は 60% になります。
上限基準点を下げると、ロング トランザクションが発生する可能性は高くなります。こ
れを補正するには、追加のログ領域を割り当てます。LTXHWM および LTXEHWM に
ついては、「IBM Informix: Dynamic Server 管理者の参照」の構成パラメータの章を参
照してください。
ロング トランザクション限界 (LTXHWM)
ロング トランザクション限界 とは、合計ログ領域の割合で、それを超えるとトランザ
クションがロールバックされます。データベース サーバにより、最も古い使用済みログ
ファイル内で実行中のトランザクションが検索されると、動的にログ ファイルが追加さ
れます。このように、ログ領域が拡大すると、限界は拡張されます。ログ領域が限界に
達すると、データベース サーバにより、トランザクションがロールバックされます。ト
ランザクションのロールバックとこのほかのプロセスにより、論理ログ レコードも生成
されます。ログ ファイルの追加は、論理ログによる領域の不足を防止するためのロール
第 15 章 論理ログ ファイルの管理
427
バックが完了するまで続行されます。複数のロング トランザクションが存在する場合で
も、それらのトランザクションをロールバックできます。
例えば、データベース サーバに 10 の論理ログがあって、LTXHWM が 98 に設定され
ているとします。トランザクションがログ ファイル 1 から開始して、更新動作により
1 から 9 のログが埋まったとします。すると、データベース サーバにより、ログ ファ
イル 11 がログ ファイル 10 の後に動的に追加されます。トランザクションが完了しな
い限り、このプロセスは続行されます。ただし、データベース サーバが動的に追加する
ことのできるログ ファイルは 40 です。データベース サーバが 50 番目のログを追加
した時点で、トランザクションが限界に達し、トランザクションがロールバックされま
す。
排他アクセス ロング トランザクション限界 (LTXEHWM)
現在ロールバックされているロング トランザクションの論理ログ ファイルへのアクセ
スが排他 アクセスになった場合、排他アクセス ロング トランザクション限界 が発生
します。ログ レコードの生成が劇的に減少します。トランザクションのロールバックを
現在実行中のスレッドと、COMMIT レコードの書込みを現在実行しているスレッドの
みが、論理ログにアクセスできます。論理ログへのアクセスを制限することで、トラン
ザクションのロールバックを実行しているユーザ スレッドによって書込みが行なわれて
いるロールバック レコードに可能な限り多くの領域が確保されます。
警告: LTXHWM と LTXEHWM の両方を 100 に設定している場合は、ロング トランザ
クションが打ち切られることはありません。通常のデータベース サーバ操作で
は、LTXHWM を 100 より小さい値に設定するようお勧めします。実行するスケ
ジュール済みトランザクションの長さが不明な場合では、LTXHWM を 100 に設
定します。十分なディスク領域があり、ロング トランザクションのロールバック
中にほかのユーザをブロックしない場合は、LTXEHWM を 100 に設定します。
ロング トランザクションを防止するためのログ ファイルのサイズ調整
多くのユーザが同時にログに書き込む場合は、大きいログ ファイルを使用してくださ
い。小さい領域のログを使用し、ロング トランザクションが発生する可能性が高い場合
は、限界を下げます。LTXHWM の値を 50 に、また LTXEHWM の値を 60 に設定し
ます。
ログ ファイルの領域が小さすぎると、ロング トランザクションのロールバック中にロ
グ領域が不足する場合があります。このような場合、データベース サーバはブロックを
高速に行うことができず、最後のログ ファイルがフルになる前に新しいログ ファイル
を追加できません。最後のログ ファイルがフルになると、システムがハングし、エラー
メッセージが表示されます。問題を修正するには、データベース サーバを停止して再起
動します。詳しくは、429 ページの『ロング トランザクションによるハングからの復
旧』を参照してください。
428
IBM Informix Dynamic Server 管理者ガイド
ロング トランザクションによるハングからの復旧
システムに十分なディスク領域があり、長さが不明であるトランザクションを実行する
場合は、LTXHWM を 100 に設定し、トランザクションを完了するまで、ログ ファイ
ルの追加を強制的に続行するよう設定してください。
ディスク領域が不足すると、トランザクションはハングします。新しいログ ファイルの
追加は中止され、エラー メッセージの書込みが行われます。また、アラームが発生しま
す。
トランザクションの続行:
1. トランザクションを続行するには、DB 領域またはチャンクを DB 領域に追加しま
す。
2. トランザクション処理を再開します。
データベース サーバに追加のディスク領域を割り当てることができない場合は、トラン
ザクションを中止してください。
トランザクションの中止:
v コマンド onmode -z を実行します。
v データベース サーバを停止して再起動します。
データベース サーバが高速復旧モードになると、トランザクションがロールバックされ
ます。 その後、次の手順に従います。
ロング トランザクションによるハングからの復旧:
1. トランザクションのロールバックが成功するまでに、ディスク領域または別のディス
クをさらに追加します。
2. 時間指定復元の時間をロング トランザクションが開始する前、またはデータベース
サーバによるトランザクションのロールバックが可能な十分早い時間に設定して実行
します。
3. 追加のログ ファイル、DB 領域、チャンクをデータベース サーバ インスタンスか
ら削除します。
4. 完全なレベル 0 バックアップを実行し、論理ログ ファイル領域を解放します。
第 15 章 論理ログ ファイルの管理
429
430
IBM Informix Dynamic Server 管理者ガイド
第 16 章 物理ロギング、チェックポイント、および高速復旧
クリティカル セクション . . . . . . . . . . . . . . . . . . . . . .
物理ロギング . . . . . . . . . . . . . . . . . . . . . . . . . .
物理ログに記録されたページを使用した高速復旧 . . . . . . . . . . . . .
物理ログに記録されたページを使用したバックアップ . . . . . . . . . . .
物理ログに記録されるデータベース サーバの動作 . . . . . . . . . . . . .
物理復旧メッセージ . . . . . . . . . . . . . . . . . . . . . .
物理ロギングとシンプル ラージ オブジェクト . . . . . . . . . . . . .
物理ロギングとスマート ラージ オブジェクト . . . . . . . . . . . . .
物理ログのサイズと格納場所 . . . . . . . . . . . . . . . . . . . . .
物理ログの格納場所の指定 . . . . . . . . . . . . . . . . . . . .
物理ログのサイズの見積り . . . . . . . . . . . . . . . . . . . .
物理ログのサイズの構成 . . . . . . . . . . . . . . . . . . . . .
多数のユーザがクリティカル セクション内にいる場合の物理ログのオーバーフロー
物理ログのサイズに対するチェックポイントの影響 . . . . . . . . . . .
トランザクション ロギングが無効な場合の物理ログのオーバーフロー . . . . .
物理ロギングの詳細 . . . . . . . . . . . . . . . . . . . . . . . .
チェックポイント . . . . . . . . . . . . . . . . . . . . . . . .
フル チェックポイント . . . . . . . . . . . . . . . . . . . . . .
ファジー チェックポイント . . . . . . . . . . . . . . . . . . . .
ファジー操作 . . . . . . . . . . . . . . . . . . . . . . . .
先書きロギングと高速復旧 . . . . . . . . . . . . . . . . . . .
ファジー チェックポイントによるパフォーマンスの向上 . . . . . . . . .
ファジー チェックポイント処理を開始するイベント . . . . . . . . . . . .
フル チェックポイントを開始するイベント . . . . . . . . . . . . . . .
チェックポイントで発生するイベント シーケンス . . . . . . . . . . . . .
クリティカル セクションへのユーザ スレッドの進入禁止 . . . . . . . . .
ディスク上の論理ログ ファイルへの論理ログ バッファのフラッシュ . . . . .
ディスク上の物理ログへの物理ログ バッファのフラッシュ . . . . . . . . .
バッファ プール内にある変更されたページのディスクへのフラッシュ . . . . .
チェックポイント スレッドによるチェックポイント レコードの書込み . . . .
物理ログが論理的に空にされる処理 . . . . . . . . . . . . . . . .
バックアップと復元に関する注意事項 . . . . . . . . . . . . . . . . .
高速復旧 . . . . . . . . . . . . . . . . . . . . . . . . . . .
高速復旧の必要性 . . . . . . . . . . . . . . . . . . . . . . .
高速復旧が開始されるタイミング . . . . . . . . . . . . . . . . . .
高速復旧とバッファ付きロギング . . . . . . . . . . . . . . . . .
高速復旧における物理ログ オーバーフローの可能性 . . . . . . . . . . .
ロギングを使用しない場合の高速復旧 . . . . . . . . . . . . . . . .
フル チェックポイント後の高速復旧について . . . . . . . . . . . . . .
最新のチェックポイントの状態への復帰 . . . . . . . . . . . . . . .
© Copyright IBM Corp. 1996, 2004
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
432
433
433
433
433
434
434
434
434
435
435
436
436
436
437
437
439
439
439
440
440
440
441
441
442
442
443
443
443
443
444
444
444
444
445
445
445
445
446
446
431
論理ログ内のチェックポイント レコードの検索 . . . . .
論理ログ レコードのロールフォワード . . . . . . . .
不完全なトランザクションのロールバック . . . . . . .
ファジー チェックポイント後の高速復旧の詳細 . . . . . .
非ファジー操作ページの最新のチェックポイント状態への復帰
論理ログで最も早い時期に行われた更新の検索 . . . . . .
ファジー操作のログ レコードの適用 . . . . . . . . .
論理ログ レコードのロールフォワード . . . . . . . .
不完全なトランザクションのロールバック . . . . . . .
ファジー操作の代替高速再開復旧オプション . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
447
447
447
448
449
450
450
451
451
452
本章について
この章では、データの一貫性を保つためにデータベース サーバで実行される 3 つのプ
ロシジャについて説明します。
v 物理ロギング
v チェックポイント
v 高速復旧
物理ログ とは、データベース サーバが、変更前のページ コピー (更新前イメージ) を
格納するディスク ページの集合です。物理ロギング とは、データベース サーバにより
変更される、ページの更新前イメージを格納するプロセスですチェックポイント は、デ
ータベース サーバにより、ディスク上のページと共有メモリ バッファのページとの同
期化が行われるポイントです。高速復旧 とは、非制御状態でオフライン モードになっ
たデータベース サーバを一貫した状態に復元する自動プロシジャです。
これらのプロシジャにより、論理的に関連した複数の書込みが、1 つの単位として確実
にディスクに記録されます。また、共有メモリ内のデータとディスク上のデータとの一
貫性が定期的に確認されます。
物理ログおよびチェックポイントの管理タスクと監視タスクについては、 455 ページの
『第 17 章 物理ログの管理』を参照してください。
クリティカル セクション
クリティカル セクション とは、1 つの単位として実行する必要のあるコードのセクシ
ョン、またはコンピュータの命令です。クリティカル セクションは、一連の命令がスワ
ップ アウトされる前にそれら命令を実行し、スレッドの整合性を保ちます。
432
IBM Informix Dynamic Server 管理者ガイド
物理ロギング
物理ロギング とは、変更されたページが実際にディスク上に記録される前に、データベ
ース サーバによって変更されるページを格納するプロセスです。データベース サーバ
は、共有メモリ バッファ プール内の特定のページを変更する前に、そのページの更新
前イメージを共有メモリ内の物理ログ バッファに格納します。
データベース サーバは、1 つ以上のページ クリーナによってページがディスクへフラ
ッシュされるまで、これらのディスク ページの更新前イメージ ページを共有メモリの
物理ログ バッファに保存します。これにより、データベース サーで障害が発生した
り、バックアップの手順でデータベース サーバ データの正確なスナップショットを提
供する必要が生じたりした場合でも、未変更のページを確実に使用できます。これらの
スナップショットは、高速復旧およびデータベース サーバ バックアップにより使用さ
れます。
各チェックポイントで、データベース サーバは物理ログを空にします (436 ページの
『物理ログのサイズの構成』で説明している特別な場合を除きます)。チェックポイント
の詳細については、439 ページの『チェックポイント』を参照してください。
物理ログに記録されたページを使用した高速復旧
障害の発生後に、データベース サーバは、非ファジー操作によって変更されたページの
更新前イメージを使用して、ディスク上のこれらのページを最終チェックポイントの状
態に復元します。その後、データベース サーバは論理ログ レコードを使用して、完了
した最新のトランザクションの地点まで、すべてのデータを物理的および論理的に一貫
した状態に戻します。この手順については 444 ページの『高速復旧』で詳しく説明しま
す。
物理ログに記録されたページを使用したバックアップ
バックアップを実行すると、データベース サーバによりチェックポイントが実行され、
変更されたページが物理ログで検索されます。レベル 0 バックアップでは、データベー
ス サーバによりすべてのディスク ページがバックアップされます。レベル 1 またはレ
ベル 2 バックアップでは、変更されたページのみがバックアップされます。詳しくは、
「IBM Informix: バックアップおよび復元 ガイド」を参照してください。
物理ログに記録されるデータベース サーバの動作
次のチェックポイントの前に複数の変更がある場合、物理ログには最初の更新前イメー
ジのみが記録されます。
更新前イメージは、次のチェックポイントまでのみ物理ログに格納されます。チェック
ポイント間隔を設定する構成パラメータ CKPTINTVL を調整することで、データベース
サーバによってログに記録されるデータ量を制御できます。
次の DB 領域ページの変更は、物理ログに記録されません。
第 16 章 物理ロギング、チェックポイント、および高速復旧
433
v 有効なデータベース サーバ アドレスを持たないページ
このような状況は通常、ほかのデータベース サーバや削除された表によってそのペ
ージが使用された場合に発生します。
v データベース サーバによって使用されていないページで、しかも最終チェックポイ
ント以降に表が削除されていない DB 領域に配置されているページ
v ファジー操作のためのページ
重要: ファジー操作の更新前イメージは、これ以後物理ログには記録されません。 これ
らの更新は、論理ログで追跡されます。ファジー操作の定義については、440 ペ
ージの『ファジー操作』を参照してください。
物理復旧メッセージ
高速復旧が開始すると、データベース サーバにより次のメッセージが記録されます。
Physical recovery started at page chunk:offset.
高速復旧が完了すると、データベース サーバにより次のメッセージが記録されます。
物理復旧が完了しました: number ページを調べ、number ページを復元しました。
調査されたページ数 が復元されたページ数 を超える場合、バッファ プールのサイズを
増やして更新前イメージの重複数を減らします。詳しくは、「IBM Informix: Dynamic
Server 管理者の参照」のメッセージに関する付録を参照してください。
物理ロギングとシンプル ラージ オブジェクト
表領域のシンプル ラージ オブジェクトを含めた、いずれのデータベース サーバ ペー
ジも、物理ログに格納されることがあります。オーバーヘッド ページ (チャンク フリ
ー リスト ページなど) でさえも、ページ上のデータが変更されてディスクへフラッシ
ュされる前に物理ログにコピーされます。
オーバーヘッド ページには、BLOB 領域用フリー マップ ページと BLOB 領域用ビッ
トマップ ページも含まれます。BLOB 領域の BLOB ページは物理ログには記録されま
せん。BLOB 領域のロギングの詳細については、400 ページの『BLOB 領域およびシン
プル ラージ オブジェクトのログ記録』を参照してください。
物理ロギングとスマート ラージ オブジェクト
スマート ラージ オブジェクトのユーザ データ部は物理ログに記録されません。ただ
し、メタデータは物理ログに記録されます。スマート ラージ オブジェクトについて
は、277 ページの『SB 領域』を参照してください。
物理ログのサイズと格納場所
ここでは、物理ログのサイズと格納場所の構成方法について説明します。
434
IBM Informix Dynamic Server 管理者ガイド
物理ログの格納場所の指定
ディスク領域が初期化されると、論理ログ ファイルと物理ログはルート DB 領域に配
置されます。この配置を最初に制御することはできません。パフォーマンスを向上させ
る (特に、ルート DB 領域への書込み数を減らし、ディスクの競合を最小に抑える) た
め、物理ログをルート DB 領域からほかの DB 領域 (できれば、実効状態の表や論理
ログ ファイルが含まれていないディスク上の DB 領域) に移動させることができま
す。
物理ログは、パラメータ ONCONFIG の PHYSDBS で指定する DB 領域に配置されま
す。PHYSDBS については、「IBM Informix: Dynamic Server 管理者の参照」の構成パ
ラメータに関する章を参照してください。PHYSDBS は、物理ログ ファイルをルート
DB 領域から移動する場合にのみ変更してください。(455 ページの『物理ログの格納場
所とサイズの変更』を参照。)
物理ログは非常に重要であるため、物理ログを含む DB 領域をミラーリングすることを
お勧めします。
物理ログのサイズの見積り
更新が作業負荷の中心となる場合、次の式を使用して、PHYSFILE と同じ物理ログのサ
イズを計算できます。
PHYSFILE = (users * max_log_pages_per_crit_sect * 4 * pagesize) / 1024
数式内の変数
説明
users
ピーク処理時での onstat -u の実行により見込まれ
る並行ユーザ スレッド最大数。onstat -u の出力の
最後の行には、並行ユーザ スレッドの最大数が含ま
れます。
パラメータ NETTYPE を設定している場合、ファイ
ル ONCONFIG の各パラメータ NETTYPE のユー
ザ フィールドで指定した値を合計します。
max_log_pages_per_crit_sect
データベース サーバがクリティカル セクションに
物理的に記録できるページの最大数。次のいずれか
の値を使用します。
R ツリー インデックスを使用しない場合は 5
R ツリー インデックスを使用する場合は 10
4
式の次の部分が物理ログの 25 % のみを表すので必
須の係数。
users* max_log_pages_per_crit_sect
pagesize
バイト単位のシステム ページ サイズ。oncheck -pr
で表示できます。
第 16 章 物理ロギング、チェックポイント、および高速復旧
435
1024
パラメータ PHYSFILE を KB 単位で指定するので
必須の除数。
この式は、最悪の状況にデータベース サーバが必要とする物理ロギング領域量に基づい
ています。この状況は、ログの 75 % が使用されたためにチェックポイントが発生する
場合に生じます。 このサイズは、実際の作業負荷または構成に対して小さすぎたり、大
きすぎたりする場合があります。
ロギングなしで、データベースの DB 領域内のシンプル ラージ オブジェクトを使用し
ている場合、クリティカル セクションあたりの最大ログ ページの代わりに、最も頻繁
に発生する DB 領域のシンプル ラージ オブジェクトのサイズを使用してください。
物理ログの監視と調整の詳細については、「IBM Informix: Dynamic Server パフォーマ
ンス ガイド」の、入出力使用効率に対する構成の影響についての章を参照してくださ
い。
物理ログのサイズの構成
物理ログは、75% が使用されるとチェックポイントによって論理的に空にされるため、
チェックポイントが完了する前に物理ログが 100% 使用されることは、まずありませ
ん。さらに、次の処置を行ってチェックポイント処理中に物理ログがフルになることを
避けることができます。
v 物理ログと論理ログ ファイルのサイズ決定のガイドラインに従ってデータベース サ
ーバを構成します。
v 実動処理の実行中に物理ログを監視することによって物理ログ サイズを調整しま
す。
ファジー チェックポイントにより、アプリケーションが集中的な更新を行う場合に物理
ログがあまりに早くフルになることが防止されます。(439 ページの『ファジー チェッ
クポイント』を参照。) ただし、それでも次のセクションで説明するように、物理ログ
がフルになることがあります。
多数のユーザがクリティカル セクション内にいる場合の物理ログのオーバーフ
ロー
クリティカル セクションにスレッドがあると、チェックポイントは発生しません。(432
ページの『クリティカル セクション』を参照。) これは、チェックポイント処理を行う
スレッドがロング トランザクションのロールバックも行うと発生する場合があります。
物理ログのサイズに対するチェックポイントの影響
ファジー チェックポイントにより、アプリケーションが集中的な更新を行う場合に物理
ログがあまりに早くフルになることが防止されます。アプリケーションによって要求さ
れる集中的な更新を分散させる場合、または更新が同一のページに集中する傾向がある
場合は、物理ログのサイズを小さくすることができます。物理ログがフルになったとき
にチェックポイントをトリガする場合は、物理ログのサイズを減らすことができます。
436
IBM Informix Dynamic Server 管理者ガイド
チェックポイント間隔を長くする場合、または動作が増加することが予想される場合
は、物理ログのサイズを大きくすることを検討してください。詳しくは、
「IBM Informix: Dynamic Server パフォーマンス ガイド」の入出力動作に対する構成の
影響についての章を参照してください。
トランザクション ロギングが無効な場合の物理ログのオーバーフロー
トランザクション ロギングが無効のデータベースで、シンプル ラージ オブジェクトま
たはスマート ラージ オブジェクトを使用すると、物理ログがオーバーフローする場合
があります。次に例を示します。
データベース サーバがこれらのシンプル ラージ オブジェクトを処理する場合、データ
ベース サーバによってディスク上に格納されるシンプル ラージ オブジェクトの各部が
別々にログに記録され、スレッドが各部間のコードのクリティカル セクションを終了で
きるようになります。ただし、ロギングが無効な場合は、データベース サーバは 1 つ
のクリティカル セクション内のシンプル ラージ オブジェクトで、すべての操作を実行
する必要があります。シンプル ラージ オブジェクトが大きくて物理ログが小さいと、
物理ログがフルになることがあります。この場合は、次のメッセージがメッセージ ログ
に送信されます。
Physical log file overflow
その後、データベース サーバが停止を開始します。修正処置については、メッセージ
ログでこのメッセージを参照してください。
物理ロギングの詳細
ここでは、物理ロギングについて詳しく説明します。読者の関心に応えることを目的と
しているため、物理ログを管理する上で深く理解する必要はありません。
データベース サーバは、次の表に示す 6 つの手順によって物理ロギングを実行しま
す。
データベース サーバが実行
する物理ロギングの手順
データ ページをディスクか
ら共有メモリ ページ バッフ
ァに読み込みます (データ
ページがまだバッファに存在
しない場合)。
詳しい説明
セッションで行が要求されると、データベース サーバ
は行が存在するページを識別し、ページをデータベース
サーバ共有メモリ バッファ プールで探そうとします。
共有メモリに該当ページが存在しない場合は、そのペー
ジがディスクからデータベース サーバ共有メモリの常
駐部に読み込まれます。
第 16 章 物理ロギング、チェックポイント、および高速復旧
437
データベース サーバが実行
する物理ロギングの手順
詳しい説明
変更されていないページを物 変更されたページの更新前イメージが物理ログ バッフ
理ログ バッファにコピーし ァに格納されている場合、そのイメージは最終的に物理
ログ バッファからディスク上の物理ログへフラッシュ
ます。
されます。ページの更新前イメージは、データの復元と
高速復旧において重要な役割を果たします。詳しくは、
217 ページの『物理ログ バッファ』を参照してくださ
い。
アプリケーションによってデ
ータが変更された後に、変更
をページ バッファに反映さ
せます。
データベース サーバは変更を共有メモリ データ バッ
ファに反映させます。アプリケーションからのデータ
が、データベース サーバに渡されます。変更されてい
ないデータ ページのコピーが物理ログ バッファに格納
されると、すでに獲得済みのページ バッファに新しい
データが書き込まれます。
物理ログ バッファをディス データベース サーバはデータ バッファをフラッシュす
ク上の物理ログへフラッシュ る前に物理ログ バッファをフラッシュして、変更され
たページがディスクにコピーされるまで未変更のページ
します。
のコピーを使用できるようにします。チェックポイント
の発生後は、そのページの更新前イメージは不要になり
ます。詳しくは、235 ページの『物理ログ バッファの
フラッシュ』を参照してください。
ページ バッファをフラッシ 物理ログ バッファがフラッシュされた後、共有メモリ
ュしてディスクに書き戻しま ページ バッファが (チェックポイント時などに) ディス
クへフラッシュされ、データ ページがディスクに書き
す。
込まれます。ファジー チェックポイント中にディスク
へフラッシュされるのは非ファジー ページのみです。
ページ バッファのフラッシュが生じる条件について
は、234 ページの『ディスクへのデータ フラッシュ』
を参照してください。
チェックポイントが発生した
とき、物理ログ バッファを
ディスク上の物理ログへフラ
ッシュし、物理ログを空にし
ます。
物理ロギング プロセスでは、いつでもチェックポイン
トが発生する可能性があります。データベース サーバ
は、2 種類のチェックポイントを実行します。フル と
ファジー です。詳しくは、 439 ページの『チェックポ
イント』を参照してください。
データベース サーバは物理ログを循環ファイルとして
管理し、不要なデータを定期的に上書きします。チェッ
クポイント手順では、必要な更新前イメージの次のグル
ープの開始位置を示す物理ログのポインタがリセットさ
れ、物理ログが空にされます。
438
IBM Informix Dynamic Server 管理者ガイド
チェックポイント
データベース サーバは、2 種類のチェックポイントを実行します。フル チェックポイ
ント (同期 チェックポイント) およびファジー チェックポイントです。チェックポイ
ント は、ディスク上のページと共有メモリ バッファ プール内のページとの同期化が行
われる、データベース サーバの処理ポイントです。デフォルトは、ファジー チェック
ポイントです。
チェックポイントは論理ログ領域ごとに 1 つ以上生成され、そのチェックポイントから
高速復旧が開始されます。
チェックポイント処理は、データベース サーバにより自動的に実行されますが、手動で
チェックポイント処理を開始することもできます。チェックポイント処理が必要かどう
かをチェックする頻度は、調整することもできます。チェックポイント間隔を指定する
には、構成パラメータ CKPTINTVL を使用します。
チェックポイント処理に必要となる作業量を減らすには、BUFFERPOOL 構成パラメー
タを使用して、lru_max_dirty 値と lru_max_dirty 値を小さくします。例えば、データ
ベース サーバに超大型バッファ プールを備えた数個のインスタンスがある場合、チェ
ックポイント処理に必要な時間を減らすためには、lru_max_dirty 値を 1 以下に設定し
ます。
注: バージョン 10.0 より前に BUFFERS、LRUS、LRU_MAX_DIRTY、および
LRU_MIN_DIRTY 構成パラメータで指定していた情報は、BUFFERPOOL 構成パラ
メータを使用して指定するようになりました。
CKPTINTVL および BUFFERPOOL については、「IBM Informix: Dynamic Server 管理
者の参照」の構成パラメータの章を参照してください。チェックポイント パラメータの
監視および調整については、「IBM Informix: Dynamic Server パフォーマンス ガイド」
を参照してください。
フル チェックポイント
フル チェックポイント では、共有メモリ バッファ プール内の変更されたページがす
べてディスクにフラッシュされます。フル チェックポイント処理が完了すると、物理的
処理はすべて完了して MLRU 管理列が空になり、データベース サーバは物理的に一貫
した状態になります。
ファジー チェックポイント
ファジー チェックポイント 処理では、共有メモリ バッファ プール内にあるページの
うち、ファジー操作 と呼ばれる特定の操作によって変更されたものがディスクにフラッ
シュされません。ファジー チェックポイント処理が実行された場合、データ ページが
すべてディスクにフラッシュされるわけではないため、ページが互いに一貫していない
ことがあります。ファジー チェックポイントはフル チェックポイントよりもずっと早
第 16 章 物理ロギング、チェックポイント、および高速復旧
439
く完了し、負荷の大きい更新動作中の物理ロギングの作業量を減らします。ディスク上
のすべてのデータの物理的な整合性を保つため、必要に応じてフル チェックポイントが
実行されます。
ファジー操作
組込みデータ型に対する次の一般的な操作は、ファジー 操作となります。
v 挿入
v 更新
v 削除
次の操作は非ファジー 操作です。
v ユーザ定義データ型、スマート ラージ オブジェクト (CLOB 型および BLOB 型)、
またはシンプル ラージ オブジェクト (テキスト (TEXT) 型およびバイト (BYTE)
型) が含まれる行の挿入、更新、削除
v 表の変更とロード
v インデックス (B ツリー インデックス、R ツリー インデックス、ユーザ定義インデ
ックス) を作成または変更する操作
非ファジー操作によって変更されたデータ ページは、ファジー チェックポイント実行
時にはすべて、フル チェックポイント実行時と同様にディスクにフラッシュされます。
重要: ファジー チェックポイントは、高可用性データ レプリケーション ペアの主サー
バおよび副サーバでは無効になります。
先書きロギングと高速復旧
高速復旧では、ファジー チェックポイントにより先書きロギングが使用されます。先書
きロギング とは、ファジー操作によるデータの変更を記録した論理ログ レコードがデ
ィスク上にない限り、ディスク上の変更前のデータが変更後のデータによって置き換え
られないという意味です。高速復旧は、直前のチェックポイントからではなく、ディス
クにまだフラッシュされていない最も古い更新から開始されます。
ファジー チェックポイントでは、ロールフォワード高速復旧に少し時間がかかる場合が
あります。古い論理ログ レコードが失われるのを防ぐため、フル チェックポイントが
時折実行されます。
ファジー チェックポイントによるパフォーマンスの向上
ファジー チェックポイントはフル チェックポイントよりはるかに高速に実行されるた
め、トランザクション スループットの向上につながります。ファジー操作は物理ログに
記録されないため、物理ログが満たされるまでの時間が長く、チェックポイントの発生
頻度も低くなります。例えば、大量のデータを挿入または更新する場合でもチェックポ
イントの発生頻度が低くなり、処理時間も短くなります。
440
IBM Informix Dynamic Server 管理者ガイド
チェックポイント間隔が満了したときにデータがすべて物理的に一貫している場合、フ
ル チェックポイントはスキップされます。ファジー チェックポイントがスキップされ
るのは、最新のチェックポイント以降、どのページも使用されていない場合のみです。
トランザクション スループットを向上するには、BUFFERPOOL 構成パラメータを使用
して、lru_max_dirty 値および lru_max_dirty 値を増やします。ただし、lru_max_dirty
と lru_max_dirty の値の差を変更しないでください。
チェックポイント パフォーマンスの向上については、「IBM Informix: Dynamic Server
パフォーマンス ガイド」の構成が入出力に与える影響を説明する章を参照してくださ
い。
ファジー チェックポイント処理を開始するイベント
通常、データベース サーバによって自動的に実行されるのはファジー チェックポイン
ト処理です。ファジー チェックポイント処理は、次のいずれかの条件を満たすと開始さ
れます。
v 構成パラメータ CKPTINTVL で指定したチェックポイント間隔が満了し、最新のチ
ェックポイント以降、1 つ以上の変更が行われた。
v ディスク上の物理ログが 75% まで満たされた。
v 現行論理ログ ファイルの次の論理ログ ファイルに、最新のチェックポイント レコ
ードが含まれていることが検出された。
v チャンクや DB 領域の追加などの、特定の管理タスクが実行された。
フル チェックポイントを開始するイベント
次のいずれかの条件を満たすとフル チェックポイントが実行され、ディスク上のデータ
の物理的な整合性が完全に保たれます。
v onmode -ky を実行し、データベース サーバを停止した。
v onmode -c または ISA を使用してチェックポイントを強制実行した。
詳しくは、460 ページの『フル チェックポイント処理の強制実行』を参照してくだ
さい。
v データベース サーバを新しいバージョンに変換するか、または以前のバージョンに
戻した。
v ON–Bar または ontape を使用してバックアップまたは復元を実行した。
バックアップ媒体への書込み前には、バックアップ ツールによって自動的にチェッ
クポイント処理が実行され、すべてのデータの物理的な整合性が維持されます。
v 高速復旧または完全復旧が終了した。
v
次の未使用ログに切り替えるとき、その未使用ログの次のログに最も古い更新が含
まれている。
第 16 章 物理ロギング、チェックポイント、および高速復旧
441
例えば、次の表に示す状態の論理ログ ファイルが 4 つあるとします。論理ログ フ
ァイル 3 に切り替えるとき、論理ログ ファイル 4 に最も古い更新が含まれていた
場合、フル チェックポイント処理が強制実行されます。フル チェックポイント処理
が実行されると、最も古い更新が論理ログ ファイル 3 に送られます。
ログ ID
論理ログ ファイルの状態
1
U-B----
2
U---C--
3
F
4
U-B---L
以前のログ レコードの高速復旧プロセスにおいて問題が発生するのを防ぐため、フル
チェックポイント処理が実行されます。
フル チェックポイント処理を開始する必要がある条件については、次のセクションを参
照してください。
チェックポイントで発生するイベント シーケンス
ここではチェックポイントの要求時以降に発生するイベントのうち、主なものについて
説明します。フル チェックポイントおよびファジー チェックポイントで発生するイベ
ントが異なる場合、その相違点についても説明します。
1. ユーザ スレッドのクリティカル セクションへの進入が停止されます。
2. 論理ログ バッファが、ディスク上の現行論理ログ ファイルにフラッシュされます。
3. 物理ログ バッファが、物理ログへフラッシュされます。
4. ファジー チェックポイントでは、非ファジー操作によって変更されたページがディ
スクへフラッシュされます。
フル チェックポイントでは、変更されたページがすべてディスクへフラッシュされ
ます。
5. データベース サーバにより、チェックポイント レコードが論理ログ バッファに書
き込まれます。
6.
物理ログが、論理的に空にされます。現行エントリに上書きできるようになりま
す。
クリティカル セクションへのユーザ スレッドの進入禁止
この手順は、ファジー チェックポイント、フル チェックポイントのどちらでも発生し
ます。チェックポイントが要求されると、ユーザ スレッドは、クリティカル セクショ
ンとみなされるコードの部分に入ることができなくなります。すでにコードのクリティ
カル セクション内に入っているユーザ スレッドは、クリティカル セクションの最後ま
で処理を続行できます。
442
IBM Informix Dynamic Server 管理者ガイド
ディスク上の論理ログ ファイルへの論理ログ バッファのフラッシュ
この手順は、ファジー チェックポイント、フル チェックポイントのどちらでも発生し
ます。論理ログ バッファがディスク上の論理ログ ファイルにフラッシュされます。
ディスク上の物理ログへの物理ログ バッファのフラッシュ
ファジー チェックポイントおよびフル チェックポイントの両方で、物理ログ バッファ
はディスク上の物理ログにフラッシュされます。フル チェックポイント処理では、変更
されたすべてのページが物理ログ バッファに含まれるのに対し、ファジー チェックポ
イント処理では、ファジー操作によって変更されたページが物理ログ バッファに含まれ
ます。物理ログ フラッシュのタイムスタンプは共有メモリに格納されます。
バッファ プール内にある変更されたページのディスクへのフラッシュ
ファジー チェックポイント処理では、データベース サーバにより、バッファ プール内
にある非ファジー操作によって変更されたページがディスクにフラッシュされます。フ
ァジー操作 (挿入、削除、更新) によって変更されたページは、データベース サーバに
よりディスクにフラッシュされます。図 74 に、非ファジー ページのみがディスクに書
き込まれる処理を示します。F の表示がある網掛け部分がファジー ページです。
図 74. 変更されたページの共有メモリからディスクへの選択的な書込み
フル チェックポイント処理では、データベース サーバによって、共有メモリ バッファ
プール内の変更されたページがすべてディスクにフラッシュされます。
チェックポイント スレッドによるチェックポイント レコードの書込み
この手順は、ファジー チェックポイント、フル チェックポイントのどちらでも発生し
ます。変更されたページがディスクに書き込まれると、論理ログ バッファにチェックポ
イント完了 レコードが書き込まれます。
ファジー チェックポイント処理では、DPT (Dirty-Pages Table: 使用済みページ表) レコ
ードが論理ログ バッファに書き込まれます。詳しくは、「IBM Informix: Dynamic
Server 管理者の参照」の論理ログ レコード タイプに関する章を参照してください。
第 16 章 物理ロギング、チェックポイント、および高速復旧
443
物理ログが論理的に空にされる処理
この手順は、ファジー チェックポイント、フル チェックポイントのどちらでも発生し
ます。チェックポイント完了レコードがディスクに書き込まれると、物理ログが論理的
に空にされます。つまり、物理ログ内の現行エントリに上書きできるようになります。
バックアップと復元に関する注意事項
バックアップを実行するとフル チェックポイント処理が実行され、ファジー操作によっ
て変更されたページを含め、変更されたページがディスクにすべてフラッシュされま
す。復元を実行すると、すべての論理ログ レコードが再度適用されます。
重要: 論理ログには、ディスクにまだ書き込まれていないファジー操作のレコードも含
まれています。そのため、論理ログは定期的にバックアップする必要がありま
す。
ON–Bar または ontape に関する詳細については、「IBM Informix: バックアップおよび
復元 ガイド」を参照してください。
高速復旧
高速復旧は、データベース サーバがオフライン モードから静止モード、シングルユー
ザ モード、またはオンライン モードへ移るたびに実行される自動フォールト トレラン
ト機能です。自動機能であるため、高速復旧ではユーザによる管理作業はまったく必要
ありません。
高速復旧処理では、データベース サーバが最後にオフライン モードになったとき、非
制御状態でオフライン モードになったかどうかが検査されます。非制御状態でオフライ
ンになったことがわかった場合は、データベース サーバに対して高速復旧が行われ、物
理的および論理的に一貫した状態に戻されます。
データベース サーバが制御状態でオフラインになったことがわかった場合、高速復旧プ
ロセスは終了し、データベース サーバがオンライン モードになります。
高速復旧の動作は、直前のチェックポイントがフル チェックポイントであったか、ファ
ジー チェックポイントであったかによって異なります。このセクションでは、両方の種
類のチェックポイント後の高速復旧について説明します。446 ページの『フル チェック
ポイント後の高速復旧について』および 448 ページの『ファジー チェックポイント後
の高速復旧の詳細』を参照してください。
高速復旧の必要性
データベース サーバのメモリの内容が失われるような障害が発生した場合、高速復旧が
実行され、データベース サーバは物理的および論理的に一貫した状態に戻されます。例
えば、警告が出されることなく、オペレーティング システムに障害が発生したとしま
444
IBM Informix Dynamic Server 管理者ガイド
す。この場合、システム障害によってデータベースが破損することはありませんが、障
害が発生した時点に進行中であったトランザクションが影響を受けます。
高速復旧が開始されるタイミング
管理者が、データベース サーバをオフライン モードから静止モード、シングルユーザ
モード、またはオンライン モードにすると、高速復旧が必要かどうかが常に検査されま
す。
共有メモリの初期化時に、物理ログの内容が検査されます。データベース サーバが制御
状態で停止した場合、物理ログは空になっています。オンライン モードから静止モード
に移行するときはチェックポイント処理が実行され、物理ログがフラッシュされます。
したがって、物理ログにページがある場合、データベース サーバが非制御状態でオフラ
インになったことを意味し、高速復旧が開始されます。
高速復旧とバッファ付きロギング
データベースでバッファ付きロギング (382 ページの『バッファ付きトランザクション
ログ機能』を参照) を使用している場合、障害が発生した時に、コミットされたトラン
ザクションに関連する論理ログ レコードが論理ログに書き込まれないことがあります。
この場合、高速復旧ではこれらのトランザクションを復元できません。高速復旧で復元
できるのは、ディスク上の論理ログに、関連付けられた COMMIT レコードが格納され
ているトランザクションに限られます。このため、バッファ付きロギングを使用する場
合には、パフォーマンスとデータの安全性とのトレードオフが生じます。
高速復旧における物理ログ オーバーフローの可能性
高速復旧中に、物理ログがオーバーフローする場合があります。このような状況が発生
する場合には、物理ログ領域が plog_extend.servernum という名前のディスク ファイル
に拡張されます。このファイルのデフォルトの格納場所は $INFORMIXDIR/tmp で
す。
パラメータ ONCONFIG の PLOG_OVERFLOW_PATH は、このファイルの作成位置
を定義するのに使用されます。
高速復旧の際に最初のチェックポイント処理が実行されると、データベース サーバは、
plog_extend.servernum を削除します。
ロギングを使用しない場合の高速復旧
ロギングが使用されていないデータベースまたは表では、データベースは高速復旧によ
って最新のチェックポイントの状態に戻されます。最新のチェックポイント以降に行わ
れたデータベースの変更は、すべて失われます。ディスクにまだフラッシュされていな
いファジー操作 (挿入、削除、更新) も失われます。
第 16 章 物理ロギング、チェックポイント、および高速復旧
445
フル チェックポイント後の高速復旧について
ここでは、フル チェックポイント後の高速復旧について説明します。( 448 ページの
『ファジー チェックポイント後の高速復旧の詳細』も参照。)
共有メモリの初期化時に、データベース サーバは高速復旧により一貫した状態に戻され
ます。一貫した状態とは、コミットされたトランザクションがすべて復元され、コミッ
トされていないトランザクションがすべてロールバックされた状態をいいます。
高速復旧には、次の 2 段階があります。
v 物理ログを使用して、物理的な整合性 のある状態であることが判明している最新の
時点、つまり最新のチェックポイントにデータベース サーバが戻されます。
v 論理ログ ファイルを使用して、最新のチェックポイント以降にコミットされたトラ
ンザクションがすべてロールフォワードされるとともに、完了していないトランザク
ションがすべてロールバックされます。これにより、データベース サーバは論理的
一貫性 のある状態に戻されます。
高速復旧は次の手順で実行されます。
1. 物理ログ内のデータを使用して、ディスク ページが最新のチェックポイント時の状
態にすべて戻されます。
2. 論理ログ ファイルに記録された、最新のチェックポイントが検索されます。
3. 最新のチェックポイント レコード以降に書き込まれた論理ログ レコードが、すべて
ロールフォワードされます。
4. 論理ログに、関連付けられたレコード COMMIT またはレコード BEGCOM がない
トランザクションがロールバックされます。
トランザクションをコミットされると、データベース サーバによりレコード
BEGCOM が書き込まれます。詳細については、「IBM Informix: Dynamic Server 管
理者の参照」の論理ログ レコードの章を参照してください。
以降のセクションで、それぞれの手順について詳しく説明します。
最新のチェックポイントの状態への復帰
まず、ディスク ページがすべて最新のチェックポイント時の状態に戻され、物理ログに
格納されている更新前イメージが、共有メモリに書き込まれてからディスクに戻されま
す。物理ログ内の各更新前イメージには、チェックポイント後に更新されたページのア
ドレスが含まれています。物理ログ内の各更新前イメージ ページを共有メモリに書き込
んでからディスクに戻すと、最新のチェックポイント以降に行われたデータベース サー
バのデータの変更が取り消されます。図 75 は、この処理を示しています。
これで、データベース サーバは物理的な整合性のある状態になりました。
446
IBM Informix Dynamic Server 管理者ガイド
図 75. 物理ログに残存する更新前イメージのディスクへの書込み
論理ログ内のチェックポイント レコードの検索
次に、論理ログ内の最新のチェックポイント レコードのアドレスが検索されます。最新
のチェックポイント レコードはディスク上の論理ログに必ず存在します。
論理ログ レコードのロールフォワード
高速復旧の 3 番目の処理として、最新のチェックポイント レコード以降に書き込まれ
た論理ログ レコードがロールフォワードされます。この処理により、最新のチェックポ
イント以降、非制御状態で停止した時点までに行われたデータベースの変更が、すべて
再現されます。図 76 は、この処理を示しています。
DB
図 76. 最新のチェックポイント以降に書き込まれた論理ログ レコードのロールフォワード
不完全なトランザクションのロールバック
高速復旧の最後の処理では、システム障害が発生した時点でコミットされていなかった
トランザクションの論理ログ レコードが、すべてロールバックされます。コミットされ
たトランザクションはすべてロールフォワードされ、コミットされていないトランザク
ションはすべてロールバックされるため、データベースはすべて論理的一貫性のある状
態となります。
例外としては、2 相コミットの第 1 段階を完了したトランザクションがあります。詳し
くは、563 ページの『2 相コミット プロトコルによる障害の対処方法』を参照してくだ
さい。
第 16 章 物理ロギング、チェックポイント、および高速復旧
447
1 つ以上のトランザクションが、複数のチェックポイントにわたってコミットされない
ままになることがあります。そのため、このロールバック処理では、最新のチェックポ
イント レコードから逆方向に論理ログが読み込まれることがあります。論理ログ ファ
イルは、そのファイルに含まれるトランザクションがすべてクローズされるまで解放さ
れません。そのため、実行中のトランザクションのレコードが含まれている論理ログ フ
ァイルは、すべてデータベース サーバで利用できます。図 77 は、ロールバック処理を
示しています。高速復旧が完了すると、データベース サーバは静止モード、シングルユ
ーザ モード、またはオンライン モードに戻ります。
DB
A
図 77. 不完全なすべてのトランザクションのロールバック
ファジー チェックポイント後の高速復旧の詳細
このセクションでは、ファジー チェックポイント後に発生するデフォルトの高速復旧方
式について説明します。復旧のロールフォワード (ログ再実行) 時に、データベース サ
ーバがファジー チェックポイントに物理ロギングできるようにして、復旧時間を減らす
のに使用できる 2 つの構成パラメータの詳細については、 452 ページの『ファジー操作
の代替高速再開復旧オプション』を参照してください。
高速復旧には、次の 3 段階があります。
v 物理ログを使用して、データベース サーバが最新のチェックポイントに戻されま
す。ファジー操作による変更では、ページの更新前イメージが物理ログに記録されま
せん。そのため、高速復旧のこの時点ではデータベース サーバが物理的に一貫して
いないことがあります。
v 論理ログ レコードが処理されます。処理が開始されるのは、前のチェックポイント
のログ レコードからではありません。まだディスクにフラッシュされていない、最
も早い時期に行われた更新から処理されます。
v 論理ログ ファイルを使用して、最新のチェックポイント以降にコミットされたトラ
ンザクションがすべてロールフォワードされるとともに、完了していないトランザク
ションがすべてロールバックされます。これにより、データベース サーバは論理的
一貫性 のある状態に戻されます。
次の手順では、これらの段階を詳細に説明します。
448
IBM Informix Dynamic Server 管理者ガイド
1. 物理ログ内のデータを使用して、非ファジー操作が行われたディスク ページが最新
のチェックポイント時の状態に戻されます。
2. まだディスクにフラッシュされていない、最も早い時期に行われた更新が論理ログの
中で検索されます。
3. 最新のチェックポイント以前に行われたファジー操作のログ レコードが適用されま
す。
4. 最新のチェックポイント レコード以降に書き込まれた論理ログ レコードが、すべて
ロールフォワードされます。
5. 論理ログに、関連付けられたレコード COMMIT またはレコード BEGIN COMMIT
がないトランザクションがロールバックされます。
ファジー チェックポイント処理後の高速復旧は、フル チェックポイント処理後の高速
復旧より時間がかかりますが、最適化することができます。詳しくは、「IBM Informix:
Dynamic Server パフォーマンス ガイド」を参照してください。
非ファジー操作ページの最新のチェックポイント状態への復帰
まず、非ファジー操作が行われたすべてのディスク ページが最新のチェックポイント時
の状態に戻されます。同時に、物理ログに格納された更新前イメージが共有メモリに書
き込まれた後、ディスクに戻されます。物理ログ内の各更新前イメージには、チェック
ポイント後に更新されたページのアドレスが含まれています。物理ログ内の各更新前イ
メージ ページを共有メモリに書き込んでからディスクに戻すと、最新のチェックポイン
ト以降に行われたデータベース サーバのデータの変更が取り消されます。図 78 は、こ
の処理を示しています。
図 78. 物理ログ内の非ファジー更新前イメージのディスクへの書込み
ファジー操作による変更が行われたページについては、物理ログに更新前イメージが記
録されません。そのため、それらのページは物理的な整合性のある状態になっていませ
ん。最新のチェックポイントがファジー チェックポイントであった場合、ファジー操作
によって変更されたページはディスクにフラッシュされません。各ページの更新前イメ
ージは、DB 領域ディスクに格納されたままになっています。ファジー チェックポイン
トより前に行われたこれらのページの変更は、次の手順で説明するとおり、論理ログを
使用して元に戻されます。
第 16 章 物理ロギング、チェックポイント、および高速復旧
449
論理ログで最も早い時期に行われた更新の検索
これ以後、高速復旧は最新のチェックポイントからではなく、最も早い時期に行われた
更新から開始されます。この手順では、最新のチェックポイント処理でディスクにフラ
ッシュされなかった、最も早い時期に行われた更新のレコードが論理ログ中で検索され
ます。最も早い時期に行われた更新のレコードは、論理ログ内の LSN (Log Sequence
Number: ログ シーケンス番号) を使用して検索されます。図 79 は、論理ログ内の最も
早い時期に行われた更新レコードが、チェックポイントをいくつかさかのぼったところ
にあり、それ以降のログ レコードがすべて適用される様子を示しています。
DB
図 79. 論理ログ内の最も早い時期に行われた更新レコードの検索
LSN では、ログ内を 1 つの論理ログ ファイルおよび 2 つのチェックポイントより前
にさかのぼることはできません。各ファジー チェックポイントで、データベース サー
バは最も早い時期の LSN より前のタイムスタンプのページを書き込み、次の LSN へ
移動します。
最も早い時期に行われた更新のレコードが含まれる論理ログは、変更がディスクにフラ
ッシュされるまで解放できません。過去のレコードを使用した高速復旧処理により問題
が発生することを防ぐため、自動的にフル チェックポイント処理が実行されます。
ファジー操作のログ レコードの適用
次に、最も早い時期に行われた更新以降、最新のチェックポイントまでに行われたファ
ジー操作のログ レコードが処理されます。データの変更を表すログ レコードがディス
ク上にない場合、ディスク上の変更前のデータは、変更後のデータに置き換えられませ
ん。
ファジー操作のログ レコードが適用されるかどうかは、ファジー操作によって変更され
たページに、すでに更新が適用されたかどうかによって異なります。論理ログ レコード
のタイムスタンプがディスク ページのタイムスタンプより新しい場合は、そのレコード
が適用されます。そうでない場合、そのレコードはスキップされます。
図 80 は、チェックポイント以前のファジー レコードが処理される様子を示していま
す。
450
IBM Informix Dynamic Server 管理者ガイド
DB
図 80. ファジー操作のログ レコードの適用
論理ログ レコードのロールフォワード
次に、最新のチェックポイント以降のすべての論理ログ レコードが処理されます。高速
復旧では、最新のチェックポイント レコード以降に書き込まれた論理ログ レコード
は、ロールフォワードされます。この処理により、最新のチェックポイント以降、デー
タベース サーバが非制御状態で停止した時点までに行われたデータベースの変更がすべ
て再現されます。図 81 は、ファジー チェックポイント以降のレコードがすべてロール
フォワードされる様子を示しています。
DB
図 81. 最新のファジー チェックポイント以降に書き込まれた論理ログ レコードのロールフォワー
ド
不完全なトランザクションのロールバック
高速復旧の最後の処理として、システム障害が発生したときコミットされていなかった
トランザクションの論理ログ レコードがすべてロールバックされます。このロールバッ
ク処理により、すべてのデータベースが一貫した状態となります。
1 つ以上のトランザクションが、複数のチェックポイントにわたってコミットされない
ままになることがあります。そのため、このロールバック処理では、最新のチェックポ
イント レコードから逆方向に論理ログが読み込まれることがあります。ログ ファイル
は、そのファイルに含まれるトランザクションがすべてクローズされるまで解放されま
せん。そのため、実行中のトランザクションのレコードが含まれている論理ログ ファイ
ルは、すべてデータベース サーバで利用できます。図 82 に、ロールバック処理を示し
第 16 章 物理ロギング、チェックポイント、および高速復旧
451
ます。高速復旧が完了すると、データベース サーバは静止モード、シングルユーザ モ
ード、またはオンライン モードになります。
DB
図 82. 不完全なすべてのトランザクションのロールバック
ファジー操作の代替高速再開復旧オプション
上で説明したデフォルトの復旧操作より高速の復旧操作が必要な場合は、
FAST_RESTART_PHYSLOG および FAST_RESTART_CKPT_FUZZYLOG 構成パラメー
タを使用できます。これらのパラメータは、復旧のロールフォワード (ログ再実行) 時
に、データベース サーバがファジー チェックポイントに物理ロギングできるようにし
て、復旧時間を減らします。
データベース サーバがオンラインのときは、次のようにします。
v FAST_RESTART_PHYSLOG 構成パラメータを 1 に設定して物理ロギングを有効に
します。このパラメータは、バッファ プールが物理バッファ サイズより 25% 以上
大きい場合にのみ使用します。バッファ プールは、復旧時に読み取られる物理ロ
グ、ログ ページ、およびその他のページを保持できる大きさでなければなりませ
ん。
バッファ プールが正しく構成されていないと、高速復旧のパフォーマンスは低下し
ます。
v FAST_RESTART_CKPT_FUZZYLOG 構成パラメータを 1 に設定し、使用済みページ
の表レコードをチェックポイントの物理ログにフラッシュできるようにします。
ファジー チェックポイントを使用する場合は、いずれかまたは両方のパラメータを使用
できます。両方のパラメータのデフォルト値は 0 (オフ) です。
データベース サーバの稼働中にパラメータを有効化にする場合にのみ、
FAST_RESTART_PHYSLOG および FAST_RESTART_CKPT_FUZZYLOG パラメータに
よって復旧パフォーマンスが向上します。これらのパラメータは、データベース サーバ
がシャットダウンしているときに有効化しても有効になりません。
データベース サーバが FAST_RESTART_PHYSLOG パラメータを使用するときに実行
される追加の物理ロギングは、実行時パフォーマンスに影響を与えます。実行時パフォ
452
IBM Informix Dynamic Server 管理者ガイド
ーマンスを低下させないようにする場合、またはバッファ サイズを増やさないようにす
る場合は、FAST_RESTART_CKPT_FUZZYLOG パラメータを使用して復旧時間を減ら
します。
FAST_RESTART_PHYSLOG は、有効化すると即時に有効になります。ただし、次のチ
ェックポイント処理が実行される前にデータベース サーバに障害が発生すると、データ
ベース サーバはチェックポイント間隔ですべてのファジー更新をログに記録していない
ため、最大の高速復旧パフォーマンスは得られません。
FAST_RESTART_CKPT_FUZZYLOG は、パラメータが有効化された後に実行されるチ
ェックポイント処理で有効になります。未フラッシュのファジー使用済みページの総数
が、総物理ログ領域の 20% を超すと、このページは物理ログに書き込まれなくなりま
す。
FAST_RESTART_PHYSLOG パラメータを 1 に設定して有効化した後に、オプションを
指定せずに oninit ユーティリティを使用して、高速復旧を開始できます。
第 16 章 物理ロギング、チェックポイント、および高速復旧
453
454
IBM Informix Dynamic Server 管理者ガイド
第 17 章 物理ログの管理
物理ログの格納場所とサイズの変更 . . . . . . . . . .
変更のための準備 . . . . . . . . . . . . . . .
十分な連続領域の確認 . . . . . . . . . . . . . .
テキスト エディタによる物理ログの格納場所とサイズの変更 .
onparams による物理ログの格納場所とサイズの変更 . . . .
ON-Monitor による物理ログの格納場所とサイズの変更 (UNIX)
物理ロギングと論理ロギングの動作の監視 . . . . . . . .
onstat -l 出力例 . . . . . . . . . . . . . . . .
チェックポイント情報の監視 . . . . . . . . . . . . .
フル チェックポイント処理の強制実行 . . . . . . . .
ファジー チェックポイント処理の強制実行 . . . . . . .
SMI 表の使用方法 . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
455
456
456
457
457
457
458
459
460
460
461
462
本章について
この章では次の手順について説明します。
v 物理ログの格納場所とサイズの変更
v 物理ログ、物理ログ バッファ、および論理ログ バッファの監視
v チェックポイント処理の監視と強制実行
必要な情報については、 431 ページの『第 16 章 物理ロギング、チェックポイント、お
よび高速復旧』を参照してください。
物理ログの格納場所とサイズの変更
物理ログの格納場所およびサイズは、次の方法で変更できます。
v テキスト エディタ、または ISA の使用による ONCONFIG ファイルの編集
v コマンド行でのユーティリティ onparams の使用方法
UNIX のみ
v ON–Monitor の使用
UNIX のみ の終り
変更を行う場合、UNIX ではユーザ informix、または root としてログインする必要が
あります。Windows では、Informix-Admin グループのメンバとしてログインする必要
があります。 次の各セクションで、これらの方法を個々に説明します。
© Copyright IBM Corp. 1996, 2004
455
物理ログのサイズまたは格納場所の変更を即時に有効にするには、データベース サーバ
を停止して再起動します。ユーティリティ onparam では、データベース サーバが自動
的に停止、再起動されます。
データベース サーバを再起動したら、即時にレベル 0 のバックアップを作成してくだ
さい。データベース サーバの復旧では、この格納領域のバックアップが必要となりま
す。
物理ログ ファイルを移動すると、パフォーマンスが向上することがあります。ディスク
領域を初期化すると、論理ログおよび物理ログ用に割り当てたディスク ページは、ルー
ト DB 領域に配置されます。物理ログ ファイル、論理ログ ファイル、またはその両方
のファイルをほかの DB 領域に移動すると、パフォーマンスが向上することがありま
す。
注: デフォルトでないページ サイズを持つ DB 領域に論理または物理ログを追加する
ことはできません。
物理ログの格納場所に関するヒントについては、435 ページの『物理ログの格納場所の
指定』を参照してください。物理ログのサイズ変更に関するヒントについては、434 ペ
ージの『物理ログのサイズと格納場所』を参照してください。物理ログについての詳細
は、458 ページの『物理ロギングと論理ロギングの動作の監視』を参照してください。
変更のための準備
物理ログに割り当てる領域は、連続している必要があります。次の状況でデータベース
サーバを停止し、再起動すると、致命的な共有メモリ エラーが発生します。
v 十分な連続領域がない DB 領域に物理ログを移動した場合
v 使用可能な連続領域を超えたログ サイズを指定した場合 (新しい値でデータベース
サーバを再起動すると、致命的な共有メモリ エラーが発生します)
このエラーが発生した場合は、物理ログのサイズを変更してください。または、十分な
連続領域のある別の DB 領域を選択してから、データベース サーバを停止し、再起動
してください。
十分な連続領域の確認
連続領域が十分あるかどうかを確認するには、oncheck のオプション -pe を使用しま
す。oncheck のオプション -ce と -pe を使用してチャンク フリー リストを確認する方
法については、「IBM Informix: Dynamic Server 管理者の参照」のユーティリティに関
する章を参照してください。
詳しくは、353 ページの『チャンクの監視』を参照してください。
456
IBM Informix Dynamic Server 管理者ガイド
テキスト エディタによる物理ログの格納場所とサイズの変更
物理ログの格納場所とサイズは、データベース サーバがオンライン モードになってい
る間に ONCONFIG ファイルを編集すると変更できます。
パラメータ
説明
PHYSFILE
物理ログ ファイルのサイズを KB 単位で指定します。
PHYSDBS
指定した DB 領域に物理ログを移動します。
変更は、データベース サーバを停止して再起動するまで有効になりません。その後、す
べての復旧機構を使用できるようにするため、即時にレベル 0 のバックアップを作成し
てください。
PHYSFILE および PHYSDBS については、「IBM Informix: Dynamic Server 管理者の参
照」の構成パラメータの章を参照してください。
onparams による物理ログの格納場所とサイズの変更
物理ログの格納場所とサイズを変更するには、データベース サーバを静止またはシング
ルユーザ モードにしてから次のコマンドを実行します。
onparams -p -s size -d dbspace -y
size
物理ログの新しいサイズです (単位: KB)。
dbspace
物理ログを配置する DB 領域を指定します。
次の例は、物理ログのサイズと格納場所を変更するものです。400KB の新しい物理ログ
を、DB 領域 dbspace6 に配置します。このコマンドでは、変更が即時に有効となるよ
う、次のようにオプション -y を使用して共有メモリも再初期化しています。
onparams -p -s 400 -d dbspace6 -y
データベース サーバを停止し再起動した後、すべての復旧機構を使用可能とするため、
レベル 0 のバックアップを作成してください。
ユーティリティ onparams による物理ログの変更については、「IBM Informix: Dynamic
Server 管理者の参照」のユーティリティの章を参照してください。
ON-Monitor による物理ログの格納場所とサイズの変更 (UNIX)
サイズか DB 領域の格納場所、またはその両方を変更するには、「Parameters」>
「Physical-Log」を選択します。
その後、すべての復旧機構を使用できるようにするため、即時にレベル 0 のバックアッ
プを作成してください。
第 17 章 物理ログの管理
457
物理ロギングと論理ロギングの動作の監視
チェックポイントの発生前に使用される物理ログ ファイルの割合を確認するには、物理
ログを監視します。この情報により、物理ログ ファイルの最適なサイズを知ることがで
きます。物理ログ ファイルのサイズは、強制的なチェックポイント処理が頻発しないよ
う、十分な大きさにしてください。その一方で、ディスク領域を節約して高速復旧を確
実に実行できるよう、なるべく小さくする必要があります。
物理ログ バッファと論理ログ バッファのサイズが現行の処理レベルに最適なものかど
うかを確認するには、物理ログ バッファと論理ログ バッファを監視します。監視する
必要がある統計情報は、ディスクへの書込み 1 回あたりのページ数です。物理ログ バ
ッファと論理ログ バッファの調整の詳細については、「IBM Informix: Dynamic Server
パフォーマンス ガイド」を参照してください。
物理ログ ファイル、物理ログ バッファ、および論理ログ バッファを監視するには、次
に示すコマンドを使用します。
ユーティリティ
コマンド
コマンド行または onstat -l
ISA
補足説明
最初の行には、物理ログ バッファごとに次の情報が表示されま
す。
v 使用されたバッファ ページの数 (bufused)
v ページ単位での各物理ログ バッファのサイズ (bufsize)
v バッファに書き込まれたページの数 (numpages)
v バッファからディスクへの書込み数 (numwrits)
v バッファに書き込まれたページと、ディスクへの書込み数と
の比率 (pages/IO)
2 行目には、物理ログに関する次の情報が表示されます。
v 物理ログ ファイル最初のページのページ番号 (phybegin)
v ページ単位での物理ログ ファイルのサイズ (physize)
v ページ番号で指定された、次の書込みが行われるログ ファイ
ル内の現在の位置 (physpos)
v ログ内で使用されているページの数 (phyused)
v 使用されている物理ログ ページの割合 (%used)
458
IBM Informix Dynamic Server 管理者ガイド
ユーティリティ
コマンド
補足説明
3 行目には、論理ログ バッファごとに次の情報が表示されま
す。
v 使用されたバッファ ページの数 (bufused)
v ページ単位での各論理ログ バッファのサイズ (bufsize)
v バッファに書き込まれたレコードの数 (numrecs)
v バッファに書き込まれたページの数 (numpages)
v バッファからディスクへの書込み数 (numwrits)
v バッファ内のレコードとページの比率 (recs/pages)
v バッファに書き込まれたページと、ディスクへの書込み数と
の比率 (pages/IO)
コマンド行または onparams -p
ISA
物理ログを移動、またはサイズ変更します。
コマンド行または onmode -l
ISA
次の論理ログ ファイルへ進みます。
ISA
「ログ」>「論理」
「ログ ファイルの切り替え」をクリックします。
onstat -l 出力例
図 83 に、物理ログ ファイルと論理ログ ファイルについての情報を示す onstat -l オプ
ションの出力例を示します。
Physical Logging
Buffer bufused bufsize numpages numwrits pages/io
P-2 0
16
110
10
11.00
phybegin physize phypos phyused %used
10003f 500
233
0
0.00
Logical Logging
Buffer bufused bufsize numrecs numpages numwrits recs/pages pages/io
L-1 0
16
3075
162
75
19.0
2.2
...
図 83. 物理ログと論理ログについての情報を示す onstat -l の出力
第 17 章 物理ログの管理
459
チェックポイント情報の監視
基本的なチェックポイント情報を収集して、チェックポイント処理状況を監視できま
す。 チェックポイント情報としては、スレッドがチェックポイント処理の完了を待った
回数などがあります。この情報は、チェックポイント間隔が適当かどうかを判断すると
きに有益です。チェックポイント間隔の調整の詳細については、「IBM Informix:
Dynamic Server パフォーマンス ガイド」を参照してください。
チェックポイントを監視するには、次のコマンドを使用します。
ユーティリティ
コマンド
コマンド行または onstat -m
ISA
補足説明
メッセージ ログ内の最新の 20 行が表示されます。
最新の 20 行の中にチェックポイント メッセージが含まれて
いない場合、テキスト エディタを使用してメッセージ ログを
直接読んでください。ログには、チェックポイント処理が終了
するとチェックポイント メッセージが書き込まれます。
チェックポイントが発生したとき、レコードを書き込むディス
ク ページがない場合には、メッセージはメッセージ ログに書
き込まれません。
コマンド行または onstat -p
ISA
次のチェックポイント統計情報を取得します。
v numckpts: データベース サーバがオンラインになった以降
に発生したチェックポイントの数。
v ckptwaits: ユーザ スレッドがチェックポイントの完了を待
った回数。データベース サーバは、チェックポイント処理
中にユーザ スレッドがクリティカル セクションに入らない
ようにします。
ON–Monitor
(UNIX)
「Status」>
「Profile」
フィールド Checkpoints とフィールド Check Waits に表示さ
れる情報は、onstat -p オプションのフィールド numckpts お
よびフィールド ckpwaits に表示される情報と同一のもので
す。
フル チェックポイント処理の強制実行
フル チェックポイントを強制実行するには、次のいずれかのコマンドを実行します。
460
IBM Informix Dynamic Server 管理者ガイド
ユーティリティ
コマンド
コマンド行または onmode -c
ISA
補足説明
なし
ISA
「ログ」>「論理」
「チェックポイントの強制」をクリックします。
ON–Monitor
(UNIX)
メインメニューの
「Force-Ckpt」オプシ
ョン
チェックポイント処理が実行されるまでフィールド Last
Checkpoint Done の値は変わりません。したがって、フィー
ルド Last Checkpoint Check には、最新のチェックポイン
ト処理の時間が表示されます。 最新のチェックポイント以
降に変更が行われていない場合、チェックポイント処理は実
行されません。
フル チェックポイント処理は、次のいずれかの状況で強制実行する必要があります。
v 最新のチェックポイント レコードが含まれており、バックアップは作成されている
がまだ解放されていない論理ログ ファイル、つまり、onstat のオプション -l で示さ
れる状態が U-B-L または U-B である論理ログ ファイルを解放するとき。
v onmode -sy オプションを実行してデータベース サーバを静止モードにする前。
v 大型インデックスの作成後、次のチェックポイント処理までにデータベース サーバ
が終了したとき。インデックスの作成は次回データベース サーバを初期化したとき
に再開されます。
v データベース サーバの処理に割り込む可能性のあるシステム操作を実行する前、長
時間にわたってチェックポイント処理が実行されていない場合。
v フォアグラウンド書込みで予想以上に多くのリソースが使用されるとき。チェックポ
イント処理を強制実行すると、フォアグラウンド書込みによるリソース使用量をしば
らくの間ゼロにすることができます。
v コマンド dbexport を実行するか、表をアンロードする前。フル チェックポイント処
理の強制実行により、データをエクスポートまたはアンロードする前に全データの物
理的な整合性を維持できます。
v PUT 文または INSERT 文を使用して、大量の表をロードした場合。
表のロードにより、バッファ キャッシュが使用されるため、チェックポイント処理
を強制実行してバッファ キャッシュをクリアします。
ファジー チェックポイント処理の強制実行
ファジー チェックポイントを強制実行するには、コマンド onmode -c fuzzy を実行し
ます。
第 17 章 物理ログの管理
461
SMI 表の使用方法
物理ログ バッファと論理ログ バッファについての統計情報を取得するには、sysprofile
表に問合せを行います。sysprofile 表には、onstat のオプション -p を使用して収集で
きるチェックポイント統計情報と同じものも格納されます。これらの行には、次の統計
情報が格納されます。
462
行
説明
plgpagewrites
物理ログ バッファに書き込まれたページの数
plgwrites
物理ログ バッファから物理ログ ファイルへの書込み数
llgrecs
論理ログ バッファに書き込まれたレコード数
llgpagewrites
論理ログ バッファに書き込まれたページの数
llgwrites
論理ログ バッファから論理ログ ファイルへの書込み数
numckpts
データベース サーバがオンラインになった以降に発生したチェックポ
イントの数
ckptwaits
チェックポイントが完了するまでに、スレッドがクリティカル セクシ
ョン に入ることができなかった回数
value
numckpts フィールドと ckptwaits フィールドの値
IBM Informix Dynamic Server 管理者ガイド
第 4 部 フォールト トレランス (耐故障性)
© Copyright IBM Corp. 1996, 2004
463
464
IBM Informix Dynamic Server 管理者ガイド
第 18 章 ミラーリング
ミラーリング . . . . . . . . . . .
ミラーリングの利点 . . . . . . . .
ミラーリングのコスト . . . . . . .
ミラーリングを使用しない場合の動作 . .
ミラーリングすべきデータ . . . . .
その他のミラーリング方法 . . . . .
論理ボリューム マネージャ . . . .
ハードウェア ミラーリング . . . .
外部バックアップおよび外部復元 . .
ミラーリング プロセス . . . . . . . .
ミラー チャンクの作成 . . . . . . .
ミラー状態フラグ . . . . . . . .
復旧 . . . . . . . . . . . . .
処理中の動作 . . . . . . . . . .
ミラー チャンクへのディスク書込み .
ミラー チャンクからのディスク読込み
メディア障害の検出 . . . . . . .
チャンクの復旧 . . . . . . . .
ミラーリングを停止した場合の動作 . .
ミラー チャンクの構造 . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
465
466
466
466
467
467
468
468
468
468
469
469
470
470
470
470
471
471
471
472
本章について
この章では、データベース サーバのミラーリング機能について説明します。ミラーリン
グ タスクの実行方法の手順については、 473 ページの『第 19 章 ミラーリングの使用
方法』を参照してください。
ミラーリング
ミラーリングとは、定義された DB 領域、BLOB 領域、または SB 領域の主チャンク
を、同じサイズのミラー チャンク とペアにする方法です。
主チャンクに書込みを行うと、自動的にミラー チャンクにも同じ内容が書き込まれま
す。図 84 はこの概念を示しています。ミラーリングを行っていれば、主チャンクに障
害が発生しても、主チャンクが復旧されるまでミラー チャンクに対して読込みと書込み
を行うことができます。データへのユーザ アクセスは中断されません。
© Copyright IBM Corp. 1996, 2004
465
図 84. 主チャンクとミラー チャンクの両方にデータが書き込まれる仕組み
ネットワーク経由で管理するディスクのミラーリングはサポートされていません。同じ
データベース サーバ インスタンスで、ミラー セットのすべてのチャンクを管理する必
要があります。
ミラーリングの利点
メディアに障害が発生した場合、ミラーリングを行っていれば、データベース サーバの
管理者はデータベース サーバをオフラインに移行せずにデータを復旧できます。 この
機能により、信頼性が向上し、システムのダウン時間が少なくなります。また、主チャ
ンクが障害が発生したメディアに存在していても、ミラー チャンクが別のメディアに存
在していれば、アプリケーションはデータベースへの読込みと書込みを続行できます。
重要なデータベースはすべて、ミラーリングされた DB 領域に配置する必要がありま
す。特に、データベース サーバの予約ページを含むルート DB 領域は、ミラーリング
する必要があります。
ミラーリングのコスト
ミラーリングには、ディスク領域とパフォーマンスに関連するコスト (欠点) が伴いま
す。ディスク領域に関連する欠点は、ミラー データを格納するときに追加領域が必要に
なることです。パフォーマンスに関連する欠点は、主チャンクとミラー チャンクの両方
に書き込まなければならないためパフォーマンスが低下することです。ディスクの書込
みに複数の仮想プロセッサを使用すると、このパフォーマンスの低下を抑えることがで
きます。分割読込み を使用すると、データはチャンク内のデータの格納場所に基づいて
主チャンクまたはミラー チャンクから読み込まれるため、読取り専用データを読み込む
ときのパフォーマンスは、実際には向上します。データベース サーバによるミラー チ
ャンクへの読込みと書込みの方法についての詳細は、470 ページの『処理中の動作』を
参照してください。
ミラーリングを使用しない場合の動作
DB 領域をミラーリングしないと、メディア障害の後、頻繁に格納領域のバックアップ
から復元する必要が生じます。
466
IBM Informix Dynamic Server 管理者ガイド
ミラー チャンクでメディア障害が発生すると、データベース サーバは停止チャンクが
再びオンラインになるまで、まだオンラインのチャンクからのみ読込みを行います。こ
れに対し、ミラーリングされてた チャンクが停止すると、そのチャンクに格納されてい
るデータにはアクセスできなくなります。チャンクに論理ログ ファイル、物理ログ、ま
たはルート DB 領域が含まれていると、データベース サーバは即時にオフラインにな
ります。チャンクに論理ログ ファイル、物理ログ、またはルート DB 領域が含まれて
いないと、データベース サーバは操作を続行できますが、スレッドは停止チャンクから
の読込みや書込みを行うことができません。ミラーリングされていないチャンクが停止
した場合は、バックアップから DB 領域を復旧してそのチャンクを復元する必要があり
ます。
ミラーリングすべきデータ
理想的には、すべてのデータをミラーリングすべきです。ただし、ディスク領域に制限
がある場合は、これを実行することはできません。この場合は、特定の重要なチャンク
を選択してミラーリングを行います。
重要なチャンクとしては、常にルート DB 領域に属するチャンク、論理ログ ファイル
を格納するチャンク、物理ログを格納するチャンクなどがあります。これらの重要チャ
ンクのうちのいずれかに障害が発生すると、データベース サーバは即時にオフラインに
移行します。
基幹業務データを保持するチャンクがある場合も、これらのチャンクを優先的にミラー
リングする必要があります。
また、頻繁に使用するデータを格納するチャンクを優先的にミラーリングする必要があ
ります。このようにすれば、広く使用されているチャンクの 1 つに障害が発生しても、
多くのユーザのアクティビティが停止されることはありません。
その他のミラーリング方法
このマニュアルで説明するミラーリングは、データベース サーバの機能です。オペレー
ティング システムまたはハードウェアに、ほかのミラーリング機能が用意されているこ
とがあります。
データベース サーバのミラーリングの代わりに、オペレーティング システムのミラー
リング機能を検討する場合は、どちらを使用するかを決める前に両方の機能の実装方法
を比較してください。特に、ミラーリング プロセスでは、ディスクへの実際のデータの
書込みに最も時間がかかるということに注意してください。データベース サーバのミラ
ーリングは、ミラー チャンクへの書込みを並列処理することで、この手順に必要な時間
を削減しています。(470 ページの『ミラー チャンクへのディスク書込み』を参照。)
さらに、分割読込みの使用により、読込みのパフォーマンスが向上します。(470 ページ
の『ミラー チャンクからのディスク読込み』を参照。) 並列ミラー書込みや分割読込み
を使用しないオペレーティング システムのミラーリング機能は、パフォーマンスが劣る
場合があります。
第 18 章 ミラーリング
467
データベース サーバのミラーリングとオペレーティング システムのミラーリングを同
時に実行できます。それぞれが独立して実行されます。データベース サーバのミラーリ
ングとオペレーティング システムのミラーリングの両方を使用しても構いません。例え
ば、単一のディスク ドライブにデータベース サーバ データとそのほかのデータの両方
を持っているとします。そのほかのデータのミラーリングにオペレーティング システム
のミラーリングを使用し、データベース サーバ データのミラーリングにデータベース
サーバのミラーリングを使用することも考えられます。
論理ボリューム マネージャ
代替的なミラーリング ソリューションとしては、論理ボリューム マネージャがありま
す。一部のオペレーティング システムのベンダは、このタイプのユーティリティを利用
して、複数のディスクを 1 つのファイル システムとして扱っています。データを複数
のディスクに保存すると、メディア障害からの保護は強化されますが、書込みが多くな
るためパフォーマンスは低下します。
ハードウェア ミラーリング
また、RAID (低コスト ディスクの冗長配列) などのようなハードウェア ミラーリング
を使用する方法もあります。このタイプのハードウェア ミラーリングの利点は、メディ
ア障害を防ぐため同量のデータを格納する場合に、データベース サーバのミラーリング
よりも要求されるディスク領域の量が少ないことです。
一部のハードウェア ミラーリング システムは、ホット スワップ をサポートしていま
す。このシステムでは、データベース サーバをオンライン モードにした状態で、不良
ディスクを交換できます。ホット スワップを実行する前に、入出力動作を減らすようお
勧めします。
重要: ハードウェア ミラーリングの使用中にデータベース サーバで問題が発生した場
合は、オペレーティング システム マニュアルまたはディスク マニュアルを参照
するか、弊社テクニカル サポートにお問い合わせください。
外部バックアップおよび外部復元
ハードウェア ディスク ミラーリングを使用する場合、外部バックアップと復元を行う
ほうが、標準的なコマンド ON–Bar を使用するよりもシステムをより早くオンラインに
戻すことができます。外部バックアップおよび復元の詳細については、「IBM Informix:
バックアップおよび復元 ガイド」を参照してください。
ミラーリング プロセス
ここでは、ミラーリング プロセスについて詳しく説明します。ミラー チャンクの作
成、ミラーリングの開始、ミラー チャンクの状態の変更などのミラーリング処理を実行
する方法については、 473 ページの『第 19 章 ミラーリングの使用方法』を参照してく
ださい。
468
IBM Informix Dynamic Server 管理者ガイド
ミラー チャンクの作成
ミラー チャンクを指定すると、データベース サーバは主チャンクのすべてのデータを
ミラー チャンクにコピーします。このコピー処理は、復旧 と呼ばれます。ミラーリン
グは、復旧が完了すると即時に開始されます。
ミラーリングの開始を示す復旧手順は、論理ログ ファイルを含む DB 領域内のチャン
クをミラーリングする場合は遅延されます。論理ログ ファイルを含む DB 領域内のミ
ラーリングは、ルート DB 領域のレベル 0 バックアップを作成するまで開始されませ
ん。これらの論理ログ ファイルを含んでいる主チャンクが DB 領域の復元中に使用不
可能になっても、この遅延があるため、データベース サーバはミラーリングされた論理
ログ ファイルを確実に使用できます。
レベル 0 バックアップでは、新しいミラー チャンクに関する情報など、最新のデータ
ベース サーバ構成情報が、ルート DB 領域の予約ページからバックアップにコピーさ
れます。データ復元を実行するとき、主チャンクが使用できないと、バックアップ開始
時の最新構成情報に基づいて、論理ログ ファイルのミラー コピーが検索されます。こ
の新しい格納領域バックアップ情報が存在しないと、ミラーリングされたログ ファイル
は利用できません。
同じ理由から、DB 領域バックアップの作成中は、論理ログ ファイルを含む DB 領域
をミラーリングできません。新規情報は DB 領域バックアップ テープの最初のブロッ
クに必ずコピーされなければなりませんが、いったんバックアップが始まると、コピー
はできません。
ミラー チャンクの作成については、 473 ページの『第 19 章 ミラーリングの使用方
法』を参照してください。
ミラー状態フラグ
DB 領域、BLOB 領域、および SB 領域には、ミラーリングされているかどうかを示す
状態フラグがあります。
ミラーリングを開始する前に、ルート DB 領域のレベル 0 バックアップを実行する必
要があります。
チャンクには、次の情報を示す状態フラグがあります。
v 主チャンクとミラー チャンクの区別
v オンライン状態のチャンク、停止状態のチャンク、ルート DB 領域のレベル 0 バッ
クアップを必要とする新規ミラー チャンク、または復旧処理中のチャンクの区別
これらのチャンク状態フラグの説明については、「IBM Informix: Dynamic Server 管理
者の参照」にあるユーティリティの章の onstat -d オプションの説明を参照してくださ
い。これらの状態フラグの表示方法については、353 ページの『ディスクの使用状況の
監視』を参照してください。
第 18 章 ミラーリング
469
復旧
データベース サーバは、ミラー チャンクを復旧する場合、ミラーリングの開始時に使
用した手順と同じ復旧手順を実行します。ミラー復旧プロセスは、両方のチャンクが同
じ状態になるまで、データを既存のオンライン チャンクから修復済みの新しいチャンク
にコピーし続けます。
復旧を開始すると、データベース サーバは停止チャンクを復旧モードに置いてオンライ
ン チャンクの情報を復旧チャンクにコピーします。復旧が完了すると、チャンクは自動
的にオンライン状態に戻ります。ミラーリングされたペアの主チャンクを復旧する場合
と、ミラー チャンクを復旧する場合は同じ手順を実行します。
ヒント: 復旧処理中でも、オンライン チャンクを使用できます。復旧チャンクにコピー
したページにデータを書き込むと、データベース サーバは、復旧プロセスを続
行する前に復旧チャンク上の対応するページを更新します。
停止チャンクを復旧する方法については、480 ページの、ミラー チャンクの復旧に関す
る情報を参照してください。
処理中の動作
ここでは、ミラー チャンクに対するディスク入出力と、ミラー チャンクのメディア障
害がどのように処理されるかについて詳しく説明します。
ミラー チャンクへのディスク書込み
データベース サーバの処理中、変更が発生するたびに 2 つの並列書込みが行われ、ミ
ラーリングが実行されます。主チャンクへの書き込みおよびミラー チャンクへの書き込
みです。
ミラー チャンクからのディスク読込み
データが 2 つのバージョンとして別々のディスクに常駐しているため、データベース
サーバは、ミラーリングを使用して読込みのパフォーマンスを向上させます。データ ペ
ージのアドレスがどちらのチャンクに含まれているかによって、データ ページは主チャ
ンクまたはミラー チャンクから読み込まれます。この機能は、分割読込み と呼ばれま
す。 分割読込みにより、ディスクのシーク時間が短くなってパフォーマンスが向上しま
す。ディスクのシーク時間が短くなるのは、ディスク ヘッドの最大移動距離が半分にな
るためです。図 85 に分割読込みを示します。
470
IBM Informix Dynamic Server 管理者ガイド
図 85. 分割読込みによりディスク ヘッドの最大移動距離が短くなる仕組み
メディア障害の検出
データベース サーバは、最初にチャンクをオープンしたとき、および読込みや書込みを
行った後に戻りコードを検査します。主チャンクまたはミラー チャンクのデバイス障害
が検出されると、チャンク状態フラグが停止 (D) に設定されます。チャンク状態フラグ
については、469 ページの『ミラー状態フラグ』を参照してください。
主 (またはミラー) チャンクのデバイスに障害が検出されても、オンライン チャンクに
対する読込みと書込みは続行されます。これは、管理者が意図的に片方のチャンクを停
止状態にした場合にもあてはまります。
管理者が停止チャンクを復旧してオンライン状態に戻すと、読込みは主チャンクとミラ
ー チャンクに分割され、書込みは両方のチャンクに行われます。
チャンクの復旧
非同期入出力を使用することにより、チャンクの復旧に必要な時間は最小化されます。
オンライン チャンクからの読込みは、停止チャンクへの書込みとオーバーラップでき、
2 つのプロセスを順番に行う必要がありません。つまり、読込みを行うスレッドは、書
込みを行うスレッドが終了するまで待たずに、続けてデータを読み込むことができま
す。
ミラーリングを停止した場合の動作
ミラーリングを終了すると、データベース サーバは即時にミラー チャンクを解放し
て、その領域を再割当てに使用できるようにします。ミラーリングを終了させるアクシ
ョンは、数秒程度で終了します。
ミラーリングの終了後にルート DB 領域のレベル 0 バックアップを作成して、更新済
みのミラー チャンク情報を格納する予約ページを、バックアップに必ずコピーします。
このようにすると、復旧プロシジャで、ミラーリングされたデータがまだ使用可能であ
ると想定されることを防止できます。
第 18 章 ミラーリング
471
ミラー チャンクの構造
ミラー チャンクには、次のように、主チャンクと同じ制御構造があります。
v BLOB 領域オーバーヘッド ページが含まれている BLOB 領域チャンクのミラー
v DB 領域オーバーヘッド ページが含まれている DB 領域チャンクのミラー
v メタデータ ページが含まれている SB 領域のミラー
これらの構造については、「IBM Informix: Dynamic Server 管理者の参照」の、ディス
ク構造と記憶域の章の、ミラー チャンクの構造のセクションを参照してください。
353 ページの『チャンクの監視』に説明されているいずれかの方法によるディスク領域
の使用状況の表示では、主チャンクに未使用領域がある場合でも、常にミラー チャンク
が作成限界であることを示します。ミラー チャンクが作成限界 であるということは、
チャンク内の領域が主チャンクのミラーとしてのみ使用できるということを意味しま
す。主チャンクとミラー チャンクが両方ともオンライン状態の場合に限り、チャンクは
作成限界の状態になっています。
主チャンクが停止状態になってミラー チャンクが主チャンクになると、ディスク領域の
再割当てレポートは、新しい主チャンクの使用率を正確に示します。
472
IBM Informix Dynamic Server 管理者ガイド
第 19 章 ミラーリングの使用方法
データのミラーリングの準備 . . . . . . . . . . . . . . . . . . . .
構成パラメータ MIRROR の有効化. . . . . . . . . . . . . . . . . .
ON-Monitor による MIRROR パラメータの変更 (UNIX) . . . . . . . . . .
ミラーリングされたデータ用のディスク領域の割当て . . . . . . . . . . .
チャンクのリンク (UNIX) . . . . . . . . . . . . . . . . . . . .
ディスク障害発生後のチャンクとデバイスの再リンク . . . . . . . . . .
ミラーリングの使用方法 . . . . . . . . . . . . . . . . . . . . .
初期化時のルート DB 領域のミラーリング . . . . . . . . . . . . . .
ミラーリング状態の変更 . . . . . . . . . . . . . . . . . . . .
ミラーリングの管理 . . . . . . . . . . . . . . . . . . . . . . .
ミラーリングされていない格納領域のミラーリングの開始 . . . . . . . . .
onspaces を使用したミラーリングされていない DB 領域のミラーリングの開始 .
ISA を使用するミラーリングの開始 . . . . . . . . . . . . . . .
ON-Monitor を使用したミラーリングされていない DB 領域のミラーリングの開始
新しい格納領域のミラーリング開始 . . . . . . . . . . . . . . . .
onspaces を使用した新しい領域のミラーリングの開始 . . . . . . . . .
ISA を使用した新しい領域のミラーリングの開始 . . . . . . . . . . .
ON-Monitor を使用した新しい DB 領域のミラーリングの開始 (UNIX) . . . .
ミラー チャンクの追加 . . . . . . . . . . . . . . . . . . . . .
onspaces を使用したミラー チャンクの追加 . . . . . . . . . . . . .
ISA を使用したミラー チャンクの追加 . . . . . . . . . . . . . .
ON-Monitor を使用したミラー チャンクの追加 (UNIX) . . . . . . . . .
ミラー チャンクの停止 . . . . . . . . . . . . . . . . . . . . .
onspaces を使用したミラー チャンクの停止 . . . . . . . . . . . . .
ON-Monitor を使用したミラー チャンクの停止 (UNIX) . . . . . . . . .
ミラー チャンクの復旧 . . . . . . . . . . . . . . . . . . . . .
onspaces を使用したミラー チャンクの復旧 . . . . . . . . . . . . .
ISA を使用したミラー チャンクの復旧 . . . . . . . . . . . . . .
ON-Monitor を使用したミラー チャンクの復旧 (UNIX) . . . . . . . . .
ミラーリングの終了 . . . . . . . . . . . . . . . . . . . . . .
onspaces を使用したミラーリングの終了 . . . . . . . . . . . . . .
ON-Monitor を使用したミラーリングの終了 (UNIX) . . . . . . . . . .
ISA を使用したミラーリングの終了 . . . . . . . . . . . . . . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
(UNIX)
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
474
474
475
475
475
475
476
477
477
477
477
478
478
478
478
479
479
479
479
479
479
480
480
480
480
480
480
480
481
481
481
481
481
本章について
この章では、データベース サーバのミラーリング機能を使用するときに必要となる、さ
まざまなミラーリング関連タスクについて説明します。まず、データをミラーリングす
るときに必要な手順の概要を説明します。
© Copyright IBM Corp. 1996, 2004
473
データのミラーリングの準備
ここでは、ミラーリング機能を有効化していないデータベース サーバでデータのミラー
リングを開始する方法を説明します。
データのミラーリングの準備:
1. データベース サーバをオフラインにし、ミラーリングを有効化します。
474 ページの『構成パラメータ MIRROR の有効化』を参照してください。
2. データベース サーバをオンラインに戻します。
3. ミラー チャンク用のディスク領域を割り当てます。
ディスク領域の割当ては、次の手順でのミラー チャンクの指定前ならば、いつでも
行うことができます。ミラー チャンクは、対応する主チャンクとは異なるディスク
上に割り当てる必要があります。475 ページの『ミラーリングされたデータ用のディ
スク領域の割当て』を参照してください。
4. ミラーリングする DB 領域、BLOB 領域、または SB 領域を選択します。次に、そ
の領域内にある主チャンクごとにミラー チャンクのパス名とオフセットを指定しま
す。
この手順が終了すると、ミラーリング プロセスが開始されます。ミラーリングする
格納領域すべてについて、この手順を繰り返し実行します。476 ページの『ミラーリ
ングの使用方法』を参照してください。
構成パラメータ MIRROR の有効化
ミラーリングを有効化すると、ミラーリング タスクに必要なデータベース サーバの機
能が起動されます。ただし、ミラーリングを有効化してもミラーリング プロセスが開始
されるわけではありません。ミラーリングは、DB 領域、BLOB 領域、または SB 領域
に対してミラー チャンクを作成するまでは開始されません。476 ページの『ミラーリン
グの使用方法』を参照してください。
ルート DB 領域のミラーをデータベース サーバの初期化時に作成する場合は、データ
ベース サーバを初期化するときにミラーリングを有効化してください。そうでなけれ
ば、ミラーリングは無効のままにしておきます。格納領域を後からミラーリングする場
合は、構成パラメータ MIRROR の値を変更するとミラーリングを有効化できます。
データベース サーバのミラーリングを有効化するには、ONCONFIG 内のパラメータ
MIRROR を 1 に設定する必要があります。MIRROR のデフォルト値は 0 で、ミラー
リングが無効であることを示します。
ミラーリングを使用しない場合は、MIRROR パラメータを 1 に設定しないでくださ
い。
474
IBM Informix Dynamic Server 管理者ガイド
MIRROR の値を変更するには、データベース サーバがオンライン モードのときにテキ
スト エディタまたは ISA を使用して ONCONFIG ファイルを編集します。ファイル
ONCONFIG の編集後、データベース サーバをオフライン モードにしてから静止モー
ドに移行し、変更を有効にします。
ON-Monitor による MIRROR パラメータの変更 (UNIX)
ミラーリングを有効化するには、「Parameters」>「Initialize」を選択します。
「Mirror」フィールドに Y と入力します。ESC キーを押すと、変更が記録されます。
最後の画面が終了すると、続行するかどうかを確認するプロンプトが表示されます。続
行を選択すると、データベース サーバのディスク領域が初期化され、既存のデータはす
べて廃棄されます。したがって、このプロンプトには N (いいえ) と応答してくださ
い。
警告: このプロンプトに対して Y (はい) と応答すると、既存のデータはすべて失われま
す。
データベース サーバをオフライン モードにしてから静止モードに移行し、変更を有効
にします。
ミラーリングされたデータ用のディスク領域の割当て
ミラー チャンクを作成するには、事前にミラー チャンク用のディスク領域を割り当て
る必要があります。ミラー チャンクとしては、フォーマットされていないディスク領
域、またはクックド ファイル領域のいずれかを割り当てることができます。ディスク領
域の割当てについては、314 ページの『ディスク領域の割当て』を参照してください。
ミラー チャンク用のディスク領域は必ず、対応する主チャンクとは異なるディスク上に
割り当ててください。理想的なのは、コントローラが異なるディスクに割り当てること
です。ディスクが異なっていれば、主チャンクが存在するディスクに障害が発生した場
合にも、ミラー チャンクにアクセスできます。逆の場合も同様です。
チャンクのリンク (UNIX)
ミラー チャンクの実際のファイルまたはロウ デバイスをミラー パス名にリンクするに
は、UNIX のコマンド link (ln) を使用します。ディスクに障害が発生した場合に新しい
ファイルまたはロウ デバイスをパス名にリンクできるため、障害のあるディスクを物理
的に交換することなく、チャンクをオンラインに戻すことができます。
ディスク障害発生後のチャンクとデバイスの再リンク
UNIX プラットフォームでは、実際のミラー ファイルまたはロウ デバイスがあるディ
スクに障害が発生した場合、チャンクをほかのディスク上にあるファイルまたはロウ デ
第 19 章 ミラーリングの使用方法
475
バイスに再リンクできます。これにより、障害が発生したディスクをオンライン モード
に戻すことなくミラー チャンクを復旧させることができます。以下に、再リンク用の標
準的な UNIX コマンドの例を示します。
既存の設定では、主ルート チャンクとミラー ルート チャンクは次のとおり実際のロウ
ディスク デバイスにリンクされています。
ln -l
lrwxrwxrwx 1 informix 10 May 3 13:38 /dev/root@->/dev/rxy0h
lrwxrwxrwx 1 informix 10 May 3 13:40 /dev/mirror_root@->/dev/rsd2b
ロウ デバイス /dev/rsd2b が存在するディスクに障害が発生したとします。この場合、
まずコマンド rm を使用して対応するシンボリック リンクを削除してください。
rm /dev/mirror_root
次に、動作しているディスク上のロウ ディスク デバイスにミラー チャンクのパス名を
再リンクし、チャンクを復旧させます。
ln -s /dev/rab0a /dev/mirror_root
ミラーリングの使用方法
DB 領域、BLOB 領域、または SB 領域にある主チャンクのミラー チャンクを作成す
ると、ミラーリングが開始されます。
ミラー チャンクを作成すると、データベース サーバにより主チャンクのデータがミラ
ー チャンクにコピーされます。このプロセスが完了すると、データのミラーリングが開
始されます。主チャンクに論理ログ ファイルが含まれている場合、ミラー チャンクを
作成してもデータは即時にコピーされません。データは、レベル 0 バックアップを実施
したときにコピーされます。この動作については、469 ページの『ミラー チャンクの作
成』を参照してください。
重要: ミラーリングは、DB 領域、BLOB 領域、または SB 領域の全体に対して開始す
る必要があります。DB 領域、BLOB 領域、または SB 領域にある特定のチャン
クを選択してミラーリングすることはできません。領域内のすべてのチャンクに
対してミラー チャンクを作成する必要があります。
次の操作を実施すると、格納領域のミラーリングが開始されます。
v システムを初期化するとき、ミラーリングされたルート DB 領域を作成する。
v DB 領域を、ミラーリングされていない状態からミラーリングされた状態に変更す
る。
v ミラーリングされた DB 領域、BLOB 領域、または SB 領域を作成する。
これらのいずれの操作でも、格納領域にある既存のチャンクに対してミラー チャンクを
作成する必要があります。
476
IBM Informix Dynamic Server 管理者ガイド
初期化時のルート DB 領域のミラーリング
データベース サーバを初期化するときにミラーリングを有効化する場合、ルート チャ
ンクに対するミラー チャンクのパス名およびオフセットも指定できます。データベース
サーバを初期化すると、ミラー チャンクが作成されます。ただし、ルート チャンクに
は論理ログ ファイルが含まれているため、実際にはレベル 0 バックアップを実施する
までミラーリングは開始されません。
ルート チャンクに対するミラー パス名とオフセットを指定するには、データベース サ
ーバを起動する前に ONCONFIG ファイル内のパラメータ MIRRORPATH および
MIRROROFFSET の値を設定します。
ミラー パス名とオフセットを指定しないままルート DB 領域のミラーリングを開始す
るには、データベース サーバを一度初期化した後に、ルート DB 領域のミラーリング
状態を変更する必要があります。
ミラーリング状態の変更
ミラー チャンクの状態は、次の 2 とおりに変更できます。
v ミラー チャンクをオンラインから停止状態にする。
v ミラー チャンクを停止状態から復旧させる。
チャンクを停止したり復旧したりすることができるのは、チャンクがミラーリングされ
たペアの片方となっている場合のみです。主チャンクまたはミラー チャンクは、いずれ
も停止できます。ただし、他方のチャンクがオンラインであるときに限ります。
チャンク状態の判断方法については、353 ページの『ディスクの使用状況の監視』を参
照してください。
ミラーリングの管理
ミラーリングの管理には、onspaces ユーティリティを使用します。UNIX では、
ON–Monitor を使用してミラーリングを管理することもできます。ユーティリティ
onspaces の構文の詳細については、「IBM Informix: Dynamic Server 管理者の参照」の
ユーティリティに関する章を参照してください。
ミラーリングされていない格納領域のミラーリングの開始
DB 領域、BLOB 領域、および SB 領域に対するミラー チャンクは、いつでも作成で
きます。 ただし、レベル 0 バックアップを実行するまでミラーリングは開始されませ
ん。
第 19 章 ミラーリングの使用方法
477
onspaces を使用したミラーリングされていない DB 領域のミラーリングの開
始
DB 領域、BLOB 領域、または SB 領域のミラーリングを開始するには、ユーティリテ
ィ onspaces を使用します。例えば、次の onspaces コマンドを実行すると、data1 と
data2 という 2 つのチャンクを含む DB 領域 db_project のミラーリングが開始されま
す。
onspaces -m db_project¥
-p /dev/data1 -o 0 -m /dev/mirror_data1 0¥
-p /dev/data2 -o 5000 -m /dev/mirror_data2 5000
次の例は、sp1 と呼ばれる DB 領域のミラーリングをオンにする方法を示します。コマ
ンドまたはファイル内のいずれかで、主パス、主オフセット、ミラー パス、およびミラ
ー オフセットを指定できます。
onspaces -m sp1 -f mirfile
mirfile ファイルには次の行が含まれています。
/ix/9.3/sp1 0 /ix/9.2/sp1mir 0
この行では、/ix/9.3/sp1 が主パス、0 が主オフセット、/ix/9.3/sp1mir がミラー パス、
そして 0 がミラー オフセットを表します。
ISA を使用するミラーリングの開始
ISA を使用してミラーリングを開始するには、次のようにします。
1. 「ストレージ」>「チャンク」を選択します。
2. DB 領域名を選択し、「ミラーリングの開始」をクリックします。
ON-Monitor を使用したミラーリングされていない DB 領域のミラーリングの
開始 (UNIX)
DB 領域のミラーリングを開始するには、「Dbspaces」>「Mirror」を使用します。
ミラーリングする DB 領域を選択するには、その DB 領域にカーソルを合わせ、Ctrl
キーを押しながら B を押します。「Mirror」を使用すると、DB 領域内のチャンクごと
に画面が表示されます。この画面では、ミラー パス名とオフセットを入力できます。各
チャンクのミラー パス名とオフセットを入力したら、Esc キーを押し、画面を終了しま
す。データベース サーバにより新しいミラー チャンクが復旧され、主チャンクからミ
ラー チャンクへデータがコピーされます。チャンクに論理ログ ファイルが含まれてい
る場合は、レベル 0 バックアップを作成するまで復旧は行われません。
新しい格納領域のミラーリング開始
新しい DB 領域、BLOB 領域、または SB 領域を作成したときにミラーリングを開始
することもできます。
478
IBM Informix Dynamic Server 管理者ガイド
onspaces を使用した新しい領域のミラーリングの開始
ミラーリングされた DB 領域を作成するには、ユーティリティ onspaces を使用しま
す。例えば、次のコマンドを実行すると、初期チャンク /dev/chunk1 とミラー チャン
ク /dev/mirror_chk1 を持つ DB 領域 db_acct が作成されます。
onspaces -c -d db_acct -p /dev/chunk1 -o 0 -s 2500 -m /dev/mirror_chk1 0
別の方法として、「ユーティリティ別インデックス」>「onspaces」>「-m」を選択し、
ミラーリングを開始することもできます。
ISA を使用した新しい領域のミラーリングの開始
ISA を使用して新しい格納領域のミラーリングを開始するには、次のようにします。
1. 「ストレージ」>「領域」を選択します。
2. 「DB 領域の追加」、「BLOB 領域の追加」、または「SB 領域の追加」をクリック
します。
3. ミラー チャンクのパスとオフセットを入力します。
ON-Monitor を使用した新しい DB 領域のミラーリングの開始 (UNIX)
ミラーリングされた DB 領域を作成するには、「Dbspaces」>「Create」を選択しま
す。表示された画面では、新しい DB 領域の主チャンクのパス名、オフセット、サイ
ズ、ミラー チャンクのパス名、オフセットを指定できます。
ミラー チャンクの追加
ミラーリングされた DB 領域、BLOB 領域、SB 領域にチャンクを追加する場合、対応
するミラー チャンクも追加する必要があります。
onspaces を使用したミラー チャンクの追加
DB 領域、BLOB 領域、または SB 領域に主チャンクとミラー チャンクを追加するに
は、ユーティリティ onspaces を使用します。次のコマンドを実行すると、DB 領域
db_acct にチャンク chunk2 が追加されます。この DB 領域はミラーリングされている
ため、ミラー チャンク mirror_chk2 も追加されます。
onspaces -a db_acct -p /dev/chunk2 -o 5000 -s 2500
-m /dev/mirror_chk2 5000
ISA を使用したミラー チャンクの追加
ISA を使用してミラー チャンクを追加するには、次のようにします。
1. 「ストレージ」>「チャンク」を選択します。
2. DB 領域名を選択し、「チャンクの追加」をクリックします。
3. ミラー チャンクのパスとオフセットを入力します。
第 19 章 ミラーリングの使用方法
479
ON-Monitor を使用したミラー チャンクの追加 (UNIX)
ON–Monitor の「Dbspaces」>「Add-chunk」を選択します。表示される画面では、主チ
ャンクのパス名、オフセット、サイズ、ミラー チャンクのパス名およびオフセットを指
定できます。
ミラー チャンクの停止
ミラー チャンクが停止 しているときは、そのチャンクに対して書込み操作および読出
し操作を行うことができません。ミラー チャンクをほかのデバイスに再リンクするため
に、チャンクを停止することがあります。(475 ページの『ディスク障害発生後のチャン
クとデバイスの再リンク』を参照。)
チャンクを停止することは、ミラーリングを終了することとは異なります。ある DB 領
域全体のミラーリングを終了すると、その DB 領域に対するミラー チャンクはすべて
削除されます。
onspaces を使用したミラー チャンクの停止
チャンクを停止するには、ユーティリティ onspaces を使用します。次のコマンドを実
行すると、DB 領域 db_acct 内のチャンクが停止します。
onspaces -s db_acct -p /dev/mirror_chk1 -o 0 -D
ON-Monitor を使用したミラー チャンクの停止 (UNIX)
ON–Monitor を使用してミラー チャンクを停止するには、「Dbspaces」>「Status」を選
択します。停止するチャンクが含まれる DB 領域にカーソルを合わせ、F3 キーを押す
か、Ctrl キーを押しながら B を押します。画面に、DB 領域内のすべてのチャンクの
リストが表示されます。停止するチャンクにカーソルを合わせ、F3 キーを押すか、また
は Ctrl キーを押しながら B を押すと状態が変わります (チャンクが停止します)。
ミラー チャンクの復旧
オンライン モードのチャンク内でデータのミラーリングを開始するには、停止チャンク
を復旧させる必要があります。
onspaces を使用したミラー チャンクの復旧
停止チャンクを復旧させるには、ユーティリティ onspaces のオプション -s を使用しま
す。例えば、パス名 /dev/mirror_chk1、オフセット 0KB のチャンクを復旧させるに
は、次のコマンドを実行します。
onspaces -s db_acct -p /dev/mirror_chk1 -o 0 -O
ISA を使用したミラー チャンクの復旧
ISA を使用してミラー チャンクを復旧するには、次のようにします。
「ユーティリティ別インデックス」>「onspaces」>「-s」を選択します。
480
IBM Informix Dynamic Server 管理者ガイド
ON-Monitor を使用したミラー チャンクの復旧 (UNIX)
ON–Monitor を使用して停止チャンクを復旧するには、「Dbspaces」>「Status」を選択
します。
ミラーリングの終了
DB 領域、BLOB 領域、または SB 領域のミラーリングを終了すると、その領域のミラ
ー チャンクが即時解放されます。解放されたチャンクは、ほかの格納領域に割り当てる
ことができます。
UNIX 上のユーザ informix および root、または Windows 上の Informix-Admin グル
ープのメンバのみがミラーリングを終了できます。
DB 領域内のいずれかの主チャンクが停止しているときは、ミラーリングを終了できま
せん。ミラーリングを終了しても、システムはオンライン モードである可能性がありま
す。
onspaces を使用したミラーリングの終了
ミラーリングを終了するには、ユーティリティ onspaces を使用します。 例えば、ルー
ト DB 領域のミラーリングを終了するには、次のコマンドを実行します。
onspaces -r rootdbs
別の方法として、「ユーティリティ別インデックス」>「onspaces」>「-r」を選択し、
ミラーリングを終了することもできます。
ON-Monitor を使用したミラーリングの終了 (UNIX)
ON–Monitor を使用して DB 領域または BLOB 領域のミラーリングを終了するには、
「Dbspaces」>「Mirror」を選択します。表示された画面で、ミラーリングされた DB
領域または BLOB 領域を選択し、Ctrl キーを押しながら B キーを押すか、F3 キーを
押します。
ISA を使用したミラーリングの終了
ISA を使用してミラーリングを終了するには、次のようにします。
1. 「ストレージ」>「チャンク」を選択します。
2. DB 領域名を選択し、「ミラーリングの停止」をクリックします。
第 19 章 ミラーリングの使用方法
481
482
IBM Informix Dynamic Server 管理者ガイド
第 20 章 高可用性データ レプリケーション
高可用性データ レプリケーション . . . . . . . . . .
HDR モード . . . . . . . . . . . . . . . .
複製データの型 . . . . . . . . . . . . . . .
データ レプリケーションの利点 . . . . . . . . . .
主データベース サーバと副データベース サーバ . . .
HDR とミラーリングの相違点 . . . . . . . . .
HDR と 2 相コミットの相違点 . . . . . . . . .
HDR と エンタープライズ レプリケーション . . . .
HDR の動作 . . . . . . . . . . . . . . . . .
データの最初の複製方法 . . . . . . . . . . . .
主データベース サーバへの更新の複製方法 . . . . . .
ログ レコードを送る方法 . . . . . . . . . . .
HDR バッファ. . . . . . . . . . . . . . .
ログ レコードが送られるタイミング . . . . . . .
同期更新 . . . . . . . . . . . . . . . .
非同期更新 . . . . . . . . . . . . . . . .
HDR を処理するスレッド . . . . . . . . . . . .
データベース サーバ間のチェックポイント . . . . . .
データの同期性を追跡する方法 . . . . . . . . . .
HDR 障害 . . . . . . . . . . . . . . . . . .
HDR 障害の定義 . . . . . . . . . . . . . . .
HDR 障害の検出 . . . . . . . . . . . . . . .
HDR 障害の検出時に行われる処置 . . . . . . . . .
HDR 障害発生後注意事項 . . . . . . . . . . . .
副データベース サーバで障害が発生した場合の処置 . .
主データベース サーバで障害が発生した場合の処置 . .
データ レプリケーション クライアントのリダイレクトと接続
リダイレクトに対応するクライアントの設定 . . . . .
DBPATH を使用したクライアントの自動ダイレクト . . .
DBPATH リダイレクト方法の動作 . . . . . . . .
管理者が行うべき作業 . . . . . . . . . . . .
ユーザが行うべき作業 . . . . . . . . . . . .
接続情報を使用したクライアントのダイレクト . . . . .
接続情報を使用したリダイレクトの動作 . . . . . .
接続情報の変更 . . . . . . . . . . . . . .
データベース サーバへの接続 . . . . . . . . .
INFORMIXSERVER を使用したクライアントのダイレクト .
INFORMIXSERVER でのリダイレクト処理 . . . . .
管理者が行うべき作業 . . . . . . . . . . . .
ユーザが行うべき作業 . . . . . . . . . . . .
© Copyright IBM Corp. 1996, 2004
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
484
485
485
485
486
487
488
488
489
489
490
490
490
491
491
491
493
494
494
494
494
495
495
495
496
496
499
499
499
499
500
500
501
501
502
504
504
504
505
505
483
アプリケーション内でのリダイレクトの処理 . . . . . .
異なるリダイレクト機構の比較 . . . . . . . . . . .
HDR クライアントの設計 . . . . . . . . . . . . . .
主データベース サーバをアクセスするクライアントでのロック
副データベース サーバを使用するクライアントの設計 . . .
データ変更文の不使用 . . . . . . . . . . . . .
ロック レベルと排他レベル . . . . . . . . . . .
ソートと一時表用の一時 DB 領域の使用 . . . . . . .
. . . . . .
. . . . . .
. . . . . .
モード待機の設定
. . . . . .
. . . . . .
. . . . . .
. . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
505
506
507
507
508
508
509
509
本章について
データ レプリケーション とは、複数のサイトでデータベース オブジェクトを表すプロ
セスのことを指します。HDR (High-Availability Data Replication: 高可用性データ レプ
リケーション) によって、Dynamic Server の同期データ レプリケーションが可能にな
ります。ホット スタンバイが必要な場合に、HDR を使用します。
この章では、次の項目を扱います。
v HDR とは
v HDR の意味
v HDR による障害処理方法
v クライアントをリダイレクトして HDR ペア (レプリケーション ペア) の一方のデー
タベース サーバに接続できる仕組み
v 副データベース サーバに接続するアプリケーションを設計する場合の検討事項
511 ページの『第 21 章 高可用性データ レプリケーションの使用方法』では、HDR
の使用に関する管理タスクの実行手順が説明されています。
ヒント: 非同期データ レプリケーションを使用する場合は、「IBM Informix: Dynamic
Server エンタープライズ レプリケーション ガイド」を参照してください。
高可用性データ レプリケーション
データ レプリケーションの 1 つの方法として、あるデータベースを別のコンピュータ
にインストールされたデータベース サーバにコピーする方法があります。これにより、
元のデータベースを使用するクライアント アプリケーションを妨げずに、レポートがデ
ータにアクセスできます。
データベース サーバはデータベース サーバ全体のほぼ透過的なデータ レプリケーショ
ンを実現しています。1 つのデータベース サーバが管理するすべてのデータは、多くの
場合地理的に離れた場所にある別のデータベース サーバ上で複製され、動的に更新され
ます。HDR には、データベース サーバ全体のバックアップ コピーを管理する機能が
用意されており、致命的な障害が発生した場合でも、アプリケーションで即時にアクセ
スできます。
484
IBM Informix Dynamic Server 管理者ガイド
重要: HDR は、レプリケーション中はネットワーク暗号化をサポートしません。
HDR モード
次の表に、HDR モードを示します。
表 41.
HDR モード
説明
標準モード
HDR システムの一部ではありません。
基本モード
HDR システムの基本モード。データを更新できます。
副サーバ モード
HDR システムの副サーバ モード。データは更新できません
が、読み取ることができます。
標準モードで稼働するデータベース サーバ、または基本または副サーバ モードで稼働
する HDR データベース サーバは、静止やオンラインなどの、どのデータベース サー
バ動作モードでも稼働できます。動作モードについては、 109 ページの『データベース
サーバの動作モード』を参照してください。
複製データの型
HDR は、DB 領域および SB 領域のデータを複製します。HDR は、BLOB 領域のデー
タは複製しません。
HDR は、組込みデータ型および拡張データ型のすべてを複製します。ユーザ定義デー
タ型 (UDT) はログに記録され、1 つのデータベース サーバに常駐する必要がありま
す。列外れのデータを持つデータ型は、SB 領域または同じデータベース サーバ上の異
なるテーブルに格納されている場合、複製されます。SB 領域に蓄積されたデータを複
製する場合、SB 領域をログに記録する必要があります。
HDR は、オペレーティング システム ファイルや固定外部ファイル、またはユーザ定
義ルーチンに関連したメモリ オブジェクトに蓄積されたデータは複製しません。
ユーザ定義データ型、ユーザ定義ルーチン、および DataBlade モジュールには、特別な
インストールおよび登録要件があります。これらの手順については、489 ページの『デ
ータの最初の複製方法』を参照してください。
データ レプリケーションの利点
データ レプリケーションの利点は次のとおりです。
v データが複製されているサイトのクライアントは、ネットワーク経由で遠隔データベ
ース サーバに接続せずにデータへローカルにアクセスできるため、パフォーマンス
が向上します。
第 20 章 高可用性データ レプリケーション
485
v
すべてのサイトのクライアントに対する、複製されたデータの可用性を高めること
ができます。複製されたデータのローカル コピーを使用できない場合でも、クライ
アントはそのデータのリモート コピーを利用できます。
ただし、これらの利点には代償が伴います。データ レプリケーションでは、データを複
製しない場合よりも多くの記憶域が必要になり、複製したデータを更新するときは、単
一オブジェクトを更新する場合よりも処理時間が長くなります。
データ レプリケーションは、データを更新しなければならない場所を明示して、クライ
アント アプリケーションの論理で実現することもできます。ただし、この方法でデータ
レプリケーションを実現すると代償が大きくなり、エラーが発生しやすくなるだけでな
く管理も難しくなります。しかし、データ レプリケーションの概念には、多くの場合レ
プリケーションの透過性 が含まれます。レプリケーションの透過性は、クライアント
アプリケーションではなく、データのレプリカの配置と管理の細部を自動処理するデー
タベース サーバに組み込まれる機能です。
主データベース サーバと副データベース サーバ
データベース サーバのペアを構成して HDR を使用する場合は、一方を主 データベー
ス サーバ、他方を副 データベース サーバと呼びます。また、HDR を使用しないデー
タベース サーバのことを標準 データベース サーバと呼びます。
通常の操作では、クライアントは主データベース サーバに接続して、通常のデータベー
ス サーバとして使用できます。クライアントは、通常操作中に副データベース サーバ
を使用することもできますが、データの読取り専用です。副データベース サーバでは、
クライアント アプリケーションからの更新を受け付けません。
図 86 に示すように、副データベース サーバは主データベース サーバが管理するデー
タに対して行われた変更によって動的に更新されます。
図 86. HDR ペアを構成する主データベース サーバと副データベース サーバ
図 87 に示すように、HDR ペアの一方のデータベース サーバに障害が発生した場合
は、そのデータベース サーバを使用するクライアントをペアの他方のデータベース サ
ーバにリダイレクトすることができます。
486
IBM Informix Dynamic Server 管理者ガイド
図 87. 障害発生後の HDR ペアでのデータベース サーバとクライアント
主データベース サーバに障害が発生した場合は、副データベース サーバを標準データ
ベース サーバに変更して、更新内容を受け付けることができます。
HDR には次の機能があります。
v 一方のデータベース サーバに障害が発生した場合の迅速な復旧
v 2 つのデータベース サーバ間でのロード バランシング
HDR とミラーリングの相違点
HDR とミラーリングは、どちらもデータベース サーバのフォールト トレランスを向
上させる透過的な方法です。ただし、図 88 に示すように、両者は大きく異なります。
465 ページの『ミラーリング』で説明されているように、ミラーリングは単一のデータ
ベース サーバが、異なるディスク上にある特定の DB 領域のコピーを管理する機構で
す。これにより、ディスク障害が発生した場合にミラーリングされている DB 領域内が
保護されます。これは、データベース サーバが、両方のディスクのデータを自動的に更
新して、一方の DB 領域に障害が発生した場合に他方のディスクを自動的に使用するた
めです。
これに対して、HDR では、完全に独立したデータベース サーバ上で、指定の DB 領域
だけでなくデータベース サーバが管理するすべてのデータが複製されます。HDR には
2 つの独立したデータベース サーバが関与するため、ディスク障害だけでなく、コンピ
ュータの障害やサイト全体の破壊的な障害を含むすべてのデータベース サーバの障害に
対して、これらのデータベース サーバが管理するデータが保護されます。
第 20 章 高可用性データ レプリケーション
487
図 88. ミラーリングと HDR の比較
HDR と 2 相コミットの相違点
2 相コミット プロトコル (詳細は、 557 ページの『第 23 章 多相コミット プロトコ
ル』を参照) により、トランザクションは均一にコミットされるか、複数のデータベー
ス サーバにまたがってロールバックされます。
理論上は、2 相コミットを利用してデータを複製することもできます。これは、同じデ
ータを持つ 2 つのデータベース サーバを構成し、もう一方のデータベース サーバに更
新を複製するトリガを定義して行います。ただし、この種の実現方法では、さまざまな
障害状況での同期化という問題が多く発生します。また、分散トランザクションのパフ
ォーマンスは、HDR より劣ります。
HDR と エンタープライズ レプリケーション
HDR をエンタープライズ レプリケーションと結合すると、堅固なレプリケーション
システムを作成できます。HDR は、重要なレプリケーション ノードにバックアップ
データベース サーバを提供することにより、エンタープライズ システムの完全な接続
状態を確実に保ちます。
488
IBM Informix Dynamic Server 管理者ガイド
HDR とエンタープライズ レプリケーションを結合すると、主 HDR サーバのみがエン
タープライズ レプリケーション システムに接続されます。副 HDR サーバは、1 次
HDR サーバが故障しない限り、エンタープライズ レプリケーションに関与しません。
詳しくは、「IBM Informix: Dynamic Server エンタープライズ レプリケーション ガイ
ド」を参照してください。
HDR の動作
ここでは、HDR を実行するときにデータベース サーバが使用する機構について説明し
ます。HDR のセットアップ、開始、および管理の方法については、511 ページの『第
21 章 高可用性データ レプリケーションの使用方法』を参照してください。また、外部
バックアップおよび外部復元を使用する HDR ペアの初期化については、
「IBM Informix: バックアップおよび復元 ガイド」を参照してください。
データの最初の複製方法
データベース サーバは格納領域と論理ログ バックアップ (テープにバックアップされ
たもの、およびディスク上のもの) を使用して、一方のデータベース サーバから他方の
データベース サーバへの最初のデータ レプリケーションを行います。
データの複製方法:
1. ユーザ定義データ型、ユーザ定義ルーチン、および DataBlade モジュールを両方の
データベース サーバにインストールし、主データベース サーバにのみ登録します。
2. 2 つのデータベース サーバが管理する大量のデータを同じ内容にするために、主デ
ータベース サーバ上にあるすべての格納領域のレベル 0 バックアップを作成し、そ
のバックアップから、データ レプリケーション ペアの副データベース サーバにす
べての格納領域を復元します。
前の手順で格納領域バックアップから復元された副データベース サーバは、次に主
データベース サーバのバックアップ以降に生成されたすべての論理ログ ファイルを
読み込みます。
データベース サーバは、まずディスク上にないバックアップ済みの論理ログ ファイ
ルから論理ログ レコードを読み込み、次にディスク上の論理ログ ファイルから論理
ログ レコードを読み込みます。
上記手順の実行方法については、517 ページの『HDR を初めて起動する方法』を参照
してください。「IBM Informix: バックアップおよび復元 ガイド」では、ON–Bar を使
用してレプリケーションを初期化する方法を説明しています。
第 20 章 高可用性データ レプリケーション
489
最初の HDR は、格納領域バックアップを使用して実行する必要があります。onload や
onunload などのデータ移行ユーティリティを使用してデータを複製しても完全とはいえ
ません。HDR を実行するには、物理ページレイアウトが同じでなければならないため
です。
HDR を実行している場合、主データベース サーバはオンラインで、標準データベース
サーバと同じように更新と問合せを受け付けます。副データベース サーバは、論理復旧
モードにあって、ディスクへの書込み (ソートと一時表以外) を行う SQL 文を受け付け
ません。
主データベース サーバへの更新の複製方法
HDR では、主データベース サーバの論理ログ レコードを生成するごとに副データベ
ース サーバに送って、主データベース サーバの更新を副データベース サーバ上に再現
します。副データベース サーバは、主データベース サーバで生成された論理ログ レコ
ードを受け取って、DB 領域に適用します。
重要: トランザクション ロギングを使用してないデータベースに対する更新は、複製で
きません。
ログ レコードを送る方法
491 ページの図 89 に示すように、主データベース サーバが、共有メモリ内の論理ログ
バッファの内容をディスク上の論理ログにフラッシュし始めると、データベース サーバ
は主データベース サーバ上のデータ レプリケーション バッファ にも論理ログ バッフ
ァの内容をコピーします。主データベース サーバは、これらの論理ログ レコードを副
データベース サーバに送ります。
副データベース サーバは、主データベース サーバから論理ログ レコードを受け取り、
共有メモリ受取りバッファ に送ります。データベース サーバは、この受取りバッファ
のサイズを送られるデータ量に合わせて自動的に調整します。副データベース サーバ
は、論理復旧を使用して論理ログ レコードを適用します。
HDR バッファ
HDR バッファは、主データベース サーバが管理する仮想共有メモリの一部です。HDR
バッファでは、論理ログ レコードが主データベース サーバから副データベース サーバ
に送られる前にこれを処理します。HDR バッファは、論理ログ バッファと同じサイズ
です。図 89 はこの概念を示しています。
490
IBM Informix Dynamic Server 管理者ガイド
図 89. 論理ログ レコードを主データベース サーバから副データベース サーバへ送る方法
ログ レコードが送られるタイミング
主データベース サーバは、同期的 または非同期的 に、HDR バッファの内容を副デー
タベース サーバに送ります。データベース サーバが同期更新または非同期更新のどち
らを使用するかは、構成パラメータ ONCONFIG の DRINTERVAL の値によって決まり
ます。DRINTERVAL の詳細については、「IBM Informix: Dynamic Server 管理者の参
照」の構成パラメータに関する章を参照してください。
同期更新
DRINTERVAL を -1 に設定した場合、HDR は同期的 に実行されます。主データベー
ス サーバは、論理ログ バッファの内容を HDR バッファに書き込むと、ただちに、そ
れらのレコードを HDR バッファから副データベース サーバへ送ります。主データベ
ース サーバ上の論理ログ バッファのフラッシュは、副データベース サーバからレコー
ドを受け取ったことが主データベース サーバで確認されるまでは完了しません。
同期更新では、障害が発生した場合に、主データベース サーバで処理したトランザクシ
ョンが、副データベース サーバでコミットされていない状態または一部のみコミットさ
れた状態になることはありません。
非同期更新
DRINTERVAL を -1 以外の値に設定すると、データ レプリケーションは非同期的 に
実行されます。主データベース サーバは、論理ログ バッファの内容を HDR バッファ
にコピーした後でフラッシュします。このアクションとは関係なく、次の状態が発生し
た場合に、主データベース サーバはネットワーク経由で HDR の内容を送ります。
第 20 章 高可用性データ レプリケーション
491
v HDR バッファがフルになる。
v 最後のレコードが副データベース サーバに送られてから、主データベース サーバ上
の構成パラメータ DRINTERVAL で指定された時間間隔が経過する。
この更新方法では、同期更新よりもパフォーマンスが向上する場合があります。 ただ
し、次のセクションで説明するように、トランザクションが失われる可能性がありま
す。
遺失トランザクション: 非同期更新では、主データベース サーバ上のコミットされ
たトランザクションが、副データベース サーバに複製されない場合があります。このよ
うな状況は、主データベース サーバがコミットしたレコードを HDR バッファにコピ
ーした時点から、主データベース サーバがコミットしたレコードを副データベース サ
ーバに送る時点までの間に障害が発生した場合に発生します。
主データベース サーバに障害が発生した後に、副データベース サーバが標準データベ
ース サーバへと変更されると、実行中のトランザクションをロールバックします。これ
らのトランザクションには、主データベース サーバ側でコミットされたにもかかわら
ず、副データベース サーバ側ではコミット済みレコードを受け取っていないトランザク
ションが含まれます。結果として、トランザクションは、主データベース サーバではコ
ミットされ、副データベース サーバではコミットされないことになります。障害発生後
にデータ レプリケーションを再起動すると、データベース サーバは主データベース サ
ーバの論理復旧過程で失われたトランザクションからのすべての論理ログ レコードを、
構成パラメータ DRLOSTFOUND で指定されるファイルに格納します。図 90 は、この
プロセスを示しています。
図 90. 遺失トランザクション保管ファイルの使用方法
データ レプリケーションの再起動後に主データベース サーバを実行しているコンピュ
ータ上に遺失トランザクション保管ファイルが表示された場合は、トランザクションが
492
IBM Informix Dynamic Server 管理者ガイド
失われているので注意してください。副データベース サーバが標準データベース サー
バとして実行している間に矛盾した更新が行われた可能性があるため、データベース サ
ーバは遺失トランザクション保管ファイル内のトランザクション レコードを再適用でき
ません。
すべてのデータベース サーバでバッファなしロギングを使用することによって、同期モ
ードでデータ レプリケーションを実行しなくても、トランザクションが失われる可能性
を低くすることができます。この方法を使用すると、主データベース サーバがトランザ
クション レコードを書き込んでから、そのトランザクション レコードを副データベー
ス サーバに転送するまでの時間が短くなります。
HDR を処理するスレッド
データベース サーバは、データ レプリケーションをサポートする特殊スレッドを開始
します。図 91 に示すように、主データベース サーバ上のスレッド drprsend が、HDR
バッファの内容を、ネットワーク経由で副データベース サーバ上のスレッド drsecrcv
へ送ります。
図 91. データ レプリケーションを管理するスレッド
副データベース サーバ上のスレッド drsecapply が、受取りバッファの内容を復旧バッ
ファにコピーします。スレッド logrecvr (1 つ以上) が、副データベース サーバの管理
する DB 領域に論理ログ レコードを適用して、復旧バッファの内容で論理復旧を実行
します。構成パラメータ OFF_RECVRY_THREADS で、使用するスレッド logrecvr の
数を指定します。
データベース サーバが HDR 用に開始するスレッドとしては、スレッド drprping とス
レッド drsecping があり、2 つのデータベース サーバが接続していることを示すメッ
セージの送受信を行います。
第 20 章 高可用性データ レプリケーション
493
データベース サーバ間のチェックポイント
レプリケーション ペアのデータベース サーバ間のチェックポイントは、DRINTERVAL
の値に関係なく同期を取ります。(439 ページの『チェックポイント』を参照してくださ
い。) 主データベース サーバ上のチェックポイントは、副データベース サーバ上で完
了した後でのみ完了します。チェックポイントが構成パラメータ DRTIMEOUT で指定
した時間内で完了しないと、主データベース サーバでは、障害が発生したとみなされま
す。494 ページの『HDR 障害の定義』を参照してください。
ヒント: ペアになった両データベース サーバのオペレーティング システムの時間を同
期化し、両サーバの DRTIMEOUT を同じ値に設定します。
データの同期性を追跡する方法
同期性を追跡するために、ペアの各データベース サーバでは、その予約ページで次の情
報を記録します。
v 最後に完了したチェックポイントを含む論理ログ ファイルの ID 番号
v 論理ログ ファイル内のチェックポイント レコードの位置
v 送られた (または受け取った) 最後の論理ログ ファイルの ID 番号
v 送られた (または受け取った) 最後の論理ログ レコードのページ番号
データベース サーバは、この情報を内部的に使用してデータ レプリケーションを同期
化します。
HDR 障害
ここでは、HDR 障害の原因と結果、および管理者が障害の管理とデータ レプリケーシ
ョンの再起動を行うときのオプションについてそれぞれ説明します。
HDR 障害の定義
HDR 障害とは、レプリケーション ペアのデータベース サーバ間の接続が切断される
ことです。データ レプリケーション障害の原因としては、次の状況が考えられます。
v いずれかのデータベース サーバのサイトにおける壊滅的な障害 (火災や大地震など)
v 2 つのデータベース サーバを結合するネットワークケーブルの切断
v いずれかのデータベース サーバの処理の過度の遅延
v ミラー チャンクで解決されない副データベース サーバのディスク障害
ヒント: HDR 障害は、必ずしもいずれかのデータベース サーバで障害が発生したこと
を意味するわけではありません。2 つのデータベース サーバ間の HDR 接続が
失われたことを意味するのみです。
494
IBM Informix Dynamic Server 管理者ガイド
HDR 障害の検出
データベース サーバは、次のいずれかの状態を HDR 障害とみなします。
v
指定したタイムアウト値を超えた場合
HDR が正常に操作されている場合、ペアの一方のデータベース サーバは、他方のデ
ータベース サーバから通信の確認を待機します。ペアの各データベース サーバに
は、秒数を指定する ONCONFIG のパラメータ DRTIMEOUT があります。
DRTIMEOUT で指定した秒数内に、ペアの相手方データベース サーバから確認が戻
されない場合、データベース サーバは、HDR 障害が発生したものとみなします。
v ネットワーク上で周期的なメッセージ (ping) を送信しても、主と副のペアのうちの他
方のデータベース サーバが応答しない場合
データベース サーバは、主データベース サーバが副データベース サーバにレコー
ドを送るかどうかにかかわらず、相互に ping を送ります。主と副のペアのうちの一
方のデータベース サーバが連続して 4 回 ping に応答しない場合、他方のデータベ
ース サーバは、HDR 障害が発生したとみなします。
ペアの各データベース サーバは、パラメータ DRTIMEOUT でそのデータベース サ
ーバに指定された秒数が過ぎると、ペアの他方のデータベース サーバに ping を送り
ます。
HDR 障害の検出時に行われる処置
データベース サーバで HDR 障害が検出されると、メッセージ ログに「DR: エラーを
受信しました。」などのメッセージが書き込まれて、データ レプリケーションはオフに
なります。HDR 障害が発生すると、2 つのデータベース サーバ間の HDR 接続は削除
されて、副データベース サーバは読取り専用モードになります。
高可用性データ レプリケーション障害後に副データベース サーバがオンラインのまま
であり、DRAUTO 構成パラメータが 1 (RETAIN_TYPE) に設定されている場合、その
データベース サーバは、自動的に標準タイプになります。DRAUTO が 0 (オフ) に設
定されている場合、副データベース サーバは、繰り返し、主データベース サーバとの
通信を再確立しようとします。DRAUTO が 2 (REVERSE_TYPE) に設定されている場
合、副データベース サーバは、古い主サーバが再起動したときではなく、古い主サーバ
に障害が発生して接続が終了したときにすぐ主データベース サーバになります。
HDR 障害発生後注意事項
HDR 障害が発生したときは、次の項目について検討する必要があります。
v
クライアントによる障害への対応方法
障害が一時的なネットワークの遅延や障害ではなく、実際の障害である場合は、障害
が発生したデータベース サーバを使用しているクライアントをペアの他方のデータ
第 20 章 高可用性データ レプリケーション
495
ベース サーバにリダイレクト することができます。クライアントをリダイレクトす
る方法については、499 ページの『データ レプリケーション クライアントのリダイ
レクトと接続』を参照してください。
v データベース サーバによる障害への対応方法
HDR 障害発生後の管理上の処置は、主データベース サーバまたは副データベース
サーバのどちらで障害が発生したかによって異なります。このトピックの説明につい
ては、496 ページの『副データベース サーバで障害が発生した場合の処置』、およ
び 496 ページの『主データベース サーバで障害が発生した場合の処置』を参照して
ください。
クライアントをリダイレクトする場合は、追加クライアントが他方のデータベース
サーバに対してどのようなロードを行うかを検討する必要があります。論理ログに割
り当てた領域を増やしたり、論理ログ ファイルを頻繁にバックアップしたりする必
要がある場合もあります。
副データベース サーバで障害が発生した場合の処置
副データベース サーバで障害が発生しても、主データベース サーバはオンラインのま
まになっています。
499 ページの『データ レプリケーション クライアントのリダイレクトと接続』で説明
されている方法を使用して、副データベース サーバを使用するクライアントを主データ
ベース サーバにリダイレクトする必要があります。これらのクライアントをリダイレク
トする場合は、主データベース サーバに、一時表とソート用の一時 DB 領域を追加す
る必要があります。
主データベース サーバのタイプを標準に変更する必要はありません。
副データベース サーバでの障害発生後にデータ レプリケーションを再起動するには、
538 ページの『副データベース サーバに障害が発生した場合の再起動』の手順に従って
ください。
主データベース サーバで障害が発生した場合の処置
主データベース サーバで障害が発生した場合、副データベース サーバは、次の動作を
実行できます。
v 副データベース サーバは、論理復旧モードに留まることができます。この場合、処
置は取られません。これは、HDR 接続を即時に復元できる場合に適しています。
v 副データベース サーバは、自動的に標準データベース サーバになることができま
す。この操作は、自動切替え と呼ばれます。
v 手動切替え を使用して、データベース サーバを標準モードに変更する場合、副デー
タベース サーバは標準データベース サーバになることができます。
496
IBM Informix Dynamic Server 管理者ガイド
自動切替え: 自動切替えでは、HDR 障害を検出したら、副データベース サーバは、
自動的に標準データベース サーバになります。副データベース サーバは、実行中のト
ランザクションをロールバックしてから、標準データベース サーバとしてオンライン
モードになります。自動切替えが実行されるのは、副データベース サーバの
ONCONFIG ファイルのパラメータ DRAUTO が、1 (RETAIN_TYPE) または 2
(REVERSE_TYPE) に設定されている場合に限ります。
副データベース サーバが標準データベース サーバになるため、次のいずれかのことを
実行する必要があります。
v 論理ログ ファイルをバックアップしなくても処理が継続されるようにするために、
副データベース サーバが十分な論理ログ ディスク領域を持つようにする。
v 論理ログ ファイルをバックアップする。
自動切替えでは、データベース サーバのタイプが変更されるのみです。クライアント
アプリケーションは副データベース サーバにリダイレクトされません。クライアントの
リダイレクトについては、 499 ページの『データ レプリケーション クライアントのリ
ダイレクトと接続』を参照してください。
手動切替えに比べ、自動切替えには次の利点があります。
v 主データベース サーバから副データベース サーバにリダイレクトするクライアント
は、データの書込みと更新を継続して行うことができる。
v この切替えでは、メッセージ ログを監視して高可用性データ レプリケーション障害
の発生を確認し、副データベース サーバを標準データベース サーバに手動で切り替
えるオペレータは必要ない。
自動切替えの主な欠点は、適切に動作する非常に安定したネットワークが必要とされる
ことです。詳しくは、 498 ページの『高信頼度ネットワークが存在しない場合の自動切
替えの使用』を参照してください。
自動切替え後にデータ レプリケーションを再開するのに必要な方法については、 541 ペ
ージの『副データベース サーバが標準データベース サーバに自動的に変更された場
合』を参照してください。
自動切替え後に行われる操作: 元の主データベース サーバをオンラインに戻すこと
ができると、HDR 接続が自動的に確立されます。
v DRAUTO が RETAIN_TYPE に設定されている場合、標準データベース サーバに変
更された副データベース サーバは、通常終了 (このデータベース サーバに書き込む
可能性のあるすべてのクライアントが切断されないようにする) してから、副データ
ベース サーバに戻ります。
v DRAUTO が REVERSE_TYPE に設定されている場合、標準データベース サーバに
変更された副データベース サーバは、直接、主タイプになります。シャットダウン
第 20 章 高可用性データ レプリケーション
497
は実行されません。このデータベース サーバに接続していたすべてのアプリケーシ
ョンは接続されたままです。元の主データベース サーバは副データベース サーバに
切り替わります。
高信頼度ネットワークが存在しない場合の自動切替えの使用: 自動切替えが最善
のソリューションのようにみえるかもしれませんが、この切替えがすべての環境に適し
ているわけではありません。
実際には主データベース サーバには障害が発生していないにもかかわらず、副データベ
ース サーバには障害が発生しているようにみえる場合に、どのようなことになるか考え
てみます。例えば、ネットワークが低速であるか不安定なため、副データベース サーバ
が主データベース サーバに対してシグナル (ping) を送信しているにもかかわらず応答
がない場合、副データベース サーバは、主データベース サーバに障害が発生している
とみなして、自動的に標準タイプに切り替わります。主データベース サーバが副データ
ベース サーバに対してシグナルを送信しているにもかかわらず応答がない場合も、主デ
ータベース サーバは、副データベース サーバに障害が発生しているとみなして、デー
タ レプリケーションを停止しますが、オンライン モードのままです。この場合、主デ
ータベース サーバと副データベース サーバ (標準タイプに切り替わっている) の両方
ともオンライン モードになります。
クライアントが両方のデータベース サーバで独立にデータを更新できる場合、ペアにな
った各データベース サーバは、相手のサーバが必要とする論理ログ レコードを保有す
る状態になります。このような状況では、517 ページの『HDR を初めて起動する方
法』で説明しているように、最初からやり直して、1 つのデータベース サーバ全体のレ
ベル 0 の DB 領域バックアップを使用して、初期データ レプリケーションを実行する
必要があります。したがって、使用するネットワークが安定しているとはいえない場合
は、自動切替えを使用しないことをお勧めします。
手動切替え: 手動切替えとは、副データベース サーバの管理者が副データベース サ
ーバのタイプを標準タイプに変更することです。副データベース サーバは、実行中のト
ランザクションをロールバックしてから、標準データベース サーバとしてオンライン
モードになるため、クライアント アプリケーションから更新を受け付けることができま
す。切替えを実行する方法については、530 ページの『データベース サーバ タイプの
変更』を参照してください。
手動切替え後の再起動: 手動切替え後にデータ レプリケーションを再起動するため
の手順リストについては、 539 ページの『副データベース サーバが標準データベース
サーバに変更された場合』を参照してください。
副データベース サーバを標準に切り替えられない場合の再起動: 副データベー
ス サーバを標準に変更できない場合は、539 ページの『副データベース サーバが標準
データベース サーバに変更されなかった場合』の手順に従ってください。
498
IBM Informix Dynamic Server 管理者ガイド
データ レプリケーション クライアントのリダイレクトと接続
クライアントは、標準データベース サーバに接続する場合と同じ方法でレプリケーショ
ン ペアのデータベース サーバに接続します。これらの方法については、
「IBM Informix: SQL ガイド: 構文」の CONNECT 文と DATABASE 文の説明を参照
してください。
ペアの一方のデータベース サーバで障害が発生した後に、障害が発生したデータベース
サーバを使用するクライアントをリダイレクト することができます。クライアントをリ
ダイレクトしない場合もあります。例えば、データベース サーバが短時間で機能を再開
すると予測される場合は、クライアントをリダイレクトする必要はありません。
データベース サーバには、レプリケーション ペアの別のデータベース サーバにクライ
アント要求を送るための透過的な機構はありませんが、この処理をアプリケーション内
から自動化することができます。詳細については、505 ページの『アプリケーション内
でのリダイレクトの処理』を参照してください。IBM Informix Client Software
Developer's Kit に含まれるクライアント接続ドライバの一部には、リダイレクトを自動
化するための特定の機構があります。詳細については、IBM Informix Client Software
Developer's Kit のマニュアルを参照してください。
リダイレクトに対応するクライアントの設定
クライアント アプリケーションを設計する場合は、リダイレクト方法について決定しな
ければならないことがあります。具体的には、アプリケーション内でリダイレクトを処
理するかどうかを決定し、さらにどのリダイレクト機構を使用するかを決定する必要が
あります。次の 3 種類のリダイレクト機構があります。
v 環境変数 DBPATH による自動リダイレクト
v 接続情報を使用して管理者が制御するリダイレクト
v 環境変数 INFORMIXSERVER によるユーザ制御リダイレクト
使用する機構によって、アプリケーションで使用できる CONNECT 構文が決まりま
す。以下のセクションで、各リダイレクト機構について説明します。
DBPATH を使用したクライアントの自動ダイレクト
ここでは、環境変数 DBPATH を使用してクライアントをリダイレクトする場合の手順
と、この方法をサポートする接続方法について説明します。
DBPATH リダイレクト方法の動作
アプリケーションで CONNECT 文にデータベース サーバが明示的に指定されず、環境
変数 INFORMIXSERVER で指定されたデータベース サーバを使用できないと、クラ
イアントは環境変数 DBPATH を使用してデータベースおよびデータベース サーバを
探します。
第 20 章 高可用性データ レプリケーション
499
このため、レプリケーション ペアの一方のデータベース サーバが使用できない場合、
そのデータベース サーバを使用するアプリケーションでは、ペアの他方のデータベース
サーバに環境変数 DBPATH が設定されていれば、環境変数 INFORMIXSERVER を再
設定する必要はありません。環境変数 INFORMIXSERVER には通常使用するデータベ
ース サーバの名前を、環境変数 DBPATH にはペアのもう 1 つのデータベース サー
バの名前を含める必要があります。
例えば、アプリケーションがデータベース サーバ cliff_ol を使用していて、cliff_ol と
ペアを形成しているレプリケーション ペア内のデータベース サーバが beach_ol であ
る場合、これらのアプリケーションの環境変数は次のようになります。
INFORMIXSERVER cliff_ol
DBPATH
//beach_ol
環境変数 DBPATH は、アプリケーションが CONNECT 文を出した場合に必要に応じ
て読み込まれるのみであるため、リダイレクトを実行するためにはアプリケーションを
再起動する必要があります。
接続できたかどうかを検査して、接続できなかった場合は再接続を行うコードをアプリ
ケーションに含めることができます。アプリケーションにこのコードが含まれている場
合は、再起動する必要はありません。
このリダイレクト方法では、CONNECT TO database 文を使用できます。 この方法を
動作させるためには、次の文は使用できません。
v CONNECT TO DEFAULT
v CONNECT TO database@dbserver
v CONNECT TO @dbserver
CONNECT 文によってデータベース サーバが指定されると、アプリケーションは
DBPATH を使用しないため、このような制限があります。DBPATH の詳細について
は、「IBM Informix: SQL ガイド: 参照」を参照してください。
管理者が行うべき作業
管理者は、クライアントをリダイレクトするための操作を行いませんが、データベース
サーバのタイプに注意しなければならない場合があります。
ユーザが行うべき作業
接続できなかったかどうかを検査して、必要に応じて再接続用の文を実行するコードが
アプリケーションに含まれている場合、リダイレクトは自動的に処理されます。したが
って、ユーザが実行する責任を負うタスクはありません。
アプリケーションにこのようなコードが含まれていない場合、クライアントを実行して
いるユーザはすべてのアプリケーションを中止して再起動する必要があります。
500
IBM Informix Dynamic Server 管理者ガイド
接続情報を使用したクライアントのダイレクト
ここでは、接続情報を使用してクライアントをリダイレクトする手順と、この方法をサ
ポートする接続方法について説明します。
オペレーティング システム
接続情報の場所
UNIX
環境変数 INFORMIXSQLHOSTS には、
$INFORMIXDIR/etc/sqlhosts の接続情報の絶対パス
名とファイル名を指定します。
INFORMIXSQLHOSTS の詳細については、
「IBM Informix: SQL ガイド: 参照」を参照してく
ださい。
Windows
接続情報は、Windows レジストリのキー、
HKEY_LOCAL_MACHINE¥SOFTWARE
¥INFORMIX¥SQLHOSTS にあります。
接続情報を使用したリダイレクトの動作
接続情報によるリダイレクト方法は、アプリケーションがデータベース サーバとの接続
を確立するときに、接続情報を使用してそのデータベース サーバを検索するという事実
に基づいています。
レプリケーション ペアの一方のデータベース サーバが使用できない場合、管理者は、
接続情報で使用不可能なデータベース サーバの定義を変更できます。 502 ページの『接
続情報の変更』で説明されているように、使用できないデータベース サーバの各フィー
ルド (フィールド dbservername を除く) は、レプリケーション ペアの他方のデータベ
ース サーバをポイントするように変更されます。
CONNECT 文を出すと接続情報が読み込まれるため、リダイレクトを実行するためにア
プリケーションを再起動しなければならない場合があります。 接続できたかどうかを検
査して、必要に応じて再接続文を出すコードをアプリケーションに入れることができま
す。接続できなかった場合は、リダイレクトは自動的に処理されるため、リダイレクト
を実行するためにアプリケーションを再起動する必要はありません。
アプリケーションでは、このリダイレクト方法をサポートするために次の接続文を使用
できます。
v CONNECT TO database@dbserver
v CONNECT TO @dbserver
環境変数 INFORMIXSERVER が常にデータベース サーバ名に設定され、環境変数
DBPATH が設定されない場合は、アプリケーションで次の接続文を使用することもで
きます。
v CONNECT TO DEFAULT
v CONNECT TO database
第 20 章 高可用性データ レプリケーション
501
接続情報の変更
接続情報を使用してクライアントをリダイレクトするには、クライアントの接続情報を
変更し、必要に応じてほかの接続ファイルを変更する必要があります。
詳しくは、517 ページの『HDR 接続の構成』および 53 ページの『第 3 章 クライア
ント/サーバ通信』を参照してください。
クライアント コンピュータ上での接続情報の変更:
1. 障害が発生したデータベース サーバのエントリをコメント化します。
2. 障害が発生したデータベース サーバのデータベース サーバ名を指定するエントリを
servername フィールドに追加し、クライアントのリダイレクト先となるデータベー
ス サーバに関する情報を、nettype、hostname、および servicename の各フィールド
に追加します。
3. 障害が発生した場合にアプリケーションを別のデータベース サーバへリダイレクト
するには、ファイルまたはレジストリ sqlhosts の次のオプションを使用します。
a. 79 ページの『接続リダイレクト オプション』
b. 81 ページの『グループの終わりオプション』
c. 81 ページの『グループ オプション』
503 ページの図 92 に、クライアントをリダイレクトするときに接続値を変更する方法
を示します。
データベース サーバを実行している両方のコンピュータで、接続情報のエントリを変更
する必要はありません。
502
IBM Informix Dynamic Server 管理者ガイド
marsh
cliff_ol
onsoctc cliff
delta
ol_cl
cliff_ol
each_
onsoctcp cliff
onsoctcp beach
river
ol_cl
ol_bc
beach_o
cliff
beach
cliff_ol
beach_ol
onsoctcp beach ol_bc
cliff_ol
cliff_ol
marsh
#cliff_ol
liff_ol
onsoctcp cliff
onsoctcp beach
/etc/hosts
beach
delta
ol_cl
ol_bc
#cliff_ol
each_ol
beach
cliff_ol
onsoctcp
onsoctcp
ol_bc
onsoctcp
river
cliff
ol_cl
beach
ol_bc
cliff
beach
cliff_ol
beach_ol
/etc/services
ol_bc
図 92. データベース サーバ cliff_ol の障害発生前後の接続値
ほかの接続ファイルの変更:
また、クライアントがほかのデータベース サーバに再接続する前に、クライアント コ
ンピュータで次の条件が満たされることを確認する必要があります。
第 20 章 高可用性データ レプリケーション
503
1. UNIX のファイル /etc/hosts、または Windows のファイル hosts には、クライアン
トのリダイレクト先となるデータベース サーバを実行しているコンピュータの
hostname エントリがあります。
2. UNIX のファイル /etc/services または Windows のファイル services には、クライ
アントのリダイレクト先となるデータベース サーバの servicename エントリがあり
ます。
データベース サーバへの接続
必要に応じて、管理者が接続情報とほかの接続ファイルの変更を行った後で、クライア
ントは次に CONNECT 文を出すときに、管理者がリダイレクトするデータベース サー
バに接続します。
接続できなかったかどうかを検査して、必要に応じて再接続用の文を実行するコードが
アプリケーションに含まれている場合、リダイレクトは自動的に処理されます。したが
って、ユーザが実行する責任を負うタスクはありません。アプリケーションにこのよう
なコードが含まれていない場合、クライアントを実行しているユーザはすべてのアプリ
ケーションを中止して再起動する必要があります。
INFORMIXSERVER を使用したクライアントのダイレクト
ここでは、環境変数 INFORMIXSERVER を使用してクライアントをリダイレクトする
手順と、この方法をサポートする接続方法について説明します。
INFORMIXSERVER でのリダイレクト処理
INFORMIXSERVER のリダイレクト方法は、アプリケーションが CONNECT 文でデー
タベース サーバを明示的に指定しない場合は、データベース サーバは環境変数
INFORMIXSERVER が指定するクライアントに接続するという事実に基づいていま
す。
レプリケーション ペアの一方のデータベース サーバが使用できない場合、そのデータ
ベース サーバを使用するアプリケーションは、環境変数 INFORMIXSERVER を他方
のデータベース サーバにリセットして、同じデータにアクセスできます。
アプリケーションは起動時のみ、環境変数 INFORMIXSERVER の値を読み込みます。
したがって、環境変数の変更を認識できるようアプリケーションを再起動する必要があ
ります。
このリダイレクト方法をサポートするには、次の接続文を使用します。
v CONNECT TO DEFAULT
v CONNECT TO database
504
IBM Informix Dynamic Server 管理者ガイド
この方法では、CONNECT TO database@dbserver 文、または CONNECT TO @dbserver
文を使用できません。これは、データベース サーバ名を明示的に指定すると、
CONNECT 文が環境変数 INFORMIXSERVER を使用せずにデータベース サーバを検
索するためです。
管理者が行うべき作業
管理者は、クライアントをリダイレクトするための操作を行いませんが、データベース
サーバのタイプを変更しなければならない場合があります。
ユーザが行うべき作業
クライアント アプリケーションを実行するユーザは、環境変数 INFORMIXSERVER
でクライアントをリダイレクトするときに、次の 3 つの手順を実行する必要がありま
す。
環境変数 INFORMIXSERVER によるクライアントのリダイレクト:
1. アプリケーションの中止
2. レプリケーション ペアの他方のデータベース サーバ名を保持するための環境変数
INFORMIXSERVER の変更
3. アプリケーションの再起動
アプリケーション内でのリダイレクトの処理
DBPATH または接続情報を使用してリダイレクトすると、クライアントに HDR 障害
が発生した場合にエラーを処理するルーチンをクライアントに格納できます。このルー
チンでは、ペアの他方のデータベース サーバとの接続を反復するループを含む別の関数
を呼び出すことができます。このルーチンによって、ユーザは、アプリケーションを終
了して再起動しなくてもクライアントをリダイレクトできます。
図 93 に、再接続を試行する場合にループする DBPATH リダイレクト機構を使用す
る、クライアント アプリケーションの関数の例を示します。接続が確立されると、デー
タベース サーバのタイプを検査して、副データベース サーバではないことを確認しま
す。サーバがまだ副データベース サーバである場合は、別の関数を呼び出して、ユーザ
(またはデータベース サーバ管理者) にデータベース サーバ更新を受け付けられないと
いう警告を出します。
第 20 章 高可用性データ レプリケーション
505
/* The routine assumes that the INFORMIXSERVER environment
* variable is set to the database server that the client
* normally uses and that the DBPATH environment variable
* is set to the other database server in the pair.
*/
#define SLEEPTIME 15
#define MAXTRIES 10
main()
{
int connected = 0;
int tries;
for (tries = 0;tries < MAXTRIES && connected == 0;tries++)
{
EXEC SQL CONNECT TO "superstores";
if (strcmp(SQLSTATE,"00000"))
{
if (sqlca.sqlwarn.sqlwarn6 != ’W’)
{
notify_admin();
if (tries < MAXTRIES - 1)
sleep(SLEEPTIME);
}
else connected =1;
}
}
return ((tries == MAXTRIES)? -1:0);
}
図 93. DBPATH リダイレクト機構での CONNECT ループの例
この例では、DBPATH リダイレクト機構を仮定し、DBPATH リダイレクト方法をサポ
ートする CONNECT 文の形式を使用しています。接続情報リダイレクト方法を使用す
る場合に、次のような異なる接続文があるとします。
EXEC SQL CONNECT TO "superstores@cliff_ol";
この例で、superstores@cliff_ol は、クライアント コンピュータが認識するデータベー
ス サーバ上のデータベースです。リダイレクトを実行する場合、管理者は、同じ名前で
別のデータベース サーバを参照するように接続情報を変更する必要があります。クライ
アントが接続を試行するまでの待ち時間や、関数による試行回数を調整しなければなら
ない場合があります。データベース サーバの管理作業 (接続情報の変更、または副デー
タベース サーバの標準タイプへの変更) には、十分な時間をとる必要があります。
異なるリダイレクト機構の比較
表 42 に、3 つのリダイレクト機構の違いを要約します。
506
IBM Informix Dynamic Server 管理者ガイド
表 42. 各種の接続方法のリダイレクト方法の比較
接続情報
DBPATH
比較基準
自動
ユーザ
自動
リダイレクト リダイレクト リダイレクト
ユーザ
リダイレクト
INFORMIXSERVER
ユーザ
リダイレクト
クライアントを 次にクライアントが指定され 管理者が接続情報を変更した後
リダイレクトす たデータベースへの接続を試 で、次回クライアントがデータベ
ース サーバとの接続を確立しよう
行するとき
るタイミング
とするとき
クライアントが再起
動して、環境変数
INFORMIXSERVER
の新しい値を読み込
むとき
リダイレクトす いいえ
るためにクライ
アントを再起動
する必要性
はい
いいえ
はい
はい
リダイレクトの 個々のクライ 個々のクライ
適用範囲
アントがリダ アントがリダ
イレクトされ イレクトされ
る。
る。
特定のデータベー
ス サーバを使用
するすべてのクラ
イアントがリダイ
レクトされる。
個々のクライ
アントがリダ
イレクトされ
る。
個々のクライアント
がリダイレクトされ
る。
環境変数を変更 いいえ
する必要性
いいえ
はい
HDR クライアントの設計
ここでは、前述したリダイレクトの検討事項に加え、データ レプリケーションを実行し
ているデータベース サーバに接続するクライアントを設計する上でのさまざまな検討事
項について説明します。
主データベース サーバをアクセスするクライアントでのロック モード待機の
設定
論理復旧を実行する場合データベース サーバは通常、復旧が終了するまでインデックス
の作成を据え置きます。ただし、データベース サーバが副データベース サーバとして
動作している場合、データ レプリケーションを実行している間は論理復旧モードになっ
ています。このため、副データベース サーバは、別の機構でインデックス作成を実行す
る必要があります。
次の機構が使用されます。副データベース サーバは、対応するインデックス作成を必要
とする論理ログ レコードを受け取ると、インデックスの物理的コピーを要求するメッセ
ージを主データベース サーバに戻します。主データベース サーバには、表が更新され
るのを防ぐロックがあります。ロックの所有者のスレッド dr_btsend です。実行中のア
プリケーション スレッドは、通常どおりに処理を続行します。ただし、スレッド
第 20 章 高可用性データ レプリケーション
507
dr_btsend は、副データベース サーバがインデックスを受け取ったことを確認するまで
ロックを解放できません。アプリケーションは、ロックされている表へアクセスしよう
としても、ロック モードを待機状態に設定するまでは失敗します。
アプリケーションのロック モードが WAIT に設定されていない場合は、いくつかの予
期しないエラーが発生する場合があります。例えば、大量の SQL 文を使用して、カタ
ログ表のインデックスを更新するとします。アプリケーションのロック モードが
WAIT に設定されていないと、次の一連の SQL 文は失敗します。
CREATE DATABASE db_name;
DATABASE db_name;
CREATE TABLE tab_name;
これらの SQL 文は失敗する可能性があります。これは、CREATE DATABASE 文は、
カタログ表 systables のインデックスを作成し、インデックスが副データベース サーバ
にコピーされるまで表をロックするためです。その間、CREATE TABLE 文は、
systables カタログ表に行を挿入しようとします。ただし、表がロックされているため、
挿入はできません。
これは、CREATE DATABASE 文と CREATE TABLE 文の両方によって systables カ
タログ表のインデックスの更新が行われるためです。
副データベース サーバを使用するクライアントの設計
一部のクライアント アプリケーションにデータ レプリケーション ペアの副データベー
ス サーバを使用させると、データ レプリケーションを使用する場合にある程度のロー
ド バランシングを図ることができます。副データベース サーバを使用するクライアン
ト アプリケーションを設計する場合は、以下の点に注意する必要があります。
v データを変更しようとする SQL 文は失敗します。
v ロック レベルと排他レベルは、標準データベース サーバの場合と同じではありませ
ん。
v ソートと一時表に、一時 DB 領域を使用する必要があります。
以下のセクションでは、これらの注意事項について詳しく説明します。
データ変更文の不使用
副データベース サーバ上の論理復旧モードで DB 領域を更新する SQL 文は使用でき
ません。例えば、ALTER FRAGMENT 文と CREATE DATABASE 文はエラーになりま
す。データ変更文の完全なリストについては、「IBM Informix: SQL ガイド: 構文」を
参照してください。
副データベース サーバを使用するクライアントによって更新文が発行されないようにす
るには、次のいずれかの処置を取ることができます。
v 更新文を出さないクライアント アプリケーションを作成します。
508
IBM Informix Dynamic Server 管理者ガイド
v すべての更新文に条件を設定します。
更新条件を実行する文を作成するには、クライアント アプリケーションが構造体
ESQL/C sqlca にあるフィールド sqlwarn の slqwarn6 (およびほかの SQL API の同等
の値) を必ず検査するようにします。副データベース サーバ上で実行される場合、デー
タベース サーバは slqwarn6 を W に設定します。
ロック レベルと排他レベル
副データベース サーバを使用するすべてのクライアントは読取り専用であるため、これ
らのクライアント間の排他を保証できるようにロックする必要はありません。ただし、
副データベース サーバを使用するクライアントは、論理復旧を実行するスレッド
logrecvr でロック機能が使用されないため、主データベース サーバ上のユーザのアクテ
ィビティからは保護されません。
例えば、副データベース サーバと接続しているクライアントが行を読み込む場合、SET
ISOLATION TO REPEATABLE READ 文を出していても、主データベース サーバ上の
ユーザがその行を更新することを防止できません。コミットされたトランザクションの
論理ログ レコードが処理されるときに、更新が副データベース サーバに反映されま
す。したがって、副データベース サーバを使用するクライアントが、単純読込み以外の
排他レベルを明示的に設定した場合でも、副データベース サーバ上のすべての問合せ
は、主データベース サーバで行われる変更に関して実質的には単純読込みになります。
重要: 副データベース サーバ上のすべての問合せは単純読込みになります。副データベ
ース サーバ上で DDL (data definition language: データ定義言語) 文を含むログ
レコードが複製または適用されているときに、副データベース サーバ上で問合せ
を実行しないでください。
主データベース サーバ上で DDL 操作を実行するには:
1. 副データベース サーバ上で、トランザクションを含むすべての動作を停止します。
2. 主データベース サーバ上で DDL 文を実行します。
DDL 文の完全なリストについては、「IBM Informix: SQL ガイド: 構文」を参照し
てください。
3. 主データベース サーバ上でチェックポイントを処理するために、コマンド onmode
-c を使用します。
4. 副データベース サーバ上でチェックポイントが複製されるのを待機します。
5. 副データベース サーバ上で動作を再開します。
ソートと一時表用の一時 DB 領域の使用
副データベース サーバは、読取り専用モードになっていても、ソートの実行や一時表の
作成が必要な場合は書込みを実行します。275 ページの『一時 DB 領域』では、ソート
第 20 章 高可用性データ レプリケーション
509
中や一時表に使用する一時領域をどこで探索するかについて説明しています。副データ
ベース サーバが論理復旧モードの DB 領域に書き込めないようにするには、次の作業
を行う必要があります。
v 1 つ以上の一時 DB 領域が存在することを確認します。一時 DB 領域を作成する方
法については、321 ページの『デフォルト ページ サイズを使用する DB 領域の作
成』を参照してください。
v
さらに、次のいずれかの作業を選択します。
– 副データベース サーバのファイル ONCONFIG のパラメータ DBSPACETEMP を
1 つ以上の一時 DB 領域に設定します。
– クライアント アプリケーションの環境変数 DBSPACETEMP を、1 つ以上の一時
DB 領域に設定します。
510
IBM Informix Dynamic Server 管理者ガイド
第 21 章 高可用性データ レプリケーションの使用方法
HDR の計画 . . . . . . . . . . . . . . . . . .
HDR 用システムの構成. . . . . . . . . . . . . . .
ハードウェアとオペレーティング システム要件との一致 . .
データベースとデータ要件との一致 . . . . . . . . .
データベース サーバ構成要件との一致 . . . . . . . .
データベース サーバのバージョン . . . . . . . . .
格納領域とチャンクの構成 . . . . . . . . . . .
HDR 環境でのデフォルトでないページ サイズの使用 . .
ミラーリング . . . . . . . . . . . . . . . .
物理ログ構成 . . . . . . . . . . . . . . . .
DB 領域と論理ログ テープ バックアップ デバイス . . .
論理ログ構成 . . . . . . . . . . . . . . . .
HDR 構成パラメータ . . . . . . . . . . . . .
HDR 接続の構成 . . . . . . . . . . . . . . . .
HDR を初めて起動する方法 . . . . . . . . . . . . .
代替バックアップ方式によるセットアップ時間の減少 . . .
基本的な管理タスクの実行 . . . . . . . . . . . . .
データベース サーバ構成パラメータの変更 . . . . . . .
格納領域と論理ログ ファイルのバックアップ . . . . . .
データベースのロギング モードの変更 . . . . . . . .
チャンクおよび格納領域の追加と削除 . . . . . . . . .
チャンクの名前変更 . . . . . . . . . . . . . . .
副データベース サーバ上でのチャンク状態の保存 . . . . .
チャンクのミラーリングの使用と変更 . . . . . . . . .
物理ログの管理 . . . . . . . . . . . . . . . .
論理ログの管理 . . . . . . . . . . . . . . . .
仮想プロセッサの管理 . . . . . . . . . . . . . .
共有メモリの管理 . . . . . . . . . . . . . . .
副データベース サーバへのインデックスの複製 . . . . .
データベース サーバ モードの変更 . . . . . . . . . .
データベース サーバ タイプの変更 . . . . . . . . . .
HDR 状態の監視 . . . . . . . . . . . . . . . . .
コマンド行ユーティリティの使用方法 . . . . . . . . .
onstat -g dri . . . . . . . . . . . . . . . .
oncheck -pr . . . . . . . . . . . . . . . . .
SMI 表の使用方法 . . . . . . . . . . . . . . .
ON-Monitor の使用方法 (UNIX) . . . . . . . . . . .
メディア障害発生後のデータの復元 . . . . . . . . . .
主データベース サーバ上でメディア障害が発生した場合の復元
副データベース サーバ上でメディア障害が発生した場合の復元
© Copyright IBM Corp. 1996, 2004
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
512
513
513
513
514
514
515
515
515
516
516
516
517
517
517
522
522
522
523
523
524
524
525
525
526
526
527
527
527
528
530
531
531
531
532
532
533
533
533
534
511
副サーバへのインデックスの複製 . . . . . . . . .
障害発生後の HDR の再起動 . . . . . . . . . . .
重要なデータが損傷した後の再起動 . . . . . . .
主データベース サーバ上の重大なメディア障害 . .
副データベース サーバ上の重大なメディア障害 . .
両方のデータベース サーバ上の重大メディア障害 . .
重要なデータが損傷していない場合の再起動 . . . .
ネットワーク障害後の再起動 . . . . . . . . .
副データベース サーバに障害が発生した場合の再起動
主データベース サーバで障害が発生した場合の再起動
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
535
536
536
536
537
537
538
538
538
538
本章について
この章では、Dynamic Server の HDR (High-Availability Data Replication: 高可用性デー
タ レプリケーション) を計画、構成、開始、および監視する方法について説明します。
また、メディア障害後のデータ復元方法ついても説明します。HDR を使用する場合
は、まずこの章を読んでください。IBM Informix エンタープライズ レプリケーション
を使用する場合は、「IBM Informix: Dynamic Server エンタープライズ レプリケーショ
ン ガイド」を参照してください。
483 ページの『第 20 章 高可用性データ レプリケーション』では、HDR の定義、動
作、および HDR 環境で動作するクライアント アプリケーションの設計方法を説明し
ています。
HDR の計画
HDR を使用できるようにコンピュータとデータベース サーバをセットアップする場合
は、事前に計画を立てる必要があります。 計画段階では次のような作業を行います。
v 適切なハードウェアを選択し入手します。
v 複製したデータを格納するために複数のデータベース サーバを使用する場合は、こ
のデータを移行して再配分し、単一のデータベース サーバで管理できるようにしま
す。
v 複製対象のデータベースが、すべてトランザクション ロギング付きであることを確
認します。トランザクション ロギングをオンにするには、 385 ページの『第 13 章
データベース ログ機能モードの管理』を参照してください。
v レプリケーション ペアの両方のデータベース サーバを利用するクライアント アプ
リケーションを開発します。設計に関する注意事項については、499 ページの『デー
タ レプリケーション クライアントのリダイレクトと接続』と、508 ページの『副デ
ータベース サーバを使用するクライアントの設計』を参照してください。
v 最初の HDR を開始するためのスケジュールを作成します。
v 主データベース サーバの格納領域と論理ログ バックアップのスケジュールを作成し
ます。
512
IBM Informix Dynamic Server 管理者ガイド
v データベース サーバの障害の処理方法と障害発生後の HDR の再起動方法を計画し
ます。499 ページの『データ レプリケーション クライアントのリダイレクトと接
続』を参照してください。
HDR 用システムの構成
HDR 用にシステムを構成する場合は、次の作業を行う必要があります。
v ハードウェアとオペレーティング システムの要件に一致させる。
v データベースとデータの要件に一致させる。
v データベース サーバの構成要件に一致させる。
v HDR の接続を構成する。
このセクションでは、これらのトピックについて説明します。
ハードウェアとオペレーティング システム要件との一致
HDR データベース サーバのペアが動作するには、次のハードウェア要件を満たす必要
があります。
v 主データベース サーバと副データベース サーバを実行するコンピュータは同じベン
ダ、同じアーキテクチャである必要があります。
v 主データベース サーバと副データベース サーバを実行するコンピュータ上のオペレ
ーティング システムは同じである必要があります。
v 主データベース サーバと副データベース サーバを実行するハードウェアは、ネット
ワーク機能をサポートしている必要があります。
v 主データベース サーバと副データベース サーバの DB 領域には、同じ容量のディス
ク領域を割り当てる必要があります。ディスク領域のタイプは何でも構いません。つ
まり、2 つのデータベース サーバ上で、ロウ領域とクックド領域を混合して使用で
きます。
データベースとデータ要件との一致
HDR データベース サーバのペアが動作するには、次のデータベースとデータの要件を
満たす必要があります。
v すべてのデータは、ログに記録される必要があります。
複製するすべてのデータベースのトランザクション ロギングをオンにする必要があ
ります。
副データベース サーバは、主データベース サーバからの論理ログ レコードを使用
して管理するデータを更新するため、この要求は重要です。主データベース サーバ
が管理するデータベースでロギングを使用しないと、それらのデータベースの更新に
第 21 章 高可用性データ レプリケーションの使用方法
513
よってログ レコードが生成されないため、副データベース サーバにとっては複製デ
ータを更新する手段がなくなります。ロギングはバッファ付きでもバッファなしでも
構いません。
HDR を開始する前にトランザクション ロギングをオンにする必要がある場合は、
388 ページの『ontape によるトランザクション ログ機能の有効化』を参照してくだ
さい。
v データは、DB 領域または SB 領域に常駐している必要があります。
主データベース サーバのシンプル ラージ オブジェクトが BLOB 領域に格納されて
いる場合は、それらの BLOB 領域内のデータ変更は通常の HDR 処理では複製され
ません。ただし、DB 領域内のシンプル ラージ オブジェクト データは複製されま
す。
SB 領域に格納されているスマート ラージ オブジェクトは複製されます。SB 領域
は、ログに記録される必要があります。ユーザ定義タイプ (UDT) は、オペレーティ
ング システム ファイルに列外れのデータを格納していない限り、複製されます。列
外れのデータを持つデータ型は、SB 領域または同じデータベース サーバ上の異なる
テーブルに格納されている場合、複製されます。
データベース サーバ構成要件との一致
HDR データベース サーバのペアが機能するには、それぞれのデータベース サーバを
完全に構成する必要があります。データベース サーバの構成については、3 ページの
『第 1 章 データベース サーバのインストールと構成』を参照してください。次に、そ
の構成の関連項目を使用して、ペアの他方のデータベース サーバを構成できます。構成
パラメータの詳細については、「IBM Informix: Dynamic Server 管理者の参照」を参照
してください。
このセクションでは、HDR データベース サーバ ペアの構成に関する次の考慮事項に
ついて説明します。
v データベース サーバのバージョン
v 格納領域とチャンクの構成
v ミラーリング
v 物理ログ構成
v DB 領域と論理ログ テープ バックアップ デバイス
v 論理ログ構成
v HDR 構成パラメータ
データベース サーバのバージョン
主データベース サーバと副データベース サーバのバージョンは、同一である必要があ
ります。
514
IBM Informix Dynamic Server 管理者ガイド
格納領域とチャンクの構成
DB 領域数、チャンク数、サイズ、パス名、およびオフセットは、主データベース サー
バと副データベース サーバで同じである必要があります。
構成には、少なくとも 1 個の一時 DB 領域を含めることをお勧めします。509 ページ
の『ソートと一時表用の一時 DB 領域の使用』を参照してください。
UNIX のみ
316 ページの『UNIX におけるロウ ディスク領域の割当て』で説明されているように、
チャンクのパス名にはシンボリック リンクを使用できます。
重要: チャンクのパス名にシンボリック リンクを使用しない場合、チャンクのパス名は
簡単に変更できません。詳しくは、524 ページの『チャンクの名前変更』を参照
してください。
UNIX のみ の終り
それぞれのデータベース サーバで次のパラメータ ONCONFIG を同じ値に設定する必
要があります。
v ROOTNAME
v ROOTOFFSET
v ROOTPATH
v ROOTSIZE
HDR 環境でのデフォルトでないページ サイズの使用
DB 領域のページ サイズおよびバッファ プールの仕様は、主データベース サーバから
副データベース サーバへ自動的に伝搬します。主データベース サーバと副データベー
ス サーバはどちらも同じバッファ プールを保有する必要がありますが、バッファ プー
ル内のバッファ数は一致する必要はありません。
ミラーリング
パラメータ MIRROR は、両方のデータベース サーバで同じ値に設定する必要はありま
せん。一方のデータベース サーバでミラーリングを有効化し、他方のデータベース サ
ーバでミラーリングを使用不可にすることができます。ただし、主データベース サーバ
のルート チャンクにミラー チャンクを指定した場合は、副データベース サーバのルー
ト チャンクにもミラー チャンクを指定する必要があります。したがって、両方のデー
タベース サーバで次のパラメータ ONCONFIG を同じ値に設定してください。
v MIRROROFFSET
v
MIRRORPATH
第 21 章 高可用性データ レプリケーションの使用方法
515
物理ログ構成
物理ログは両方のデータベース サーバで同じである必要があります。それぞれのデータ
ベース サーバで次のパラメータ ONCONFIG を同じ値に設定する必要があります。
v PHYSDBS
v PHYSFILE
DB 領域と論理ログ テープ バックアップ デバイス
主データベース サーバと副データベース サーバに、異なるテープ デバイスを指定でき
ます。
ON–Bar を使用する場合は、両方のデータベース サーバで構成パラメータ ON–Bar を
同じ値に設定してください。ON–Bar パラメータの詳細については、「IBM Informix: バ
ックアップおよび復元 ガイド」を参照してください。
ontape を使用する場合は、格納領域と論理ログ テープ バックアップ デバイスのテー
プ サイズおよびテープ ブロック サイズは同じにする必要があります。それぞれのデー
タベース サーバで次のパラメータ ONCONFIG を同じ値に設定する必要があります。
v LTAPEBLK
v LTAPESIZE
v TAPEBLK
v TAPESIZE
テープの全物理容量を使用するには、LTAPESIZE および TAPESIZE を 0 に設定しま
す。
論理ログ構成
すべてのログ レコードが副データベース サーバに複製されます。両方のデータベース
サーバで、論理ログ ファイルの個数と論理ログ サイズを同じにして構成する必要があ
ります。それぞれのデータベース サーバで次のパラメータ ONCONFIG を同じ値に設
定する必要があります。
v LOGFILES
v LOGSIZE
v DYNAMIC_LOGS
論理ログ ファイルの追加は、データベース サーバにより記録されます。主データベー
ス サーバ上に動的に追加された論理ログ ファイルは、副データベース サーバ上に自動
的に複製されます。副サーバの DYNAMIC_LOGS の値が影響を与えることはありませ
んが、役割が切り替わる場合に備え、この値は主サーバの DYNAMIC_LOGS の値と同
じにしてください。
516
IBM Informix Dynamic Server 管理者ガイド
HDR 構成パラメータ
次の構成パラメータ HDR はレプリケーション ペアのデータベース サーバ両方で同じ
値に設定する必要があります。
v DRAUTO
v DRINTERVAL
v DRTIMEOUT
HDR 接続の構成
HDR データベース サーバのペアが機能するには、これらのデータベース サーバ間で
接続を確立できる必要があります。この要求を満たすには、レプリケーション ペアのデ
ータベース サーバを実行する各コンピュータ上の接続情報に少なくとも次のエントリが
必要です。
v そのコンピュータ上で実行中のデータベース サーバを識別するエントリ
v データ レプリケーション ペアのもう一方のデータベース サーバを識別するエント
リ
重要: 2 つのコンピュータそれぞれのデータベース サーバが互いに通信できるように、
ファイルまたはレジストリ sqlhosts のフィールド nettype と構成パラメータ
NETTYPE を ontlitcp、onsoctcp または ontlispx などのネットワーク プロトコ
ルに設定してください。フィールド nettype が onipcshm、onipcstr、onipcnmp
などの非ネットワーク プロトコルに指定されていると HDR は動作しません。
クライアントのリダイレクトおよび接続情報の変更方法については、499 ページの『デ
ータ レプリケーション クライアントのリダイレクトと接続』を参照してください。
HDR を初めて起動する方法
HDR の構成が完了したら、HDR を開始できます。ここでは、HDR を開始するための
手順を説明します。
サーバ A とサーバ B という 2 つのデータベース サーバで HDR を起動する場合を想
定します。次の手順で、サーバ A を主データベース サーバ、サーバ B を副データベ
ース サーバとして使用する HDR の開始方法を説明します。519 ページの表 43 に、各
手順を実行するために必要なコマンドとメッセージ ログに送信されるメッセージのリス
トが表示されます。ontape または ON–Bar を使用して、バックアップと復元を実行で
きます。1 つの手順を実行している間は、同じユーティリティを使用する必要がありま
す。
重要: ON–Bar を使用してバックアップおよび復元を実行する場合は、両方のデータベ
ース サーバに ontape が必要です。HDR に関与しているデータベース サーバか
ら ontape を除去することはできません。
第 21 章 高可用性データ レプリケーションの使用方法
517
注: 必要な場合は、標準の ON–Bar または ontape コマンドを使用して、外部バックア
ップおよび復元用に HDR をセット アップすることもできます。
HDR の開始方法:
1. ユーザ定義データ型、ユーザ定義ルーチン、および DataBlade モジュールを両方の
データベース サーバにインストールし、サーバ A のみに登録します。
2. サーバ A のレベル 0 バックアップを作成します。
3. 手順 1 で作成したレベル 0 バックアップから、サーバ B の物理的な復元を実行し
ます。 論理的復旧は実行しないでください。
使用するものによって、次のようにします。
v ON–Bar を使用する場合は、onbar -r -p コマンドを使用して、物理的復元を実行
します。
v ON–Bar を使用し、外部復元を実行する場合は、onbar -r -p -e コマンドを使用し
て、物理的復元を実行します。
v ontape を使用する場合は、ontape -p オプションを使用します。ontape -r オプシ
ョンは、物理復元と論理復元の両方を実行するため、使用できません。
v ontape を使用し、外部復元を実行する場合は、ontape -p -e コマンドを使用し
て、物理的復元を実行します。
4. onmode -d コマンドを使用して、サーバ A のタイプを主データベース サーバに設
定し、関連付けられている副データベース サーバ (この場合はサーバ B) の名前を
指定します。
onmode -d コマンドを入力すると、データベース サーバは HDR ペアの他方のデー
タベース サーバとの接続を確立して、HDR 操作を開始しようとします。接続の確
立は、ペアの他方のデータベース サーバが正しいタイプに設定されている場合にの
み成功します。
この時点ではサーバ B はオンラインでなく、タイプが副データベース サーバに設
定されていないため、HDR 接続は確立されません。
5. onmode -d コマンドを使用して、サーバ B のタイプを副データベース サーバに設
定し、対応する主データベース サーバを指定します。
サーバ B は、主データベース サーバ (サーバ A) との HDR 接続の確立と動作の
開始を試行します。接続の確立は正常に行われるはずです。
副データベース サーバは、HDR が開始する前に、手順 2 以降に主データベース
サーバに書き込まれた論理ログ レコードを使用して論理復旧を実行します。これら
の論理ログ レコードがすべて主データベース サーバのディスクに常駐する場合、主
データベース サーバはネットワーク経由でこれらのレコードを直接副データベース
サーバに送り、論理復旧を自動的に行います。
518
IBM Informix Dynamic Server 管理者ガイド
主データベース サーバで論理ログ ファイルのバックアップと解放が完了している場
合、これらのファイルのレコードはディスクに存在しません。副データベース サー
バは、これらのファイルをテープから復旧するようにプロンプトを出します。この場
合は手順 6 を実行する必要があります。
重要: 手順 3 と手順 5 は同時に行ってください。手順 3 の終了後に副データベー
ス サーバを停止して再起動する必要がある場合は、手順 3 を再び実行してく
ださい。
6. 主データベース サーバに書き込まれ、主ディスクに存在しなくなった論理ログ レコ
ードがある場合、副データベース サーバはこれらのファイルをテープ バックアップ
から復旧するようにプロンプトを出します。
副データベース サーバがネットワーク経由でバックアップされた論理ログ ファイル
を読み込まなければならない場合、副データベース サーバのテープ デバイス パラ
メータを主データベース サーバを実行するコンピュータ上のデバイスまたは主デー
タベース サーバと同じ格納場所のデバイスに設定します。
テープ上のすべての論理ログ ファイルの復旧が完了すると、論理的復旧は、主デー
タベース サーバ ディスク上の論理ログ ファイルを使用して完了します。
表 43. HDR を初めて開始する手順
手順
主データベース サーバ上
副データベース サーバ上
1.
UDR、UDT および DataBlade モジュール
をインストールする。
UDR、UDT および DataBlade モジュールをインス
トールする。
UDR、UDT および DataBlade モジュール
を登録する。
2.
ontape コマンド
ontape -s -L 0
ON–Bar コマンド
onbar -b -L 0
メッセージ ログへのメッセージ
Level 0 archive started on rootdbs.
Archive on rootdbs completed.
第 21 章 高可用性データ レプリケーションの使用方法
519
表 43. HDR を初めて開始する手順 (続き)
手順
主データベース サーバ上
3
onmode コマンド
副データベース サーバ上
onmode -d primary sec_name
メッセージ ログへのメッセージ
DR: new type = primary, secondary
server name = sec_name
DR: 副サーバへの接続を試みています。
DR: 副サーバに接続できません。
ontape コマンド
4.
ontape -p または ontape -r -p -e
ログをバックアップするかどうかを尋ねるプロンプ
トが出されたら「いいえ」と答えます。
ON–Bar コマンド
onbar -r -p または onbar -r -p -e
メッセージ ログへのメッセージ
IBM Informix Database Server Initialized -- Shared
Memory Initialized
復旧モード
Physical restore of rootdbs started.
Physical restore of rootdbs completed.
520
IBM Informix Dynamic Server 管理者ガイド
表 43. HDR を初めて開始する手順 (続き)
手順
主データベース サーバ上
副データベース サーバ上
onmode コマンド
5.
onmode -d secondary prim_name
メッセージ ログへのメッセージ
DR: new type = secondary, primary
server name = prim_name
手順 1 以降に主データベース サーバに書き込まれ
たすべての論理ログ レコードが主データベース サ
ーバのディスク上にまだ常駐している場合、副デー
タベース サーバはこれらのレコードを読み込んで
論理的復旧を実行します。それ以外の場合は、手順
5 を実行します。
メッセージ ログへのメッセージ
メッセージ ログへのメッセージ
DR: 主サーバに接続しました。
DR: 主サーバ操作可能です。
DR: 主サーバへの接続を試行しています...
DR: 副サーバと接続されました。
DR: ディスクからの障害復旧が進行中です...
復旧を行うための作業スレッド n が開始されま
す。
論理的復旧が開始しました。
論理復旧を開始します: 開始ログ n、終了ログ?
開始ログ位置 - n 0xnnnnn DR: 副サーバ操作可能
です。
第 21 章 高可用性データ レプリケーションの使用方法
521
表 43. HDR を初めて開始する手順 (続き)
手順
主データベース サーバ上
副データベース サーバ上
ontape コマンド
6.
ontape -l
ON–Bar コマンド
onbar -r -l
メッセージ ログへのメッセージ
メッセージ ログへのメッセージ
DR: 主サーバに接続しました。
DR: 主サーバ操作可能です。
DR: 副サーバと接続されました。
DR: ディスクからの障害復旧が進行中です...
復旧を行うための作業スレッド n が開始されま
す。
論理的復旧が開始しました。
論理復旧を開始します: 開始ログ n、終了ログ?
開始ログ位置 -n 0xnnnnn
DR: 副サーバ操作可能です。
代替バックアップ方式によるセットアップ時間の減少
ontape を使用してデータをバックアップおよび復元する場合は、ファイルをデバイスに
バックアップする代わりに、TAPEDEV 構成パラメータを STDIO 値に設定することによ
って、HDR のセット アップ速度を速くすることができます。TAPEDEV は、標準入出
力ストリームを構成するための特別な値として STDIO を使用します。
重要: STDIO 値を使用する場合、ontape は、デバイスへのバックアップを行うときと同
じようには動作しません。
STDIO 値を使用する方法の詳細については、「IBM Informix: バックアップおよび復元
ガイド」を参照してください。
基本的な管理タスクの実行
ここでは、システムで HDR を開始した後の管理タスクの実行方法を説明します。
データベース サーバ構成パラメータの変更
構成パラメータによっては、レプリケーション ペアの両方のデータベース サーバで同
じ値に設定する必要があります。514 ページの『データベース サーバ構成要件との一
致』を参照してください。そのほかの Dynamic Server 構成パラメータは異なる値に設
定できます。
522
IBM Informix Dynamic Server 管理者ガイド
ファイル ONCONFIG に変更を加える方法:
1. onmode -k オプションを使用して、各データベース サーバをオフラインにします。
DRAUTO が RETAIN_TYPE または REVERSE_TYPE に設定されていると、より簡
単に副データベース サーバを最初にオフラインにすることができます。
2. 各データベース サーバでパラメータを変更します。
3. 最後にオフラインにしたデータベース サーバから順に、各データベース サーバをオ
ンラインに戻します。
例えば、副データベース サーバを最後にオフラインにした場合は、まず副データベ
ース サーバをオンラインにします。519 ページの表 43 と 519 ページの表 43 に、
主データベース サーバと副データベース サーバをオンラインに戻す場合の一覧が表
示されます。
レプリケーション ペアの各データベース サーバで構成パラメータが同じ値である必要
がない場合は、それぞれのデータベース サーバで個別に値を変更できます。
格納領域と論理ログ ファイルのバックアップ
HDR を使用する場合は、主データベース サーバ上のみで論理ログ ファイルと格納領
域をバックアップする必要があります。ただし、データベース サーバのタイプを標準に
する場合は、副データベース サーバでも格納領域と論理ログ ファイルのバックアップ
を実行できるようにしておく必要があります。
両方のデータベース サーバで、同じバックアップおよび復元ツールを使用する必要があ
ります。
格納領域と論理ログのバックアップの両方で使用するブロック サイズとテープ サイズ
は、主データベース サーバと副データベース サーバで同じである必要があります。
ontape を使用してテープ サイズを 0 に設定すると、テープの全物理容量を自動的に使
用できます。
データベースのロギング モードの変更
HDR の使用中は、主データベース サーバのデータベース トランザクション ロギング
をオンにすることはできません。データベースのロギングをオフにすることは可能で
す。しかし、以降のデータベースへの変更は副データベース サーバに複製されません。
データベースのロギングをオンにする方法:
1. HDR をオフにするには、副データベース サーバを停止します。
2.
データベースのロギングをオンにします。
データベースのロギングをオンにした後で、主データベース サーバ上でレベル 0 バ
ックアップを実行せずにデータ レプリケーションを開始し、副データベース サーバ
第 21 章 高可用性データ レプリケーションの使用方法
523
を復元する場合、主および副データベース サーバ上のデータが異なることがありま
す。この状態によって、データ レプリケーションに問題が発生する可能性がありま
す。
3. 主データベース サーバ上でレベル 0 バックアップを実行して、副データベース サ
ーバを復元します。この手順を 517 ページの『HDR を初めて起動する方法』に示
します。
チャンクおよび格納領域の追加と削除
チャンクおよび DB 領域の追加や削除などのディスク レイアウト操作は、主データベ
ース サーバでのみ実行できます。操作は副データベース サーバに複製されます。これ
により、レプリケーション ペアの両方のデータベース サーバのディスク レイアウトの
一貫性が保証されます。
チャンクのディレクトリパス名または実際のファイルはそのチャンクを作成する前に存
在している必要があります。主データベース サーバでチャンクを作成する前に、パス名
(および該当する場合はオフセット) が副データベース サーバに存在することを確認し
てください。パス名がないと、データ レプリケーションはオフになります。
チャンクの名前変更
チャンクのパス名にシンボリック リンクを使用すると、HDR の動作中にチャンクの名
前を変更できます。チャンクの名前を変更する方法については、「IBM Informix: バック
アップおよび復元 ガイド」を参照してください。
チャンクのパス名にシンボリック リンクを使用しない場合は、データベース サーバの
コールド復元を完了する時間があるため、チャンクの名前を変更する間、両方のデータ
ベース サーバをオフラインにする必要があります。
障害のある HDR サーバ上のチャンクの名前の変更:
1. 損傷していないサーバを標準モードに変更します。
2. 標準サーバのレベル 0 バックアップを行います。
3. 標準サーバを停止します。
4. 新規レベル 0 アーカイブからのコールド復元中に、標準サーバ上のチャンクの名前
を変更します。この方法については、「IBM Informix: バックアップおよび復元 ガイ
ド」を参照してください。
5. 標準サーバを始動します。
6. 標準サーバのもう 1 つのレベル 0 アーカイブを取ります。サーバが標準モードにあ
ることを確認します。
7. 障害のあるサーバを新規レベル 0 バックアップにより復元し、HDR ペアを再び確
立します。
524
IBM Informix Dynamic Server 管理者ガイド
副データベース サーバ上でのチャンク状態の保存
データ レプリケーション ペアでは、副データベース サーバ上でチャンク状態 (停止、
オンライン) が変更され、チェックポイントが完了する前に再起動された場合、更新さ
れたチャンク状態は保存されません。
新しいチャンク状態を副データベース サーバの予約ページへ確実にフラッシュするに
は、主データベース サーバでチェックポイント処理を強制実行し、副データベース サ
ーバでもチェックポイントが完了したことを確認してください。これで副データベース
サーバが再起動した場合でも、新しいチャンク状態が保存されるようになります。
副データベース サーバの主チャンクが停止した場合は、ミラー チャンクから主チャン
クを復旧できます。
ミラー チャンクから主チャンクを復旧する方法:
1. 副データベース サーバ上で onspaces -s を実行し、主チャンクをオンラインにしま
す。
主チャンクをオンラインにするには、ISA を使用することもできます。
2. チェックポイントを強制実行するには、主データベース サーバ上で onmode -c を
実行します。
3. チェックポイントが実際に実行されたことを確認するには、主データベース サーバ
上で onmode -m を実行します。
4. 副データベース サーバでもチェックポイントが完了していることを確認するには、
副データベース サーバ上で onmode -m を実行してください。
上記の手順を完了すると、副データベース サーバを再起動したときに主チャンクがオン
ラインになります。
チャンクのミラーリングの使用と変更
ミラー チャンクを追加する前に、そのチャンク用のディスク領域が主データベース サ
ーバと副データベース サーバの両方にすでに割り当てられている必要があります。レプ
リケーション ペアの片方のデータベース サーバ上に DB 領域をミラーリングする場合
は、両方の データベース サーバ上にその DB 領域のミラー チャンクを作成する必要
があります。ディスク領域の割当てについての一般的な情報は、314 ページの『ディス
ク領域の割当て』を参照してください。
ミラーリングを使用しない場合は、MIRROR 構成パラメータを 1 に設定しないでくだ
さい。
主データベース サーバからはディスク レイアウト操作しかできません。つまり、主デ
ータベース サーバからは、ミラー チャンクの追加と削除しかできません。主データベ
ース サーバに対してミラー チャンクを追加または削除すると、副データベース サーバ
第 21 章 高可用性データ レプリケーションの使用方法
525
でも追加または削除されます。副データベース サーバ上では新しく追加されたミラー
チャンクのミラー復旧を実行する必要があります。詳しくは、480 ページの『ミラー チ
ャンクの復旧』を参照してください。
主データベース サーバからチャンクを削除すると、Dynamic Server が副データベース
サーバ上の対応するチャンクを自動的に削除します。これは、主チャンクとミラー チャ
ンクの両方に適用されます。
主データベース サーバ上で DB 領域のミラーリングをオフにした場合、Dynamic
Server が副データベース サーバの対応する DB 領域をオフにすることはありません。
主サーバとは関係なく副データベース サーバ上の DB 領域のミラーリングをオフにす
るには、onspaces -r を使用します。ミラーリングをオフにする方法の詳細については、
481 ページの『ミラーリングの終了』を参照してください。
主データベース サーバまたは副データベース サーバで、ミラー チャンクを停止したり
ミラー チャンクを復旧したりすることができます。これらのプロセスは HDR に対し
て透過的です。
物理ログの管理
両方のデータベース サーバで物理ログのサイズは同じにする必要があります。主データ
ベース サーバで物理ログのサイズと格納場所を変更する場合、この変更は副データベー
ス サーバに複製されます。ただし、副データベース サーバのファイル ONCONFIG の
パラメータ PHYSDBS とパラメータ PHYSFILE は更新されません。これらのパラメー
タを変更するには、手動でファイル ONCONFIG を編集する必要があります。この変更
を行う手順については、522 ページの『データベース サーバ構成パラメータの変更』を
参照してください。
物理ログのサイズと格納場所を変更する方法については、 455 ページの『第 17 章 物理
ログの管理』を参照してください。
論理ログの管理
論理ログのサイズは、両方のデータベース サーバ上で同じにする必要があります。 407
ページの『第 15 章 論理ログ ファイルの管理』で説明されているように、onparams
ユーティリティを使用して論理ログ ファイルの追加や削除を行うことができます。
Dynamic Server はこの変更を副データベース サーバ上で複製します。ただし、副デー
タベース サーバ上のパラメータ LOGFILES は更新されません。したがって、主データ
ベース サーバからコマンド onparams を実行した後、パラメータ LOGFILES を手動で
必要な値に変更する必要があります。最後に、変更を有効にするために、主データベー
ス サーバでルート DB 領域のレベル 0 バックアップを実行する必要があります。
主データベース サーバに論理ログ ファイルを追加する場合、このファイルはレベル 0
バックアップを実行すると即時に使用できるようになり、フラグ F がセットされます。
526
IBM Informix Dynamic Server 管理者ガイド
副データベース サーバ上の新しい論理ログ ファイルには、フラグ A がセットされたま
まです。ただし、これにより、副データベース サーバによるファイルへの書込みが禁止
されるわけではありません。
仮想プロセッサの管理
仮想プロセッサの個数はデータ レプリケーションに影響を与えません。ペアのデータベ
ース サーバを個別に構成し調整できます。
共有メモリの管理
一方のデータベース サーバ上の共有メモリのパラメータ ONCONFIG を変更する場合
は、他方のデータベース サーバ上の共有メモリのパラメータ ONCONFIG にも同様の
変更を行う必要があります。この変更を行う手順については、 522 ページの『データベ
ース サーバ構成パラメータの変更』を参照してください。
副データベース サーバへのインデックスの複製
HDR 副データベース サーバのインデックスが破損し、再構築する必要がある場合、次
のいずれかを実行します。
v 手動で主サーバのインデックスを副サーバに複製する。
v 副サーバが自動的にインデックスを複製できるように設定した場合は、副サーバにそ
れを実行させる。
副データベース サーバがインデックスを自動的に複製できるように設定するには、次の
いずれかを実行します。
v onmode -d idxauto を on に設定する。
v DRIDXAUTO 構成パラメータを 1 に設定する。
これらのいずれかの値を設定した後、副データベース サーバのスレッドが破損したイン
デックスを検出しても、そのインデックスは自動的に副データベース サーバに複製され
ます。インデックス レプリケーションの再開には、最大で DRTIMEOUT 構成パラメー
タで指定した時間かかります。
表がロックされているためインデックスの修復を後から行う場合など、インデックスの
複製を手動で行う場合もよくあります。HDR 副サーバ上で手動で複製する場合は、自
動レプリケーション機能をオフにしてください。
自動インデックス レプリケーション機能をオフにするには、次のいずれかを実行しま
す。
v onmode -d idxauto を off に設定する。
v DRIDXAUTO 構成パラメータを 0 に設定する。
第 21 章 高可用性データ レプリケーションの使用方法
527
onmode -d idxauto がオフに設定されているか、DRIDXAUTO が 0 に設定されている
ときに副サーバが破損したインデックスを検出した場合は、次の形式の onmode -d
index コマンドを実行して、インデックスを HDR 副サーバに手動で複製できます。
onmode -d index database:[ownername].table#index
次に例を示します。
onmode -d index cash_db:user_dx.table_12#index_z
破損フラグメントを 1 つ保有するフラグメント化されたインデックスの場合、onmode
-d idxauto オプションでは、影響を受けた 1 つのフラグメントのみが転送されます
が、onmode -d index オプションではインデックス全体が転送されます。
注: 自動インデックス レプリケーション機能をオン/オフする場合は、onmode コマンド
または DRIDXAUTO 構成パラメータのいずれかを使用できます。 onmode コマン
ドを使用する場合は、データベース サーバの停止および再起動を行う必要はありま
せん。DRIDXAUTO パラメータを使用する場合は、データベース サーバは指定し
た設定で初期化されます。onmode コマンドによって DRIDXAUTO 値は変更され
ません。onmode コマンドを使用する場合は、手動で DRIDXAUTO の値を変更す
る必要があります。
副サーバが作成する online.log ファイルには、複製したインデックスの情報が含まれま
す。
データベース サーバ モードの変更
データベース サーバ モードを変更するには、コマンド行または ISA で onmode ユー
ティリティを使用します。onmode の詳細については、「IBM Informix: Dynamic Server
管理者の参照」のユーティリティに関する章を参照してください。
表 44 に、主データベース サーバのモードを変更する場合の影響が要約されています。
528
IBM Informix Dynamic Server 管理者ガイド
表 44. 主データベース サーバでのモード変更
主データベース サーバ上
副データベース サーバ上
すべてのモードがオフライ 副データベース サーバによ
ン
り、次のメッセージが表示され
ます。
(onmode -k)
DR: エラーを受信しました。
HDR はオフになります。
HDR を再起動するには
主データベース サーバの障害が発生した場
合と同様に扱います。主データベース サー
バがオフラインの間に副データベース サー
バで何を行うかによって、2 つの状況が考
えられます。説明については、以下のセク
ションを参照してください。
モードは読取り専用のままにな v 539 ページの『副データベース サーバが
標準データベース サーバに変更されなか
ります。
った場合』
DRAUTO が 0 (オフ) に設定
v 541 ページの『副データベース サーバが
されている場合、モードは読取
標準データベース サーバに自動的に変更
り専用のままです。
された場合』
DRAUTO が 1
(RETAIN_TYPE) に設定されて
いる場合、副サーバは標準タイ
プに切り替わり、更新を受け入
れます。(DRAUTO が 2
(REVERSE_TYPE) に設定され
ている場合、副データベース
サーバは、古い主サーバに障害
が発生して接続が終了したとき
にすぐ主データベース サーバ
になります。)
オンライン、静止、または 副データベース サーバはエラ
ーを受け取りません。
シングルユーザ
(onmode -s/onmode -u)
HDR はオンのままです。
(onmode -j )
モードは読取り専用のままで
す。
主データベース サーバで onmode -m を使
用します。
表 45 に、副データベース サーバのモードを変更する場合の影響を示します。
第 21 章 高可用性データ レプリケーションの使用方法
529
表 45. 副データベース サーバでのモード変更
副データベース
サーバ上
主データベース サーバ上
読取り専用オフライン
(onmode -k)
HDR を再起動するには
主データベース サーバにより次 副データベース サーバの障害が発生した場合
のメッセージが表示されます。 と同様に扱います。 538 ページの『副データ
ベース サーバに障害が発生した場合の再起
DR: エラーを受信しました。
動』の手順に従ってください。
HDR はオフになります。
注: シングルユーザ モードは、HDR 副データベース サーバ上で、主データベース サ
ーバ上と同じように動作します。
データベース サーバ タイプの変更
主データベース サーバと副データベース サーバは、どちらもそのタイプを変更できま
す。
副データベース サーバ上で HDR がオフの場合のみ、データベース サーバ タイプを
標準データベース サーバから副データベース サーバに変更できます。HDR がオフに
なるのは、主データベース サーバ上のデータ レプリケーション接続が中断したとき
と、副データベース サーバでデータ レプリケーションが失敗したときです。標準デー
タベース サーバをオフラインにしてからオンラインに戻すと、そのデータベース サー
バはレプリケーション ペアの他方のデータベース サーバとの接続を試行しません。
タイプを切り替えるには次のコマンドを使用します。
v スクリプト hdrmksec.[sh|bat] と hdrmkpri.[sh|bat]
スクリプト hdrmkpri と hdrmksec を使用してデータベース サーバ タイプを切り替え
る方法:
1. 主データベース サーバ (サーバ A) を停止します。
onmode -ky
2. 副データベース サーバ (サーバ B) がオンラインの状態で、UNIX ではスクリプト
hdrmkpri.sh を、Windows ではスクリプト hdrmkpri.bat を実行してください。こ
れで、サーバ B が主データベース サーバになります。
3. サーバ A に対して、UNIX ではスクリプト hdrmksec.sh を、Windows ではスクリ
プト hdrmksec.bat を実行してください。これでサーバ A が副データベース サー
バになります。
4. サーバ B (主データベース サーバ) をオンラインにします。
530
IBM Informix Dynamic Server 管理者ガイド
HDR 状態の監視
データベース サーバの HDR 状態を監視すると、次の情報を判断できます。
v データベース サーバのタイプ (主、副、または標準)
v ペアの一方のデータベース サーバの名前
v HDR がオンかどうか
v パラメータ HDR の値
コマンド行ユーティリティの使用方法
onstat を使用するたびに表示されるヘッダ情報には、データベース サーバが主データ
ベース サーバまたは副データベース サーバとして動作するかを示すフィールドがあり
ます。
次の例は、レプリケーション ペアの主データベース サーバでオンライン モードである
データベース サーバのヘッダを示しています。
IBM Informix Dynamic
Server
Version 9.30.UC1
-- online(Prim) -- Up 45:08:57
次の例は、レプリケーション ペアの副データベース サーバで読取り専用モードである
データベース サーバを示しています。
IBM Informix Dynamic Server Version 9.30.UC1
-- Read-Only (Sec) -- Up 45:08:57
次の例は、HDR に関与しないデータベース サーバのヘッダを示しています。このデー
タベース サーバのタイプは標準です。
IBM Informix Dynamic Server Version 9.30.UC1
-- online -- Up 20:10:57
onstat -g dri
完全な HDR 監視情報を取得するには、onstat のオプション -g dri を実行してくださ
い。 次のフィールドが表示されます。
v データベース サーバのタイプ (主、副、または標準)
v HDR の状態 (オンまたはオフ)
v ペアのデータベース サーバ
v 最新の HDR チェックポイント
v 構成パラメータ HDR の値
図 94 は、出力例を示しています。この例は、DBSERVERNAME が beach_ol の副デー
タベース サーバとペアになった主データベース サーバを示しています。HDR は開始
済みです。
第 21 章 高可用性データ レプリケーションの使用方法
531
Data Replication:
Type
State
primary
off
DRINTERVAL
DRTIMEOUT
DRLOSTFOUND
Paired server
beach_ol
Last DR CKPT (id/pg)
4/741
30
300
/usr/informix/etc/dr.lostfound
図 94. onstat -g dri の出力
oncheck -pr
データベース サーバによって HDR が実行されている場合、予約ページ PAGE_1ARCH
と PAGE_2ARCH には、HDR で主データベース サーバと副データベース サーバの同
期化に使用されるチェックポイント情報が格納されます。 図 95 は、関連する oncheck
-pr の出力例を示しています。
Validating Informix Database Server reserved pages - PAGE_1ARCH &
PAGE_2ARCH
Using archive page PAGE_1ARCH.
Archive Level
Real Time Archive Began
Time Stamp Archive Began
Logical Log Unique Id
Logical Log Position
0
01/11/95 16:54:07
11913
3
b018
DR
DR
DR
DR
3
80018
3
128
Ckpt
Ckpt
Last
Last
Logical
Logical
Logical
Logical
Log
Log
Log
Log
Id
Pos
Id
Page
図 95. HDR を実行するデータベース サーバでの oncheck -pr PAGE_1ARCH の出力
SMI 表の使用方法
「IBM Informix: Dynamic Server 管理者の参照」のデータベース sysmaster に関する章
で説明されている sysdri 表には、次の列が含まれます。
532
列
説明
タイプ
HDR サーバのタイプ
状態
HDR サーバの状態
名前
データベース サーバ名
間隔
HDR バッファのフラッシュ間隔
タイムアウト
ネットワークのタイムアウト
IBM Informix Dynamic Server 管理者ガイド
遺失
HDR の遺失トランザクション保管ファイルのパス名
ON-Monitor の使用方法 (UNIX)
HDR の情報を確認するには、「Status」>「Replication」を選択します。このオプショ
ンを使用すると、onstat のオプション -g dri を使用した場合と同じ情報が表示されま
す。
メディア障害発生後のデータの復元
ディスク障害がもたらす結果は、ディスク障害が発生したのが主データベース サーバか
副データベース サーバのどちらであるか、ディスク上のチャンクに重要なメディア (ル
ート DB 領域、論理ログ ファイル、物理ログ) が含まれているかどうか、およびチャ
ンクがミラーリングされているかどうかによって異なります。
主データベース サーバ上でメディア障害が発生した場合の復元
534 ページの表 46 に、主データベース サーバでメディア障害が発生した場合の各種の
データ復元の状況を示します。ただし、次の点に注意してください。
v チャンクがミラーリングされている場合、ミラーリングを使用する標準データベース
サーバと同じように、復旧を実行できます。
v チャンクがミラーリングされていない場合、主データベース サーバを復旧するプロ
シジャは、障害が発生したディスクに重要なメディアが含まれているかどうかにより
異なります。
ディスクに重要なメディアが含まれている場合、主データベース サーバで障害が発
生します。主データベース サーバの DB 領域バックアップ (または副データベース
サーバが標準モードに切り替えられて動作がリダイレクトされた場合は、副データベ
ース サーバの DB 領域バックアップ) を使用して完全復元を行う必要があります。
536 ページの『重要なデータが損傷した後の再起動』を参照してください。
ディスクに重要なメディアが含まれていない場合は、影響を受けた DB 領域をウォー
ム復元により個別に復旧できます。ウォーム復元は 2 つの部分から構成されていま
す。1 つはバックアップからの障害が発生した DB 領域の復元で、もう 1 つはその
DB 領域バックアップ以降に書き込まれたすべての論理ログ レコードの論理的復元で
す。ウォーム復元を実行する方法の詳細については、「IBM Informix: バックアップ
および復元 ガイド」を参照してください。ウォーム復元を実行する前に、すべての
論理ログ ファイルをバックアップする必要があります。
第 21 章 高可用性データ レプリケーションの使用方法
533
表 46. 主データベース サーバにメディア障害が発生した場合の状況
HDR サーバ
チャンク
はミラーリ
重要な
メディア ングされて
いるか
障害の影響とメディアの復元手順
か
主データベース
サーバ
はい
いいえ
主データベース サーバに障害が発生します。536 ページの『重
要なデータが損傷した後の再起動』の手順を実行します。
主データベース
サーバ
はい
はい
主データベース サーバはオンラインのままです。480 ページの
『ミラー チャンクの復旧』の手順に従ってください。
主データベース
サーバ
いいえ
いいえ
主データベース サーバはオンラインのままです。Dynamic
Server のバックアップと復元に関するマニュアルに示された手
順に従って、DB 領域バックアップから DB 領域のウォーム復
元を実行してください。ウォーム復元を実行する前にすべての
論理ログ ファイルをバックアップします。
主データベース
サーバ
いいえ
はい
主データベース サーバはオンラインのままです。480 ページの
『ミラー チャンクの復旧』の手順に従ってください。
副データベース サーバ上でメディア障害が発生した場合の復元
高可用性データ レプリケーション: 表 47 に、副データベース サーバ上でメディア障害
が発生した場合の、さまざまなデータ復元の状況を示します。 ただし、次の点に注意し
てください。
v チャンクがミラーリングされている場合、ミラーリングを使用する標準データベース
サーバと同じように、復旧を実行できます。
v チャンクがミラーリングされていないとき、副データベース サーバではディスク上
に重要なメディアが含まれている場合は障害が発生しますが、ディスクに重要なメデ
ィアが含まれていない場合にはオンラインのままになります。いずれの場合も、主デ
ータベース サーバ上の DB 領域バックアップを使用して完全復元を行う必要があり
ます。(536 ページの『重要なデータが損傷した後の再起動』を参照してください。)
後者の場合、副データベース サーバの DB 領域バックアップから DB 領域を選択し
て復元することはできません。これは、これらの DB 領域が主データベース サーバ
上の対応する DB 領域にないためです。完全復旧を行う必要があります。
534
IBM Informix Dynamic Server 管理者ガイド
表 47. 副データベース サーバ上でのメディア障害のさまざまな状況
HDR サーバ
チャンクは
ミラーリン
重要なメデ グされてい
るか
障害の影響
ィアか
副データベース
サーバ
はい
いいえ
副データベース サーバに障害が発生します。主データベー
ス サーバはエラーを受け取ります。HDR はオフになりま
す。536 ページの『重要なデータが損傷した後の再起動』の
手順を実行します。
副データベース
サーバ
はい
はい
副データベース サーバは読取り専用モードでオンラインの
ままです。480 ページの『ミラー チャンクの復旧』の手順
に従ってください。
副データベース
サーバ
いいえ
いいえ
副データベース サーバは読取り専用モードでオンラインの
ままです。主データベース サーバはエラーを受け取りま
す。HDR はオフになります。536 ページの『重要なデータ
が損傷した後の再起動』の手順を実行します。
副データベース
サーバ
いいえ
はい
副データベース サーバは読取り専用モードでオンラインの
ままです。480 ページの『ミラー チャンクの復旧』の手順
に従ってください。
副サーバへのインデックスの複製
HDR 副データベース サーバのインデックスが破損した場合、この問題を修正する普通
の方法は、主データベース サーバ上のインデックスを削除し、再構築することです。こ
の処理では表をロックする必要があり、完了するのに膨大な時間がかかる場合がありま
す。しかし、この方法の代わりに、主データベース サーバ上のインデックスを再構築せ
ずに、主データベース サーバから副データベース サーバへインデックスを複製する方
法があります。
インデックス レプリケーションを手動で開始するには、onmode -d コマンドを使用し
ます。
副データベース サーバ上のインデックスの破損が検出された場合の自動インデックス
レプリケーションをセット アップするには、DRIDXAUTO 構成パラメータを設定しま
す。onmode -d idxauto コマンドを使用して、セッションの DRIDXAUTO 構成パラメ
ータの値を更新します。
第 21 章 高可用性データ レプリケーションの使用方法
535
障害発生後の HDR の再起動
さまざまなタイプの HDR 障害については、494 ページの『HDR 障害の定義』を参照
してください。HDR を再起動するために行わなければならない手順は、いずれかのデ
ータベース サーバで重要なデータが損傷しているかどうかによって異なります。このセ
クションでは、両方の場合を説明します。
重要なデータが損傷した後の再起動
いずれかのデータベース サーバでルート DB 領域、または論理ログ ファイルを含む
DB 領域、または物理ログを含む DB 領域が損傷した場合、障害が発生したデータベー
ス サーバをディスク上にデータを持たないデータベース サーバのように扱い、初めて
の HDR を開始します。ディスクに障害を受けていないデータベース サーバを、デー
タを持つデータベース サーバとして使用します。
主データベース サーバ上の重大なメディア障害
主データベース サーバで重大なメディア障害が発生した後には、HDR を再起動する必
要があります。表 48 に、この手順の実行に必要なコマンドの一覧を表示します。
重大なメディア障害の発生後に HDR を再起動する方法:
1. 元の副データベース サーバを標準データベース サーバに変更した場合は、このデー
タベース サーバ (DRAUTO = 0) を静止モードにしてから、onmode -d コマンドを
使用してデータベース サーバのタイプを副に戻します。
DRAUTO = 1 (RETAIN_TYPE) の場合は、この手順は適用しません。主データベー
ス サーバをオンラインに戻すと、データベース サーバは自動的に通常終了し、副タ
イプに戻ります。
DRAUTO = 2 (REVERSE_TYPE) の場合、副データベース サーバは、古い主サーバ
が再起動したときではなく、古い主サーバに障害が発生して接続が終了したときにす
ぐ主データベース サーバになります。
2. 最新の DB 領域バックアップから主データベース サーバを復元します。
3. onmode -d コマンドを使用して、主データベース サーバのタイプを設定し、HDR
を開始します。
onmode -d コマンドは、副データベース サーバのディスク上の論理ログ ファイル
から主データベース サーバの論理復旧を開始します。元の副データベース サーバで
論理ログ ファイルをバックアップして解放したために、論理復旧を完了できない場
合は、手順 4 を行うまで、HDR は開始されません。
4. テープにバックアップされた副データベース サーバから主データベース サーバに論
理ログ ファイルを適用します。
この手順が必要な場合、主データベース サーバはメッセージを送ってテープからの
論理ログ ファイルを復旧するプロンプトを出します。このメッセージは、メッセー
536
IBM Informix Dynamic Server 管理者ガイド
ジ ログに表示されます。すべての必要な論理ログ ファイルがテープから復旧する
と、副ディスクに残っていたすべての論理ログ ファイルが復旧されます。
表 48. 主データベース サーバ上の重大メディア障害発生後に HDR を再起動する場合の手順
手順
主データベース サーバ上
副データベース サーバ上
onmode コマンド
1.
onmode -s
onmode -d secondary prim_name
2.
ON–Bar コマンド
onbar -r -p
ontape コマンド
ontape -p
3.
onmode コマンド
onmode -d primary sec_name
4.
ontape コマンド
ontape -l
副データベース サーバ上の重大なメディア障害
副データベース サーバで重大メディア障害が発生した場合は、517 ページの『HDR を
初めて起動する方法』にある手順を行ってください。
両方のデータベース サーバ上の重大メディア障害
レプリケーション ペアのデータベース サーバを実行する両方のコンピュータで、ルー
ト DB 領域、論理ログ ファイルまたは物理ログを含む DB 領域が損傷する障害が発生
した場合は、HDR を再起動する必要があります。
両方のデータベース サーバで重大メディア障害が発生した後に HDR を再起動する方
法:
1. 格納領域と論理ログのバックアップから主データベース サーバを復元します。
2. 主データベース サーバを復元したら、障害が発生した他方のデータベース サーバ
を、そのデータベース サーバのディスクにデータがなく、初めて HDR を開始する
場合のように処理します。
( 517 ページの『HDR を初めて起動する方法』を参照。) ディスクに障害を受けてい
ないデータベース サーバを、データを持つデータベース サーバとして使用します。
第 21 章 高可用性データ レプリケーションの使用方法
537
重要なデータが損傷していない場合の再起動
どちらのデータベース サーバでも重要なデータが損傷していない場合は、次の 4 つの
状況が考えられます。状況によって、異なる HDR 再起動の手順が必要になります。
v ネットワークで障害が発生した場合
v 副データベース サーバで障害が発生した場合
v 主データベース サーバで障害が発生し、副データベース サーバが標準データベース
サーバに変更されない場合
v 主データベース サーバで障害が発生し、副データベース サーバが標準データベース
サーバに変更される場合
ネットワーク障害後の再起動
ネットワーク障害後、主データベース サーバはオンライン モードになり、副データベ
ース サーバは読取り専用モードになります。HDR はいずれのデータベース サーバ上
でもオフになります (状態 = オフ)。接続が再度確立されたら、副データベース サーバ
上で onmode -d secondary primary_name を実行して、HDR を再起動できます。主デ
ータベース サーバでは 10 秒ごとに再度の接続を試行し、接続できないことを伝えるメ
ッセージを 2 分ごとに表示します。そのため、HDR を再起動する必要がない場合もあ
ります。接続を再開するために onmode を使用する必要はありません。
副データベース サーバに障害が発生した場合の再起動
副データベース サーバに障害が発生した後で HDR を再起動する必要がある場合は、
表 49 の手順をすべて行ってください。この手順では、副データベース サーバの障害発
生以降、必要に応じて主データベース サーバで論理ログ ファイルがバックアップされ
ているものと想定しています。
表 49. 副データベース サーバ上で障害が発生した場合に再起動する手順
手順
主データベース サーバ上
副データベース サーバ上
1.
主データベース サーバはオンライン モー
ドである必要があります。
oninit
メッセージ ログに次のメッセージを受け取った場
合は、手順 2 に進みます。
DR: テープからの障害復旧を開始します...
ontape コマンド
2.
ontape -l
主データベース サーバで障害が発生した場合の再起動
ここでは、さまざまな状況下で主データベース サーバにて障害が発生した場合に、どの
ように HDR を再起動するかについて説明します。
538
IBM Informix Dynamic Server 管理者ガイド
副データベース サーバが標準データベース サーバに変更されなかった場合:
副データベース サーバが標準データベース サーバに変更されなかったときに、主デー
タベース サーバの障害後、HDR を再起動する必要がある場合は、oninit を使用して、
主データベース サーバをオンラインに戻します。
副データベース サーバが標準データベース サーバに変更された場合: 主デー
タベース サーバの障害発生後に HDR を再起動する必要があり、副データベース サー
バを標準データベース サーバに変更した場合は、表 51 の手順を実行します。
第 21 章 高可用性データ レプリケーションの使用方法
539
表 50. 副データベース サーバを標準に変更した場合の再起動手順
手順
主データベース サーバ上
1.
副データベース サーバ上
onmode -s
この手順では、現時点では標準の
副データベース サーバを静止モー
ドにします。このデータベース サ
ーバに接続されているすべてのク
ライアントを切断する必要があり
ます。更新を実行するアプリケー
ションは、主データベース サーバ
にリダイレクトする必要がありま
す。499 ページの『データ レプリ
ケーション クライアントのリダイ
レクトと接続』を参照。
2.
3.
onmode -d secondary prim_name
oninit
副データベース サーバに書き込まれたすべての論理ログ レ
コードがまだ副データベース サーバ上のディスクに存在す
る場合、コマンド oninit を出すと主データベース サーバは
そのディスクからこれらのレコードを復旧します。
副データベース サーバで論理ログ ファイルをバックアップ
して解放した場合、これらのファイルのレコードはもうディ
スク上には存在しません。この場合は、テープからこれらの
論理ログ ファイルを復旧するように促されます (手順 4)。
ontape を使用する場合
ネットワーク経由で論理ログ レコードを読み込む場合、論
理ログ テープ デバイスを副データベース サーバを実行す
るコンピュータ上のデバイスに設定します。
4.
テープから論理ログ レコードを復旧するようにプロンプト
が出された場合は、この手順を実行します。
ontape コマンド
ontape -l
540
IBM Informix Dynamic Server 管理者ガイド
副データベース サーバが標準データベース サーバに自動的に変更された場合
: 主データベース サーバの障害発生後に HDR を再起動する必要があり、副データベ
ース サーバが標準データベース サーバに自動的に変更された場合 (497 ページの『自
動切替え』で説明) は、次の表に示した手順を完了します。
表 51. 副データベース サーバを自動的に標準に変更した場合の再起動手順
手順
主データベース サーバ上
副データベース サーバ上
1.
DRAUTO = 1 の場合、副データ
ベース サーバは、主データベース
DRAUTO = 1 の場合、このデータベース サーバのタイプは サーバが再び起動されると、自動
主に設定されます。
的に通常終了します。これによ
り、すべてのクライアントが切断
DRAUTO = 2 の場合、このデータベース サーバのタイプ
されます。次に、タイプが副に戻
は、初期化されるときに副に設定されます。
されます。更新を実行するアプリ
副データベース サーバに書き込まれたすべての論理ログ レ ケーションは、主データベース サ
コードがまだ副データベース サーバ上のディスクに存在す ーバにリダイレクトする必要があ
る場合、コマンド oninit を出すと主データベース サーバは ります。499 ページの『データ レ
プリケーション クライアントのリ
そのディスクからこれらのレコードを復旧します。
ダイレクトと接続』を参照。
バックアップして解放した論理ログ ファイルが副データベ
ース サーバ上にある場合は、これらのファイルのレコード DRAUTO = 2 の場合、副データ
はディスクに存在しません。この場合は、テープからこれら ベース サーバは主データベース
サーバに切り替わり、次に自動的
の論理ログ ファイルを復旧するように促されます (手順
に標準に切り替わります。古い主
2)。
データベース サーバは、再起動
ontape を使用する場合
し、他のサーバに接続してそのサ
v 論理ログ テープ デバイスを副データベース サーバを実 ーバが主データベース サーバであ
ることを確認すると、副データベ
行するコンピュータ上のデバイスに設定します。
ース サーバになります。
2.
テープから論理ログ レコードを復旧するようにプロンプト
が出された場合は、この手順を実行します。
% onit
ontape コマンド
% ontape -l
第 21 章 高可用性データ レプリケーションの使用方法
541
542
IBM Informix Dynamic Server 管理者ガイド
第 22 章 一貫性検査
定期的な一貫性検査の実行 . . . . . . . . . . . . . .
一貫性検査 . . . . . . . . . . . . . . . . . . .
システム カタログ表の妥当性検査 . . . . . . . . . .
データ ページの妥当性検査 . . . . . . . . . . . .
エクステントの妥当性検査 . . . . . . . . . . . .
インデックスの妥当性検査 . . . . . . . . . . . .
論理ログの妥当性検査 . . . . . . . . . . . . . .
予約ページの妥当性検査 . . . . . . . . . . . . .
メタデータの妥当性検査 . . . . . . . . . . . . .
データの矛盾の監視 . . . . . . . . . . . . . . . .
メッセージ ログとダンプ ファイルのアサーション障害の読込み
表と表領域データの妥当性検査 . . . . . . . . . . .
一貫したレベル 0 バックアップの保存 . . . . . . . . .
破損の処理 . . . . . . . . . . . . . . . . . . . .
破損の症状の検出 . . . . . . . . . . . . . . . .
インデックス破損の修正 . . . . . . . . . . . . . .
チャンク上の入出力エラーの修正 . . . . . . . . . . .
診断情報の収集 . . . . . . . . . . . . . . . . . .
入出力無効化エラー . . . . . . . . . . . . . . . . .
入出力無効化エラーに対するデータベースの監視 . . . . . . .
メッセージ ログを使用しての入出力無効化エラーの監視 . . .
イベント アラームを使用しての入出力無効化エラーの監視 . . .
不良セクタのマッピングの不使用 . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
544
544
545
545
545
545
546
546
546
546
546
547
548
548
548
549
549
550
551
552
552
552
553
本章について
Informix データベース サーバは、データベース サーバの動作不良や、ハードウェアま
たはオペレーティング システムのエラーを検出するように設計されています。問題を検
出するため、アサーション と呼ばれる操作を多くの重要な機能に対して実行します。ア
サーション とは、ページ、構造体、またはほかのエンティティの内容が、仮定される内
容と一致することを確認する一貫性検査です。
これらの検査によって、内容が想定と一致しないことが検出されると、データベース サ
ーバはアサーション障害 を報告します。さらに、障害が発生した検査について記述する
テキストがデータベース サーバ メッセージ ログに書き込まれます。データベース サ
ーバでは、さらに詳しい診断情報が独立したファイルに集められます。このファイル
は、IBM Informix テクニカル サポート担当者が使用する場合があります。
この章では、一貫性検査の方法および不整合に対する処置について、概要を説明しま
す。ここで扱う項目は次のとおりです。
© Copyright IBM Corp. 1996, 2004
543
v 定期的な一貫性検査の実行
v データ破壊の処理
v 詳細診断情報の収集
v 入出力無効化エラーに対するデータベースの監視
定期的な一貫性検査の実行
一貫性検査を最大限に有効活用し、DB 領域バックアップの整合性を確保するには、次
の作業を定期的に行うことをお勧めします。
v すべてのデータとデータベース サーバのオーバーヘッド情報が一貫性を保っている
ことを確認する。
v 一貫性検査の過程でメッセージ ログにアサーション障害が記録されていないかを検
査する。
v 一貫性照合後にレベル 0 DB 領域バックアップを作成する。
次のセクションでは、これらの各操作について説明します。
一貫性検査
この検査には時間がかかり、競合が生じる可能性があるため、活動量が最も少ない時間
帯に検査を行うようにスケジュールしてください。レベル 0 バックアップを作成する直
前に、この検査を実行することをお勧めします。
整合性検査の過程で表 52 に示したコマンドを実行してください。
表 52. データの一貫性検査
妥当性検査のタイプ
コマンド
システム カタログ表
oncheck -cc
データ
oncheck -cD dbname
エクステント
oncheck -ce
インデックス
oncheck -cI dbname
予約ページ
oncheck -cr
論理ログおよび予約ページ
oncheck -cR
メタデータおよびスマート ラージ オブジェクト
oncheck -cs
データベース サーバがオンライン モードになっている間に、それぞれのコマンドを実
行できます。各コマンド が検査時にオブジェクトをどのようにロックするか、およびど
のユーザが妥当性検査を実行できるかについては、「IBM Informix: Dynamic Server 管
理者の参照」の oncheck に関する項目を参照してください。
544
IBM Informix Dynamic Server 管理者ガイド
ほとんどの場合、これらの妥当性検査の 1 つ以上の手順でエラーが検出されると、DB
領域バックアップからデータベースを復元することによって問題が解決されます。ただ
し、エラーの原因がハードウェアやオペレーティング システムにある場合もあります。
システム カタログ表の妥当性検査
システム カタログ表を妥当性検査するには、oncheck -cc コマンドを使用します。
各データベースには、データベース表、列、インデックス、ビュー、制約、ストアド プ
ロシジャ、およびアクセス権についての情報を含む独自のシステム カタログが含まれて
います。
妥当性検査の完了後に警告が表示された場合、その警告は単に指定されたタイプのレコ
ードが見つからなかったことを示します。このような警告は、データ、システム カタロ
グ、またはデータベース設計に問題があることを示すわけではありません。この警告
は、どの表にもシノニムが存在しないことのみを示します。つまり、システム カタログ
表 syssyntable に、レコードが含まれていないことを示します。例えば、次の警告は、
シノニムがどの表に対しても定義されていないデータベースのシステム カタログ表を妥
当性検査すると表示される場合があります。
WARNING: No syssyntable records found.
ただし、システム カタログ表の妥当性検査を行ったときにエラー メッセージが出され
た場合は別です。その場合は、直ちに IBM Informix テクニカル サポートに連絡してく
ださい。
データ ページの妥当性検査
データ ページの妥当性検査を行うには、oncheck -cD コマンドを使用します。
データ ページ妥当性検査でエラーが検出された場合は、指定した表からデータをアンロ
ードしてから表を削除し、表を作成し直してデータを再ロードしてください。データの
ロード、アンロードについての詳細は、「IBM Informix: 移行ガイド」を参照してくださ
い。 この手順が成功しない場合は、格納領域バックアップからのデータ復元を実行して
ください。
エクステントの妥当性検査
すべてのデータベースのエクステントを妥当性検査するには、oncheck -ce コマンドを
使用します。
エクステントは、オーバーラップしていてはなりません。このコマンドでエラーが検出
された場合は、格納領域バックアップからデータを復元してください。
インデックスの妥当性検査
データベース内の各表のインデックスを妥当性検査するには、oncheck -cI コマンドを
使用します。
第 22 章 一貫性検査
545
このコマンドでエラーが検出された場合は、エラーが発生したインデックスを削除して
から再作成します。
論理ログの妥当性検査
論理ログの予約ページの妥当性検査を行うには、oncheck -cR コマンドを使用します。
予約ページの妥当性検査
予約ページの妥当性検査を行うには、oncheck -cr コマンドを使用します。
予約ページとは、ルート DB 領域の初期チャンクの最初に常駐するページをいいます。
これらのページには、主データベース サーバのオーバーヘッド情報が含まれています。
このコマンドでエラーが検出された場合は、データを格納領域バックアップから復元し
てください。
このコマンドを実行すると、警告が報告される場合があります。通常、これらの警告は
すでに判明している状況に注意を喚起する内容のものです。
メタデータの妥当性検査
データベース内のすべてのスマート ラージ オブジェクトのメタデータを妥当性検査す
るには、各データベースに対して oncheck -cs を実行します。必要であれば、DB 領域
バックアップからデータを復元します。
データの矛盾の監視
データベース サーバの動作中に一貫性確認コードが不整合を検出した場合は、データベ
ース サーバ メッセージ ログにアサーション障害が報告されます。「IBM Informix:
Dynamic Server 管理者の参照」のメッセージ ログに関する章を参照してください。
メッセージ ログとダンプ ファイルのアサーション障害の読込み
図 96 は、メッセージ ログでのアサーション障害の形式を示しています。
Assert Failed: Short description of what failed
Who: Description of user/session/thread running at the time
Result: State of the affected database server entity
Action: What action the database server administrator should take
See Also: file(s) containing additional diagnostics
図 96. メッセージ ログでのアサーション障害の形式
See Also: の行には、次のファイル名が 1 つ以上含まれます。
v af.xxx
v shmem.xxx
546
IBM Informix Dynamic Server 管理者ガイド
UNIX のみ
v gcore.xxx
v gcore.xxx
v /pathname/core
UNIX のみ の終り
いずれの場合も、xxx は、単一スレッドのアサーション障害に関連したすべてのファイ
ルに共通する 16 進数表記の値です。ファイル af.xxx、shmem.xxx、および gcore.xxx
は、パラメータ ONCONFIG の DUMPDIR で指定されたディレクトリにあります。
ファイル af.xxx には、メッセージ ログに送られたアサーション障害メッセージのコピ
ーと、現行の関連構造およびデータ バッファの内容が含まれます。
ファイル shmem.xxx には、パラメータ ONCONFIG の DUMPSHMEM に 1 が設定さ
れている場合にのみ、アサーション障害時のデータベース サーバ共有メモリの完全なコ
ピーが含まれます。
UNIX のみ
UNIX では、パラメータ ONCONFIG の DUMPGCORE が 1 に設定されていて、使用
しているオペレーティング システムがユーティリティ gcore をサポートしている場合
にのみ、ファイル gcore.xxx に、その時点でスレッドが実行していたデータベース サ
ーバ仮想プロセスのコア ダンプが含まれます。コア ファイルには、パラメータ
ONCONFIG の DUMPCORE が 1 に設定されている場合にのみ、その時点でスレッド
が実行していたデータベース サーバ仮想プロセッサのコア ダンプが含まれます。コア
ファイルのパス名は、最後にデータベース サーバを起動したディレクトリです。
UNIX のみ の終り
表と表領域データの妥当性検査
表と表領域データの妥当性を検査するには、データベースまたは表に対して oncheck
-cD コマンドを使用します。
大半のアサーション障害メッセージには、通常エラーが検出された表領域を含む追加情
報が続いています。この検査で不整合が確認された場合は、表からデータをアンロード
して表を削除し、表を作成し直してデータを再ロードしてください。確認されなかった
場合は、これらの処置は不要です。
ほとんどの場合、データベース サーバはアサーション障害が発生すると即時に停止しま
す。ただし、障害が表や小さいエンティティのみで発生した場合、データベース サーバ
は動作を続行します。
第 22 章 一貫性検査
547
ユーザに代わってデータベース サーバがアクセスするデータページの不整合のためにア
サーション障害が発生した場合、エラーはアプリケーション プロセスにも送信されま
す。SQL エラーは、進行中の操作によって異なります。ただし、ISAM エラーは、以下
のようにほとんどの場合が -105 または -172 です。
-105 ISAM error: bad isam file format
-172 ISAM error: Unexpected internal error
メッセージの目的と内容の詳細については、「IBM Informix: Dynamic Server 管理者の
参照」のメッセージ ログに関する章を参照してください。
一貫したレベル 0 バックアップの保存
544 ページの『一貫性検査』で説明されている検査を実行してエラーが検出されない場
合は、レベル 0 バックアップを作成します。この格納領域バックアップと以降のすべて
の論理ログ バックアップ テープは、次の一貫性検査が完了するまで保存します。それ
ぞれのレベル 0 バックアップの前に、一貫性検査を行うことをお勧めします。これらを
保存しない場合は、少なくともデータベース サーバの一貫性検査直後に作成した格納領
域バックアップからの復元に必要なテープはすべて保管しておいてください。
破損の処理
ここでは、データベース サーバ システム破損の症状と、データベース サーバ管理者が
問題を解決するために行う処置について説明します。データベースの破損は、ハードウ
ェアやオペレーティング システムの問題、またはデータベース サーバの未知の問題に
よって発生する場合があります。破損は、データまたはデータベース サーバ オーバー
ヘッド情報に影響を与えることがあります。
破損の症状の検出
データベース サーバは次の方法によって、ユーザと管理者に破損の可能性を警告しま
す。
v アプリケーションに報告されるエラー メッセージは、ページ、表、またはデータベ
ース サーバが見つからないことを知らせます。 データまたはオーバーヘッド情報の
不整合が原因で操作が失敗すると、次のいずれかのエラーが、必ずアプリケーション
に戻されます。
-105 ISAM error: bad isam file format
-172 ISAM error: Unexpected internal error
v アサーション障害レポートは、データベース サーバのメッセージ ログに書き込まれ
ます。 これらのレポートには、問題の原因を判断するために役立つ追加の診断情報
を含むファイルが示されます。544 ページの『一貫性検査』を参照してください。
v ユーティリティ oncheck がエラーを戻します。
548
IBM Informix Dynamic Server 管理者ガイド
インデックス破損の修正
破損が判明した最初の時点で、oncheck -cI コマンドを実行して、インデックス内に破
損が存在するかどうかを判断します。
データベース サーバがオンライン モードの間にインデックスを検査すると、oncheck
では破損が検出されますが、修復は要求されません。破損が存在する場合は、オンライ
ン モードで SQL 文を使用してインデックスを削除した後に作成し直すことができま
す。表とインデックスはロックされます。静止モードで oncheck -cI を実行して破損が
検出された場合は、ユーティリティによる破損の修理をするかどうかを確認するプロン
プトが表示されます。
チャンク上の入出力エラーの修正
データベース サーバの操作中に入出力エラーが発生した場合、エラーが発生したチャン
クの状態は停止 に移行します。チャンクが停止 状態の場合、onstat -d の表示では、主
チャンクの状態は PD-、ミラー チャンクの状態は MD- と示されます。
図 97 は、チャンク 2 が停止した例を示しています。
Dbspaces
address number flags
40c980
1
1
40c9c4
2
1
2 active, 8192 maximum
Chunks
address chk/dbs offset
40c224 1 1 0
40c2bc 2 2 0
2 active, 8192 maximum
fchunk
1
2
size
20000
2000
nchunks
1
1
free
14001
1659
flags
N
N
bpages
owner
name
informix rootdbs
informix fstdbs
flags pathname
PO/home/server/root_chunk
PD/home/server/fst_chunk
図 97. onstat -d の出力
さらに、メッセージ ログには、エラーの位置と推奨される対処方法を示すメッセージが
リストされます。リストされた対処方法は考えられる修正方法ですが、必ずしも問題が
解決されるわけではありません。
停止チャンクをミラーリングすると、データベース サーバはミラー チャンクを使用し
て操作を続行します。オペレーティング システム ユーティリティを使用して停止チャ
ンクの問題を判断し、問題を訂正してください。ミラー チャンクのデータを復元するよ
う指示します。
ミラー チャンクを復旧する方法については、480 ページの『ミラー チャンクの復旧』
を参照してください。
停止チャンクがミラーリングされておらず、論理ログ ファイル、物理ログ、またはルー
ト DB 領域を含んでいる場合、データベース サーバはただちにアボートを開始しま
す。それ以外の場合、データベース サーバは操作を継続できますが、停止チャンクやそ
第 22 章 一貫性検査
549
のチャンクの DB 領域内のそのほかのチャンクに対して読込みや書込みを行うことはで
きません。まず入出力エラーが発生した原因を判断し、次に問題を訂正して、最後に
DB 領域バックアップから DB 領域を復元する必要があります。
チャンクが停止状態 (D) の場合にデータベース サーバをオフライン モードにすると、
停止チャンクに重要なデータ (論理ログ ファイル、物理ログ、またはルート DB 領域)
が含まれていない場合は、データベース サーバを再初期化することができます。
診断情報の収集
いくつかのパラメータ ONCONFIG を設定することでデータベース サーバの診断情報
収集の方法が変わります。アサーション障害は通常、予期しなかった問題の発生を示す
ため、障害が発生した場合は、IBM Informix テクニカル サポートに連絡する必要があ
ります。収集される診断情報は、IBM Informix サポート担当者が使用することを想定し
ています。ファイル af.xxx と共有コアの内容と使用方法については説明を省きます。
IBM Informix テクニカル サポートの指示があるまで診断情報を破壊しないでくださ
い。これらの情報は、アサーション障害の要因を判断するときに非常に重要となりま
す。ファイル af.xxx とともに電子メールを IBM Informix テクニカル サポート
[email protected] にお送りください。ファイル af.xxx には、多くの場合、問題解決に
必要な情報が含まれています。
いくつかのパラメータ ONCONFIG を使用すると、アサーション障害が検出された場合
や、データベース サーバがアボート シーケンスに入る場合に、必ず診断情報を保存す
るようにデータベース サーバに指示できます。
UNIX のみ
v DUMPDIR
v DUMPSHMEM
v DUMPCNT
v DUMPCORE
v DUMPGCORE
UNIX のみ の終り
構成パラメータの詳細については、「IBM Informix: Dynamic Server 管理者の参照」を
参照してください。
これらのパラメータを設定するかどうかを決めてください。診断出力には、大量のディ
スク領域を使用する可能性があります。正確な内容は、設定された環境変数と使用して
いるオペレーティング システムによって異なります。出力される要素には、共有メモリ
とコア ダンプのコピーが含まれる場合があります。
550
IBM Informix Dynamic Server 管理者ガイド
ヒント: コア ダンプ とは、アサーション障害が発生した時点でメモリ内にあったプロ
セスのイメージのことをいいます。システムによっては、コア ダンプに共有メ
モリのコピーが含まれます。この場合にのみ、コア ダンプは役立ちます。
ディスク領域に制約があるデータベース サーバ管理者は、指定されたディレクトリで診
断出力の存在を検出し、これをテープに送信するスクリプトを書くと効果的です。 この
方法は、診断情報を保存し、ディスク領域の使用量を最小限に抑えます。
入出力無効化エラー
Informix では、入出力無効化エラーは、破壊的エラーと非破壊的エラーの 2 種類に分け
られます。データベースを格納しているディスクが損傷するような入出力エラーは、破
壊的エラーになります。この種のイベントが発生するとデータの整合性に影響を与える
ため、そのチャンクと DB 領域には、データベース サーバから停止状態というマーク
が付けられます。そして、ディスクの修復または交換を行い、物理的および論理的復元
が完了するまで、その損傷したディスクへのアクセスが禁止されます。
データの整合性に影響を与えない入出力無効化エラーは、非破壊的エラーです。非破壊
的エラーが発生するのは、誤ってケーブルを取り外したり、チャンクをポイントするシ
ンボリック リンクを消去したり、ディスク コントローラが損傷したりした場合です。
データベース サーバは、エラーが次の 2 つの基準を満たしていると、そのエラーは入
出力無効化エラーであるとみなします。第 1 の基準は、次に挙げる特性の少なくとも 1
つを持つチャンク上でデータベース サーバが動作を実行しようとしたとき、エラーが発
生したかどうかです。
v
チャンクにミラーがない。
v 問題のあるチャンクの主コンパニオン、またはミラー コンパニオンがオフラインで
ある。
第 2 の基準は、次に挙げる操作の 1 つがデータベース サーバによって試行されて失敗
した場合に発生したエラーかどうかです。
v チャンクのシーク、読込み、または書込み
v チャンクのオープン
v
最初に使用されるページについてのチャンク情報が有効であることの検証
データベース サーバによってチャンクがオープンされた直後に、正当な検査として
この検証が実行されます。
入出力無効化エラーの調査中に、DB 領域がデータベース サーバから停止状態としてマ
ークされないようにすることもできます。ケーブルの緩みなど小さい問題の場合は、関
係する DB 領域をバックアップから復元しなくても、データベース サーバをいったん
オフラインにしてから再びオンラインにするだけで構いません。ディスクの損傷など問
第 22 章 一貫性検査
551
題が重大な場合は、onmode -O を使用して該当する DB 領域に停止状態というマーク
を付ければ、引き続き処理を実行できます。
入出力無効化エラーに対するデータベースの監視
データベース サーバは、次の 2 つの方法で入出力無効化エラーを通知します。
v メッセージ ログ
v イベント アラーム
メッセージ ログを使用しての入出力無効化エラーの監視
入出力エラーが発生すると、データベース サーバによって次のメッセージがメッセージ
ログに記録されます。
Assert Failed: Chunk {chunk-number} is being taken OFFLINE.
Who: Description of user/session/thread running at the time
Result: State of the affected database server entity
Action: What action the database server administrator should take
See Also: DUMPDIR/af.uniqid containing more diagnostics
結果と処置は、次の表に示すように ONDBSPACEDOWN の現在の設定に応じて異なり
ます。
ONDBSPACEDOWN
設定
0
結果
処置
DB 領域 {space_name} は無効化され DB 領域 {space_name} を復元します。
ました。
BLOB 領域 {space_name} は無効化さ BLOB 領域 {space_name} を復元しま
れました。
す。
1
データベース サーバがアボートされ
ます。
データベース サーバを停止して再起動
します。
2
データベース サーバが次のチェック
ポイントでブロックします。
onmode -k を使用して停止するか、また
は onmode -O を使用して無効にしま
す。
データベース サーバによってメッセージ ログに記録されるメッセージの解釈について
は、「IBM Informix: Dynamic Server 管理者の参照」の、メッセージ ログのメッセージ
に関する章を参照してください。
イベント アラームを使用しての入出力無効化エラーの監視
DB 領域で入出力エラーが発生すると、次の値が、データベース サーバからイベント
アラーム実行可能ファイルにパラメータとして渡されます。
552
IBM Informix Dynamic Server 管理者ガイド
パラメータ
値
重要度
4 (緊急)
クラス
5
クラス メッセージ
Dbspace is disabled: ’dbspace-name’
特定のメッセージ
チャンク {chunk-number} はオフラインになってい
ます。
入出力エラーについてイベント アラームにより通知を受けるようにするには、入出力エ
ラーが検出された場合にデータベース サーバで実行されるスクリプトを記述します。ユ
ーザが記述するこの実行可能ファイルのセットアップ方法については、「IBM Informix:
Dynamic Server 管理者の参照」のイベント アラームに関する付録、および構成パラメ
ータに関する章を参照してください。
不良セクタのマッピングの不使用
Dynamic Server は、不良セクタのマッピングについては、ホスト コンピュータのオペ
レーティング システムに依存しています。データベース サーバでは、システム呼出し
から障害戻りコードを受信した場合に、不良セクタまたは不良トラックを認識します。
この場合、データベース サーバはアクセスを数回試行して、その状態が間違いでないこ
とを確認します。状態が確認されると、読込みまたは書込みの試行の対象となったその
チャンクが停止 チャンクとしてマークされます。
データベース サーバでは、不良シリンダ、不良トラック、または不良セクタを特定する
ためのアクションは実行できません。その理由は、利用できる情報が、入出力操作が試
行されたチャンク内でのバイト変位のみであるためです。
ミラーリングされていない チャンク上での入出力エラーが検出されると、そのチャンク
はデータベース サーバによって停止チャンクとしてマークされます。その停止チャンク
に論理ログ ファイル、物理ログ、またはルート DB 領域が含まれている場合、直ちに
中断が開始されます。それ以外の場合、データベース サーバでの処理は続行できます
が、アプリケーションは DB 領域が復元されるまでその停止チャンクへアクセスできま
せん。
第 22 章 一貫性検査
553
554
IBM Informix Dynamic Server 管理者ガイド
第 5 部 分散型データ
© Copyright IBM Corp. 1996, 2004
555
556
IBM Informix Dynamic Server 管理者ガイド
第 23 章 多相コミット プロトコル
トランザクション マネージャ . . . . . . . . . . . . . .
トランザクション マネージャでの TP/XA ライブラリの使用 . . .
MTS/XA (Microsoft Transaction Server) の使用 . . . . . . . .
疎結合および密結合モードの使用 . . . . . . . . . . . .
2 相コミット プロトコル . . . . . . . . . . . . . . . .
2 相コミット プロトコルが使用される場合 . . . . . . . . .
2 相コミットの概念 . . . . . . . . . . . . . . . . .
2 相コミット プロトコルの相 (フェーズ) . . . . . . . . .
コミット前フェーズ . . . . . . . . . . . . . . . .
決定後フェーズ . . . . . . . . . . . . . . . . .
2 相コミット プロトコルによる障害の対処方法 . . . . . . .
自動復旧で処理する障害のタイプ . . . . . . . . . . .
自動復旧での管理者の役割 . . . . . . . . . . . . .
調整元に障害が発生した場合の自動復旧機構 . . . . . . .
関係先に障害が発生した場合の自動復旧機構 . . . . . . .
アボート前提最適化 . . . . . . . . . . . . . . . . .
独立動作 . . . . . . . . . . . . . . . . . . . . .
独立動作が開始される状態 . . . . . . . . . . . . . .
独立動作の結果 . . . . . . . . . . . . . . . . . .
トランザクションが正常に完了する独立動作 . . . . . . .
エラー状態になる独立動作 . . . . . . . . . . . . .
発見的決定を生じる独立動作 . . . . . . . . . . . . .
発見的ロールバックのシナリオ . . . . . . . . . . . . .
発見的ロールバックの原因となる条件 . . . . . . . . . .
発見的ロールバックの結果 . . . . . . . . . . . . .
発見的トランザクション終了 . . . . . . . . . . . . . .
発見的トランザクション終了を実行するタイミング . . . . .
onmode -Z の使用方法 . . . . . . . . . . . . . . .
トランザクションが発見的に終了する場合の動作 . . . . . .
広域トランザクションの監視 . . . . . . . . . . . . . .
2 相コミット プロトコル エラー . . . . . . . . . . . . .
2 相コミットと論理ログ レコード . . . . . . . . . . . . .
トランザクションをコミットした場合の論理ログ レコード . . . .
発見的ロールバック中に書き込まれる論理ログ レコード . . . .
発見的なトランザクション終了後に書き込まれる論理ログ レコード .
2 相コミットで使用される構成パラメータ . . . . . . . . . .
パラメータ DEADLOCK_TIMEOUT の機能 . . . . . . . . .
パラメータ TXTIMEOUT の機能 . . . . . . . . . . . .
異機種間コミット プロトコル . . . . . . . . . . . . . .
異機種間コミット トランザクションに関与できるゲートウェイ . .
© Copyright IBM Corp. 1996, 2004
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
558
558
559
559
560
560
561
562
562
562
563
563
563
563
564
564
564
564
565
565
565
566
566
566
568
569
570
571
571
571
572
573
573
575
576
577
578
578
578
579
557
異機種間コミットの有効化と無効化 . . . .
異機種間コミットの動作 . . . . . . . .
コミット前フェーズ . . . . . . . . .
ゲートウェイ コミット フェーズ . . . .
異機種間コミットの最適化 . . . . . .
失敗した異機種間コミットの暗示 . . . . .
データベース サーバ調整元の障害 . . . .
関係先の障害 . . . . . . . . . . .
異機種間コミットのエラー メッセージの解釈
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
580
580
581
581
582
582
582
582
583
本章について
2 相コミット プロトコル により、複数のデータベース サーバ間におけるトランザクシ
ョンであっても、一様にコミットまたはロールバックできます。Informix データベース
サーバに加えて、IBM Informix Enterprise Gateway 製品またはトランザクション マネ
ージャを使用すると、非 Informix データベースのデータを操作できます。 Informix デ
ータベース サーバ間の分散問合せでは、2 相コミットがサポートされています。
単一トランザクションで 1 つ以上の Informix データベースと 1 つ の非 Informix デ
ータベースを更新する場合、異機種間コミット プロトコル により、確実にこの更新を
一様にコミットまたはロールバックできます。
失敗した 2 相コミットからの手動復旧については、 585 ページの『第 24 章 2 相コミ
ット障害からの手動復旧』を参照してください。
トランザクション マネージャ
トランザクション マネージャは、2 相コミットおよびロールバックをサポートしていま
す。例えば、データベースに Informix、会計システムに Oracle、送金システムが Sybase
の場合などに、トランザクション マネージャを使用して異なるデータベース間の通信を
行うことができます。さらに、エンタープライズ レプリケーションまたは高可用性デー
タ レプリケーションの代わりに分散トランザクションを使用することにより、トランザ
クション マネージャで Informix または非 Informix データベース間のデータの一貫性
を確認することもできます。
トランザクション マネージャでの TP/XA ライブラリの使用
広域トランザクション とは、問合せに複数のデータベース サーバが関係する分散問合
せです。広域トランザクション環境は次の部分で構成されます。
v クライアント アプリケーション
v
リソース マネージャ (Informix データベース サーバ)
v トランザクション マネージャ (サード パーティ ソフトウェア)
558
IBM Informix Dynamic Server 管理者ガイド
TP/XA は関数のライブラリです。このライブラリにより、データベース サーバは
X/Open DTP 環境でリソース マネージャとして動作できます。サード パーティのトラ
ンザクション マネージャとデータベース サーバ間で通信できるようにするには、
IBM Informix ESQL/C の一部として TP/XA ライブラリをインストールしてください。
X/Open 環境では、大規模なハイパフォーマンス OLTP アプリケーションがサポートさ
れています。詳しくは、「IBM Informix: TP/XA Programmer’s Manual」を参照してくだ
さい。
データベースに次の特徴がある場合、TP/XA を使用してください。
v データが複数ベンダのデータベースに分散している場合
v トランザクションに Informix データと非 Informix データが含まれている場合
MTS/XA (Microsoft Transaction Server) の使用
データベース サーバは、XA 環境のトランザクション マネージャとして Microsoft
Transaction Server (MTS/XA) をサポートしています。MTS/XA を使用するには、
IBM Informix Client Software Developer's Kit、IBM Informix ODBC Driver の最新バー
ジョン、および MTS/XA をインストールします。MTS/XA は Windows 上で動作しま
す。詳細については、IBM Informix テクニカル サポートにお問合せいただくか、
「IBM Informix: Client Products Installation Guide」および MTS/XA のマニュアルを参
照してください。
疎結合および密結合モードの使用
データベース サーバは疎結合および密結合モードで XA 広域トランザクションをサポ
ートしています。
v 疎結合モード では、異なるデータベース サーバによりトランザクションが調整され
ますが、リソースは共有されません。トランザクションのすべての枝のレコードは、
論理ログで異なるトランザクションとして表示されます。
v 密結合モード では、異なるデータベース サーバによりトランザクションが調整さ
れ、ロック機能やロギングなどのリソースが共有されます。トランザクションのすべ
ての枝のレコードは、論理ログで単一トランザクションとして表示されます。
BEA システムの Tuxedo Transaction Manager では、疎結合モードがサポートされてい
ます。Tuxedo は UNIX および Windows 上で動作します。
Windows のみ
Windows 上でのみ動作する MTS/XA Transaction Manager は、密結合モードをサポート
します。データベース サーバでの MTS 密結合トランザクション サポートには、以下
のものが含まれます。
v 2 階層 (ビジネス ロジック階層およびデータ アクセス階層) のアプリケーション プ
ログラムのサポート。
第 23 章 多相コミット プロトコル
559
v 接続プールおよびセッション プール。
MTS 密結合トランザクション サポートは、既存の疎結合トランザクション サポートに
影響を与えません。同じデータベース サーバは、密結合と疎結合の両方のトランザクシ
ョン サポートを同時に使用できます。
MTS 密結合トランザクション サポートには以下の制約事項があります。
v 一時表は 1 つのトランザクション分岐に制限されます。1 つの広域トランザクショ
ン内の異なるトランザクション分岐は、1 つの一時表を共用することはできません。
v 1 つの広域トランザクション内の異なるトランザクション分岐は、カーソルを共用す
ることはできません。
v 1 つの広域トランザクション内の異なるトランザクション分岐は、排他レベルまたは
ロック待機モードを共用することはできません。各トランザクション分岐の排他レベ
ルとロック待機モードは、個別に設定するか、デフォルト レベルに設定する必要が
あります。すべてのトランザクション分岐を同じ排他レベルに設定する場合は、SQL
を使用してこの情報を各トランザクション分岐に指定する必要があります。
Windows のみ の終り
サポートされているトランザクション マネージャの完全なリストについては、営業担当
員へお問合せください。
2 相コミット プロトコル
2 相コミット プロトコルは、トランザクションの実行中にシステムまたは媒体に障害が
発生した場合に自動復旧を行います。また、2 相コミット プロトコルは、ローカルまた
はネットワーク障害が発生したかどうかにかかわらず、すべての関連するデータベース
サーバが確実に同じ動作 (トランザクションのコミットまたはロールバック) に関する
指示を受け、実行できるようにします。
いずれかのデータベース サーバがそのトランザクションの一部をコミットできない場合
は、そのトランザクションに関係するすべての データベース サーバがその作業をコミ
ットできなくなるようにする必要があります。
2 相コミット プロトコルが使用される場合
データベース サーバは、複数のデータベース サーバのデータを更新する任意のトラン
ザクションに対して、2 相コミット プロトコルを自動的に使用します。
例えば、australia、italy、および france という名前をもった 3 つのデータベース サー
バが図 98 に示すように接続されているとします。
560
IBM Informix Dynamic Server 管理者ガイド
italy
france
australia
図 98. 接続されたデータベース サーバ
図 99 に示すコマンドを実行すると、3 つの異なるデータベース サーバで更新が 1 回
と挿入が 2 回行われます。
CONNECT TO stores_demo@italy
BEGIN WORK
UPDATE stores_demo:manufact SET manu_code = ’SHM’ WHERE manu_name = ’Shimara’
INSERT INTO stores_demo@france:manufact VALUES (’SHM’, ’Shimara’, ’30’)
INSERT INTO stores_demo@australia:manufact VALUES (’SHM’, ’Shimara’, ’30’)
COMMIT WORK
図 99. 分散トランザクションの例
2 相コミットの概念
広域トランザクションには、それぞれ調整元 と 1 つ以上の関係先 があり、次のように
定義されています。
v 調整元 は広域トランザクションの解決を指示します。さらに、広域トランザクショ
ンをコミットするかアボートするかを決定します。
2 相コミット プロトコルは、常に現行 データベース サーバに調整元としての役割
を割り当てます。単一トランザクション中は調整元の役割を変えることはできませ
ん。561 ページの図 99 のトランザクション例では、調整元は italy です。この例の
最初の文を次の文に変更すると、2 相コミット プロトコルは調整元の役割を france
に指定します。
CONNECT TO stores_demo@france
onstat -x オプションを使用すると、分散トランザクションの調整元を表示できます。
詳しくは、571 ページの『広域トランザクションの監視』を参照してください。
v 各関係先 は、トランザクションの分岐 の 1 つ (単一のローカル データベースが関
与する広域トランザクションの一部) を実行するように指示します。次のような状況
では、広域トランザクションに複数のトランザクションの分岐が含まれます。
– アプリケーションが広域トランザクションを処理するために複数のプロセスを使用
している場合
第 23 章 多相コミット プロトコル
561
– 複数の遠隔アプリケーションが同一の広域トランザクションを処理している場合
561 ページの図 98 では、関係先は france と australia です。調整元データベース
サーバ italy は関係先としても機能します。これは、更新も実行しているためです。
2 相コミット プロトコルは 2 つの通信手段であるメッセージ と論理ログ レコード に
依存しています。
v
メッセージは調整元と各関係先の間で交わされます。調整元からのメッセージに
は、トランザクション ID 番号や指示 (コミット準備、コミット、ロールバック) が
含まれます。各関係先からのメッセージには、トランザクション状態や実行した動作
の報告 (コミット可能またはコミット不可、コミット完了またはロールバック完了)
が含まれます。
v 関係先または調整元のデータベース サーバに障害が発生した場合でも、データの整
合性と一貫性を確保するため、トランザクションの論理ログ レコードはディスクま
たはテープに保持されます。
詳しくは、573 ページの『2 相コミットと論理ログ レコード』を参照してくださ
い。
2 相コミット プロトコルの相 (フェーズ)
2 相コミット トランザクションでは、調整元はすべてのデータ変更の指示 (例えば挿入
など) を全関係先に送ります。次に調整元は 2 相コミット プロトコルを開始します。2
相コミット プロトコルには、コミット前フェーズ と決定後フェーズ という 2 つの相
(フェーズ) があります。
コミット前フェーズ
コミット前フェーズの間、調整元と関係先は以下のようなダイアログを実行します。
1. 調整元。調整元は各関係先データベース サーバにトランザクションをコミットする
準備をするよう指示します。
2. 関係先。各関係先はトランザクションの分岐をコミットできるかどうか調整元に通知
します。
3. 調整元。調整元は各関係先からの応答に基づいて、トランザクションをコミットする
かロールバックするか決定します。調整元は、すべての 関係先がトランザクション
の分岐をコミットできることを通知した場合にのみ、トランザクションのコミットを
決定します。関係先のいずれかが、トランザクションの分岐のコミット準備が完了し
ていない ことを通知するか、応答しない場合、調整元は広域トランザクションのア
ボートを決定します。
決定後フェーズ
決定後フェーズの間、調整元と関係先は以下のようなダイアログを実行します。
562
IBM Informix Dynamic Server 管理者ガイド
1. 調整元: 調整元は関係先の論理ログにコミット レコードまたはロールバック レコー
ドを書き込み、次に各関係先データベース サーバにそのトランザクションをコミッ
トまたはロールバックするよう指示します。
2. 関係先: 調整元がコミット メッセージを送ると、関係先はコミット レコードを論理
ログに書き込んでトランザクションをコミットし、次にトランザクションがコミット
されたことを承認するメッセージを調整元に送ります。調整元がロールバック メッ
セージを送ると、関係先はトランザクションをロールバックしますが、この場合調整
元に肯定応答は送りません。
3. 調整元: トランザクションをコミットするメッセージを送った場合、調整元は各関係
先から肯定応答が届くのを待ってから広域トランザクションを終了します。調整元が
トランザクションをロールバックするメッセージを送った場合は、関係先からの肯定
応答を待機しません。
2 相コミット プロトコルによる障害の対処方法
2 相コミット プロトコルは、すべての関係先データベース サーバ上でデータの整合性
が保たれるような方法でシステムと媒体の障害を処理するように設計されています。障
害が発生すると、2 相コミット プロトコルは自動復旧 を実行します。
自動復旧で処理する障害のタイプ
次のようなイベントが発生すると、調整元スレッドまたは関係先スレッドが終了または
ハングして、自動復旧が必要になります。
v 調整元のシステム障害
v 関係先のシステム障害
v ネットワーク障害
v 管理者による調整元スレッドの終了
v 管理者による関係先スレッドの終了
自動復旧での管理者の役割
自動復旧における管理者の唯一の役割は、システムまたはネットワーク障害の後で調整
元または関係先 (あるいはその両方) をオンラインに戻すことです。
重要: 遅いネットワークは自動復旧を起動できません。調整元のシステムやネットワー
クで障害が発生しなかったり、管理者が調整元スレッドを終了しなければ、ここ
で説明した復旧機構は有効になりません。
調整元に障害が発生した場合の自動復旧機構
調整元スレッドで障害が発生すると、各関係先データベース サーバは、トランザクショ
ンをコミットまたはロールバックする前 か、トランザクションをロールバックした後
のどちらで自動復旧を開始するかを決定する必要があります。この処理はアボート前提
最適化の一部です。(564 ページの『アボート前提最適化』を参照。)
第 23 章 多相コミット プロトコル
563
関係先に障害が発生した場合の自動復旧機構
関係先スレッドが作業項目を事前にコミットし、2 相コミット プロトコルが完了する前
に終了した場合は必ず関係先復旧が実行されます。関係先復旧の目的は、調整元が行っ
た決定に従って 2 相コミット プロトコルを完了することです。
関係先復旧は、調整元が広域トランザクションをコミットまたはロールバックする決定
を下したかどうかによって、調整元または関係先のいずれかが主導権を保有します。
アボート前提最適化
アボート前提最適化は、2 相コミット プロトコルがトランザクションのロールバックを
処理 (アボート) する方法を表す用語です。
ロールバックは以下のように処理されます。調整元がトランザクションのロールバック
を決定すると、すべての関係先にその部分的作業をロールバックするように指示するメ
ッセージを送ります。調整元はこのメッセージに対する肯定応答を待たずにトランザク
ションをクローズして、共有メモリから削除します。関係先が、このトランザクション
が (例えば関係先復旧中に) コミットされたのかロールバックされたのかを判断しよう
としても、共有メモリ内ではトランザクションの状態を知ることができません。関係先
はこれをトランザクションがロールバックされたものと解釈する必要があります。
独立動作
2 相コミットの中の独立動作とは、2 相コミット プロトコルから独立して発生する動作
です。独立動作は、2 相コミット プロトコルが指定する動作とは逆の場合とそうでない
場合があります。動作が 2 相コミット プロトコルとは逆である 場合、動作の結果はエ
ラーか、発見的決定 になります。発見的決定が発生するとデータベースの一貫性が損な
われ、手動 2 相コミット復旧が必要になります。手動復旧の管理手順は非常に複雑にな
るため、避けるようにしてください。手動復旧処理については、 585 ページの『第 24
章 2 相コミット障害からの手動復旧』を参照してください。
独立動作が開始される状態
2 相コミット プロトコル中に独立動作 が発生することはまれですが、以下のような状
況では発生する可能性があります。
v 関係先の部分的作業がロング トランザクション エラーとなり、ロールバックされた
場合。
v プロトコルの決定後フェーズの間に onmode -z を使用して管理者が関係先スレッド
を強制終了した場合。
v プロトコルの決定後フェーズの間に onmode -Z を使用して管理者が関係先トランザ
クション (部分的作業) を強制終了した場合。
564
IBM Informix Dynamic Server 管理者ガイド
v 管理者は、調整元がコミットの決定を出した後、関係先で障害が発生したことが分か
った場合、onmode -z または onmode -Z を使用して、調整元データベース サーバ
の広域トランザクションを強制終了します。この動作の結果は必ずエラー、特にエラ
ー -716 になります。
独立動作の結果
前述のように、独立動作がすべて 2 相コミット プロトコルの逆になるというわけでは
ありません。 独立動作は以下の 3 つの結果になる可能性があります。
v 2 相コミット プロトコルの正常終了
v エラー状態
v 発見的決定
動作が 2 相コミット プロトコルと逆ではない場合、トランザクションは正常にコミッ
トまたはロールバックされるはずです。動作により広域トランザクションが実行途中で
終了すると、エラー状態となります。広域トランザクションを調整元で終了しても発見
的決定とは見なされません。動作が 2 相コミット プロトコルの逆になる場合、結果は
発見的決定となります。以降のセクションですべてのこれらの状況について説明しま
す。
トランザクションが正常に完了する独立動作
独立動作は必ずしも 2 相コミット プロトコルの逆になるとは限りません。例えば、関
係先データベース サーバ上での部分的作業がロング トランザクションになり、さらに
調整元が広域トランザクションのロールバックを決定したためにこのトランザクション
がロールバックされた場合、データベースの一貫性は保たれます。
エラー状態になる独立動作
管理者が調整元データベース サーバ上にあって、調整元がその最後のコミット 決定を
出した後で onmode -z (調整元スレッドの強制終了) または onmode -Z (広域トランザ
クションの強制終了) を実行すると、調整元データベース サーバの共有メモリからトラ
ンザクションについての情報をすべて削除することになります。
この動作は 2 相コミット プロトコルと干渉するわけではないので発見的決定とは見な
されません。この動作は容認されるか、または関係先復旧と干渉してエラーを発生させ
ます。
すべての関係先が問題なくトランザクションをコミットできる場合には、いつでもこの
動作は容認されます。この場合、トランザクションを強制終了させる動作は実際には不
要です。onmode -Z が実行されたことは、調整元がトランザクション終了の準備をして
いる場合にのみ調整元に通知されます。
しかし、実際に調整元データベース サーバで onmode -z または onmode -Z を実行す
るのは、異常に長い期間実行中となっている広域トランザクションを即時に終了する場
第 23 章 多相コミット プロトコル
565
合に限られます。この場合、問題の原因はおそらく関係先データベース サーバのいずれ
かに障害が発生したためです。関係先がその部分的作業をコミットしたという承認を調
整元がまだ受け取っていないため、調整元がそれを調べるために関係先と通信しようと
している状況です。
調整元が通信を再度確立しようとしているときに onmode -z または onmode -Z を実行
すると調整元スレッドはその指示に従って強制終了します。ただし、これはエラー -716
をデータベース サーバ メッセージ ログに書き込んだ後です。この動作は、2 相コミッ
ト プロトコルを強制的に中止し、調整元がデータベースの一貫性を調べることができな
くなったためにエラーと見なされます。
調整元データベース サーバでの広域トランザクションの強制終了は発見的決定とは見な
されませんが、この結果データベースが矛盾することがあります。例えば、関係先が最
終的にオンラインに復帰してから調整元共有メモリの中に広域トランザクションを検出
できないと、関係先はその部分的作業をロールバックするため、それによってデータベ
ースの一貫性が失われることになります。
発見的決定を生じる独立動作
独立動作の中には、次の両方の 条件が揃った場合に発見的決定となるものがあります。
v 関係先データベース サーバはコミット可能メッセージを調整元に送った後にロール
バックする。
v 調整元がトランザクションのコミットを決定している。
上記の条件が揃うと、その結果として (1 つ以上のデータベース サーバによってコミッ
トされ、別のデータベース サーバではロールバックされると) 広域トランザクションの
実行に一貫性がなくなります。データベースは一貫性を失います。
以下のような 2 つの発見的決定が生じる可能性があります。
v 発見的ロールバック (566 ページの『発見的ロールバックのシナリオ』を参照)
v 発見的トランザクション終了 (569 ページの『発見的トランザクション終了』を参照)
いったん発見的ロールバックまたは発見的トランザクション終了が発生すると、複雑で
時間のかかる手動復旧の実行が必要になる場合があります。このため、発見的決定につ
いて理解し、これを回避する必要があります。2 相コミットを使用している場合、
onmode -z または onmode -Z の実行は常に慎重に行ってください。
発見的ロールバックのシナリオ
発見的ロールバック では、データベース サーバまたは管理者が、すでにコミット可能
メッセージを送信した部分的作業をロールバックします。
発見的ロールバックの原因となる条件
発見的ロールバックの原因になる可能性があるのは以下の 2 つの場合です。
566
IBM Informix Dynamic Server 管理者ガイド
v 構成パラメータ LTXEHWM によって定義された限界まで論理ログがフルになった場
合。「IBM Informix: Dynamic Server 管理者の参照」の構成パラメータに関する章を
参照してください。ロング トランザクションの原因となる条件は、広域トランザク
ションのために実行されている部分的作業にあります。
v 管理者が onmode -z session_id を実行して、広域トランザクションのために実行中の
部分的作業を実行しているデータベース サーバ スレッドを強制終了させた場合。
いずれの場合も、部分的作業がすでにコミット可能メッセージをその調整元に送ってい
れば、その動作は発見的決定と見なされます。
状態 1: 論理ログが限界まで達している: 2 相コミットを使用している場合、調整
元からの指示を待っている関係先データベース サーバは、トランザクションの完了を妨
げられます。トランザクションはオープンされたままとなるため、このトランザクショ
ンに関連付けられているレコードを含む論理ログ ファイルは解放されません。この結
果、この論理ログは並行使用しているユーザの動作により、埋まり続けます。
関係先が待ちの状態の間に論理ログがロング トランザクション限界 (LTXHWM) まで
達すると、データベース サーバはロング トランザクションを所有するすべてのデータ
ベース サーバ スレッドに対してそのトランザクションのロールバックを開始するよう
に指示を送ります。事前にコミットされた部分的作業が問題のロング トランザクション
の原因であれば、データベース サーバは発見的ロールバックを実行します。つまり、こ
のデータベース サーバは、調整元からの指示を受けずに、事前にコミットされている部
分的作業をロールバックします。
2 相コミットでは、部分的作業に関連付けられたレコードを含んでいる論理ログ ファイ
ルは、論理ログ レコード ENDTRANS が書き込まれるまでオープンしているものと見
なされます。この種のトランザクションは、ロールバックによって実際にトランザクシ
ョンがクローズされる単一の データベース サーバが関与するトランザクションとは異
なります。
論理ログは排他的限界 (LTXEHWM) に達するまで継続します。これが発生すると、現
在ロールバックまたはコミットを行っているものを除くすべてのユーザ スレッドが一時
停止されます。2 相コミットでは、オープンしているトランザクションがあると、論理
ログ ファイルのバックアップや論理ログ領域の解放ができなくなります。このような特
定の状況下では、論理ログが完全に満たされてしまうことがあります。この場合関係先
データベース サーバが切断されるため、データの復旧を行う必要があります。
状態 2: システム管理者が onmode -z を実行する: 管理者は、onmode -z を実
行することにより、事前にコミットされた部分的作業の発見的ロールバックを開始する
よう決定できます。この決定は、部分的作業によって保持されているリソースを解放す
るために行うことになります。onmode -z を実行して関係先スレッドを強制終了させる
と、トランザクションを終了させなくても、その関係先スレッドによって保持されてい
るロックと共有メモリ リソースがすべて解放されます。
第 23 章 多相コミット プロトコル
567
発見的ロールバックの結果
ここでは、発見的ロールバックが生じた場合に調整元と関係先で何が発生するのか、そ
してこのプロセスによってデータベースの一貫性がどのように失われるのかについて説
明します。
1. ロールバックが発生した関係先データベース サーバ上では、データベース サーバ論
理ログ (HEURTX 型) にレコードが書き込まれます。トランザクションによって保
持されていたロックとリソースが解放されます。関係先スレッドはデータベース サ
ーバ メッセージ ログにロング トランザクション状態とロールバックが発生したこ
とを示す次のメッセージを書き込みます。
Transaction Completed Abnormally (rollback):
tx=address flags=0xnn
2.
調整元決定後フェーズの指示を出してトランザクションをコミットします。
発見的ロールバックが発生したデータベース サーバの関係先スレッドは、次のよう
に調整元にエラー メッセージ -699 を戻します。
-699 Transaction heuristically rolled back.
この時点では、このエラー メッセージはアプリケーションに戻されません。これは
調整元に対する内部通知です。調整元はすべての関係先がコミット指示に応答するま
で待機します。調整元はすべての関係先から報告が届くまでデータベースの一貫性を
判断しません。
3.
次の手順はもう 1 つの関係先で発生した動作によって決まります。2 つの状況が考
えられます。
状況 1: 調整元がコミットを指示して、すべての関係先が発見的ロールバック
を報告してくる: 調整元は関係先からの応答をすべて収集します。すべての関係先が
発見的ロールバックを報告してきた場合には、結果として次のようなイベントが発生し
ます。
1. 調整元がそのデータベース サーバ メッセージ ログに次のようなメッセージを書き
込みます。
Transaction heuristically rolled back.
2. 調整元がすべての関係先にトランザクションを終了するよう指示するメッセージを送
ります。
3. 各関係先がその論理ログ バッファにレコード ENDTRANS を書き込みます。(トラ
ンザクション エントリは、トランザクション表から削除されます。)
4.
調整元は次のようにアプリケーションにエラー -699 を戻します。
-699 Transaction heuristically rolled back.
5. この状況では、すべてのデータベースの一貫性が保たれます。
568
IBM Informix Dynamic Server 管理者ガイド
状況 2: 調整元がコミットを指示して、1 つの関係先がコミットを実行し、1
つの関係先が発見的ロールバックを報告してくる: 調整元は関係先からの応答を
すべて収集します。発見的ロールバックを報告してきた関係先と、コミットの承認を報
告してきた関係先が少なくとも 1 つずつある場合、その結果は混合トランザクション結
果 と呼ばれます。結果として次のようなイベントが発生します。
1. 調整元がそのデータベース サーバ メッセージ ログに次のようなメッセージを書き
込みます。
Mixed transaction result. (pid=nn user=userid)
pid 値は、調整元プロセスのユーザ プロセス ID 番号です。user 値は、調整元プロ
セスに関連付けられたユーザ ID 番号です。このメッセージとともに発見的ロールバ
ックを報告してきた関係先データベース サーバを一覧表示した追加メッセージが表
示されます。追加メッセージは次のような形式で表示されます。
Participant database server dbservername heuristically rolled back.
2. 調整元は、部分的作業を発見的にロールバックした各関係先に、それぞれトランザク
ションを終了するよう指示するメッセージを送ります。
3. 各関係先がその論理ログ バッファにメッセージ ENDTRANS を書き込みます。(ト
ランザクション エントリは、トランザクション表から削除されます。)
4. 調整元がその論理ログ バッファにメッセージ ENDTRANS を書き込みます。トラン
ザクション エントリは、共有メモリ トランザクション表から削除されます。
5.
調整元は次のようにアプリケーションにエラー -698 を戻します。
-698 Inconsistent transaction. Number and names of servers
rolled back.
6. このエラー メッセージとともに、発見的ロールバックを報告してきた関係先データ
ベース サーバのリストが表示されます。トランザクションをロールバックしたデー
タベース サーバがたくさんある場合、このリストは切り捨てられます。全リストは
必ず調整元データベース サーバのメッセージ ログに含まれています。
この状況では、各関係先データベース サーバ上の論理ログを調べて、使用しているデー
タベース システムに一貫性があるかどうかを判断します。(586 ページの『トランザク
ションが非一貫的に実行されたかどうかの判断』を参照。)
発見的トランザクション終了
発見的トランザクション終了 とは、部分的作業をロールバックしてそのトランザクショ
ンについてのすべての情報をトランザクション表から削除するために管理者が行う独立
動作のことをいいます。発見的トランザクション終了プロセスは、管理者がコマンド
onmode -Z address を実行すると開始されます。
onmode -Z を実行して発見的トランザクション終了を実行するたびに、2 相コミット
プロトコルとその自動復旧機能をサポートするのにデータベース サーバが必要とする重
第 23 章 多相コミット プロトコル
569
要な情報が削除されます。onmode -Z を実行する場合、ネットワーク化されたデータベ
ース システムの一貫性を判断するのは管理者の責任になります。
発見的トランザクション終了を実行するタイミング
発見的トランザクション終了を開始する onmode -Z の実行は、一度だけ、あるいはま
れにしか行うべきではありません。この状態は、発見的にロールバックされた部分的作
業がオープンしたままで、論理ログ ファイルが解放されない場合に発生します。 この
結果、論理ログはフルになる危険性があります。
一般的に、調整元は適切な時間内にコミットまたはロールバックの決定を出します。し
かし、調整元に障害が発生してオンラインに復帰せず、したがって関係先データベース
サーバ上で発見的にロールバックされたトランザクションを終了できない場合は、深刻
な問題に直面することになります。
この問題は以下のようにして発生します。
1. 広域トランザクションのために部分的作業を実行中の関係先スレッドが、調整元にコ
ミット可能応答を送りました。
2.
部分的作業は調整元からの指示を待機します。
3. 部分的作業が待っている間に、論理ログがロング トランザクション限界を超えてし
まいます。
4.
指示を待っている部分的作業がロング トランザクションの原因となっています。関
係先データベース サーバは実行中のスレッドに部分的作業のロールバックを指示し
ます。この動作が発見的ロールバックです。
5.
関係先は引き続き調整元からのトランザクション終了の指示を待機します。 トラン
ザクションはオープンしたままになります。論理ログは埋まり続けます。
調整元が関係先に連絡して適当な時間内にトランザクションを終了するよう指示すれば
問題は発生しません。関係先データベース サーバで発見的ロールバックが発生すると、
重大な問題により調整元で障害が発生するため、調整元は関係先にトランザクション終
了を指示できません。
その結果としてトランザクションはオープンしたままになります。トランザクションが
オープンしていると、論理ログ ファイルのバックアップや論理ログの領域の解放ができ
なくなります。論理ログが引き続き埋まっていくと、排他的アクセスによって指定され
ている点、排他ロング トランザクション限界 (LTXEHWM) に達する可能性がありま
す。この限界点に達すると、通常の処理が一時停止されます。上限基準点に到達した後
のある時点で、管理者はオープンしているトランザクションの論理ログに対する危険性
を判断する必要があります。危険とは、論理ログが完全にフルになり、データベース サ
ーバを終了してデータ復元を実行しなければならない状態をいいます。
570
IBM Informix Dynamic Server 管理者ガイド
onmode -Z の実行に伴う問題を無視してトランザクションを強制終了し、論理ログが作
成限界にならないようにするか、あるいは調整元との通信を再度確立して論理ログが作
成限界になる前にトランザクションを終了できるかを待機して確認するか決定する必要
があります。
onmode -Z の使用方法
onmode -Z address は、調整元と関係先との通信が途絶えたときにのみ使用するように
意図されています。通信が本当に不可能になったことを確認するため、部分的作業を実
行しているスレッドが TXTIMEOUT で指定された時間まで休止しない限り、コマンド
onmode -Z は実行されません。このオプションの詳細については、「IBM Informix:
Dynamic Server 管理者の参照」のユーティリティに関する章を参照してください。
パラメータ address は、onstat -x の出力から得られます。onstat -x オプションの詳細
については、「IBM Informix: Dynamic Server 管理者の参照」のユーティリティに関す
る章を参照してください。
トランザクションが発見的に終了する場合の動作
onmode -Z を実行すると、指定のアドレスに入っている関係先トランザクション エン
トリをトランザクション表から削除するようユーティリティ onmode に指示することに
なります。
論理ログにはこの動作を説明する 2 つのレコードが書き込まれています。これらのレコ
ードは、タイプ ROLLBACK および ENDTRANS、あるいはトランザクションがすでに
発見的にロールバックされている場合には ENDTRANS のみです。関係先データベース
サーバ メッセージ ログに次のようなメッセージが書き込まれます。
(time_stamp) Transaction Completed Abnormally (endtx): tx=address flags:0xnn
user username tty ttyid
調整元は、COMMIT 指示に対する応答として onmode -Z が実行された関係先からエラ
ー メッセージを受け取ります。調整元は関係先データベース サーバに問合せを出しま
すが、このデータベース サーバにはトランザクションに関する情報はもはやありませ
ん。関係先データベース サーバ上にトランザクション表エントリがないことは、トラン
ザクションがコミットされたことを示します。調整元は、肯定応答が関係先から送信さ
れたにもかかわらず受け取られていないと想定します。調整元はこの関係先の部分的作
業がコミットされなかったことが認識できない ため、広域トランザクションが非一貫的
に実行されたことを示すメッセージを生成しません。この非一貫的な実行を認識してい
るのは、コマンド onmode -Z を実行した管理者のみです。
広域トランザクションの監視
実行中のトランザクションを追跡し、そのトランザクションが発見的にロールバックさ
れたかどうかを決定するには、コマンド onstat -x を使用します。図 100 では、アドレ
ス a733748 のロング トランザクションが発見的にロールバックされています。
第 23 章 多相コミット プロトコル
571
フィールド「flags」の 左から 3 番目にあるフラグ H は発見的ロールバックを示し、5
番目にあるフラグ G は広域トランザクションを表しています。左から 2 番目に表示さ
れるフラグは実行中のトランザクション モードを示し、フラグ L は疎結合モード、フ
ラグ T は密結合モードです。
フィールド curlog および logposit は論理ログ レコードの正確な位置を示します。トラ
ンザクションがロールバックされていない場合、「curlog」および「logposit」は、最近
に書かれたログ レコードの位置を示します。トランザクションがロールバックされてい
るなら、これらのフィールドは最近の「取消し」ログ レコードの位置を示します。この
レコードは、ページ オフセット 2 (ログ内 3 ページ目) のログ 20 にあり、バイト オ
フセットは 0x218 です。トランザクションがロールバックされるに従って、curlog お
よび logposit の値は減少します。ロング トランザクションでは、logposit と beginlg
の値が収束する速度から、ロールバックに必要な時間を見積もることができます。
IBM Informix Dynamic Server
Transactions
address flags
a733018 A---a7331e4 A---a7333b0 A---a73357c A---a733748 --H-G
a733ae0 A---6 active, 128
Version 9.40.U
userthread locks
a701018
0
a701638
0
a701c58
0
a702278
0
0
0
a7034d8
0
total, 10 maximum
beginlg curlog
0
20
0
0
0
0
0
0
17
20
0
0
concurrent
-- Online (LONGTX)
logposit
0x11a0
0x0
0x0
0x0
0x2218
0x0
isol
retrys coord
COMMIT 0
COMMIT 0
COMMIT 0
COMMIT 0
COMMIT 0
COMMIT 0
図 100. onstat -x の出力
コマンド onstat -u および onstat -k を使用すると、トランザクションとトランザクシ
ョンが保持するロックを追跡することもできます。詳細は、「IBM Informix: Dynamic
Server パフォーマンス ガイド」のトランザクションの監視のセクションを参照してく
ださい。onstat -x で表示されるフィールドの説明については、「IBM Informix:
Dynamic Server 管理者の参照」のユーティリティに関する章を参照してください。
2 相コミット プロトコル エラー
管理者は次のような 2 相コミット プロトコル エラーについて特別に注意する必要があ
ります。
572
エラー番号
説明
-698
エラー -698 を受け取った場合、発見的ロールバックおよび非一貫的
に実行されたトランザクションが発生しています。このイベントにつ
ながる状況については、568 ページの『発見的ロールバックの結果』
で説明されています。非一貫的なトランザクションが発生する仕組み
と使用できるオプションについては、この説明を参照してください。
-699
エラー -699 を受け取った場合、発見的ロールバックが発生していま
IBM Informix Dynamic Server 管理者ガイド
す。このイベントにつながる状況については、568 ページの『発見的
ロールバックの結果』で説明されています。非一貫的なトランザクシ
ョンが発生する仕組みについてはこの説明を参照してください。
-716
エラー -716 を受け取った場合、調整元スレッドは、管理者の操作に
よって、最終決定を発行した後で終了しています。これについては
565 ページの『エラー状態になる独立動作』で説明しています。
2 相コミットと論理ログ レコード
データベース サーバは論理ログ レコードを使用して 2 相コミット プロトコルを実行
します。この論理ログ レコードは、発見的決定の検出や、必要な場合は手動復旧を実行
するために役立てることができます。 585 ページの『第 24 章 2 相コミット障害からの
手動復旧』を参照してください。
分散トランザクションには次のような論理ログ レコードが関係します。
v BEGPREP
v PREPARE
v TABLOCKS
v HEURTX
v ENDTRANS
これらの論理ログ レコードについては、「IBM Informix: Dynamic Server 管理者の参
照」の論理ログの解釈に関する章を参照してください。
ここでは、次のようなデータベース サーバの状況で書き込まれる論理ログ レコードの
順序について詳しく説明します。
v トランザクションがコミットされた場合
v 部分的作業が発見的にロールバックされた場合
v 部分的作業が発見的に終了した場合
トランザクションをコミットした場合の論理ログ レコード
図 101 に、トランザクションをコミットする正常な 2 相コミット プロトコル中に行わ
れる論理ログ レコードの書込み手順を示します。
第 23 章 多相コミット プロトコル
573
:
C
: BEGPREP
:
P1
P2
:
P3
: TABLOCKS
: PREPARE
:
:
C
: COMMIT
:
P1
P2
:
P3
: COMMIT
:
:
C
: ENDTRANS
図 101. トランザクションのコミット中に書き込まれる論理ログ レコード
論理ログ レコードの中には論理ログ バッファにただちにフラッシュが必要なものがあ
ります。そのほかのログ レコードについては、フラッシュはそれほど問題ではありませ
ん。
調整元の作業コミット レコード (レコード COMMIT) には、2 相コミット プロトコル
を実行するのに必要なすべての情報が入っています。また、調整元のホスト コンピュー
タで障害が発生した場合の自動復旧の開始点としての役割も果たします。このレコード
は復旧にとって極めて重要であるため、論理ログ バッファに入れたままにしておくこと
は許されません。調整元はただちに COMMIT 論理ログ レコードをフラッシュする必
要があります。
574 ページの図 101 に示す関係先は、論理ログ レコード PREPARE および COMMIT
の両方をただちにフラッシュする必要があります。レコード PREPARE をフラッシュす
ることによって、関係先のホスト コンピュータに障害が発生した場合でも、この関係先
が広域トランザクションの一部であることを高速復旧が判断できるようになります。復
旧作業の一部として、関係先は調整元に対して問合せを行い、このトランザクションで
最後に処分されたものを知ることができます。
574
IBM Informix Dynamic Server 管理者ガイド
関係先のレコード COMMIT をフラッシュすることによって、関係先のホスト コンピ
ュータに障害が発生した場合でも、関係先がトランザクションについて行った動作のレ
コードが残ります。この情報がなぜ重要なのかを理解するには、PREPARE レコードが
書き込まれた後レコード COMMIT がフラッシュされる前に関係先がクラッシュした場
合の状況を考えてみてください。高速復旧の後、レコード PREPARE は復元されます
が、レコード COMMIT は障害発生時に論理ログ バッファに入っていたため失われま
す。レコード PREPARE が存在すれば調整元に対するトランザクションについての問合
せが実行されます。しかし、調整元は関係先のコミットが行われたことを示す肯定応答
を受け取った後でトランザクションを終了しているため、トランザクションについては
何の情報も持たないことになります。この場合、関係先は、情報がないということはト
ランザクションをロールバックせよという最後の指示であると解釈します。このような
誤解を防ぐため、2 相コミット プロトコルでは関係先のレコード COMMIT をただち
にフラッシュすることが必要です。
発見的ロールバック中に書き込まれる論理ログ レコード
576 ページの図 102 に、データベース サーバの発見的ロールバック中の論理ログ レコ
ードの書込み順序を示します。発見的ロールバックが発生するのは、関係先がコミット
可能というメッセージを送った後、調整元がコミットを指示するメッセージを送信した
ときのみであるため、このプロトコルの最初のフェーズは 574 ページの図 101 と同じ
です。発見的ロールバックは関係先 1 (P1) データベース サーバで発生したロング ト
ランザクション状態の結果発生したものと見なされます。 最終的な結果は、トランザク
ションが非一貫的に実行されることに注意してください。566 ページの『発見的ロール
バックのシナリオ』を参照してください。
第 23 章 多相コミット プロトコル
575
:
C
: BEGPREP
:
:
P1
P2
: TABLOCKS
: PREPARE
P3
:
P1
OK
:
: HEURTX
: ROLLBACK
:
C
: COMMIT
:
P1
P2
1:
P3
:
2
3:
: COMMIT
:
:
C
(-698)
1
P1
P2
:
1:
P3
: ENDTRANS
:
:
C
: ENDTRANS
:
-698
図 102. 発見的ロールバック中に書き込まれる論理ログ レコード
発見的なトランザクション終了後に書き込まれる論理ログ レコード
577 ページの図 103 に、発見的トランザクション終了中の論理ログ レコードの書込み
順序を示します。このイベントは常に、関係先が コミット可能メッセージを送った後に
データベース サーバ管理者がその関係先データベース サーバ上のトランザクションを
強制終了した場合の結果です。「IBM Informix: Dynamic Server 管理者の参照」のユー
ティリティに関する章の onmode についてのセクションを参照してください。図 103
では、発見的トランザクション終了は関係先 1 (P1) データベース サーバで発生したと
想定されています。 この結果、トランザクションが非一貫的に実行されました。569 ペ
ージの『発見的トランザクション終了』を参照してください。
576
IBM Informix Dynamic Server 管理者ガイド
:
C
: BEGPREP
:
:
P1
P2
P3
: TABLOCKS
: PREPARE
:
P1
:
: ROLLBACK
: ENDTRANS
:
C
: COMMIT
:
P1
P2
1:
P3
2
3:
: COMMIT
:
:
P1
P1
C
P1
P2
TX
P1
1:
P3
:
C
: ENDTRANS
図 103. 発見的トランザクション終了の間に書き込まれる論理ログ レコード
2 相コミットで使用される構成パラメータ
分散型環境に特有な構成パラメータは次の 2 つです。
v DEADLOCK_TIMEOUT
v TXTIMEOUT
第 23 章 多相コミット プロトコル
577
いずれのパラメータもタイムアウト時間を指定しますが、2 つは独立したパラメータで
す。これらの構成パラメータについての詳細は、「IBM Informix: Dynamic Server 管理
者の参照」を参照してください。
パラメータ DEADLOCK_TIMEOUT の機能
共有メモリ リソースについて DEADLOCK_TIMEOUT で指定された秒数よりも長く分
散トランザクションが強制的に待たされると、そのトランザクションを所有するスレッ
ドは、複数サーバ デッドロックが存在するものと見なします。次のようなエラー メッ
セージが戻ります。
-154 ISAM error: deadlock timeout expired - Possible deadlock.
DEADLOCK_TIMEOUT のデフォルト値は 60 秒です。この値の調整は慎重に行ってく
ださい。設定した値が小さすぎると、個々のデータベース サーバはデッドロックでない
トランザクションもアボートしてしまいます。設定した値が大きすぎると、複数サーバ
のデッドロックによって並行性が低下する可能性があります。
パラメータ TXTIMEOUT の機能
構成パラメータ TXTIMEOUT は、2 相コミット プロトコル専用です。トランザクショ
ン調整元と関係先の通信に割込みが入って再確立する必要がある場合にのみ使用されま
す。
パラメータ TXTIMEOUT は、分散トランザクション中に関係先データベース サーバが
調整元データベース サーバからのコミット 指示を待つ時間を指定します。
TXTIMEOUT に指定した時間が経過すると、関係先データベース サーバはトランザク
ションの状態を検査して、自動関係先復旧を開始すべきかどうかを判断します。
TXTIMEOUT は秒単位で指定されます。デフォルト値は 300 (5 分) です。このパラメ
ータの最適値は、使用している環境やアプリケーションによって異なります。このパラ
メータを変更する前に、563 ページの『2 相コミット プロトコルによる障害の対処方
法』の説明を参照してください。
異機種間コミット プロトコル
Informix データベース サーバでの異機種環境という用語は、複数のデータベース サー
バのうち少なくとも 1 つが Informix データベース サーバではないデータベース サー
バの集まりを指します。異機種間コミットにより、異機種環境での絶対的な分散トラン
ザクションが保証されます。
2 相コミット プロトコルと異なり、異機種間コミット プロトコルは、非 Informix の関
係先の関与をサポートします。非 Informix の関係先 (ゲートウェイ関係先) は、IBM
Informix ゲートウェイを通じて、調整元と通信する必要があります。
578
IBM Informix Dynamic Server 管理者ガイド
データベース サーバは、次の条件が満たされる場合に異機種間コミット プロトコルを
使用します。
v 異機種間コミットが有効である場合。つまり、構成パラメータ HETERO_COMMIT
が 1 に設定されている場合。
v コミットの調整元がバージョン 7.2 以降の IBM Informix Dynamic Server である場
合。
v 非 Informix の関係先が Informix ゲートウェイを通じて Informix データベース サー
バと通信する場合。
v 最大 1 つの非 Informix の関係先が単一トランザクション内で更新を実行する場合。
図 104 にこのシナリオを示します。
Informix
Informix
Informix
Informix
図 104. 分散トランザクションで異機種間コミットが必要な構成
異機種間コミット トランザクションに関与できるゲートウェイ
Informix ゲートウェイは、Informix アプリケーション (この場合はデータベース サー
バ) と非 IBM Informix データベース サーバの間の橋渡しとして機能します。Informix
ゲートウェイにより、IBM Informix アプリケーションを使用して非 Informix データベ
ースに格納されているデータをアクセスおよび修正できます。
次の表に、ゲートウェイと、データベース サーバが異機種間コミット プロトコルを使
用するトランザクションに関与できる、対応するデータベース サーバを示します。
第 23 章 多相コミット プロトコル
579
表 53. ゲートウェイおよび対応するデータベース サーバ/異機種間コミット トランザ
クション
ゲートウェイ
データベース サーバ
IBM Informix Enterprise Gateway with
DRDA
IBM DB2、OS/400、SQL/DS
IBM Informix Enterprise Gateway for
EDA/SQL
EDA/SQL
IBM Informix Enterprise Gateway Manager
ODBC 接続を使用するすべてのデータベ
ース サーバ
異機種間コミットの有効化と無効化
異機種間コミットの有効または無効を指定する構成パラメータ HETERO_COMMIT の変
更には、テキスト エディタまたは ISA を使用します。変更は、データベース サーバ
を停止して再起動すると有効になります。
HETERO_COMMIT を 1 に設定すると、トランザクションの調整元が、異機種間コミッ
トを使用する必要のある分散トランザクションを検査するようになります。そのような
トランザクションが検出されると、調整元が自動的に異機種間コミット プロトコルを実
行します。
HETERO_COMMIT を 0 (または 1 以外の値) に設定すると、トランザクションの調整
元は異機種間コミット プロトコルを無効にします。次の表に、トランザクションの調整
元が異機種間コミットと 2 相コミットのどちらのプロトコルを使用して分散トランザク
ションの整合性を保証するかを示します。
HETERO_COMMIT の
設定
ゲートウェイ関係先の更新
データベース サーバのプロトコル
無効
いいえ
2 相コミット
無効
はい
2 相コミット
有効
いいえ
2 相コミット
有効
はい
異機種間コミット
異機種間コミットの動作
異機種間コミット プロトコルは、標準的な 2 相コミット プロトコルを修正したもので
す。異機種間コミット プロトコルの決定後フェーズは、2 相コミット プロトコルの決
定後フェーズと同じです。コミット前フェーズは少し修正されており、異機種間コミッ
ト プロトコルには、ゲートウェイ コミット フェーズという新しいフェーズが追加され
ています。
580
IBM Informix Dynamic Server 管理者ガイド
次に、コミット前フェーズの変更点とゲートウェイ コミット フェーズについて説明し
ます。決定後フェーズについての詳細は、562 ページの『決定後フェーズ』を参照して
ください。
コミット前フェーズ
調整元は、トランザクションのコミットを準備するよう (ゲートウェイ関係先を除く)
各更新関係先に指示します。
据え置かれていたすべての制約が更新によって満たされた場合、(ゲートウェイ関係先を
除く) すべての関係先は、調整元にメッセージを戻して、それらの関係先の作業の断片
を関係先がコミットできることを示します。
ゲートウェイ コミット フェーズ
コミットの準備ができたことを示すメッセージをすべての関係先が正常に戻した場合、
調整元はゲートウェイにコミット メッセージを送信します。次にゲートウェイは調整元
に応答を送信して、トランザクションの断片をゲートウェイがコミットしたかどうかを
示します。ゲートウェイがトランザクションをコミットすると、調整元は、トランザク
ション全体をコミットすることを決定します。このプロセスを 581 ページの図 105 に
示します。
C
:
GP
:
C
図 105. トランザクションのコミットに至る異機種間コミット フェーズ
ゲートウェイがトランザクションのコミットに失敗すると、図 105 に示すように、調整
元がトランザクション全体をロールバックします。
第 23 章 多相コミット プロトコル
581
異機種間コミットの最適化
更新を受信する唯一の関係先が非 Informix データベースの場合、データベース サーバ
は異機種間コミット プロトコルを最適化します。この場合、調整元は異機種間コミット
プロトコルを起動せずに、すべての関係先に単一のコミット メッセージを送信します。
失敗した異機種間コミットの暗示
データベース サーバが異機種間コミットを使用して処理する分散トランザクション中の
どの時点でも、調整元またはいくつもの関係先が失敗することがあります。データベー
ス サーバは、いくつかの事例を除いて、これらの障害を 2 相コミット プロトコルの場
合と同様に処理します。次に、これらの特別な事例について説明します。
データベース サーバ調整元の障害
調整元の障害の後のデータの一貫性は、異機種間コミット処理のどの時点で調整元が失
敗したかに依存します。調整元がゲートウェイにコミット メッセージを送信する前に失
敗した場合、2 相コミットの場合と同様に、復旧時にトランザクション全体がアボート
されます。
調整元がコミット ログ レコードの書込み後に失敗した場合は、2 相コミットの場合と
同様に、復旧時にトランザクション全体が正常にコミットされます。
ゲートウェイにコミット メッセージを送信した後で、コミット ログ レコードを書き込
む前に調整元が失敗した場合、トランザクション内のリモート Informix データベース
サーバ サイトは復旧時にアボートされます。ゲートウェイがコミット メッセージを受
信して、トランザクションをコミットした場合、このアボートによって矛盾が生じるこ
とがあります。
これらのシナリオを次の表にまとめます。
データベース サーバ調整元が失敗した時点
予想される結果
調整元がログ レコード PREPARE を書き込んだ後、およ
びゲートウェイ コミット フェーズの前
データの一貫性が維持されます。
調整元がゲートウェイにコミット メッセージを送信した
後、および応答を受信する前
おそらくデータは矛盾します。データの矛盾
の可能性は、調整元より通知されません。
ゲートウェイ コミット フェーズの後、および調整元が論
理ログにレコード COMMIT を書き込む前
データの一貫性は失われます。データが矛盾
することは調整元からは指示されません。
関係先の障害
異種のプロトコルを使用する分散トランザクション内の関係先がどの時点で失敗して
も、調整元は次のエラー メッセージを送信します。
-441
Possible inconsistent data at the target DBMS name due
to an aborted commit.
582
IBM Informix Dynamic Server 管理者ガイド
さらに、データベース サーバは次のメッセージをメッセージ ログへ出力します。
Data source accessed using gateway name might be in an inconsistent
state.
関係先の障害はデータベース サーバまたはゲートウェイの障害のみに限定されません。
加えて、調整元とゲートウェイとの間の通信リンクの障害は、ゲートウェイの障害と見
なされます。リンクの障害が発生すると、ゲートウェイは終了されます。ゲートウェイ
が必ず終了されるのは、ゲートウェイがトランザクション ログを管理せず、したがって
調整元との接続を再確立できず、トランザクションを再開できないためです。この制約
のため、ゲートウェイの障害によりデータが矛盾した状態のままになる場合がいくつか
存在します。これらのシナリオを次の表にまとめます。
関係先が失敗した時点
予想される結果
関係先が調整元からメッセージ commit transaction を受信
した後、および関係先がコミットを実行する前
データの一貫性が維持されます。
関係先が調整元からメッセージ commit transaction を受信
して、トランザクションをコミットした後、および関係先が
調整元に応答する前
データが矛盾します。
関係先がトランザクションをコミットして、調整元に応答し
た後
調整元が応答を受け取る前に通信リンクに
障害が生じると、データの一貫性が失われ
ます。調整元が応答を受け取ると、データ
は一貫したものになります (調整元でレコ
ード COMMIT を書き込む前に障害が生じ
なかった場合)。
関係先が失敗した場合にデータベース サーバが実行する復旧手順は、2 相コミットの場
合の手順と同じです。この手順の詳細については、582 ページの『関係先の障害』を参
照してください。
異機種間コミットのエラー メッセージの解釈
データベース サーバが異機種間コミットを使用する分散トランザクションの処理に失敗
すると、データベース サーバから次の 2 つのエラー メッセージのどちらかが戻されま
す。次にこれらのメッセージについて説明します。
アプリケーションによる複数のゲートウェイ関係先更新の試行:
HETERO_COMMIT が 1 に設定されている場合にクライアント アプリケーションが複
数のゲートウェイ関係先でデータを更新しようとすると、調整元から次のエラー メッセ
ージが戻されます。
-440 Cannot update more than one non-Informix DBMS within a transaction.
第 23 章 多相コミット プロトコル
583
このエラー メッセージが表示された場合は、単一の分散トランザクションでは最大 1
つのゲートウェイ関係先しか更新されないように問題のあるアプリケーションを書き直
してください。
異機種間コミットを使用した分散トランザクション コミットの試行の失敗:
データベース サーバは、異種プロトコルの使用中に、次の 1 つ以上の理由によって分
散トランザクションのコミットに失敗することがあります。
v 通信エラー
v サイトの障害
v ゲートウェイの障害
v そのほかの未知のエラー
このような障害が発生すると、調整元から次のメッセージが戻されます。
-441
Possible inconsistent data at the target DBMS name due to
an aborted commit.
このメッセージを送信した後、データベース サーバはトランザクションに関与している
すべての更新サイトをロールバックしますが、ゲートウェイ関係先のサイトで実行され
た処理は例外になる場合があります。ゲートウェイ関係先がコミット メッセージを処理
した後に障害が発生した場合は、ゲートウェイ関係先がその更新をコミットした可能性
があります。ゲートウェイ関係先が更新をコミットした場合、それらの更新を手動でロ
ールバックする必要があります。
584
IBM Informix Dynamic Server 管理者ガイド
第 24 章 2 相コミット障害からの手動復旧
手動復旧が必要がどうかの判断 . . . . . . . . . . . . . .
トランザクションが非一貫的に実行されたかどうかの判断 . . . .
実行途中で強制終了された広域トランザクション . . . . . .
発見的トランザクション終了 . . . . . . . . . . . . .
発見的ロールバック . . . . . . . . . . . . . . . .
分散データベースに非一貫的なデータが含まれているかどうかの判断
論理ログからの情報の入手 . . . . . . . . . . . . .
広域トランザクション識別子の取得 . . . . . . . . . .
状態修正の処置が必要かどうかの判断 . . . . . . . . . . .
手動復旧の例 . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
585
586
586
586
586
587
587
589
590
590
本章について
2 相コミット プロトコルの後には分散トランザクションが続きます。2 相コミット プ
ロトコルとは無関係に特定の動作が発生して、トランザクションが非一貫的に実行され
ます。(564 ページの『独立動作』を参照。) このような場合、トランザクションから手
動で復旧する必要があります。
この章では次のことを記述します。
v 非一貫的に実行された 2 相コミット トランザクションから手動復旧する必要がある
かどうかを判断する方法
v 手動復旧の実行
手動復旧が必要がどうかの判断
以下はデータベースの一貫性を判断し、必要に応じて状況を修正する手順の概要です。
データベースの一貫性の判断:
1. トランザクションが非一貫的に実行されたかどうかを判断する。
2. ネットワーク上のデータベース システムに非一貫的なデータが含まれているかどう
かを判断する。
3. 状況を修正する処置が必要かどうかを判断する。
上記の各手順について以下に記述します。
© Copyright IBM Corp. 1996, 2004
585
トランザクションが非一貫的に実行されたかどうかの判断
まず、独立動作の結果としてトランザクションが非一貫的に実行されたかどうかを判断
する必要があります。
実行途中で強制終了された広域トランザクション
コマンド onmode -z を実行して調整元の広域トランザクションを強制終了した場合、
そのトランザクションは非一貫的に実行される可能性があります。(この状態が発生する
理由については、565 ページの『エラー状態になる独立動作』を参照してください。)
トランザクションが非一貫的かどうかを検査するには、まずデータベース サーバの調整
元のメッセージ ログを調べます。次のようなエラー メッセージを探してください。
-716 Possible inconsistent transaction.
Unknown servers are server-name-list.
このメッセージは、関係先だったすべてのデータベース サーバを一覧表示します。 各
関係先の論理ログを調べます。少なくとも 1 つの関係先がコミットを実行し、1 つがロ
ールバックを実行していれば、トランザクションは非一貫的に実行されています。
発見的トランザクション終了
コマンド onmode -Z address を実行して、関係先が実行している部分的作業を終了し、
さらに 調整元がそのトランザクションをコミットする決定をした場合、トランザクショ
ンは非一貫的に実行されています。(この手順については、569 ページの『発見的トラン
ザクション終了』を参照してください。) 各関係先の論理ログを調べます。少なくとも
1 つの関係先がコミットを実行し、1 つがロールバックを実行していれば、トランザク
ションは非一貫的に実行されています。
発見的ロールバック
トランザクションをロールバックするために発見的決定の影響を受けた特定の関係先デ
ータベース サーバは、以下のような方法で判断できます。
v アプリケーションの COMMIT WORK 文からの戻りコードを調べる。
次のメッセージは、関係先の 1 つが発見的ロールバックを実行したことを示しま
す。
-698 Inconsistent transaction. Number and names of
servers rolled back.
v データベース サーバ メッセージ ログ ファイルのメッセージを調べる。
関係先データベース サーバで発見的決定が発生したために、データベースの不整合
の可能性がある場合は、調整元データベース サーバのメッセージ ログ ファイルに
次のようなメッセージが表示されます。
Mixed transaction result. (pid=nn user=user_id)
586
IBM Informix Dynamic Server 管理者ガイド
このメッセージはエラー -698 が戻されるたびに書き込まれます。トランザクション
がロールバックされた関係先データベース サーバの一覧がこのメッセージとともに
表示されます。これは完全リストです。トランザクションをロールバックした関係先
が多数ある場合、エラー メッセージ -698 とともに表示されるリストは切り捨てられ
ることがあります。
v
各関係先の論理ログを調べる。
少なくとも 1 つの関係先がその部分的作業をロールバックし、1 つが部分的作業を
コミットした場合は、トランザクションが不正確に実行されています。
分散データベースに非一貫的なデータが含まれているかどうかの判断
トランザクションが非一貫的に実行されたと判断した場合、この事態が分散データベー
ス システムにとってどのような意味があるのかを判断しなければなりません。特に、デ
ータ整合性に影響があったかどうかを判断する必要があります。
トランザクションが非一貫的に実行されると、1 つの関係先によってロールバックされ
た部分的作業が、別の関係先によって更新された部分的作業に依存している場合に必ず
問題が発生します。分散トランザクションは複数のデータベース サーバのデータを参照
する制約をサポートしていないため、SQL でこれらの依存関係を定義することは不可能
です。部分的作業が独立する (または依存関係が存在しない) のは、2 つの独立したト
ランザクションによってデータが更新された場合に限られます。それ以外の場合、部分
的作業は依存関係にあると見なされます。
次に進む前に、エラーを生じたトランザクションについて考察します。更新され、ロー
ルバックされたデータは互いに依存していましたか。データ整合性を維持する以外の理
由で、単一トランザクションに複数の更新が含まれている可能性があります。例えば、
次の 3 つの理由が考えられます。
v トランザクション オーバーヘッドの削減
v コーディングの単純化
v プログラマの好み
トランザクションをコミットしたと思われる各関係先データベース サーバが実際にデー
タを変更したかどうかについても確認してください。トランザクションをコミットした
関係先として、読取り専用データベース サーバがリストに含まれている可能性がありま
す。
トランザクションの矛盾がデータの整合性を侵害しない場合は、ここで調査を終了して
も構いません。
論理ログからの情報の入手
非一貫的に実行された広域トランザクションによってデータの整合性に影響が出たかど
うかを判断するには、広域トランザクションを再構成して、トランザクションのどの部
第 24 章 2 相コミット障害からの手動復旧
587
分がコミットされ、どの部分がロールバックされたかを判断する必要があります。ユー
ティリティ onlog を使用して必要な情報を取得します。手順は次のとおりです。
1. レコード HEURTX を含む関係先でトランザクションを再構築します。
a. 情報検索の開始点は関係先データベース サーバ論理ログです。ログ内の各レコー
ドにはローカル トランザクション ID 番号 (XID) があります。レコード
HEURTX のトランザクション ID 番号を入手します。
b. ローカル トランザクション ID 番号を使用して、この部分的作業の一部として
ロールバックした関連論理ログ レコードをすべて検出します。
2. その広域トランザクションで調整元の役割を果たしたデータベース サーバを判断し
ます。
a. 同じローカル トランザクション ID 番号 (XID) を含む関係先上でレコード
PREPARE を検索します。レコード PREPARE はその関係先の 2 相コミット プ
ロトコルの開始点を示します。
b. onlog -l オプションを使用して、レコード PREPARE のロング出力を入手しま
す。このレコードには広域トランザクション識別子 (GTRID) と調整元データベ
ース サーバの名前が含まれています。GTRID の詳細については、589 ページの
『広域トランザクション識別子の取得』を参照してください。
3.
調整元ログからそのほかの関係先のリストを入手します。
a. 調整元データベース サーバ上のログ レコードを調べます。レコード BEGPREP
を探します。
b. レコード BEGPREP のロング出力を調べます。このレコードの GTRID の先頭
32 バイトが関係先の GTRID に一致する場合、レコード BEGPREP は同じ広域
トランザクションの一部です。BEGPREP ロング出力の ASCII 部分に表示される
関係先に注意してください。
4.
各関係先でトランザクションを再構築します。
a. 各関係先データベース サーバ上で論理ログを読み込み、このトランザクションに
関連する GTRID を含むレコード PREPARE を検索し、この関係先によって実行
された部分的作業のローカル トランザクション ID 番号 (XID) を取得します。
b. 各関係先データベース サーバ上で、ローカル トランザクション (XID) を使用し
て、コミットまたはロールバックされたトランザクションに関連するすべての論
理ログ レコードを検出します。
この手順を行うと、トランザクションのすべての関係先、各関係先に割り当てられた部
分的作業、および各部分的作業はロールバックあるいはコミットされたかどうかがわか
ります。この情報から、独立動作がデータの整合性に影響を与えたかどうかを判断でき
ます。
588
IBM Informix Dynamic Server 管理者ガイド
広域トランザクション識別子の取得
広域トランザクションは開始時に、広域トランザクション ID 番号 (GTRID) と呼ばれ
る一意 ID 番号を受け取ります。GTRID には調整元の名前が含まれています。GTRID
は調整元の論理ログ レコード BEGPREP と各関係先の論理ログ レコード PREPARE
に書き込まれます。
GTRID を表示するには onlog -l オプションを使用します。GTRID はレコードのデータ
部分に 20 バイト オフセットされ、長さは 144 バイトです。図 106 に、レコード
BEGPREP に対する onlog -l の出力を示します。調整元は chrisw です。
4a064
188 BEGPREP 4
000000bc 00000043
00087ef0 00000002
00000000 00000000
00006b16 00000000
00000000 00000000
00000000 00000000
00000000 00000000
00000000 00000000
00000000 00000000
00000000 00000000
00000000 00000001
6f630000 736f6374
0 4a038
00000004 0004a038
63687269 73770000
00000000 00087eeb
00000000 00000000
00000000 00000000
00000000 00000000
00000000 00000000
00000000 00000000
00000000 00000000
00000000 00000000
6a756469 74685f73
63700000
0
1
.......C
..~.....
........
..k.....
........
........
........
........
........
........
........
oc..soct
.......8
chrisw..
......~.
........
........
........
........
........
........
........
judith_s
cp..
図 106. レコード BEGPREP に対する onlog -l の出力
GTRID の先頭 32 バイトは、調整元のレコード BEGPREP、および関係先のレコード
PREPARE を識別しており、これらは同じ広域トランザクションの一部です。例えば、
図 107 のレコード PREPARE と図 106 のレコード BEGPREP の GTRID を比較してく
ださい。
c7064
184 PREPARE 4
000000b8 00000044
00005cd6 00000002
00000000 00000000
00006b16 00000000
00000002 00ba3a0c
00ba5a10 00ba5a1c
00ba3a0e 00254554
00000000 00ab8148
0005fe34 0000003c
00000000 00ab80cc
00ba002f 63687269
00120018 00ba0000
0 c7038
chrisw
00000004 000c7038 .......D ......p8
63687269 73770000 ...... chrisw..
00000069 00087eeb ........ ...i..~.
00000010 00ba5a10 ..k..... ......Z.
00000006 00000000 ......:. ........
00000000 00000000 ..Z...Z. ........
00ba2090 00000001 ..:..%ET .. .....
0005fd70 00ab8148 .......H ...p...H
00000000 00000000 ...4...< ........
00000000 00ab80c4 ........ ........
73770000 00120018 .../chrisw......
........
図 107. レコード PREPARE に対する onlog -l の出力
第 24 章 2 相コミット障害からの手動復旧
589
状態修正の処置が必要かどうかの判断
非一貫的なトランザクションによって非一貫的なデータベースが作成された場合には、
次のような 3 つのオプションが可能です。
v ネットワーク上のデータベースを非一貫的な状態のままにしておく。
v コミットされたトランザクションの影響を削除して、トランザクション全体をロール
バックする。
v ロールバックされたトランザクションの影響を再適用して、トランザクションをコミ
ットする。
トランザクションがデータベースのデータにあまり影響を与えていない場合はデータベ
ースを非一貫的な状態のままにしておいても構いません。これは、アプリケーションが
そのままで動作を続けることが可能であり、影響を削除するか、トランザクションを再
適用することによりデータベースを一貫性のある状態に回復する手間 (時間と労力の面
で) が掛かりすぎる場合です。
この決定を即時に下す必要はありません。以下に記述する方法を使用してトランザクシ
ョンが更新していたデータおよび影響を受けたレコードを判断できます。
決定を下す場合には、コミットされたトランザクションをロールバックしたり、ロール
バックされたトランザクションの一部をコミットできる自動プロセスやユーティリティ
がないことを考慮してください。以下では、データベース サーバ メッセージ ログと論
理ログを調べて、影響を受けたレコードを探し出す方法について記述します。アプリケ
ーションについての詳しい知識がなければ、メッセージのみで何が発生したかを判断す
ることはできません。アプリケーションとシステムに関する知識に基づいて、トランザ
クションをロールバックするのかあるいはコミットするのかを決定しなければなりませ
ん。ロールバックまたはコミットを実行する補正トランザクションもプログラミングす
る必要があります。
手動復旧の例
この例は、手動復旧に関連する作業を示したものです。次のような SQL 文がユーザ
nhowe によって実行されました。エラー -698 が戻されました。
dbaccess
CREATE DATABASE tmp WITH LOG;
CREATE TABLE t (a int);
CLOSE DATABASE;
CREATE DATABASE tmp@apex WITH LOG;
CREATE TABLE t (a int);
CLOSE DATABASE;
DATABASE tmp;
BEGIN WORK;
INSERT INTO t VALUES (2);
INSERT INTO tmp@apex:t VALUES (2);
COMMIT WORK;
### return code -698
590
IBM Informix Dynamic Server 管理者ガイド
以下は、現行データベース サーバの論理ログから取り出した情報の一部です。
addr
.....
17018
len
type
16
xid
id
link
CKPOINT
0
0
13018
0
BEGIN
2
1
0
08/27/91 10:56:57
18018
3482
20
1802c
4
32
HINSERT
2
0
18018
1000018
1804c
40
CKPOINT
0
0
17018
1
nhowe
begin
1
xid
2
1
id addr
user
1802c
nhowe
102
19018
72
BEGPREP
2
0
1802c
6d69
1
19060
16
COMMIT
2
0
19018
08/27/91 11:01:38
1a018
16
ENDTRANS 2
0
19060
580543
以下は、データベース サーバ apex の論理ログから取り出した情報の一部です。
addr
len type
xid
.....
16018
20
BEGIN
2
10:57:07 3483
pault
id
link
1
0
08/27/91
1602c
4
32
HINSERT
2
0
16018
1000018
1604c
68
PREPARE
2
0
1602c
eh
17018
16
HEURTX
2
0
1604c
17028
12
CLR
2
0
1602c
17034
16
ROLLBACK 2
0
17018
08/27/91 11:01:22
17044
40
CKPOINT
0
15018
1
begin
1
18018
....
16
xid
2
0
id addr
1 17034
ENDTRANS 2
102
1
user
-------0
17034
8806c3
最初に、現行データベース サーバのログにあるトランザクションとデータベース サー
バ apex のログにあるトランザクションの比較を試行します。ログ レコード BEGPREP
と PREPARE にそれぞれ GTRID が含まれています。onlog -l を使用して、BEGPREP
と PREPARE のログ レコードのデータ部分を見れば、GTRID を取り出すことができま
す。GTRID はレコードのデータ部分に 22 バイト オフセットされ、長さは 68 バイト
です。正確さには欠けますが、より簡単な方法としては、レコード COMMIT または
ROLLBACK の時刻を見る方法があります。コミットまたはロールバックのメッセージ
を調整元から関係先へ送るための所要時間が原因で多少の遅延はありますが、時刻は近
第 24 章 2 相コミット障害からの手動復旧
591
いものです。ある調整元からの並行トランザクションが同時にコミットしなくても、並
行トランザクションを同時にコミットできるため、この 2 番目の方法は正確さに欠けま
す。
この例の状態を訂正するには:
1.
更新されたレコードをすべて探し出します。
2. onlog とレコード タイプの表を使用してそのレコードのタイプ (挿入、削除、更新)
を識別します。
3. 各レコードの onlog -l 出力を使用して、ローカル トランザクション ID 番号
(XID)、表領域番号、および行 ID 番号を入手します。
4. 表領域番号をシステム カタログ表 systables の列 partnum の値と照合して、表領域
番号を表名にマップします。
5.
アプリケーションについての知識を基に、その状況を修正するのに必要なものは何
かを決定します。
この例では、異なるログのレコード COMMIT と ROLLBACK のタイムスタンプが接近
しています。並行したコミットまたはロールバックを引き起こす可能性のあるアクティ
ブ トランザクションはほかにありません。この場合、16 進数値 102 (10 進数値 258)
を割り当てられた rowid (行 ID 番号) の挿入 (HINSERT) が現行データベース サーバ
上でコミットされています。したがって、補正トランザクションは次のようになりま
す。
DELETE FROM t WHERE rowid = 258
592
IBM Informix Dynamic Server 管理者ガイド
第 6 部 付録
© Copyright IBM Corp. 1996, 2004
593
594
IBM Informix Dynamic Server 管理者ガイド
付録. アクセシビリティ
このマニュアルの HTML バージョンの構文ダイアグラムは、小数点付き 10 進数構文
フォーマットに従っています。このフォーマットは、スクリーン リーダ (読上げソフト
ウェア) を使用している場合に限り利用できるフォーマットです。
小数点付き 10 進数構文ダイアグラム
小数点付き 10 進数フォーマットでは、構文要素はそれぞれ別の行に書き込まれます。2
つ以上の構文要素が、まとめて使用される (またはどちらも使用されない) 場合、単一
の複合構文要素と見なすことができるため、それらの要素が同じ行に表示される場合が
あります。
各行は小数点付き 10 進数値で開始されます。例えば、3、3.1 または 3.1.1 などで
す。これらの数字を正確に聞き取るために、必ずスクリーン リーダ (読上げソフトウェ
ア) が句読点を読み取るように設定してください。同じ小数点付き 10 進数値を持つす
べての構文要素 (例えば、数値 3.1 を含むすべての構文要素) は相互に排他的な選択肢
です。行 3.1 USERID および行 3.1 SYSTEMID を聞き取った場合、構文に USERID また
は SYSTEMID のいずれかを記述できますが、両方を組み込むことはできません。
小数点付き 10 進数の番号付けレベルにより、ネストのレベルが示されます。例えば、
小数点付き 10 進数値 3 の構文要素の後に、小数点付き 10 進数値 3.1 の構文要素が
続く場合、3.1 と番号付けされている構文要素はすべて、3 と番号付けされている構文
要素に従属します。
構文要素についての情報を追加するために、小数点付き 10 進数値の横に特定の単語お
よび記号が付加されます。場合により、これらの単語および記号が要素の先頭で使用さ
れることがあります。識別を容易にするため、該当する単語または記号が構文要素の一
部である場合には、その単語または記号の前に円記号 (¥) を付加します。* 記号を小数
点付き 10 進数値の横に付加して、その構文要素が反復することを示すことができま
す。例えば、小数点付き 10 進数値 3 の構文要素 *FILE は、読取り時に 3 ¥* FILE と
示されます。フォーマット 3* FILE は、構文要素 FILE が反復することを示します。フ
ォーマット 3* ¥* FILE は、構文要素 * FILE が反復することを示します。
構文要素文字列の分離に使用されるコンマなどの文字は、構文では分離する項目の直前
に表示されます。これらの文字は、各項目と同じ行に表示される場合と、関連項目と同
じ小数点付き 10 進数値を持つ別の行に表示される場合があります。行には構文要素に
ついての情報を提供する別の記号も表示される場合があります。例えば、5.1*、5.1
LASTRUN、5.1 DELETE などの行は、LASTRUN および DELETE 構文要素を複数使用する場
© Copyright IBM Corp. 1996, 2004
595
合に、これらの要素をコンマで分離する必要があることを意味します。分離文字を指定
しない場合、各構文要素の分離には空白が使用されるものと想定します。
構文要素の前に % 記号がある場合、別の場所で定義されている参照を示します。% 記号
に続く文字列はリテラルではなく、構文フラグメントの名前です。例えば、行 2.1 %OP1
は、別の構文フラグメント OP1 を参照する必要があることを意味します。
小数点付き 10 進数値の横に次の単語および記号が付加されます。
596
?
オプションの構文要素を指定します。後ろに ? 記号が続く小数点付き 10 進数
値は、対応する小数点付き 10 進数値の構文要素すべて、およびそれに従属す
る構文要素がオプションであることを示します。ある小数点付き 10 進数値に
構文要素が 1 つのみ含まれる場合、? 記号はその構文要素と同じ行に表示され
ます (例えば、5? NOTIFY)。ある小数点付き 10 進数値に構文要素が複数含ま
れる場合、? 記号は行に単独で表示され、以下オプションの構文要素が続きま
す。例えば、5 ?、5 NOTIFY、5 UPDATE などの行を聞き取った場合、構文要素
NOTIFY と UPDATE がオプションであることが分かります。つまり、それらをい
ずれも選択しないか、1 つのみ選択します。? 記号は、レールロード構文ダイ
アグラムでのバイパス線に相当します。
!
デフォルトの構文要素を指定します。小数点付き 10 進数値とそれに続く ! 記
号および構文要素は、同じ小数点付き 10 進数値を共用するすべての構文要素
に対し、構文要素がデフォルト オプションであることを示します。同じ小数点
付き 10 進数値を共用する構文要素のうちの 1 つのみで ! 記号を指定できま
す。例えば、2? FILE、2.1! (KEEP)、2.1 (DELETE) などの行を聞き取った場合
は、(KEEP) が FILE キーワードに対するデフォルト オプションであることが
分かります。この例では、オプションを指定せずに FILE キーワードを組み込
んだ場合、デフォルト オプション KEEP が適用されます。デフォルト オプシ
ョンは 1 レベル上の小数点付き 10 進数値にも適用します。この例では、FILE
キーワードが省略されるとデフォルトの FILE(KEEP) が使用されます。しか
し、2? FILE、2.1、2.1.1! (KEEP)、および 2.1.1 (DELETE) などの行を聞き取
った場合は、デフォルト オプション KEEP は 1 レベル上の小数点付き 10 進
数値 2.1 (関連キーワードなし) のみに適用し、2? FILE には適用しません。
キーワード FILE が省略されると、いずれも使用されません。
*
ゼロ回以上の反復が可能な構文要素を指定します。後ろに * 記号が続く小数点
付き 10 進数値は、この構文要素をゼロ回以上使用できることを示します。つ
まり、これはオプションであり、かつ反復可能です。例えば、行 5.1*
data-area を聞き取った場合、複数の data-area を記述するか、または 1 つも
記述しないことが可能であると分かります。 3*、3 HOST、3 STATE などの行を
聞き取った場合は、HOST、STATE 両方を記述するか、またはいずれも記述しな
いことが可能であると分かります。
IBM Informix Dynamic Server 管理者ガイド
注:
1. 小数点付き 10 進数値の横にアスタリスク (*) があり、その小数点付き 10
進数値が指定された項目が 1 つのみである場合は、その同じ項目を複数回
反復できます。
2. 小数点付き 10 進数値の横にアスタリスクがあり、その小数点付き 10 進数
値がいくつかの項目で指定されている場合は、そのリストから複数の項目を
使用できますが、各項目を複数回使用することはできません。前の例では、
HOST STATE と記述することはできますが、HOST HOST とは記述できませ
ん。
3. * 記号は、レールロード構文ダイアグラムでのループバック線に相当しま
す。
+
1 回以上組み込む必要がある構文要素を指定します。後ろに + 記号が続く小
数点付き 10 進数値は、この構文要素を 1 回以上組み込む必要があることを示
します。例えば、行 6.1+ data-area を聞き取った場合、少なくとも 1 つの
data-area を記述する必要があります。 2+、2 HOST、2 STATE などの行を聞き
取った場合、HOST または STATE、もしくはその両方を記述する必要があると分
かります。 * 記号の場合と同様、その小数点付き 10 進数値が指定された唯一
の項目である場合に限り、特定の項目を反復できます。+ 記号は、* 記号と同
様に、レールロード構文ダイアグラムでのループバック線に相当します。
付録. アクセシビリティ
597
598
IBM Informix Dynamic Server 管理者ガイド
特記事項
本書に記載の製品、サービス、または機能が日本においては提供されていない場合があ
ります。日本で利用可能な製品、サービス、および機能については、日本 IBM の営業
担当員にお尋ねください。本書で IBM 製品、プログラム、またはサービスに言及して
いても、その IBM 製品、プログラム、またはサービスのみが使用可能であることを意
味するものではありません。これらに代えて、IBM の知的所有権を侵害することのな
い、機能的に同等の製品、プログラム、またはサービスを使用することができます。た
だし、IBM 以外の製品とプログラムの操作またはサービスの評価および検証は、お客様
の責任で行っていただきます。
IBM は、本書に記載されている内容に関して特許権 (特許出願中のものを含む) を保有
している場合があります。本書の提供は、お客様にこれらの特許権について実施権を許
諾することを意味するものではありません。実施権についてのお問い合わせは、書面に
て下記宛先にお送りください。
〒106-0032
東京都港区六本木 3-2-31
IBM World Trade Asia Corporation
Licensing
以下の保証は、国または地域の法律に沿わない場合は、適用されません。IBM およびそ
の直接または間接の子会社は、本書を特定物として現存するままの状態で提供し、商品
性の保証、特定目的適合性の保証および法律上の瑕疵担保責任を含むすべての明示もし
くは黙示の保証責任を負わないものとします。国または地域によっては、法律の強行規
定により、保証責任の制限が禁じられる場合、強行規定の制限を受けるものとします。
この情報には、技術的に不適切な記述や誤植を含む場合があります。本書は定期的に見
直され、必要な変更は本書の次版に組み込まれます。IBM は予告なしに、随時、この文
書に記載されている製品またはプログラムに対して、改良または変更を行うことがあり
ます。
本書において IBM 以外の Web サイトに言及している場合がありますが、便宜のため
記載しただけであり、決してそれらの Web サイトを推奨するものではありません。そ
れらの Web サイトにある資料は、この IBM 製品の資料の一部ではありません。それ
らの Web サイトは、お客様の責任でご使用ください。
IBM は、お客様が提供するいかなる情報も、お客様に対してなんら義務も負うことのな
い、自ら適切と信ずる方法で、使用もしくは配布することができるものとします。
© Copyright IBM Corp. 1996, 2004
599
本プログラムのライセンス保持者で、(i) 独自に作成したプログラムとその他のプログラ
ム (本プログラムを含む) との間での情報交換、および (ii) 交換された情報の相互利用
を可能にすることを目的として、本プログラムに関する情報を必要とする方は、下記に
連絡してください。
IBM Corporation
J46A/G4
555 Bailey Avenue
San Jose, CA 95141-1003
U.S.A.
本プログラムに関する上記の情報は、適切な使用条件の下で使用することができます
が、有償の場合もあります。
本書で説明されているライセンス・プログラムまたはその他のライセンス資料は、IBM
所定のプログラム契約の契約条項、IBM プログラムのご使用条件、またはそれと同等の
条項に基づいて、IBM より提供されます。
この文書に含まれるいかなるパフォーマンス・データも、管理環境下で決定されたもの
です。そのため、他の操作環境で得られた結果は、異なる可能性があります。一部の測
定が、開発レベルのシステムで行われた可能性がありますが、その測定値が、一般に利
用可能なシステムのものと同じである保証はありません。さらに、一部の測定値が、推
定値である可能性があります。実際の結果は、異なる可能性があります。お客様は、お
客様の特定の環境に適したデータを確かめる必要があります。
IBM 以外の製品に関する情報は、その製品の供給者、出版物、もしくはその他の公に利
用可能なソースから入手したものです。IBM は、それらの製品のテストは行っておりま
せん。したがって、他社製品に関する実行性、互換性、またはその他の要求については
確証できません。IBM 以外の製品の性能に関する質問は、それらの製品の供給者にお願
いします。
IBM の将来の方向または意向に関する記述については、予告なしに変更または撤回され
る場合があり、単に目標を示しているものです。
表示されている IBM の価格は IBM が小売り価格として提示しているもので、現行価
格であり、通知なしに変更されるものです。卸価格は、異なる場合があります。
本書には、日常の業務処理で用いられるデータや報告書の例が含まれています。より具
体性を与えるために、それらの例には、個人、企業、ブランド、あるいは製品などの名
前が含まれている場合があります。これらの名称はすべて架空のものであり、名称や住
所が類似する企業が実在しているとしても、それは偶然にすぎません。
著作権使用許諾:
本書には、様々なオペレーティング・プラットフォームでのプログラミング手法を例示
するサンプル・アプリケーション・プログラムがソース言語で掲載されています。お客
600
IBM Informix Dynamic Server 管理者ガイド
様は、サンプル・プログラムが書かれているオペレーティング・プラットフォームのア
プリケーション・プログラミング・インターフェースに準拠したアプリケーション・プ
ログラムの開発、使用、販売、配布を目的として、いかなる形式においても、IBM に対
価を支払うことなくこれを複製し、改変し、配布することができます。このサンプル・
プログラムは、あらゆる条件下における完全なテストを経ていません。従って IBM
は、これらのサンプル・プログラムについて信頼性、利便性もしくは機能性があること
をほのめかしたり、保証することはできません。お客様は、IBM のアプリケーション・
プログラミング・インターフェースに準拠したアプリケーション・プログラムの開発、
使用、販売、配布を目的として、いかなる形式においても、IBM に対価を支払うことな
くこれを複製し、改変し、配布することができます。
それぞれの複製物、サンプル・プログラムのいかなる部分、またはすべての派生的創作
物にも、次のように、著作権表示を入れていただく必要があります。
© (お客様の会社名) (西暦年). このコードの一部は、IBM Corp. のサンプル・プログ
ラムから取られています。© Copyright IBM Corp. (年を入れる).All rights reserved.
この情報をソフトコピーでご覧になっている場合は、写真やカラーの図表は表示されな
い場合があります。
特記事項
601
商標
AIX; DB2; DB2 Universal Database; Distributed Relational Database Architecture;
NUMA-Q; OS/2、OS/390、および OS/400; IBM Informix®; C-ISAM®; Foundation.2000™;
IBM Informix ® 4GL; IBM Informix®DataBlade®Module; Client SDK™; Cloudscape™;
Cloudsync™; IBM Informix®Connect; IBM Informix®Driver for JDBC; Dynamic Connect™;
IBM Informix®Dynamic Scalable Architecture™(DSA); IBM Informix®Dynamic Server™;
IBM Informix®Enterprise Gateway Manager (Enterprise Gateway Manager); IBM
Informix®Extended Parallel Server™; i.Financial Services™; J/Foundation™; MaxConnect™;
Object Translator™; Red Brick™; IBM Informix® SE; IBM Informix® SQL;
InformiXML™; RedBack®; SystemBuilder™; U2™; UniData®; UniVerse®; wintegrate® は、
IBM Corporation の商標です。
Java およびすべての Java 関連の商標およびロゴは、Sun Microsystems, Inc. の米国およ
びその他の国における商標または登録商標です。
Windows、Windows NT および Excel は、Microsoft Corporation の米国およびその他の
国における商標です。
UNIX は、The Open Group の米国およびその他の国における登録商標です。
本書で言及しているその他の会社名、製品名およびサービス名はそれぞれ各社の商標ま
たは登録商標です。
602
IBM Informix Dynamic Server 管理者ガイド
索引
日本語, 数字, 英字, 特殊文字の順に配列されてい
ます。なお, 濁音と半濁音は清音と同等に扱われ
ています。
[ア行]
アクセシビリティ xxxviii
構文ダイアグラム、スクリーン リーダ (読上げソフ
トウェア) による読取り 595
小数点付き 10 進数フォーマットの構文ダイアグラ
ム 595
アサーション障害
一貫性検査時 546
原因の特定 550
データの破損 548
定義 543
メッセージ ログ形式 546
ユーザ要求の処理時 548
アサーション障害ファイル
リスト 546
af.xxx 547
gcore.xxx 547
shmem.xxx 547
アスタリスク (*)
ホスト名フィールドでのワイルドカード 86
参照: ワイルドカード
アプリケーション
クライアント
参照: クライアント アプリケーション
アボート前提最適化 564
暗号
暗号化における 135
定義 128
Blowfish 135
暗号化
仮想プロセッサ 192
データ伝送 129
定義 128
ネットワークデータ伝送の 129
パスワードの 129
モード 128
© Copyright IBM Corp. 1996, 2004
暗号化 (続き)
列データ 144
列のデータの 142, 144
列レベル 142, 144
Dynamic Server におけるオプション
暗号化仮想プロセッサ 192
異機種間コミット 578, 580, 584
128
意思決定支援問合せ
DS_MAX_QUERIES 構成パラメータ
参照: 並列データベース問合せ
一時 DB 領域
一時表に必要な容量
作成 330
46
303, 510
データ レプリケーション
定義 330
DBSPACETEMP 295
508, 515
一時 SB 領域
作成 342
チャンクの削除
チャンクの追加
287, 342, 343
285, 342
定義 286
特性 286
バックアップと復元 287
例 342
LO_CREATE_TEMP フラグ 343
SB 領域の削除 346
一時スマート ラージ オブジェクト
作成 287
定義 287
一時表 26
エンタープライズ レプリケーション 292
初期化時 107
スマート ラージ オブジェクト、一時 286
バックアップ 294
復元 293, 294
一時論理ログ 416
一貫性検査
インデックス 545
インデックスの破損 549
エクステント 545
概要 26, 543
603
一貫性検査 (続き)
エラー メッセージ (続き)
システム カタログ表 545
データおよびオーバーヘッド
データの矛盾の監視
定期的なタスク
一時表
546
データベース ログ機能
標準表 292
546
ロウ表
546
SB 領域 285
イベント アラーム
定義 30, 48
292
オプション フィールド
概要 77
キープアライブ オプション
インストール
グループ オプション
MaxConnect 99
sqlhosts、レジストリ
Windows 9
グループの終わり
構文規則 78
識別子オプション
69
インストール ガイド xxxv
インターネット プロトコル バージョン 6
インデックス
89
妥当性検査 545
表領域 298
290
IBM Informix Dynamic Server 管理者ガイド
83
83
81
83
セキュリティ オプション 84
接続リダイレクト 80
バッファ サイズ オプション 79
CSM、オプション
オフセット
R ツリー 435
受取りバッファ 490
エクステント
監視 359
関連する主要な概念 271
構造 271, 281
サイズ、初期 271, 281, 323
サイズ、追加エクステント 271, 281, 323
妥当性検査 545
チャンクとの関係 271
データベース サーバによる割当て方法 271
定義 270
表領域表領域のサイズ 323
目的 270
割当て 271
SB 領域 269, 281
SB 領域のサイズ 269, 281
sysextents を使用する監視 360
エラー メッセージ xxxvii
サーバ ユーティリティのセキュリティ検査 122
チャンク上の入出力エラー 549
604
81
377
HDR、使用方法 488
SB 領域 278
SB 領域の指定 278
動的に追加されたログ 425, 427
イベント ビューア、Windows NT 33
インスタンス マネージャ 17, 19
フラグメント化
並列作成 168
156
293
データベース サーバ グループの使用方法
544
破損、データ 548
メタデータの妥当性検査
論理ログ
2 相コミット プロトコル 572
エンタープライズ レプリケーション
544
81
パーティション情報の上書き防止
パーティションの分割 314
267, 314
必要な場合 314
目的 267
オフライン モード
定義 110
オペレーティング システム
ツール 33
パラメータ 246
32 ビットおよび 64 ビット バージョン
オペレーティング システム ファイル
参照: クックド ファイル領域
オンライン トランザクション処理
参照: 並列データベース問合せ
オンライン ノート xxxv, xxxvi
オンライン ヘルプ xxxviii
オンライン マニュアル xxxviii
オンライン モード
定義 110
246
[カ行]
仮想部 (続き)
共有メモリ (続き)
セグメントの追加 253
データ分散キャッシュ 225
カーネル パラメータ
変更 7
カーネル非同期入出力
定義
内容
185
ログなしディスク入出力
183
HDR セットアップ時の使用
仮想プロセッサ
518
外部領域
参照: EXT 領域
外部ルーチン
チャンク書込み 238
フォアグラウンド書込み
237
LRU 書込み 237
拡張仮想プロセッサ
参照: ユーザ定義の仮想プロセッサ
拡張データ型
485
ISM 24
ON-Bar システムのロール
格納統計
BLOB 領域
暗号化 192
オンライン モードでの CPU の削除
概要 162
198, 199
拡張
参照: ユーザ定義仮想プロセッサ
監視
157
HDR レプリケーション
格納域マネージャ
220
SQL 文キャッシュ 226
UDR キャッシュ 226
外部バックアップ
および復元
セキュリティ
書込みのタイプ
220
SHMVIRTSIZE 構成パラメータ
24
338
格納特性
階層構造 283
格納領域 24
スマート ラージ オブジェクト 281, 342
onspaces -ch 281, 342
onspaces -Df 339
SB 領域 281
格納領域
バックアップ スケジュール 25
ミラーリングの開始 477
ミラーリングの終了 481
NTFS パーティションの格納 9
カスケード削除 377
仮想部
共有メモリ
仮想拡張部 206
グローバル プール 227
構成 220
スタック 225
ISA 197
onstat、ユーティリティ
管理 28
共有メモリの確保 210
共有メモリへのアクセス
クラス
200
207
168, 176
構成パラメータの設定 195
コンテキスト スイッチング
サービス スレッド 170
171
初期化時 106
処理の共有 167
スタックの使用 172
スレッドの移動 163
制御独占型 181
追加と削除
ISA 197
ON-Monitor 197
定義 162
ディスク入出力 182
ネットワーク 186
物理ログ入出力 184
並列処理 168
ポーリング スレッド 188
マルチスレッド プロセス 166
ユーザ定義クラス 180
ユーザ定義ルーチン 165
リソースへのアクセスの調整 168
利点 166
レディー状態のキュー 173
論理ログ入出力 184
ADM クラス 174
索引
605
仮想プロセッサ (続き)
環境変数 (続き)
ADT クラス 193
AIO クラス 185, 210
CPU クラス
.profile または .login、ファイル
168
CPU へのバインド
関係先データベース サーバ
169
Java で記述された UDR
LIO クラス 184
MSC クラス
TERMCAP 12
TERMINFO 12
自動復旧
監査
182
概要
165
563
29
OPT クラス 193
PIO クラス 173, 184
監査モード 193
構成パラメータ 51
定義 125
非ファジー操作 440
ファジー操作 440
ユーザ定義 279
監査仮想プロセッサ 193
監視
エクステント 360
型
CLOB と BLOB
広域トランザクション
279, 440
HDR による複製 485
可用性
効率的なディスク レイアウトの目標
サンプル ディスク レイアウト
重要なデータ 272
環境
構成ファイル 13
制御アプリケーション
環境変数 xxix
環境構成ファイル
571
使用許諾を受けたユーザ 104, 109
スピン ロック 255
データベース サーバ 30
表領域 360
メタデータおよびユーザ データ領域
メモリ サイズ 248
306
ユーザ稼働状態
ユーザ数 435
14
572
ユーザ接続 104, 109
ロック 572
13
クライアント アプリケーション 12
サンプル設定ファイル 13
設定 11
必須 11
CLASSPATH 11, 13
CLIENT_LOCALE 12
dbservername.cmd、ファイル 14
DBSPACETEMP 330
DB_LOCALE 12
INFORMIXCONCSMCFG 130
INFORMIXDIR 11, 21
INFORMIXSERVER 11
INFORMIXSHMBASE 210
INFORMIXSQLHOSTS 15, 68
informix.rc および .informix、ファイル
JVPHOME 11, 13
LD_LIBRARY_PATH 13
ONCONFIG 12, 52
PATH 12, 22
SERVER_LOCALE 12
TERM 12
606
304
13
562
13
IBM Informix Dynamic Server 管理者ガイド
MaxConnect 使用方法 99
SB 領域 285, 365
SQL 文キャッシュ 252
監視ツール
UNIX 33
Windows パフォーマンス モニタ
簡単な走査 224
管理仮想プロセッサ クラス 174
管理タスク
一貫性検査 544
格納領域の割当て 272
定型タスク 25
キー値
共有メモリ 211
キープアライブ オプション 83
キーワード
構文ダイアグラム内 xxxiii
記憶域の単位 263
記憶域の物理単位、リスト 263
記憶域の論理単位
リスト 263
34
369
共有メモリ (続き)
記憶装置
セット アップ
規格準拠
業界標準
下端境界アドレスの問題
xlii
偽装、クライアント
規則
構文記法
仮想部 219, 220, 251, 254
ISA 251
24
ISA 251
onstat 254
xxx
構文ダイアグラム
関連付け
xxx
コマンド行 xxxii
サンプル コード xxxiv
表記 xxviii
209
キー値 210, 211
クリティカル セクション
グローバル プール 227
表記上 xxix
起動スクリプト 21
機能
432
構成 208, 220, 246
構成パラメータ 45
再初期化 252
SQL エンハンスメント
最初のセグメント
xxvii
機密性、通信メッセージ 62
キャッシュ
共有メモリ バッファの監視
211
サイズ
仮想部 220
onstat で表示される
256, 258
データ分散 225, 250
光ディスク記憶サブシステム メモリ
SPL ルーチン キャッシュ
360
定義 214
テキスト エディタ
ISA 251
ON-Monitor
45
サイズの指定 252
有効化 252
参照: バッファ
キャラクタ スペシャル デバイス 8
キュー
スリープ状態 175
待機状態 175
定義 173
ディスク入出力 182
レディー状態 174
業界標準、準拠 xlii
競合
参照: ディスクの競合
強制常駐
設定 108
共有データ 205
共有メモリ
オペレーティング システム セグメント 208
オペレーティング システム パラメータの影響
概要 27
確保、ユーティリティ 210
208
識別子 210
常駐部
作成 105
ハッシュ サイズ 44, 250
プール サイズ 250
SQL 文キャッシュ
構成パラメータ
212
監視
68
246
250
251
初期化 102, 104, 106
スタック 225
スマート ラージ オブジェクト 241, 285
スレッド データ 224
スレッド制御ブロック 224
スレッドの排他レベルとバッファ ロック 228
セグメント識別子 211
セッション制御ブロック 224
接続 188
セマフォのガイドライン 248
ソート 226
チェックポイント 439
チャンク表 222
追加セグメントの確保 211, 212, 251
通信 76, 78, 227
データ レプリケーション バッファ 490
データ分散キャッシュ 225
定義 205
ディクショナリ キャッシュ 226, 251
トランザクション表 223
内部表 221
索引
607
共有メモリ (続き)
共有メモリ接続 (続き)
内容 227
バッファ 328
バッファ プール
例 93
共有メモリの確保
バッファ フラッシュの同期化
バッファ ロック 228
バッファのハッシュ表
バッファの割当て
非常駐部
表 221
表領域表
プール
235
210
データベース サーバ ユーティリティ
222
切替え
205, 251
スレッド間の 172
次のログ ファイル
切替えタブ 141
411
クックド ファイル領域
静的データ用 266
定義 9, 266
249
223
ロウ領域との比較
219
266
ファイルへのコピー 254
物理ログ バッファ 217
部分 206
割当て 316
組込みデータ型
ファジー操作
プロセス間通信 205
ページ クリーナ表 223
ヘッダ 212, 214
HDR レプリケーション 485
クライアント アプリケーション
オプション フィールド 78
440
ミューテックス 228
ミラー チャンク表 222
環境の構成 12
共有メモリ接続
目的 205
ユーザ定義ルーチン キャッシュ
共有メモリの確保 209
広域トランザクション 558
226
ユーザ表 224
論理ログ バッファ 216
割当て 7, 105, 219
BLOB ページ 240
DB 領域表 222
onmode を使用する常駐の変更 253
SERVERNUM 構成パラメータ 210
SHMADD 構成パラメータ 220
SHMBASE 構成パラメータ 43, 210
SHMTOTAL 構成パラメータ 43, 208
SHMVIRTSIZE 構成パラメータ 43, 220
SQL 文キャッシュ 45, 207, 226, 251
STACKSIZE 構成パラメータ 225
共有メモリ キー
追加セグメントの確保 212
定義 211
共有メモリ接続
仮想プロセッサ 187
クライアントによる確保方法 209
サービス名フィールド 77
メッセージ バッファ 227
608
210
共有ロック
定義 229
215
バッファ表 221
パフォーマンス オプション
ヒープ 225
209
仮想プロセッサ
214, 437
IBM Informix Dynamic Server 管理者ガイド
60
主サーバと副サーバの接続 486
スタック サイズの構成 225
セッションの開始 224
接続サポート 59
接続タイプ フィールド 73
接続の構成 14, 23, 63
多重接続 57
データ レプリケーションの使用方法 485
データ レプリケーションのリダイレクト 496, 499
定義 54
ネットワーク セキュリティ ファイル 66
ホストへの接続 68
ホスト名フィールド 75
リモート ホスト 66
ローカル ループバック接続 62
ワイルドカード アドレッシング 88
DB サーバ名の指定 90
HDR 障害への対応方法 495
ONCONFIG 環境変数 12
sqlhosts、エントリ 68, 71, 87
Windows ネットワーク ドメイン 57
コア ファイル 547
広域言語サポート xxiii, 12
クライアント/サーバ
構成
共有メモリ
広域トランザクション識別子
60
リスン スレッドとポーリング スレッド
ローカル ループバック
構成例
共有メモリ
188
62
エンタープライズ レプリケーション
開始 517
考えられる障害
93
ネットワーク接続
94
複数常駐 98
複数の接続タイプ 96
複数のデータベース サーバ
98
164
81, 82, 85, 124
505
INFORMIXSERVER 504
sqlhosts、ファイル 501
490
最初のレプリケーション 489
手動切替え 497, 498
障害後の再起動 498, 536, 538
障害の検出 495
使用するクライアントの設計
bargroup 10
グループの終わりオプション
グローバル プール、定義
警告
494
アプリケーション内での処理
方法の比較 506
DBPATH 499
計画 512
更新の複製方法
クリティカル DB 領域
格納領域 272
ミラーリング 305, 309
グループ
データベース サーバ
並列処理 168
488
管理 522
クライアント リダイレクト
ローカル ループバック 93
IPX/SPX の使用方法 95
クラス
仮想プロセッサ
588
高可用性データ レプリケーション
遺失トランザクション 492
81
227
NIS システム上のファイル 64
oncheck -cc の出力 545
警告メッセージ
サーバ ユーティリティのセキュリティ検査 122
軽量入出力 216, 282
軽量プロセス 163
結合
並列処理 168
決定後フェーズ 562
権限
設定 10
コード、サンプル、の規則 xxxiv
コードのクリティカル セクション
チェックポイント 442
定義 432
コード例の表記規則 xxxiv
コア ダンプ
役立つ状況 551
gcore.xxx の内容 547
参照: DUMPCNT; DUMPDIR; DUMPGCORE;
DUMPSHMEM
主データベース サーバ
副データベース サーバ
状態の監視 531
507
508
処置
主 496
副データベース サーバの障害 496
接続の構成 514, 517
設定
データベース サーバ タイプ 530
セットアップ 513
データの要件 513
データベース サーバ タイプの変更 530
データベース サーバ モードの変更 528
定義 485
同期更新 491
同期性 494
動作 489
ハードウェアとオペレーティング システムの要件
513
破損インデックス検出後の再起動 535
非同期更新 491
複製データの型 485
副データベース サーバのチャンク状態 525
メディア障害後のシステムの復元 533, 534
索引
609
高可用性データ レプリケーション (続き)
役割
一時 DB 領域
構成パラメータ (続き)
AFF_SPROC 177, 197
ALARMPROGRAM 30, 49
510
主データベース サーバ
486
ALRM_ALL_EVENTS
副データベース サーバ
486
BUFFERPOOL
ログ レコード
利点 485
490
DataBlade モジュール、インストール
CDR_QDATA_SBSPACE
CKPTINTVL 44, 441
489
DDL 操作の実行 509
DRINTERVAL 構成パラメータ 491
DRTIMEOUT 構成パラメータ 495
hdrmkpri および hdrmksec、スクリプト
UDR、インストール 489
UDT、インストール 489
参照: データ レプリケーション
更新、データ
標準表
ロウ表
CLEANERS
530
更新前イメージ
定義 432, 433
38, 91
DBSERVERNAME 38, 72, 90
DBSPACETEMP 40, 305, 330
DD_HASHMAX 44
DD_HASHSIZE
44
DEADLOCK_TIMEOUT 47, 578
DEF_TABLE_LOCKMODE 44, 219
DIRECTIVES 50
DRAUTO 48, 495, 497
DRIDXAUTO 48, 527
DRINTERVAL 48
236
DRLOSTFOUND 48, 492
DRTIMEOUT 48, 527
更新前イメージ ジャーナル
参照: 物理ログ
構成
DS_HASHSIZE 226, 250
DS_MAX_QUERIES 46
監視 51
サーバ セットアップの使用方法 18
データベース サーバ環境 5
データベース サーバ構成の計画 6
必要なディスク領域の見積り 304
複数ポート 65
要件 5
J/Foundation 19
Windows 7
構成記憶装置 24
構成パラメータ
共有メモリ 246
診断情報 550
テキスト エディタを使用する設定 251
ルート DB 領域の初期チャンク 275
ADTERR 51
ADTMODE 51
ADTPATH 51
ADTSIZE 51
AFF_NPROCS 197
610
278
45
CONSOLE 32, 42
DATASKIP 46, 349
DBSERVERALIASES
292
293
内容 446, 449
物理ログ バッファ
フラッシュ 235
49
44, 215, 326
IBM Informix Dynamic Server 管理者ガイド
DS_MAX_SCANS 46
DS_NONPDQ_QUERY_MEM 46, 220
DS_POOLSIZE 226, 250
DS_TOTAL_MEMORY 46, 220
DUMPCNT 49, 550
DUMPCORE 49, 550
DUMPDIR 49, 547, 550
DUMPGCORE 49, 547, 550
DUMPSHMEM 49, 547, 550
DYNAMIC_LOGS 41, 419, 423, 426
EXT_DIRECTIVES 50
FAST_RESTART_CKPT_FUZZYLOG 42, 452
FAST_RESTART_PHYSLOG 42, 452
FILLFACTOR 40
HETERO_COMMIT 47, 580
IFX_EXTEND_ROLE 50, 157
LISTEN_TIMEOUT 15, 50, 126
LOCKS 44
LOGBUFF 41, 217
LOGFILES 41
LOGSIZE 41
構成パラメータ (続き)
構成パラメータ (続き)
LTAPEBLK 42, 516
LTAPESIZE 42, 516
STMT_CACHE_NUMPOOL 45, 252
STMT_CACHE_SIZE 45, 252
LTXEHWM
SYSSBSPACENAME
LTXHWM
41, 423, 428, 567
41, 423, 428, 567
MAX_INCOMPLETE_CONNECTIONS
MAX_PDQPRIORTY 46
MIRROR
TAPEBLK
15, 50, 126
39, 474, 475
MULTIPROCESSOR 47, 177
NETTYPE 47, 91, 92
NUMCPUVPS 177
OFF_RECVRY_THREADS
47, 493
ONDBSPACEDOWN 40
ON_RECVRY_THREADS 47
OPCACHEMAX 51, 360
OPTCOMPIND 46
PC_HASHSIZE 44, 227, 250
PC_POOLSIZE 44, 227, 250
PHYSBUFF 41, 218
PHYSDBS 41
PHYSFILE 41, 435, 457
PLOG_OVERFLOW_PATH
TAPEDEV 42, 522
TAPESIZE 42, 516
TBLTBLFIRST
MIRROROFFSET 39, 275, 315
MIRRORPATH 39, 275
MSGPATH 31, 42
445
RA_PAGES 45, 234
RA_THRESHOLD 45, 234
RESIDENT 44, 253
ROOTNAME 39, 275
ROOTOFFSET 39, 275, 315
ROOTPATH 39
ROOTSIZE 39
SBSPACENAME 40, 279, 286, 340
SBSPACETEMP 40, 286, 342
スマート ラージ オブジェクト 340
SERVERNUM 38, 210, 211
SHMADD 43, 220
SHMBASE 43, 210, 211, 248
SHMTOTAL 43, 208
SHMVIRTSIZE 43, 220
SINGLE_CPU_VP 47, 177
STACKSIZE 44, 225
STAGEBLOB 51
STMT_CACHE 45, 252
STMT_CACHE_HITS 45, 252
STMT_CACHE_NOLIMIT 45, 252
40
42, 516
39, 275, 323
TBLTBLNEXT 39, 88, 275, 323
TXTIMEOUT 47, 571, 578
USEOSTIME 47
VPCLASS 47, 182, 197
参照: 個々のパラメータ名
構成ファイル
接続 63
ネットワーク 15
onconfig.std 16
onconfig.std の変更の防止 17
高速復旧 107, 110, 376
クリーンアップ フェーズ 419
スマート ラージ オブジェクト 287
定義 27, 444
発生時 444
バッファ付きロギングの効果 445
必要性の検出方法 445
表タイプ 293
ファジー操作の代替オプション 452
物理ログのオーバーフロー 445
プロセスの詳細 446, 448
目的 445
ログなし 445
SB 領域 277
高度なユーザ権利 35
構文セグメント xxxii
構文ダイアグラム
キーワード xxxiii
スクリーン リーダ (読上げソフトウェア)での読取り
595
の規則 xxx
変数 xxxiv
コマンド行の表記規則
サンプル ダイアグラム xxxii
読み方 xxxii
コミット
異種 578, 580
索引
611
削除 (続き)
コミット プロトコル
異種
2 相
ロウ表 292
ログ ファイル
558
558, 560
コミット前フェーズ
混合トランザクション結果
コンソール
メッセージ
EXT 領域
569
SB 領域
作成
32
コンテキスト スイッチング
定義 171
OS 制御時の機能 168
OS とマルチスレッドの相違点
167
定義
25
参照制約 292, 377
視覚障害
構文ダイアグラムの読取り
サービス妨害フラッディング アタック
最小 (Atomic) 型
参照: 組込みデータ型
サイズ設定のガイドライン
126
436
396, 409, 419
595
時間指定復元
ロギング 292
式
物理ログ サイズ
論理ログ サイズ
435
409
識別子オプション 83
システム カタログ表
281
ページ サイズ 338
メタデータ 285, 340
ルート DB 領域 302
BLOB ページ 338
最大
格納領域の数 320
チャンク サイズ 320
チャンクの数 320
ユーザ接続 104, 109
先読み
使用される状況 234
定義 234
RA_PAGES 構成パラメータ 234
RA_THRESHOLD 構成パラメータ 234
先読みバッファ、定義 224
削除
格納領域 346
スマート ラージ オブジェクト データ 346, 347
チャンクを DB 領域から 343
標準表 292
612
330
DB 領域 321
SB 領域 339
差分バックアップ
77
サイズの計算
スマート ラージ オブジェクト
345
一時 DB 領域
サーバ セットアップ 18
構成のカスタマイズ 18
物理ログ
論理ログ
346
348
スマート ラージ オブジェクト 279, 340
BLOB 領域 336
CLOB 型または BLOB 型を持つ表 285
[サ行]
サービス
IPX/SPX
420
DB 領域内の表
562
IBM Informix Dynamic Server 管理者ガイド
格納場所 289
最適格納領域 308
妥当性検査 545
ディクショナリ キャッシュ 225
sysdistrib 225
システム コンソール 32
システム タイマ 174
システム監視インターフェイス
参照: SMI 表
システム障害
データベースの影響 445
システム要件
ソフトウェア xxiii
データベース xxiii
実行
主サーバ上での DDL 操作 509
自動データベース サーバ
起動 21
停止 22
自動復旧、2 相コミット 563
初期化 (続き)
集計関数
並列処理 168
修正された問題と既知の問題についてのファイル
SMI 表
xxxvi
主チャンク
ユーザへの制御の引渡し 108
oncfg_servername.servernum、ファイル
264
sysutils、データベース
主データベース サーバ
手動復旧
初期構成
格納領域の作成
486
処置が必要かどうかの判断
データが非一貫的かどうかの判断
必要かどうか判断するための手順
例 590
587
585
論理ログ ファイルからの情報の取得 588
GTRID の使用 588
使用許諾を受けたユーザ、最大許容数 104, 109
小数点付き 10 進数フォーマットの構文ダイアグラム
595
使用済みバッファ、定義
状態
234
ログ ファイル
解放 412, 422
現行 412
削除済み
使用済み
413, 421
45, 412, 421
チェックポイント 422
追加 412, 413, 421
バックアップ済み 413, 421
常駐
参照: 複数の常駐
常駐共有メモリ
定義 105, 213, 214
内部表 221
初期エクステント サイズ 271
初期化
一時表領域 108
仮想プロセッサ 106
強制常駐 108
共有メモリ 102, 104
構成ファイル 104, 107
高速復旧 107
最大接続 109
チェックポイント 107, 109
データベース sysmaster 108
ディスク領域 20, 102, 104, 106
手順 104
内部ファイルの変換 106
メッセージ ログ 108
109
23
ディスク レイアウト
590
107
108
304
ルート DB 領域のガイドライン 275
シングルユーザ モード 110, 114, 116
HDR ペアの 530
身体障害、視覚
構文ダイアグラムの読取り
診断情報
収集
595
550
設定パラメータ 550
ディスク領域の抑制 550
診断メッセージ
参照: メッセージ ログ
シンプル パスワード通信サポート モジュール
CSM、構成ファイル 132
シンプル ラージ オブジェクト
記述子 241
ディスクへの書込み
バッファ 241
240
BLOB 領域での作成
240
BLOB 領域の格納の図 241
参照: テキスト (TEXT) 型およびバイト (BYTE)
型データ
信頼される側のドメイン 563
推奨事項
一貫性検査 544
ディスク領域の割当て 266
物理ログのミラーリング 435
据置き検査、制約 377
スクリーン リーダ (読上げソフトウェア)
構文ダイアグラムの読取り 595
スケジューリング
優先順位 19
スケジューリング優先順位 19
スタック
サイズ 44, 225
スレッド 225
スレッド制御ブロック 172
定義 172, 225
ポインタ 172
索引
613
スタック (続き)
スマート ラージ オブジェクト (続き)
INFORMIXSTACKSIZE 環境変数 225
STACKSIZE 構成パラメータ 225
LO の平均サイズの計算 281
LO_CREATE_TEMP フラグ 287
ストアド プロシジャ
参照: SPL ルーチン
SB ページ
ストアド プロシジャ キャッシュ
参照: UDR キャッシュ
ストリーム パイプ接続
サービス名フィールド
利点と欠点 61
タイプ
xxxix
エンタープライズ レプリケーションの使用
格納特性 278, 281, 342
型の指定 279
切替え
278
171
クライアント アプリケーション
コンテキスト 170
スケジューリングと同期化 170
164
スタック 225
スリープ状態 174
制御ブロック 170
241
制御を渡す
セッション
170
172, 224
定義 164
同時実行性制御
345
作成 279, 403
データ抽出 277
定義 277
入出力特性 279
バイト範囲ロック 218
バッファリング 281
推奨事項 239
モード 241
物理ロギング 434
見積りサイズ 341
メタデータ 278
メタデータ領域のサイズ設定 369
メモリ 285
ユーザ データ 278
ユーザ定義データの統計 40
ロギング 282, 401
ログ機能のオンとオフの切替え 402
ログ機能の使用方法 403
ロック 277, 282
AVG_LO_SIZE 281, 340
CLOB 型または BLOB 型のデータの削除
DB 領域 270
185
覚醒 171
仮想プロセッサによる処理方法 185
共有バッファへのアクセス 229
アプリケーションでのアクセス 285
エクステント サイズの計算 271, 340
エクステントとチャンク 271
614
174
スレッド
移行 173
カーネル非同期入出力
スマート ラージ オブジェクト
軽量入出力 216, 282
最終アクセス時間 282
削除、0 の参照カウント
174
スリープ状態のスレッド
永久 174
77
スピン ロック
監視 255
すべてのマニュアルのマニュアル セット
共有メモリ バッファ
269
スリープ状態のキュー、定義
345
IBM Informix Dynamic Server 管理者ガイド
228
内部 164, 176
ヒープ 225
複数並行 170
復旧 164
プロセスとの関係 164, 176
ページ クリーナ 163, 164, 223
ミラーリング 164
ユーザ 164, 224
リソースへのアクセス 170
1 次セッション 224
B ツリー スキャナー 164
onmode 164
スレッド セーフ仮想プロセッサ 165
スレッド制御ブロック
コンテキスト スイッチングに果たす役割
作成 224
スレッドの覚醒 174
制御構造体
キュー 173
スタック 172
スレッド制御ブロック 170
225
制御構造体 (続き)
セッション
セッション制御ブロック
定義 170
制御独占型仮想プロセッサ
170
181
制御ブロック
171
定義 173
レディー状態のキュー
制限
173
チャンク サイズ 320
チャンク数 320
ユーザ定義 VP 180
オプション
sqlhosts 84
外部ルーチンの
170
226
ロック 219
sqlexec、スレッド 164
UDR キャッシュ 226
セッション制御ブロック
共有メモリ 224
定義
接続
176
JVP 182
整合性、データ
参照: 整合性検査
静止モード 110
170
224
共有メモリ、定義 60
クライアント アプリケーションとサーバ間
構成パラメータ 90
58
セキュリティ制限 66
タイプ フィールド 73
377
セキュリティ
暗号化オプション
219
223
定義 170
ディクショナリ キャッシュ
170
制約
検査、据置き
実効表領域
主スレッド 224
スレッド 224
切替え 171
決定済みポイント
CPU VP
224
共有メモリ プール
制御を渡すスレッド
条件
共有メモリ
128
157
共有メモリ通信のリスク 60
サーバ ユーティリティ検査の使用不可化 121
サービス妨害フラッディング アタックの防止 126
通信サポート モジュールの使用 129
データベース イベントの監査 125
ネットワークのファイル 15
バージョン 10.0 のエンハンスメント xxiv
列レベル暗号化の使用 142
ロールによる 125
DataBlade ユーザ定義ルーチンの 157
INFORMIXDIR ディレクトリ許可 123
LDAP 認証サポートによる 149
Pluggable Authentication Module 146
UNIX 開始前のサーバ ユーティリティ検査 120,
122
セキュリティ オプション 156
セグメント
参照: チャンク
セグメント識別子 211
多重化 58
データベースとネットワークの相違点
定義 188
58
ネットワーク、例 94
ファイル、定義 63
複数
接続タイプ、例 96
方法 186
ローカル ループバック
定義 62
例 93
ASF 57
hosts、ファイル 64
IPX/SPX 95
services、ファイル 64
sqlhosts、ファイル 15
TCP/IP 63, 66
Windows 16
接続リダイレクト オプション 79
セット アップ
環境変数 13
ontape 24
ON-Bar 24
セマフォ、UNIX パラメータ 248
索引
615
チェックポイント (続き)
ソート
共有メモリ 226
並列処理 168
バックアップ注意事項
ファジー 440
走査
物理ログ バッファ
インデックス
フル
234
順次読み込まれる表
並列処理 168
234
挿入、データ
xxiii
エクステント
概念 264
書込み
監視
271
259
最大数 23, 264, 320
削除元
BLOB 領域 345
待機状態のキュー
定義 175
バッファ ロック
多重接続 58
229
DB 領域
344
SB 領域 345
状態の確認 353, 355, 549
初期の割当て 318
546
546
システム カタログ表
545
データ ページ 545
メタデータ 546
予約ページ 546
論理ログ 546
単一プロセッサ コンピュータ 47, 178
単純読込み排他レベル 509
端末インターフェイス 12
チェックポイント
開始イベント 441
起動 107
強制 525
共有メモリの初期化手順 107, 109
高速復旧での役割 446, 447
最大接続 109
チャンク書込み 238
通常バッファのフラッシュ 235
データ レプリケーション 525
定義 439
動作 442
動作の監視 460
616
441
チェックポイント 238
監視 353, 356, 549
最大サイズ 8, 23, 264, 320
[タ行]
妥当性検査
インデックス
エクステント
ライト アペンド 346
論理ログ バッファ 216
チェックポイント処理の強制実行
参照: チェックポイント処理、強制された
チャンク
ソケット 59
nettype フィールド内 73
その他の仮想プロセッサ 193
ソフトウェア要件
236, 438, 441
439
論理ログ ファイル
標準表 292
ロウ表 292
疎結合モード 559
444
IBM Informix Dynamic Server 管理者ガイド
処理時の入出力エラー 549
追加先
ミラーリングされた DB 領域 479
DB 領域 331
ISA または onspaces の使用方法 331
SB 領域 285, 341
追加方法
ON-Monitor 332
定義 23
停止チャンクの復旧 477
ディスク レイアウトのガイドライン 304
名前、ロウ デバイスとして割り当てられる場合
265
パス名へのリンク 10, 317, 475
バックアップ 332
表、定義 222
副サーバ上で状態を保存 525
フリー リスト
監視 456
ページの結合と分割 378
ミラー復旧時の動作 470
チャンク (続き)
データ レプリケーション (続き)
メタデータ領域の指定
ラージのサポート 24
障害後の再起動 527
セキュリティ オプション
341
LVM 使用時のサイズ制限超過
310
中央レジストリ
バッファ
sqlhosts 70
調整元データベース サーバ
フラッシュ間隔
174
通常バッファ
フラッシュを要求するイベント
通信
235
209
クライアントからデータベース サーバ
参照: 接続
通信構成ファイル
参照: ONCONFIG 構成ファイル
通信サポート サービス
定義 62
メッセージの機密性および整合性
527
48
モード 485
読取り専用モード 110
HDR 環境でのデフォルトでないページ サイズ
参照: 高可用性データ レプリケーション
データ暗号化 128
515
指定列のデータ 128
パスワードの 128
共有メモリ
クライアントによる確保方法
サイズ 227
定義 227
82
218, 490
副サーバ インデックスの破損後の再起動
複製されるデータ型 485
561
追加
仮想プロセッサ
追加エクステント
サイズ 271
156
データベース サーバ グループの使用方法
62
通信サポート モジュール 129
仮想プロセッサ 192
構成ファイル 62, 130
ネットワーク セキュリティ 62
concsm.cfg、エントリ 132, 141
sqlhosts、オプション フィールド 80
通信メッセージの整合性 62
データ
ディスク領域の見積り 303
伝送の暗号化 129
データ バックアップ
参照: バックアップ
データ ファイル
参照: ロギング
データ ブロック
参照: ページ
データ レプリケーション 377
エンタープライズ レプリケーション 29
応答待機時間 48
概要 28
高可用性データ レプリケーション 28
データ型セグメント
参照: ディスク領域
データ記憶域
概念 263
格納領域の最大数
320
最大チャンク
サイズ 315, 320
チャンクの最大数 320
control 272, 279
参照: ディスク領域
データ定義言語
文 378, 509
データの一貫性
監視 546
検証 544
高速復旧 444
保つ方法 432
破損の症状 548
データの復元
参照: 復元
データ復旧メカニズム
高速復旧 444
スマート ラージ オブジェクト 277
データ分散キャッシュ 225, 250
データベース
格納場所 289
監視 352, 391
サイズの制限 289
サイズの見積り 304
調整
参照: パフォーマンス チューニング
索引
617
データベース (続き)
定義 289
非同期入出力
データベース サーバの監視 (続き)
論理ログ バッファ 458
BLOB 領域のストレージ
185
フラグメント化
目的 289
362
ログ機能状態の表示 392
ANSI 標準準拠 383
oncheck の使用方法 32
onstat の使用方法 32
ON-Monitor の使用方法
sysutils 109
参照: 復旧
データベース サーバ
開始 20
グループ
81, 82, 85, 124
スケジューリング優先順位 19
データベースの作成要件 383
パスワード通信サポート モジュール
81
ディスク領域の初期化 20
oninit を使用した 102
データベース サーバ名
参照: DBSERVERNAME 構成パラメータ
データベース ログ機能
エンタープライズ レプリケーション
バックアップ 321
132
マルチスレッド 163
メッセージ ログ 31
リモート 67
377
DTP 環境 383
データベース ログ機能状態
32 ビットおよび 64 ビット バージョン
SQL API での接続 23
データベース サーバ グループ
データベース サーバ ID 38
31
SMI 表の使用方法 32
データベース サーバの起動
自動 22
エンタープライズ レプリケーション
HDR 82
7
81
データベース サーバの監視 32
エクステント 359
仮想プロセッサ 200
共有メモリ 254
広域トランザクション 29
構成パラメータ値 51
チェックポイント 460
チャンク 353
データ レプリケーションの状態 531
データベース 352, 391
ディスク入出力キュー 186
ディスク入出力キューの長さ 186
動作のプロファイル 254
バッファ 255
バッファ プールの動作 258
物理ログ バッファ 217, 458
物理ログ ファイル 458
フラグメント化ディスクの使用状況 356, 359
ユーザ スレッド 224
ラッチ 254
ログ ファイル 414
ログ機能状態 391
618
338
DB 領域内のシンプル ラージ オブジェクト
290
IBM Informix Dynamic Server 管理者ガイド
概要 26
許可された変更
設定 377
386
定義 381
バッファ付きログ機能
バッファなしログ機能
382
381
バッファリング状態の変更
ondblog の使用方法 387
ontape の使用方法 389
SET LOG の使用方法 383
変更
ISA の使用方法 390
ondblog の使用方法 387
ontape の使用方法 388
ON-Monitor の使用方法 390
ログ機能の終了
ondblog の使用方法 387
ontape の使用方法 389
ANSI 標準準拠 382
モードの変更 388
ANSI 標準準拠への変換
ondblog の使用方法 388
ontape の使用方法 389
ondblog によるログ機能のキャンセル
ontape によるログ機能の有効化 388
387
360,
ディスク領域
データベース sysmaster
サイズの見積り
作成 108
SMI 表 32
参照: SMI 表
初期化
チャンク パス名、オフセット 315
チャンク、最大サイズ 23, 320
データベース管理者
参照: 管理タスク
チャンクパス名へのリンクの作成
ディクショナリ キャッシュ 226
低コスト ディスクの冗長配列 468
停止
オフライン モードへの移行
自動 22
即時 115, 117
通常
10, 317
中央パーティション 306
追跡、表領域による使用 297
定義 314
テキスト (TEXT) 型およびバイト (BYTE) 型データ
の格納 338
要件 304
117
レイアウトのガイドライン
115
モード
定義 111
停止スクリプト 21
304
割当て
クックド ファイル領域 316
ロウ ディスク領域 316
ディスク ページ
先読み 234
物理ログに格納された更新前イメージ
ディスク レイアウト
236
Windows 318
ISA を使用する監視
ディスク領域の割当て
エクステント
最適なパフォーマンス 304
サンプル ディスク レイアウト
トレードオフ 306
表の分離 305
ミラーリング 305
論理ボリューム マネージャ
302
20, 102, 104, 106
306
310
ディスク管理 9
ディスク競合
削減 304
ディスク構成 6
ディスク入出力
オペレーティング システム入出力 265
カーネル非同期入出力 183
仮想プロセッサのクラス 182
キュー 186
削減での共有メモリの役割 205
処理時のエラー 549
スマート ラージ オブジェクト 277
バッファ 328
物理ログ 183
ミラー チャンクからの読込み 470
ミラー チャンクへの書込み 470
優先度 183
ロウ入出力 265
論理ログ 183
358
271
概要 9
共有メモリ 7
クックド ファイル領域
316
初期チャンク 318
手順 314
ミラーリングされたデータ
475
メタデータ 340
SB 領域 285
UNIX
クックド ファイル 316
ロウ ファイル 316
Windows
物理ドライブ 318
論理ドライブ 318
NTFS ファイル 317
ディスク割当て 9
ディレクトリ
NFS 264
テキスト エディタ
構成パラメータの設定
仮想プロセッサ 196
共有メモリ 251
パフォーマンス 251
ONCONFIG、ファイル、作成
17, 196
索引
619
テキスト (TEXT) 型
参照: テキスト (TEXT) 型およびバイト (BYTE)
型データ
テキスト (TEXT) 型およびバイト (BYTE) 型データ
圧縮なし
ロード
トラステッド
クライアント
ドメイン 56
Windows ドメイン
トランザクション
構成ファイル 17, 105
role
アクセス権の付与 125
56
識別番号、GTRID
586
589
追跡 391, 571
定義 558, 561
混合結果 569
疎結合
密結合
ロウ表
xxiii
デフォルトでないページ サイズ
326
電子メール
イベント アラームの通知 48
問合せ予定 226
同期チェックポイント
参照: チェックポイント処理
統計情報
参照: onstat ユーティリティ
動作が不正なユーザ定義ルーチン 180
同時実行
control 228
動的なロックの割当て 219
動的ホスト構成製品 65
動的ログ割当て
イベント アラームおよびメッセージ
概要 27
定義 417
ファイルの格納場所 418
ログ ファイル サイズ 417
ドキュメント ノート xxxvi
ドメイン
Windows
コントローラ 56
56
監視 391, 561, 571
グローバル
一貫的に実行されたかどうかの判断
NFS 264
デフォルト
バッファ プールの作成
DB 領域の 325
HDR 環境での 515
56, 57
56
データベース サーバ
オフセットが必要な場合 315
キャラクタ スペシャル 265
35
56
ユーザ アカウント
BLOB 領域への書込み 240
DB 領域での監視 362
参照: シンプル ラージ オブジェクト
デバイス
620
指定のユーザとして実行
信頼 56
定義
371
371
作成 125
使用方法 125
デフォルト ロケール
ドメイン (続き)
Windows (続き)
559
559
292
トランザクション マネージャ
目的 558
MTS/XA 559
TP/XA 29, 558
425
IBM Informix Dynamic Server 管理者ガイド
トランザクション ログ機能
エンタープライズ レプリケーション
使用時 381
定義 377, 381
バッファ付き 381
バッファなし 381
参照: ロギング
トランザクション表
定義 223
onstat を使用する追跡 223
トランザクション分岐 561
トランスポート層インターフェイス
nettype フィールド内 73
[ナ行]
名前
格納領域 319
名前付きパイプ接続
定義 59, 61
278
[ハ行]
名前付きパイプ接続 (続き)
プラットフォーム サポート
名前変更
59
データベース サーバ インスタンス
DB 領域
333
入出力
参照: ディスク入出力 (I/O)
入出力無効化エラー
監視
イベント アラーム
552
メッセージ ログ 552
破壊的および非破壊的 551
発生時 551
認証
定義 62
デフォルト ポリシー
モジュール 146
62
ネットワーク
インターフェイス カード
使用方法 192
構成ファイル
15
セキュリティ ファイル 15
データ暗号化 141
ネットワーク セキュリティ
ファイル 66
hosts.equiv 66
.netrc、ファイル 67
ネットワーク プロトコル 187
定義 55
ネットワーク プロトコル ドライバ
定義 55
ネットワーク仮想プロセッサ
数 188
定義 186
ポーリング スレッド 187
ネットワーク情報サービス 64
ネットワーク通信
インプリメント 188
タイプ 186
IPX/SPX の使用方法 76, 77, 95
TCP/IP の使用方法 75, 76
ネットワークデータ伝送
暗号化 129
パーティション
19
作成と使用 334
定義済みの表またはインデックスでの作成
335
フラグメント化された表またはインデックスでの作
成
334
ALTER FRAGMENT 文での言及
ハードウェア ミラーリング 468
ハイ パフォーマンス ローダ
334
293
排他ロック
バッファ 229
バイト (BYTE) 型
参照: テキスト (TEXT) 型およびバイト (BYTE)
型データ
バイト範囲ロック 218, 282
バイナリ ラージ オブジェクト
参照: BLOB 型
パケット集計 99
パスワード
ユーザ informix の変更
34
パスワード暗号化 129
データベース サーバ初期化
131
CSM、構成ファイル 130, 132
パスワード通信サポート モジュール
破損、入出力エラーの解決 549
132
バックアップ
確認 25
サイズの減少 276
削除済みのログ ファイル 421
ストラテジ 6
チェックポイント 444
チャンク 332
データベース ログ機能の変更 321
定義 25
テキスト (TEXT) 型およびバイト (BYTE) 型データ
277
標準表 292
表タイプの変換 321
物理ログ 320
ロウ表 292, 294
ログ ファイル 320, 410
ログ ファイルの解放 412
ログ ファイルの追加 420
BLOB 領域 337
DB 領域 322
索引
621
バックアップ (続き)
バッファ サイズ
SB 領域
発見的決定
オプション 79
バッファ プール
タイプ
285, 340, 410
最小必要数
566
独立動作
先読み
565
発見的トランザクション終了
結果 571
図とログ レコード
215
234
スマート ラージ オブジェクト
定義 214
242
デフォルトでないページ サイズに対応した作成
576
定義 569
トランザクションに対する影響の判断
必要なタイミング 570
586
戻されたメッセージ 571
発見的ロールバック
監視、onstat -x 571
325
デフォルトでないページ サイズの 325
デフォルトでないページ サイズの作成 326
動作の監視 258
内容 214
バッファ サイズ
216
結果 568
バッファ フラッシュの同期化
図とログ レコード 575
定義 566
ロールバックの発生を示す兆候
ファジー チェックポイント 440
フル チェックポイント 439
32 ビット プラットフォームの場合
ロング トランザクション
ハッシュ表 222
バッファ
221
224
スマート ラージ オブジェクト 241, 282
スレッドによる処理方法
バッファ ページへのアクセス 234
バッファの獲得 230
待機状態のスレッド 221
データ レプリケーション 218, 490
統計情報と使用の監視 255
排他モード 229
表、定義 221
物理ログ バッファ 217
フラッシュ 234
フラッシュ時の書込みタイプ 236
フラッシュの同期化 235, 236
並行アクセス 234
未使用 234
ロックのタイプ 228
論理ログ バッファ 216
64 ビットの最大数 216
BLOB ページ バッファ 240
least-recently used 230
most-recently used 231
622
328
64 ビット アドレッシング 216
64 ビット プラットフォームの場合 328
BLOB 領域データによるバイパス 240
571
共有ロック 229
現行のロック アクセス レベル
先読みバッファ
使用済み 234
586
236
IBM Informix Dynamic Server 管理者ガイド
LRU 管理列の管理
バッファ値 327, 328
230
バッファ書込みのタイプ 237
バッファ付きトランザクション ログ機能
フラッシュ時 382
参照: ロギング
バッファなしディスク アクセス
データ記憶域 265
バッファ付きとの比較 266
バッファなしトランザクション ログ機能
参照: ロギング
バッファなしログ機能
論理ログ バッファのフラッシュ 238
パフォーマンス
監視ツール 34
共有メモリ 60, 168, 205
先読み 234
常駐共有メモリ 213
制御譲渡関数 168
データのキャプチャ 32
バッファのフラッシュ頻度 231
パラメータ、設定
ON-Monitor の使用 251
CPU VP の評価 176
VP 制御コンテキスト スイッチング 171
表 (続き)
パフォーマンス チューニング
最適なパフォーマンスのサンプル ディスク レイア
ウト 308
ディスク レイアウトのガイドライン
フォアグラウンド書込み
304
285
486
高速復旧 294
バックアップ 294
310
復元
433
論理ボリューム マネージャ
論理ログ サイズ 397, 456
論理ログ、再配置 456
標準データベース サーバ
標準表
237
複数のディスクへのデータ分散
物理ログの移動 456
ログに記録されるデータ量
フラグメント化 292
CLOB 型または BLOB 型を持つ表の作成
293, 294
プロパティ 292
ロギング データベースで使用できる
表タイプ
310
LRU 書込み 237
パフォーマンスの向上
バージョン 9.3 xxvii
高速復旧 294
復元 294
プロパティ 294
ヒープ
変換前のバックアップ
321
要約 292
ロギング データベース
RAW 291, 390
26
225
光仮想プロセッサ 193
光ディスク記憶サブシステム メモリ キャッシュ
書き込まれたオブジェクトの数 51, 361
書き込まれたテキスト (TEXT) 型およびバイト
(BYTE) 型データの KB 361
クライアントのユーザ ID 79, 361
STANDARD 291, 390
systables のフラグ値 292
表の分離 305
サイズ 360
ユーザのセッション ID
表領域
一時、初期化時
360
割当て 361
ビットマップ ページ
インデックス表領域 298
表領域 298
非同期入出力
定義 185
KAIO (カーネル非同期入出力) 183
非ファジー操作
定義 440
バッファ プールのフラッシュ 440
フラッシュ、バッファ 442, 443
表
一時
再起動時のクリーンアップ 297
ディスク領域の見積り 303
エクステント 270, 290
格納の注意事項 304
削除 346
使用頻度の高いものを分離 305
定義 290
ディスク レイアウトのガイドライン
ディスク中央パーティション 308
標準 292
一時を削除する
監視
305
26
108
108
systabnames 360
サイズ、エクステント、表領域表領域の
定義 297
表の内容 223
含まれるページのタイプ 298
ブート ファイル
参照: 起動スクリプト
ファイル
アクセス権 316
クックド 9
コア 547
構成 16
接続構成 63
ネットワーク セキュリティ 15, 66
ネットワーク構成 15
hosts 15
hosts.equiv 66
JVP プロパティ 20
NTFS 265
oncfg_servername.servernum 107
ONCONFIG 16, 104, 105
323
索引
623
ファイル (続き)
復旧 (続き)
メディア障害
モード
passwd 15
services 15
sqlhosts
定義
15
ファイル入出力
参照: ディスク入出力
ロウ表
高速復旧
バッファ プールのフラッシュ
434
高速復旧 436
スマート ラージ オブジェクト
データ バッファ 438
440, 443
物理ロギング 436, 438
物理ログ バッファ 236
物理ログを空にする 444
定義
ライト アペンド 346
ログの詳細 434
BLOB 領域の BLOB ページ
452
定義 440
バッファ プール 443
フォールト トレランス (耐故障性)
438
438
物理ログ
概要 27
格納場所 433
仮想プロセッサ
487
監視 237, 259
更新前イメージ 235
定義 237
復元
標準表 292
表タイプ 294
ロウ表 292
複数常駐
例 98
複数の接続タイプ
例 96
sqlhosts 91
参照: 接続
複数のネットワーク インターフェイス カード
複数並行スレッド 170
副データベース サーバ 486, 525
不整合の検出 544
復旧
標準表 292
並列処理 168
434
433
動作ログ 433
バックアップ 434
ファジー チェックポイント
最も古い更新 400
論理ログ バッファ 216
ファジー操作
624
560
446
定義 446, 448
物理復旧メッセージ
物理ロギング
初期化時 109
定義 439
動作 442
高速復旧 444
データ レプリケーション
フォアグラウンド書込み
110
292
2 相コミット プロトコル
物理的な整合性
ファジー チェックポイント
強制実行 461
高速復旧 448, 452
代替高速復旧オプション
466
192
IBM Informix Dynamic Server 管理者ガイド
184
空にする方法 438
監視 458
共有メモリの再初期化 456
限界 436
更新前イメージ内容 438
高速復旧でのオーバーフロー 445
高速復旧での役割 438, 445, 446, 449
サイズ設定のガイドライン 436
サイズと格納場所の変更
可能な方法 455
制限 457
テキスト エディタの使用方法 457
理由 456
onparams の使用方法 456
ON-Monitor の使用方法 457
サイズの増加 326, 437, 458
デフォルトでないページ サイズを使用する場合
326
入出力、仮想プロセッサ 184, 456
バックアップ 320
バッファ 217, 438
物理ログ (続き)
フル チェックポイント (続き)
バッファのフラッシュ 438
物理復旧メッセージ 434
フルにならないようにする
連続領域
バッファ プールのフラッシュ
物理ログを空にする 444
最も古い更新
438
458
チェックポイント
定義 217
フラッシュ 217
209
スレッドとの比較
167
共有メモリ 205
nettype フィールド内
プロセッサ親和性
使用方法
xxix
フラグメント
監視
ディスク使用状況
プロセス
共有メモリの確保
225
DSA とデュアル プロセス アーキテクチャの相違点
169
プロセス間通信
236
フラッシュを要求するイベント 236
DB 領域のロギング 438
PHYSBUFF 構成パラメータ 218
太文字
441
プログラム カウンタとスレッド データ
456
物理ログ バッファ
数 217
監視
440, 443
入出力要求 356
スキップ
アクセス不能フラグメント
使用不能フラグメント
選択したフラグメント
DATASKIP の使用方法
表とインデックス 290
178
定義 178
ブロック デバイス
プロトコルの
359
265
指定 187
分割読込み 466, 470
分散処理 559
349
分散データベース
分散問合せ
351
351
定義 29
2 相コミット
350
複数のディスク 306
フラグメント化
参照: フラグメント
フラグメントのスキップ
機能の使用 349
すべて使用不能 350, 351
すべてのフラグメント 349
選択したフラグメント 351
トランザクションへの影響 351
フラッシュ
更新前イメージ 235
データ レプリケーション バッファ、最大間隔
バッファ 234
フリー リスト
参照: チャンク、フリー リスト
不良セクタのマッピング、欠如 553
フル チェックポイント
開始イベント 441
強制実行 460, 461
最後の使用可能ログ 400
定義 439
73
48
29
29
sqlhosts 設定 15
分散統計情報 225
分散トランザクション 377
バッファなしログ機能 383
非一貫的に実行されたかどうかの判断 587
2 相コミット プロトコル 560
ページ
チャンクとの関係 267
データベース サーバのページ サイズの判定 338
定義 267
標準または一時 DB領域のサイズの指定 325
least-recently used 230
most-recently used 231
ページ クリーナ スレッド
監視 223
チャンク書込み時の役割 238
通常バッファのフラッシュ 235
定義 235
バッファ プールのフラッシュ 235
フォアグラウンド書込み時の警告 237
索引
625
ホスト名フィールド (続き)
ページ クリーナ表
エントリ数
定義 223
定義 75
複数のネットワーク インターフェイス カード
223
ページャ メール
ワイルドカード アドレッシング
イベント アラームの通知
IP アドレスの使用方法
48
ペーパー マニュアル xxxviii
平均サイズ、スマート ラージ オブジェクト
340
並列処理
仮想プロセッサ 168
並列データベース問合せ
意思決定支援問合せ
参照: DS_MAX_QUERIES 構成パラメータ
DS_MAX_QUERIES 構成パラメータ 46
DS_NONPDQ_QUERY_MEM 構成パラメータ
220
46,
DS_TOTAL_MEMORY 構成パラメータ 46, 220
MAX_PDQPRIORTY 構成パラメータ 46
ベクトル変更表 315
別名
参照: DBSERVERALIASES
ヘルプ xxxviii
変換、初期化時
変更
ボリューム目録 315
本書の規則 xxviii
[マ行]
マシン ノート xxxvi
マッピング、不良セクタ
553
マニュアル、タイプ xxxv
オンライン マニュアル
xxxviii
マルチスレッド プロセス
定義 163
OS リソース 167
530
ログ機能モード、ANSI データベース 388
編集
ONCONFIG、ファイル 18
sqlhosts 情報
UNIX 15
変数、構文ダイアグラム内 xxxiv
ポーリング スレッド
数 187, 188
接続 188
定義 188
プロトコルに複数を割当て 187
メッセージ キュー 190
CPU またはネットワーク仮想プロセッサ上での実行
187
DBSERVERNAME 構成パラメータ 188
nettype、エントリ 187
ホスト名
変更 35
ホスト名フィールド
共有メモリ 76, 78
構文規則 75
626
85
IPX/SPX 76
ホット サイト バックアップ
参照: データ レプリケーション
ホット スワップ 468
ペーパー マニュアル xxxviii
マシン ノート xxxvi
106
チャンク状態 525
データベース サーバ タイプ、HDR
86
IBM Informix Dynamic Server 管理者ガイド
マルチプロセッサ コンピュータ
プロセッサ親和性 169
MULTIPROCESSOR 構成パラメータ
密結合モード 561
ミューテックス
使用方法 228
定義 175, 228
同期性 176
ミラー チャンク
構造 472
作成 476
状態の変更 477
追加 479
ディスク書込み 470
ディスク読込み 470
復旧 470, 471, 477
ミラーリング
開始 474, 476, 478, 479
概要 26
コスト 466
システム初期化時 477
終了 481
状態フラグ 469
177
192
ミラーリング (続き)
メディア障害
処理中の 470
処理中の動作 470
検出
復旧
推奨ディスク レイアウト
チャンク状態の変更
メモリ
305
セグメントの追加
477
チャンクの復旧 477
チャンク表 222
モード
オフライン
466
110
移行
ホット スワップ 468
ミラー チャンクの作成 476
ミラーリングの開始時 469
525
一時 SB 領域 286
サイズ設定 282, 340
作成 282
妥当性検査 546
チャンク 341
定義 242, 278
予約領域からの領域の移動 369
領域の計算 285, 340
ロギング 434
割当て 340
DB 領域表 222
SB 領域チャンクの削除 345
SB 領域ログ機能 401
メッセージ ログ
初期化時 108
データの破損 548
定義 31
動的に追加されたログ 426
物理復旧 434
メタデータの使用状況 369
メッセージの表示 31
114
オンライン モードからシングルユーザ モードへの
移行 116
オンライン モードから静止モードへの移行
ミラーリングの終了時 471
メディア障害の検出 471
有効化 474
利点 466
論理ログ ファイルの DB 領域への格納
114
オフライン モードから静止モードへの移行
オフライン モードへの移行 117
オンライン 110
467
HDR におけるチャンク
メタデータ
242
オフライン モードからオンライン モードへの移行
114
オフライン モードからシングルユーザ モードへの
必要な手順 474
復旧動作 470
分割読込み 470
別の方法
253
64 ビット プラットフォーム
参照: 共有メモリ
メモリのスワップ 213
定義 465
停止 481
ネットワークの制限
ハードウェア 468
471
466
即時
469
115
通常 115
共有メモリの再初期化 114
シングルユーザ 110, 116
静止 110
静止モードからシングルユーザ モードへの移行
116
即時停止 115
通常終了 115
定義 109
停止 111
任意のモードからオフライン モードへの移行 117
復旧 110
変更 111
ログ ファイルの移動 422
ログ ファイルの削除 421
ログ ファイルの追加 419
HDR サーバ 485
文字の表記規則 xxix
文字ラージ オブジェクト
参照: スマート ラージ オブジェクト
最も古い更新、論理ログ ファイルの解放 396
[ヤ行]
ユーザ アカウントおよび Windows ドメイン
56
索引
627
優先度
エージングの防止
ユーザ スレッド
監視 224
クリティカル セクション
追跡
224
定義
164
要件
構成
定義 278
ユーザ データ領域、SB 領域 242
ユーザ接続
監視 109
ユーザ定義仮想プロセッサ
数 180
定義 110
予約ページ
妥当性検査
xxiii
546
365, 370
メタデータ領域への領域の移動
外部 157
仮想プロセッサ 177
キャッシュの構成 227
369
[ラ行]
168
181
並列処理 168
メモリ キャッシュ 227
Java 20
ユーザの偽装 68
ユーザ表
エントリの最大数 224
定義 224
ユーティリティ
共有メモリの確保 209
chkenv 13
cron 33
iostat 33
ISA 352
onstat
-d オプション 366
ps 33
sar 33
UNIX 33
vmstat 33
参照: oncheck; ondblog; oninit; onlog; onmode;
onparams; onspaces; onstat; ontape; ON-Monitor
628
16
要件、ソフトウェア
読取り専用モード
サイズの監視
定義 278
目的 180
UDR の実行 227
ユーザ定義ルーチン
動作の不正
登録 157
xxiv
xxvi
副データベース サーバのチャンク状態
予約領域
180
共有メモリの位置 180
制御独占型仮想プロセッサ
178
183
バージョン 9.4
230
68
使用方法
ディスク入出力
有用性の強化
バージョン 10.0
バッファの獲得
ユーザ データ
作成
432
IBM Informix Dynamic Server 管理者ガイド
ラージ チャンク モード
ライト アペンド
標準表 292
物理ロギング
8
346
ロウ表 292
ラッチ
待機状態のキュー 175
統計情報の監視 254
参照: ミューテックス
リスナ ポート 126
リスン スレッド
追加 191
定義 188
複数のインターフェイス カード
リソース マネージャ 558
リソースの計画 6
リモート
クライアント 66
ホストおよびクライアント 66
リリース ノート xxxvi
リンク
作成 317
ルート DB 領域
一時表 293, 297
サイズの計算 302
192
525
ルート DB 領域 (続き)
ミラーリング
ロールバック
高速復旧
定義 275
デフォルト位置
発見的、監視
477
論理ログ ファイルの格納場所
標準表
ロウ表
394
例
共有メモリ接続
93
複数の接続タイプ
447, 451
スマート ラージ オブジェクト
275, 295
96
ページ クリーニングの開始方法 232
ローカル ループバック接続 93
DBSERVERALIASES 構成パラメータ 91
IPX/SPX 接続 95
TCP/IP 接続 95
/etc/services、ファイル、エントリ
64
レジストリ
複数のネットワーク アドレスの定義
ホスト名の変更 35
レディー状態のキュー
スレッドの移動 174, 490
定義 173
レプリケーション サーバ
参照: データ レプリケーション
レベル 0 バックアップ
192
288
571
288
292
ログ記録された SQL 文 379
ロールフォワード、高速復旧 447, 451
ロウ ディスク デバイス 8
ロウ ディスク領域
キャラクタ スペシャル インターフェイス
定義 265
UNIX での割当て 265, 316
Windows での割当て
ロウ表 26
概要 292
265
265
高速復旧 294
バックアップ 294
バックアップと復元
復元 294
プロパティ
変更 390
ロギング
294
234
一貫性検査 548
レベル、バックアップ
暗黙的な表の抑制 276
エンタープライズ レプリケーション
定義 25
SB 領域 410
連続的な
物理ログの領域 456
ローカル ループバック
制限 62
接続 62, 187
例 93
ロード バランシング
仮想プロセッサ 167
パフォーマンスの目標 304
DBSPACETEMP の使用方法
ロード、データ
高速モード 293
方法 371
ユーティリティ 371
ロール
作成 126
定義 126
デフォルト 125
オフにする表の変更 390
オンにする表の変更 390
時間指定復元 292
スマート ラージ オブジェクト 241, 288, 403
常にログ記録される動作 378
データ レプリケーションでの役割 490
データベース サーバ プロセスでの使用 376
テキスト (TEXT) 型およびバイト (BYTE) 型データ
400
トランザクション ログ機能、定義 377
トランザクション ログ機能の使用方法 381
トランザクション ログ機能のバッファ 382
表
概要 291
標準表 292
表タイプ 390
物理ロギング
一時 DB 領域での抑制 276
サイズ設定のガイドライン 434
定義 433
プロセス 437
305
278, 377
索引
629
ロギング (続き)
ロック表 (続き)
プロセス
BLOB 領域データ
DB 領域データ
定義
内容
400, 401
ロング トランザクション
405
メタデータとユーザ データ
定義
287
ロウ表 292
ログ付き表を使用するタイミング
402
論理ログ作成限界率に対するバッファリングの影響
398
ANSI 標準準拠データベース
DTP 環境 383
388
ISA での状態の表示 392
R ツリー インデックス 435
SB 領域 282, 401, 402
参照: データベース ロギング状態
ログ ファイルの解放 412, 413
ログ ID 395
ログ機能付きデータベース
サポートされている表タイプ
標準表 292
ロウ表 292
SQL 文
常にログ記録なし
291
380
ロウ表 292
SQL 文
常にログ記録なし 380
常にログに記録 378
ログなし表 291
ログの位置 572
ロケール xxiii
デフォルト xxiii
ロック
初期数 218, 219
スマート ラージ オブジェクト
待機状態のキュー 175
タイプ 228
単純読込み排他レベル 509
定義 228
動的割当て 219
onstat -k 572
SB 領域 282
ロック表
構成 218
398
動作 400
発見的ロールバック
防止
571
27
2 相コミット 564, 568, 570
論理的一貫性、定義 446, 448
論理復旧、受取りバッファ 490
論理ボリューム マネージャ
定義 310, 468
論理ボリュームまたは単位格納領域
定義
23
論理ログ
管理タスク 27, 401
広域トランザクション
559, 572
構成パラメータ 423
サイズのガイドライン 396, 409
スマート ラージ オブジェクトのログ記録
409
妥当性検査 546
定義 216, 376, 394
常にログに記録 378, 379
ログ機能なしデータベース
サポートされている表タイプ 291
630
218
218
277
IBM Informix Dynamic Server 管理者ガイド
動的割当て 27
バックアップ
スケジュール 25
チェックポイント 444
定義 25
パフォーマンスに関する注意事項 397
レコード
データベース サーバ プロセスでの使用 376
2 相コミット プロトコル 562, 573, 574
SQL 文による生成 379
レコードのタイプ 216
ログの位置 572
onlog、ユーティリティ 425
onstat による使用率の監視 414
参照: 論理ログ バッファ; 論理ログ ファイル
論理ログ バッファ
監視 458
チェックポイント 216
定義 216
フラッシュ
更新前イメージがない場合 239
チェックポイントが発生した場合 239
定義 238
論理ログ バッファ (続き)
論理ログ ファイル (続き)
同期化 235
バッファなしログ機能
ログ機能なしデータベース
論理ログ バッファ
論理ログ レコード
論理ログ ファイル
一意の ID 番号
フル チェックポイント、解放
別の DB 領域への移動 422
238
239
238
461
ログ ファイルの削除
onparams の使用方法
421
ON-Monitor の使用方法 421
ログ ファイルの手動追加 419
238
ログ ファイルの追加
395
一時 416
イベント アラーム 425, 427
解放しない場合の動作 399
onparams の使用方法 419
ON-Monitor の使用方法 420
ログ ファイル番号 395
格納場所 394, 418
切替え 401, 411
高速復旧での役割 446, 447, 448, 451
ログの位置 572
論理ログ ファイル
高速復旧での役割
最小および最大サイズ
サイズの変更
削除 420
状態
396
422
定義 396
A 411, 420, 421
B 412, 413
サイズ変更
452
420
BLOB 領域または SB 領域への追加不可 419
BLOB 領域を起動するための切替え 401
LIO 仮想プロセッサ 182, 184
SMI 表の使用方法 416
参照: 論理ログ ファイル
C 413
D 412, 421, 422
[ワ行]
F 421
L 413
ワイルドカード アドレッシング
クライアント アプリケーション
U 412, 413, 421, 422
定義 376, 394
ディスク領域の割当て 396
デフォルトでないページ サイズの DB 領域への追
加不可 419, 422
動的割当て
監視 425, 427
サイズ 417
定義 417
ファイル サイズ 417
ファイルの格納場所 418
入出力 182, 184
バックアップ
削除された BLOB ページの解放 401
パフォーマンスに与える影響 397
物理スキーマの変更 320
目標 410
ログ ファイルの追加 420
必要数の見積り 397, 409
ファイルの解放 399, 412, 413
ファイルを含む DB 領域のミラーリング 469
ホスト名フィールド
例 88
87
88
[数字]
2 相コミット プロトコル
アボート前提最適化 563, 564
異機種間コミットとの対比 578
エラー メッセージ 572
概要 29
関係先の動作 562
関係先復旧 564
決定後フェーズ 563
現在のサーバの役割 561
広域トランザクション識別子 588, 589
構成パラメータ 577
コミット前フェーズ 563
実行途中で強制終了された広域トランザクション
586
自動復旧 563
関係先復旧 563
索引
631
2 相コミット プロトコル (続き)
自動復旧 (続き)
AES
参照: Advanced Encryption Standard
管理者の役割 564
調整元復旧 563
使用される状況
調整元復旧
AFF_NPROCS 構成パラメータ 197
AFF_SPROC 構成パラメータ 177, 197
560
AIO
仮想プロセッサ
560
定義 560
独立動作 564
エラー
開始
結果
定義
565
DATASKIP
発見的決定
タイプ 564
発見的トランザクション終了
発見的ロールバック
569
351
49
379
ALTER INDEX 文 379
ALTER OPAQUE 文 379
ALTER PROCEDURE 文 379
567
32 ビット システム サポート
32 ビット プラットフォーム
ALRM_ALL_EVENTS 構成パラメータ
ALTER ACCESS METHOD 文 379
ALTER FRAGMENT 文 379
ALTER FUNCTION 文
566
論理ログ レコードのフラッシュ 574
DEADLOCK_TIMEOUT 578
TXTIMEOUT 構成パラメータ 578
ALTER ROUTINE 文 379
ALTER TABLE 文 379
クライアントへの接続 90
表タイプの変更
ロギング 379
7
バッファ プール 328
64 ビット アドレッシング
データベース サーバ サポート
定義 242
バッファ プール 216
バッファの最大数 216
メモリ使用 242
64 ビット プラットフォーム
バッファ プール 328
293
ANSI 標準準拠データベース
ログ機能モードの変更 388
7
A
ADM
参照: 管理仮想プロセッサ クラス
ADT
参照: 監査仮想プロセッサ
ADTERR 構成パラメータ 51
ADTMODE 構成パラメータ 51, 193
ADTPATH 構成パラメータ 51
ADTSIZE 構成パラメータ 51
Advanced Encryption Standard 128
632
30, 49
ALLOCATE COLLECTION 文 380
ALLOCATE DESCRIPTOR 文 380
ALLOCATE ROW 文 380
564
565
564
分散問合せ 29
メッセージ 561
論理ログ レコード
186
ALARMPROGRAM 構成パラメータ
ALL キーワード
IBM Informix Dynamic Server 管理者ガイド
ondblog、ユーティリティ 388
ontape 390
ANSI 標準準拠のトランザクション ログ機能
参照: ロギング
Apache サーバ 112
archecker ユーティリティ
概要 25
AVG_LO_SIZE、タグ 281, 340
B
B ツリー インデックス
クリーナ スレッド 224
bargroup、グループ 10
BEGIN WORK 文 380
beginlg、フィールド 572
BLOB 型 277
参照: スマート ラージ オブジェクト
BLOB ページ
書込み、共有メモリのバイパス 240
BLOB ページ (続き)
格納統計 338
サイズの推奨設定
CHKADJUP、ログ レコード
chkenv、ユーティリティ
CHRESERV、ログ レコード
338
削除されたページの解放
Cipher タブ
401
定義 44
CLASSPATH 環境変数 11, 13
CLEANERS 構成パラメータ 45
268
定義 268
物理ロギング 434
oncheck -pB 表示 362
BLOB 領域
目的 223
CLIENT_LOCALE 環境変数
12
CLOB 型
格納統計 338
起動 401
削除方法
初期タスク
341
139
CKPTINTVL 構成パラメータ
チェックポイントの起動 441
使用率
決定 361
チャンクとの関係
341, 370
13
参照: スマート ラージ オブジェクト
CLOSE 文 380
COMMIT 文 380, 381
concsm.cfg、ファイル 129, 130
346
onspaces 347
ON-Monitor 347
作成方法
格納場所 130
ネットワーク データ暗号化のエントリ
onspaces 336
制限
ログの追加 419
パスワード暗号化のエントリ
SMI 表の作成 132
CONNECT 文 90, 380
追加方法
onspaces
例 91
CONSOLE 構成パラメータ
CPU 仮想プロセッサ
336
データの書込み先
定義 276
239
C
C8BITLEVEL 環境変数 12
CDR_QDATA_SBSPACE 構成パラメータ
32, 42
オンライン モードでの追加と削除
テキスト (TEXT) 型とバイト (BYTE) 型の書込み
277
名前 336
バックアップ 320, 337
バッファ 240
フリー マップ ページ
BLOB 領域の追跡 241
未使用の BLOB ページ数の取得 354
ログ タスク 277, 401
Blowfish 128
BUFFERING、タグ、onspaces -c -Df オプション 282
BUFFERPOOL 構成パラメータ 44, 215, 229, 326, 439,
441
スマート ラージ オブジェクト 242
BUFFSIZE
参照: ページ
278
141
132
178, 182
数 176
実行されるスレッドのタイプ 176
スレッド 163
制限 180
単一プロセッサ コンピュータ 177
定義 176
バインド 169
ポーリング スレッド 187, 188
マルチプロセッサ コンピュータ 177
ユーザ定義ルーチン 177
AFFNPROCS 構成パラメータ 177
AFF_SPROC 構成パラメータ 177
DataBlade モジュール 177
CPU 仮想プロセッサのバインド 169
CREATE ACCESS METHOD 文 379
CREATE AGGREGATE 文 379
CREATE CAST 文 379
CREATE DATABASE 文 272, 379
CREATE DISTINCT TYPE 文 379
CREATE EXTERNAL TABLE 文 379
CREATE FUNCTION 文 181, 379
索引
633
CREATE INDEX 文
379
CREATE OPAQUE TYPE 文 379
CREATE OPCLASS 文 379
CREATE PROCEDURE 文 379
CREATE ROLE 文
作成
321
作成時のページ サイズの指定 325
初期 DB 領域の作成 23
シンプル ラージ オブジェクトの監視
334
272
PUT 節での SB 領域の指定 279
CREATE TEMPORARY TABLE 文 379
CREATE TRIGGER 文 379
CREATE VIEW 文 379
cron
ユーティリティ 33
CSM
参照: 通信サポート モジュール
curlog、フィールド 572
スマート ラージ オブジェクト
制限、ログの移動 422
制限、ログの追加 419
Data Encryption Standard 128
参照: 暗号化
DATABASE 文 90, 380
DataBlade
UDR を登録するアクセス権の制約 157
DataBlade API
スマート ラージ オブジェクト、アクセス 278, 285
スマート ラージ オブジェクトのサイズ 281
DataBlade モジュール
仮想プロセッサ 177
DATASKIP 構成パラメータ 46
定義 349
ALL キーワード 351
DB 領域
一時 275
記憶域の論理単位と物理単位間のリンク 272
共有メモリの表 222
削除
概要 346
IBM Informix Dynamic Server 管理者ガイド
362
270
追加
チャンク 331
ミラー チャンク
ISA 321
479
定義 272
名前 319
名前変更 333
バックアップ
表
削除
定義
D
634
275
onspaces の使用方法
CREATE SYNONYM 文 379
CREATE TABLE 文 379
クライアントへの接続 90
フラグメント化
パーティション化された
ロギング 379
347
321, 325
一時 330
初期 DB 領域
379
IN dbspace、オプション
チャンク 343
onspaces 347
ON-Monitor
125, 379
CREATE ROUTINE 文 379
CREATE ROW TYPE 文 379
CREATE SCHEMA 文
DB 領域 (続き)
削除 (続き)
320, 322
346
222
メタデータ 222
ページ サイズ、指定 325
目的 272
ルート 275
ルート DB 領域の定義 275
論理ログ ファイルが含まれる場合のミラーリング
469
HDR 環境でのデフォルトでないページ サイズ 515
DB 領域のミラーリング
作成 318
ルート DB 領域 275
DBLANG 環境変数 12
dbload、ユーティリティ 371
DBPATH 環境変数
自動リダイレクトの使用 499
データベース サーバ グループ 83
DBSERVERALIASES 構成パラメータ 11, 38
定義 91
複数の接続タイプ 96
例 91
DBSERVERALIASES 構成パラメータ (続き)
DROP AGGREGATE 文
sqlhosts、ファイル 72
DBSERVERNAME 構成パラメータ
DROP CAST 文 379
DROP DATABASE 文
379
DROP FUNCTION 文
379
関連付けられたプロトコル
構文規則
11, 38
188
DROP INDEX 文
73
定義 90
ポーリング スレッド用の仮想プロセッサ
sqlhosts、ファイル
188
379
DROP OPCLASS 文 379
DROP PROCEDURE 文 379
DROP ROLE 文
72
379
379
DROP ROUTINE 文 379
DROP ROW TYPE 文 379
dbservername コマンドの開始 20
dbservername.cmd、ファイル 14, 18
DBSPACETEMP 環境変数 295, 330
DROP SYNONYM 文
DBSPACETEMP 構成パラメータ
一時表の定義 305
ロード バランシング 305
DROP TABLE 文 379
DROP TRIGGER 文 379
DROP TYPE 文 379
DB_LOCALE 環境変数
40, 295, 330
DROP VIEW 文
12
DDL
参照: データ定義言語
DD_HASHMAX 構成パラメータ
379
379
DRTIMEOUT 構成パラメータ 48, 527
データ レプリケーション障害の検出
DD_HASHSIZE 構成パラメータ 44
DEADLOCK_TIMEOUT 構成パラメータ
495
DSS アプリケーション
44
47, 578
参照: 意思決定支援問合せ
DS_HASHSIZE 構成パラメータ
226, 250
2 相コミット プロトコル 577
DEALLOCATE COLLECTION 文 380
DS_MAX_QUERIES 構成パラメータ 46
DS_MAX_SCANS 構成パラメータ 46
DEALLOCATE DESCRIPTOR 文 380
DEALLOCATE ROW 文 380
DECLARE 文 380
DS_NONPDQ_QUERY_MEM 構成パラメータ 46, 220
DS_POOLSIZE 構成パラメータ 226, 250
DS_TOTAL_MEMORY 構成パラメータ 46, 220
DEFAULT キーワード
SET DATASKIP を使用 350
DEF_TABLE_LOCKMODE 構成パラメータ 44, 219
DELETE 文 379
DES
参照: Data Encryption Standard
DES3
参照: Triple Data Encryption Standard
DESCRIBE 文 380
DIRECTIVES 構成パラメータ 50
DISCONNECT 文 380
DRAUTO 構成パラメータ 48
データ レプリケーション障害からの復旧での役割
495, 497, 536
DRIDXAUTO 構成パラメータ 48, 527
DRINTERVAL 構成パラメータ 48
設定
同期更新 491
非同期更新 491
DRLOSTFOUND 構成パラメータ 48, 492
DROP ACCESS METHOD 文 379
DTP
参照: 分散トランザクション
DUMPCNT 構成パラメータ 49, 550
DUMPCORE 構成パラメータ 49, 550
DUMPDIR 構成パラメータ 49, 547, 550
DUMPGCORE 構成パラメータ 49, 547, 550
DUMPSHMEM 構成パラメータ 49, 547, 550
Dynamic Server
サービス 21
DYNAMIC_LOGS 構成パラメータ 41
値の編集 423
有効化と無効化 417
ログ ファイルの追加 419, 426
E
ENCCSM
通信サポート モジュール、暗号化 129
ENCCSM_CIPHERS 暗号化パラメータ 137
ENCCSM_MAC 暗号化パラメータ 137
ENCCSM_MACFILES 暗号化パラメータ 137
索引
635
ENCCSM_SWITCH 暗号化パラメータ
ENCRYPT 関数 142
en_us.8859-1 ロケール
ESQLMF 環境変数
GLS
137
参照: 広域言語サポート
GLS8BITFSYS 環境変数 12
GL_DATE 環境変数 12
xxiii
12
GL_DATETIME 環境変数
ESQL/C
スマート ラージ オブジェクトへのアクセス
285
EXECUTE FUNCTION 文
278,
380
EXT 領域
作成 348
onspaces での削除
379
157
H
50
HDR
参照: 高可用性データ レプリケーション
hdrmkpri、スクリプト 530
F
FAST_RESTART_CKPT_FUZZYLOG 構成パラメータ
42, 452
FAST_RESTART_PHYSLOG 構成パラメータ
FAT
参照: File Allocation Table
FETCH 文 380
42, 452
定義 229
File Allocation Table
パーティション 9
FILLFACTOR 構成パラメータ 40
FLRU キュー
データベース サーバによる選択方法
定義 230
参照: LRU 管理列
FLUSH 文 379
FREE 文 380
FREE_RE、ログ レコード 370
hdrmksec、スクリプト 530
HETERO_COMMIT 構成パラメータ
47, 580
HKEY_LOCAL_MACHINE、レジストリ
hosts、ファイル 15, 63, 64
hosts.equiv、ファイル 66
16
HPL
参照: ハイ パフォーマンス ローダ
FIFO/LRU 管理列
情報の指定 229
I
230
G
Gateway、IBM Informix、異機種間コミット
gcore
ファイル 547
ユーティリティ 49
GET DESCRIPTOR 文 380
GET DIAGNOSTICS 文 380
636
126
379
DataBlade ユーザへのアクセス権の付与
GTRID 589
348
EXT_DIRECTIVES 構成パラメータ
GRANT FRAGMENT 文
GRANT ROLE 文 125
GRANT 文
EXECUTE IMMEDIATE 文 380
EXECUTE PROCEDURE 文 380
EXECUTE 文 380
12
GRANT DEFAULT ROLE 文
578
IBM Informix Dynamic Server 管理者ガイド
IBM Informix Client Software Developer’s Kit
IBM Informix ODBC ドライバ 559
IBM Informix Server Administrator
開始 18
概要 30
仮想プロセッサ 197
共有メモリ 251
構成の編集 52
サーバ セットアップ 18
作成
DB 領域 23, 321
SB 領域 340
チャンクの追加 331, 341
データベース サーバ モード 112
データベース サーバ モードの変更 112
データベース ログ機能状態 390
停止チャンクの復旧 480
ディスク記憶域の監視 358
動作モードの変更 112
559
IBM Informix Server Administrator (続き)
ミラー チャンクの追加 479
ミラーリングの開始 478, 479
ミラーリングの終了
メッセージの表示
クライアント アプリケーション
481
259
255
ログ機能状態の表示 392
DB 領域の作成 23
onmode の使用方法 528
IDS 9.21
機能 xxviii
IDS 9.21 の機能
IDS 9.3
機能
15
395
xxiv
xxviii
xxvii
IDS 9.3 の機能
IDS 9.4
定義 11
INFORMIXSHMBASE 環境変数
INFORMIXSQLHOSTS 環境変数
INFORMIXSTACKSIZE 環境変数
Informix-Admin グループ
動作モードの変更 112
ID
論理ログ内
83
クライアント リダイレクトの使用
ラッチまたはスピン ロックの監視
sqlhosts の構成 16
sqlhosts、ファイル、編集
xxiii
INFORMIXSERVER 11
INFORMIXSERVER 環境変数
31
ユーザ権限 112
ユーティリティ コマンドの実行
IDS 10.0
機能 xxiv
IDS 10.0 の機能
INFORMIXDIR/bin ディレクトリ
xxvii
機能 xxvi
IDS 9.4 の機能 xxvi
ids-example.rc、スクリプト 21
IFX_EXTEND_ROLE 構成パラメータ 50, 157
ifx_lo_copy、関数 287
ifx_lo_specset_flags 関数 287, 343
imcadmin、コマンド 99
imc、プロトコル サブフィールド 74
INFO 文 380
Informix Dynamic Server マニュアル セット xxxix
Informix 格納域マネージャ (ISM) 24
informix ユーザ
パスワードの変更 34
ログ ファイルの管理 408
INFORMIXCONCSMCFG 環境変数 130
INFORMIXDIR
ディレクトリと それぞれの権限 123
INFORMIXDIR 環境変数
起動スクリプト 21
定義 11
停止スクリプト 22
504
210
15, 68, 70
225
ファイル所有権 10
ログ ファイルの管理 408
informix.rc、ファイル 13
INSERT 文
379
instmgr.exe 17
IP アドレス
検索方法 86
ホスト名フィールドでの使用 85
IPC
参照: プロセス間通信
ipcshm プロトコルと通信部、共有メモリ
IPv4 アドレス
IPv6 アドレス
227
89
89
IPX/SPX
サービス、定義 77
サービス名フィールド内 77
ホスト名フィールド内 95
sqlhosts エントリ 95
ISA
参照: IBM Informix Server Administrator
ISM
参照: IBM Informix 格納域マネージャ (ISM)
ISO 8859-1 コード セット xxiii
ixpasswd.exe 34
ixsu.exe ユーティリティ 35
J
JAR ファイル 20
JAVA 開発キット
krakatoa.jar、ファイル 11
Java 仮想プロセッサ 182
Java 構成パラメータ 20
JDBC ドライバ 11
索引
637
LO_CREATE_LOG、フラグ
JDK
参照: JAVA 開発キット
JVP プロパティ ファイル 20
JVPHOME 環境変数 11, 13
LO_LOG、フラグ
J/Foundation
LO_NOLOG、フラグ
環境変数
実行
11
JDBC インストール ディレクトリ
403
237
定義 237
トリガ 237
LRU 管理列
11
K
KAIO スレッド
403
LRU 書込み
監視 259
13
構成 19
CLASSPATH の設定
情報の指定
定義 229
183, 185
229
バッファ プールの管理
複数の構成 231
FLRU キュー 230
L
lchwaits、フィールド
LDAP サーバ 149
クライアント API
構成 150
互換性問題 155
151, 152
152, 155
データ レプリケーションを保有する
151
認証 151
分散トランザクション 152, 154
Dynamic Server の構成 150
LD_LIBRARY_PATH 環境変数 13
LIO 仮想プロセッサ 184
LISTEN_TIMEOUT 構成パラメータ 15, 50, 126
LOAD 文 371, 379
LOCK TABLE 文 380
LOCKS 構成パラメータ 44
LOGBUFF 構成パラメータ 41, 423
スマート ラージ オブジェクト 242
論理ログ バッファ 217
LOGFILES 構成パラメータ 41, 423
論理ログ サイズの設定 409
ONCONFIG、値の編集 423
LOGGING、タグ、onspaces 283
logposit、フィールド 572
LOGSIZE 構成パラメータ 41, 423
変更 423
ログ サイズを増やす 422
ログ ファイルの追加 419
論理ログ サイズ 409
638
230
LRU 順のページ 230
MLRU 管理列 230
255
LDAP モジュール
アプリケーション開発
288
LO_CREATE_NOLOG、フラグ 288
LO_CREATE_TEMP フラグ 288, 343
IBM Informix Dynamic Server 管理者ガイド
lrus 値 328
lru_max_dirty 値
使用例 232
229, 232, 233, 329
lru_min_dirty 値
229, 233, 328
ページ クリーニングの 234
LTAPEBLK 構成パラメータ 42, 516
LTAPEDEV 構成パラメータ
構成パラメータ
LTAPEDEV 42
LTAPESIZE 構成パラメータ 42, 516
LTXEHWM 構成パラメータ 41, 567
定義 423
発見的ロールバックでの役割 567
ロング トランザクションの防止 428
LTXHWM 構成パラメータ 41
定義 423
発見的ロールバックでの役割 567
ロング トランザクションの防止 428
LVM.
参照: 論理ボリューム マネージャ
M
MAC キー ファイル 135
Mac タブ 140
MaxConnect
インストール 99
監視 99
MaxConnect (続き)
定義 98
パケット集計
nettype、フィールド
値の概要 75
インターフェイス タイプの使用
99
imcadmin、コマンド
imc、プロトコル サブフィールド
74
15, 50, 126
MAX_PDQPRIORTY 構成パラメータ
Microsoft Transaction Server 559
46
39
MIRROROFFSET 構成パラメータ
39, 275
64
ntchname.exe 35
NTFS ファイル 265
9
Null ファイル
作成 318
NUMCPUVPS 構成パラメータ
177
39, 275
mi_lo_specset_flags() 関数 287, 343
MLRU (Modified Least-Recentry Used) 管理列
参照: LRU 管理列
MLRU 管理列
クリーニングの終了
定義 230
9
NFS マウントされたディレクトリ 264
NIS サーバ、/etc/hosts および /etc/services への影響
変換
必要な場合 315
MIRRORPATH 構成パラメータ
mi_lo_copy() 関数 287
76
New Technology File System
MAX_INCOMPLETE_CONNECTIONS 構成パラメータ
95
73
NetWare ファイル サーバ
onsocimc、プロトコル 75
ontliimc、プロトコル 75
MIRROR 構成パラメータ
初期構成値 474
変更 475
構文 73
フォーマット
99
233
バッファの配置 231
ページ クリーニングの終了 233
ページ数の制限 232
MODE ANSI キーワード
データベース ログ機能状態 382
MSGPATH 構成パラメータ 31, 42
MTS/XA 559
MULTIPROCESSOR 構成パラメータ 47, 177, 196
N
netrc ファイル
定義 67
sqlhosts、セキュリティ オプション 84
NETTYPE 構成パラメータ 47, 92, 196
多重接続 58
複数のネットワーク アドレス 192
プロトコルを指定する役割 187
ポーリング スレッド 187
目的 91
VP クラス エントリ 187
NETTYPE、構成パラメータ、VP クラス 187
O
ODBC ドライバ 559
OFF_RECVRY_THREADS 構成パラメータ
OLTP アプリケーション
参照: 並列データベース問合せ
oncfg_servername.servernum、ファイル
47, 493
107
oncheck ユーティリティ
一貫性検査 546
情報の取得
エクステントおよびフラグメント化 359
構成 361
チャンク 357
表領域 359
論理ログ 415
BLOB 領域 356, 366
妥当性検査
インデックス 545, 546
エクステント 544, 545
システム カタログ表 545
データ ページ 544
メタデータ 544, 546
予約ページ 544
ログと予約ページ 544
メタデータおよびユーザ データ領域の監視 367
BLOB ページ情報 361
SB 領域の監視 340, 365, 366
-cc オプション 544
-cD オプション 545
索引
639
oncheck ユーティリティ (続き)
onmode、ユーティリティ
-ce オプション 544
-cI オプション 544, 545
強制終了
関係先スレッド
-cR オプション
-cr オプション
セッション
544
567
586
トランザクション
544
564, 571
-cs オプション 365, 367, 546
-pB オプション 361
共有メモリの常駐の変更
セグメントの追加 253
-pe オプション
設定
357, 365, 366
データベース サーバ タイプ 528
フル チェックポイント処理の強制実行
525
-pr オプション 52, 415, 435
-pS オプション 368
-ps オプション 368, 544
要求を処理するユーザ スレッド
論理ログ ファイルの解放 414
ONCONFIG 環境変数
設定 16
定義 12
複数のデータベース サーバ
22
ONCONFIG ファイル パラメータ
参照: 構成パラメータ
ONCONFIG、構成ファイル
共有メモリ接続
準備 16
初期化時
接続 16
93
17, 18, 104, 105
定義 52
パラメータ 16, 52
複数常駐 98
編集 20
Java パラメータ 19
onstat -c の表示 52
onconfig.demo、ファイル 16
onconfig.std テンプレート ファイル 12, 16
onconfig.std ファイル
バッファ プール情報 326
ondblog、ユーティリティ
ログ機能モードの変更
ISA 387
ondblog、ユーティリティ 386
ANSI 標準準拠データベース 390
ONDBSPACEDOWN 構成パラメータ 40
oninit、ユーティリティ
一時表 297
データベース サーバの起動 102
-p オプション 108, 287
onlog、ユーティリティ
広域トランザクションの再構築 588
ログ レコードの表示 425
onmode -d index コマンド 528
640
253
IBM Informix Dynamic Server 管理者ガイド
論理ログ ファイルの切替え 411
CPU 仮想プロセッサの削除 199
ISA での使用方法 528
SQL 文キャッシュの構成
-a オプション 253
-c オプション 253
-d idxauto オプション
252
527
-e オプション 252
-O オプション 552
-W オプション 252
-W パラメータ 252
onparams、ユーティリティ
物理ログの変更
格納場所 457
サイズ 457
論理ログ ファイルの削除 421
論理ログ ファイルの追加 419
onperf の使用方法 32
onperf、ユーティリティ 32
onpladm、ユーティリティ 371
onsocimc ユーティリティ 75
onspaces ユーティリティ
一時 SB 領域の作成 286
チャンク状態の変更 525
チャンクの停止 480
定義 23
停止チャンクの復旧 480
ミラー チャンクの追加 341
ミラーリングの終了 481
DATASKIP の変更 349
SB 領域チャンクの削除 345
SB 領域チャンクの追加 341
SB 領域の作成 339
164
346, 460,
onspaces ユーティリティ (続き)
onstat ユーティリティ (続き)
-a オプション 341, 479
-c -b オプション 336
-c オプション 52
-d オプション 354, 365
-c -d オプション
321
-d 更新オプション
31, 354
-c -S オプション
339
-g ath オプション
200
-c -t オプション 331
-c -x オプション 348
-g cac オプション 252
-g glo オプション 200
-ch オプション
-g imc
281, 284, 342, 525
99
-cl オプション 345
-d オプション 339, 347
-Df、タグ 281, 345
-g ioq オプション 201
-g rea オプション 202
-g seg オプション 248
-f オプション 349
-g オプション 337
-k オプション 330
-g smb c オプション 364, 370
-g sql オプション 391
-g ssc オプション 252
-s オプション
-g stm オプション
279
-t オプション 305
-U オプション 341
onstat ユーティリティ
一時 SB 領域フラグ
概要 32
監視
343
仮想プロセッサ 200
共有メモリ 254
構成 52
チャンク状態
391
-k オプション 572
-l オプション 420
-m オプション 31
353
データ レプリケーション 531
データベース サーバ プロファイル 254
トランザクション 200
バッファ プール 259, 260
バッファの使用 256, 257, 259
物理ログ 458
フラグメントのロード 356
ラッチ 254
論理ログ バッファ 414, 458
論理ログ ファイル 420, 458
BLOB 領域 353
SQL 文 391
SQL 文キャッシュ 252
追跡
広域トランザクション 572
ロック 572
表示
メッセージ 31
ユーザ稼働状態のプロファイル作成 571
BLOB ページ統計の更新 354
CPU 仮想プロセッサ 164
-p オプション 255
-s オプション 255
-u オプション 164, 435, 572
-x オプション 391, 571
ontape、ユーティリティ
セットアップ 24
代替バックアップ方式
522
データベース ログ機能状態の変更 388
論理ログ ファイルのバックアップ 400
ontliimc、プロトコル 75
ON-Bar
セットアップ 24
ON-Monitor
格納領域の削除 346, 347
構成のコピー 52
チャンクの停止 480
チャンクの復旧 481
追加
チャンク 332
ミラー チャンク 480
論理ログ ファイル 420
データベース サーバ モードの変更 113
データベース サーバの監視 31
パラメータの設定
仮想プロセッサ 197
共有メモリ 251
ミラーリングの開始 479
論理ログ ファイルの削除 421
索引
641
ON-Monitor (続き)
PSWDCSM
参照: パスワードの暗号化
379
BLOB 領域の作成 337
DB 領域の作成 322
PUT 文
ON_RECVRY_THREADS 構成パラメータ
OPCACHEMAX 構成パラメータ
メモリの構成
OPEN 文 380
R
361
OPTCOMPIND 構成パラメータ
OUTPUT 文
ロギング
47
51, 360
R ツリー インデックス
ロギング 435
46
RAID
参照: 新磁気ディスク制御機構
RA_PAGES 構成パラメータ 45, 234
380
RA_THRESHOLD 構成パラメータ
RENAME COLUMN 文 379
P
RENAME DATABASE 文 379
RENAME INDEX 文 379
RENAME TABLE 文 379
PAGE_CONFIG、予約ページ 52, 106, 107
PAGE_PZERO、予約ページ 106
PAM
参照: プラグ可能認証モジュール
PATH 環境変数 12, 22
起動スクリプト
停止スクリプト
RESIDENT 構成パラメータ
PC_HASHSIZE 構成パラメータ 44, 227, 250
PC_POOLSIZE 構成パラメータ 44, 227, 250
PDQ
参照: 並列データベース問合せ
PHYSBUFF 構成パラメータ 41, 218
642
44
初期化時 108
onmode を使用する設定 253
REVOKE DEFAULT ROLE 文 126
11, 21
22
PHYSDBS 構成パラメータ 41, 457
サイズと格納場所の変更 435
PHYSFILE 構成パラメータ 41, 435, 457
PIO 仮想プロセッサ
数 186
定義 184
PLOG_OVERFLOW_PATH 構成パラメータ
Pluggable Authentication Module 146
アプリケーション開発 152
暗黙的な接続 148
クライアント API 155
互換性問題 155
サーバの構成 148
サポートされるプラットフォーム 147
定義 146
必要なスタック サイズ 148
分散トランザクション 154
PREPARE 文 380
Profile
統計情報 254
45, 234
REVOKE FRAGMENT 文 379
REVOKE 文 379
DataBlade ユーザへのアクセス権の付与
ROLLBACK WORK 文
157
379
ROOTNAME 構成パラメータ 39, 275
ROOTOFFSET 構成パラメータ 39, 275, 315
ROOTPATH 構成パラメータ 39, 275
ROOTSIZE 構成パラメータ 39
S
445
IBM Informix Dynamic Server 管理者ガイド
SB ページ
サイズの推奨設定 269
定義 269
SB 領域
一時
作成 342
チャンクの削除 287, 345
チャンクの追加 287, 341
定義 286
バックアップと復元 287
例 342
LO_CREATE_TEMP フラグ 343
SB 領域の削除 346
一貫性検査 286
エンタープライズ レプリケーション
278
SB 領域 (続き)
SERVER_LOCALE 環境変数
格納特性の指定
格納特性の変更
軽量入出力
高速復旧
281, 339
342
SET ENCRYPTION PASSWORD 文
216, 282
SET ROLE DEFAULT 文
278
最終アクセス時間
削除
142
125, 126
SET 文 125
SET ... 文 380
282
CLOB および BLOB 型の列 346
setenv.cmd、ファイル
onspaces の使用方法 346
作成
ISA の使用方法 340
onspaces の使用方法 339
差分バックアップ 410
スマート ラージ オブジェクトの格納
12
services、ファイル 15, 64
SET DATASKIP 文 349, 350
14
setnet32、ツール 16
SHMADD 構成パラメータ 43, 220
SHMBASE 構成パラメータ
242, 277
最初の共有メモリ セグメントの確保
高い値に設定 248
定義 43, 211
210, 211
制限
shmem ファイル
ログの追加 419
チャンクの追加 285, 341
定義 277, 278
アサーション障害 546
SHMTOTAL 構成パラメータ 43, 208, 209
SHMVIRTSIZE 構成パラメータ 43, 220
ディスク構造
特性 286
名前 319
SINGLE_CPU_VP 構成パラメータ 47, 177, 196
単一プロセッサ コンピュータ 178
SMI 表
285
バックアップ 285, 340, 342
バッファリング モード 282
復旧性 277
ミラーリング
339
メタデータ 242, 278, 282
メタデータの計算 285
メタデータのサイズ設定 340
ユーザ データ領域 242, 278, 364
ユーザ定義データの統計 40
予約領域 278
予約領域からの領域の移動 369
領域の割当て 285
レプリケーション サーバの定義 278
ロギング 282, 401
ロック 282
JAR ファイル 20
onstat -g smb c の使用方法 364, 370
SB ページ 269
SBSPACENAME 構成パラメータ 40, 279, 286, 340
SBSPACETEMP 構成パラメータ 40, 286, 342
SELECT INTO TEMP 文 379
SELECT 文 380
SERVERNUM 構成パラメータ 38
使用方法 210
定義 210, 211
監視
エクステント
書込みのタイプ
仮想プロセッサ
360
260
202
共有メモリ 255
チェックポイント 462
チャンク 352
データ レプリケーション 532
データベース 255, 352, 391
バッファ プール 255, 462
バッファ情報 258
バッファの使用 359
表領域 360
ミューテックス 255
ラッチ 255
ログ バッファの使用 462
論理ログ ファイル 416
初期化時 108
初期化時の準備 108
データベース サーバの監視への使用方法
表作成の打切り 108
concsm.cfg 132
sysextents 360
systabnames 360
32
索引
643
sqlhosts のサービス名フィールド (続き)
SPL ルーチン
キャッシュ
参照: UDR キャッシュ
構文規則 75
ストリーム パイプ
プール サイズの指定 227
PC_HASHSIZE 構成パラメータ
定義
44
PC_POOLSIZE 構成パラメータ
44
UDR キャッシュ ハッシュ サイズ
SPWDCSM 129
SQL エンハンスメント xxvii
SQL コード
IPX/SPX
44, 226, 250
接続タイプ フィールド
73
187
ネットワーク接続例 94
複数のインターフェイス カードへのエントリ
複数の接続タイプ例 94
23
複数のネットワーク アドレスの定義
ホスト名フィールド 75
ローカル ループバック例
CSM、オプション 78
272
CREATE TABLE、PUT 節 279
DB 領域の作成 279
DECLARE 379
GRANT DEFAULT ROLE 126
GRANT ROLE 125
REVOKE DEFAULT ROLE 126
SET ROLE 125
SET ROLE DEFAULT 125, 126
UPDATE STATISTICS 225
SQL 文キャッシュ
概要 45
監視 252
共有メモリの位置 219
構成 251, 252
サイズの指定 45
定義 226
sqlexec、スレッド
クライアント アプリケーション 189
クライアント/サーバ接続における役割
ユーザ スレッド 164
sqlhosts のサービス名フィールド
共有メモリ 77
644
81
多重接続 58
定義 81
ネットワーク ポーリング スレッドの指定
252
ログ記録なし 380
ALTER TABLE 271
CREATE ROLE 125
CREATE TABLE
83
サービス名フィールド 76, 188
識別子オプション 81
セキュリティ オプション 84
295
常にログに記録 378
データベース サーバへの初期接続
ログ機能付きデータベース 380
76
共有メモリ例 93
グループ オプション 83
グループの終わりオプション
xxxiv
構文解析と最適化
新機能 xxvii
77
sqlhosts、ファイル
オプション フィールド
キープアライブ オプション
SQL (構造化問合せ言語)
参照: SQL 文
SQL 文
一時ディスク領域の使用方法
監視 391
77
76
189
IBM Informix Dynamic Server 管理者ガイド
192
192
93
DB サーバ名フィールド 72, 82
ISA による編集 15
sqlhosts、レジストリ
格納場所 70
定義 70
INFORMIXSQLHOSTS 環境変数 70
Windows 16
STACKSIZE 構成パラメータ 44
スタック サイズの変更 225
定義 225
STAGEBLOB 構成パラメータ 51
START VIOLATIONS TABLE 文 379
STDIO 値 522
STMT_CACHE 構成パラメータ 45, 252
STMT_CACHE_HITS 構成パラメータ 45, 252
STMT_CACHE_NOLIMIT 構成パラメータ 45, 252
STMT_CACHE_NUMPOOL 構成パラメータ 45, 252
STMT_CACHE_SIZE 構成パラメータ 45, 252
STOP VIOLATIONS TABLE 文 379
stores_demo データベース xxiii
superstores_demo データベース xxiii
sysdistrib、表
U
32, 225
syslogs、表 416
sysprofile 表 255
sysroleauth 表
UDR キャッシュ
157
SYSSBSPACENAME 構成パラメータ
systables
フラグ値
40
291
環境変数の設定
13
起動スクリプト
21
停止スクリプト 21
リンク コマンド 10, 317
sysutils、データベース
作成 109
sysvpprof 表 202
UNIX デバイス
所有権、アクセス権
キャラクタ スペシャル 317
クックド ファイル 316
T
tail -f、コマンド 31
TAPEBLK 構成パラメータ
パス名へのリンクの表示
UNLOAD 文 379
UNLOCK TABLE 文 380
42, 516
TAPEDEV 構成パラメータ 42, 522
TAPESIZE 構成パラメータ 42, 516
UPDATE STATISTICS 文
TBLTBLFIRST 構成パラメータ 39, 275, 323
TBLTBLNEXT 構成パラメータ 39, 88, 275, 323
TCP 接続 188
TCP/IP 接続ファイル 63
TCP/IP 通信プロトコル
サービス名フィールド 76
使用方法
インターネット IP アドレス
複数ポート
226
UNIX オペレーティング システム
カーネルの変更 7
10, 316
40, 225, 226, 292, 379
UPDATE 文 379
USEOSTIME 構成パラメータ
47
V
VPCLASS 構成パラメータ
ユーザ定義 VP 181
88
65
ワイルドカード 86
hosts.equiv 65
IPX/SPX 95
TCP listen ポート番号 88
ホスト名フィールド 75
listen ポート番号 88
TERM 環境変数 12
TERMCAP 環境変数 12
TERMINFO 環境変数 12
TLI
参照: トランスポート層インターフェイス
TOC (目次) ノート xxxvi
TP/XA 29, 223, 559
Triple Data Encryption Standard 128
TRUNCATE TABLE 文 379
TXTIMEOUT 構成パラメータ 47, 571, 578
定義 578
2 相コミット プロトコル 577
onmode -Z 571
CPU VP の構成
JVP 182
47, 182, 196, 197
176
W
WHENEVER 文 380
Windows
イベント ビューア 33
環境変数制御アプリケーション 14
環境変数の設定 14
共有メモリの問題 248
自動起動 21
接続のセット アップ 16
メモリの構成 7
より大きい共有メモリ 7
ロウ ディスク領域の割当て 318
ixpasswd、ユーティリティ 34
ixsu、ユーティリティ 35
ntchname、ユーティリティ 35
NTFS への変換 9
Windows Internet Name Service 65, 86
Windows インスタンス マネージャ 19, 103
索引
645
Windows での LDAP 認証サポート
Windows パフォーマンス モニタ
Windows 変換ユーティリティ 9
149
34
X
X/Open
DTP 環境
223, 383
[特殊文字]
$INFORMIXDIR
アクセス権 121
(*)、アスタリスク
ホスト名フィールドでのワイルドカード
参照: ワイルドカード
.informix、ファイル 13
86
.rhosts、ファイル 67
/etc/hosts、ファイル 504
/etc/services、ファイル
646
504
IBM Informix Dynamic Server 管理者ガイド
򔻐򗗠򙳰
Printed in Japan
GB88-8663-00
Fly UP