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