Comments
Transcript
IBM Red Brick Warehouse バージョン 6.2 年 9 月 2002
IBM Red Brick Warehouse バージョン 6.2 2002 年 9 月 Part No. 000-9055-8 注意 : このマニュアルおよび製品を使用する前に、付録の「通知事項」をお読みください。 このマニュアルには IBM が所有権を持つ情報が記載されています。これらの情報はライセンス契約のもと で提供されるものであり、著作権法によって保護されています。このマニュアルに記載されている情報は製 品を保証するものではなく、また、そのように解釈されるべきではありません。 IBM は、ユーザから送付された情報を、そのユーザの許可を得ることなく、適切と考えられる方法で使用 または配布できます。 © Copyright International Business Machines Corporation 1996, 2002. All rights reserved. 米国の政府機関ユーザの権利の制限 - IBM Corporation との間の GSA ADP Schedule Contract により、使用、複 製、および開示が制限されます。 ii Table Management Utility Reference Guide 目次 目次 まえがき この章について . . . . . まえがき . . . . . . . 対象読者 . . . . . . ソフトウェア要件 . . 本書の表記法 . . . . . . 文字の表記規則 . . . 構文の規則 . . . . . 構文ダイアグラム . . キーワードと区切り文字 識別子と名前 . . . . 文中記号の表記規則 . . 関連文献 . . . . . . . その他のマニュアル . . . オンライン マニュアル . 印刷版マニュアル . . オンライン ヘルプ . . 第1章 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 3 4 4 5 5 6 7 9 9 10 11 13 13 13 13 この章について . . . . . . . . . . . . TMU の操作および機能 . . . . . . . . . TMU のコントロール ファイルとステートメント 終端記号 . . . . . . . . . . . . . コメント . . . . . . . . . . . . . ロケール文字およびマルチバイト文字 . . USER 文 . . . . . . . . . . . . . LOAD DATA 文と SYNCH 文 . . . . . . UNLOAD 文 . . . . . . . . . . . . GENERATE 文 . . . . . . . . . . . REORG 文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-3 1-4 1-7 1-7 1-8 1-8 1-8 1-9 1-9 1-10 1-10 Table Management Utility 概要 BACKUP 文 RESTORE 文 UPGRADE 文 SET 文 . . 第2章 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-10 1-11 1-11 1-12 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-3 2-4 2-4 2-5 2-5 2-5 2-7 2-8 2-12 2-12 2-13 2-14 2-14 2-18 2-19 2-21 2-23 2-25 2-27 2-28 2-32 2-33 2-34 2-35 2-35 2-36 2-38 2-39 2-40 2-44 2-44 2-45 2-46 2-47 TMU と PTMU の実行 この章について . . . . . . . . . . . . . . ユーザ アクセスと必要な権限 . . . . . . . . . オペレーティング システムのアクセス . . . . データベースのアクセス . . . . . . . . . TMU 出力ファイルの権限 . . . . . . . . rb_tmu と rb_ptmu の構文 . . . . . . . . . . 終了状態コード . . . . . . . . . . . . . . TMU の設定方法 . . . . . . . . . . . . . リモート TMU の設定と構文 . . . . . . . . . クライアントとサーバの互換性 . . . . . . クライアント構成 . . . . . . . . . . . サーバ構成 . . . . . . . . . . . . . . rb_ctmu の構文 . . . . . . . . . . . . リモート TMU 操作の概要 . . . . . . . . 例 :Windows と UNIX 間のリモート TMU 操作 . ユーザ名とパスワードを指定する USER 文 . . . . 動作を制御する SET 文とパラメータ . . . . . . ロック動作 . . . . . . . . . . . . . . バッファ キャッシュのサイズ . . . . . . . 一時領域の管理 . . . . . . . . . . . . 日時値のフォーマット . . . . . . . . . . ロード情報限界値 . . . . . . . . . . . メモリ マップ限界 . . . . . . . . . . . 事前計算ビューの保守の設定 . . . . . . . エラー発生時の事前計算ビュー管理 . . . . . 行メッセージの管理 . . . . . . . . . . バージョン管理の有効化 . . . . . . . . . レコード インターバルのコミット . . . . . コミット タイム インターバル . . . . . . . ロード統計情報の表示 . . . . . . . . . . バックアップおよび復元 (BAR) ユニット サイズ 外部バックアップおよび復元の動作 . . . . . REORG タスク . . . . . . . . . . . . PTMU だけを使用した並列ロード タスク . . . iv . . . . . . . . . . . . Table Management Utility Reference Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 逐次モード動作 (PTMU のみ ) . . . . . . PTMU の効果的利用のポイント . . . . . . . 並列処理を使用する動作 . . . . . . . . 並列ロード時の最大破棄レコード数 . . . . PTMU による自動的な行の生成 AUTOROWGEN PTMU と複数のテープ装置の併用 . . . . . PTMU と 3480/3490 複数テープ装置の併用 . . 第3章 . . . . . . . . . . . . . . . . . . 2-49 . . . . 2-51 . . . . 2-51 . . . . 2-52 . . . . 2-52 . . . . 2-53 . . . . 2-53 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ウェアハウス データベースへのデータのロード この章について . . . . . . . . . . . LOAD DATA の動作 . . . . . . . . . . 入力と出力 . . . . . . . . . . . データ ロードの処理ステージ . . . . データをロードする手順 . . . . . . . . 予備的な決定 . . . . . . . . . . . . テーブルのロード順の決定 . . . . . 入力データのソート . . . . . . . . 自動的な行の生成による参照整合性の維持 LOAD DATA 文の作成 . . . . . . . . . LOAD DATA の構文 . . . . . . . . . . Input 句 . . . . . . . . . . . . . . Format 句 . . . . . . . . . . . . . EBCDIC から ASCII への変換 . . . . . Locale 句 . . . . . . . . . . . . . XML 入力ファイルのロケール指定 . . . 使用上の注意 . . . . . . . . . . Discard 句 . . . . . . . . . . . . . 使用上の注意 . . . . . . . . . . Row Messages 句 . . . . . . . . . . . Optimize 句 . . . . . . . . . . . . . MMAP Index 句 . . . . . . . . . . . Table 句 . . . . . . . . . . . . . . シリアル (SERIAL) 型列のロード . . . RETAIN と DEFAULT による選択的列更新 simple フィールド . . . . . . . . . 連結フィールド . . . . . . . . . 定数フィールド . . . . . . . . . sequence フィールド . . . . . . . . increment フィールド . . . . . . . . Segment 句 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-5 3-6 3-6 3-8 3-12 3-14 3-14 3-15 3-16 3-23 3-24 3-24 3-29 3-35 3-38 3-41 3-42 3-43 3-54 3-57 3-59 3-63 3-65 3-68 3-69 3-70 3-81 3-84 3-85 3-86 3-87 目次 v Criteria 句 . . . . . . . . . . . . . . . . . . . . . Comment 句 . . . . . . . . . . . . . . . . . . . . フィールド型 . . . . . . . . . . . . . . . . . . . 文字型フィールド . . . . . . . . . . . . . . . . 外部数値型フィールド . . . . . . . . . . . . . . . 外部浮動小数点数値型フィールド . . . . . . . . . . パック 10 進数型フィールドおよびゾーン 10 進数型フィールド 整数バイナリ型フィールド . . . . . . . . . . . . . 浮動小数点バイナリ型フィールド . . . . . . . . . . . 日時型フィールド . . . . . . . . . . . . . . . . 日付時間フィールドのフォーマット マスク . . . . . . . . . サブフィールドの構成要素 . . . . . . . . . . . . . 数値フィールドの制限付き日付時間マスク . . . . . . . . . SYNCH 文の作成 . . . . . . . . . . . . . . . . . . 入力データのフォーマット . . . . . . . . . . . . . . . ディスク ファイル . . . . . . . . . . . . . . . . UNIX オペレーティング システムのテープ ファイル . . . . フィールド型の変換 . . . . . . . . . . . . . . . . . LOAD DATA 構文の要約 . . . . . . . . . . . . . . . . 第4章 テーブルからのデータのアンロード この章について . . . . . . . . . . . . . . UNLOAD の動作 . . . . . . . . . . . . . 内部フォーマット . . . . . . . . . . . 外部フォーマット . . . . . . . . . . . 外部フォーマットにデータを変換する . . . . UNLOAD 構文 . . . . . . . . . . . . . . 内部フォーマット データのアンロードとロード . . 外部フォーマット データのアンロードとロード . . テーブルの複数セグメントへの再構成 . . . . . . データベースの移動 . . . . . . . . . . . . 外部フォーマット データの他社製品ツールへのロード 選択した行のアンロード . . . . . . . . . . 例 : 外部固定長フォーマット データ . . . . . 例 : 外部可変長フォーマット データ . . . . . 第5章 3-90 3-95 3-97 3-99 3-101 3-103 3-104 3-105 3-106 3-107 3-109 3-110 3-116 3-119 3-122 3-123 3-131 3-133 3-137 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-3 4-4 4-5 4-5 4-6 4-8 4-14 4-16 4-17 4-18 4-18 4-19 4-19 4-21 . . . . . . 5-3 5-3 5-5 CREATE TABLE 文と LOAD DATA 文の生成 この章について . . . . . CREATE TABLE 文の生成 . LOAD DATA 文の生成 . . vi Table Management Utility Reference Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 例 :GENERATE 文と外部フォーマット データ 第6章 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3 . 6-3 . 6-4 . 6-6 . 6-8 . 6-9 . 6-9 . 6-9 . 6-9 . 6-11 . 6-16 . 6-18 この章について . . . . . . . . . . . . . . . . . rb_cm ユーティリティ . . . . . . . . . . . . . . . システム要件 . . . . . . . . . . . . . . . . データベースのセキュリティ要件 . . . . . . . . . rb_cm の構文 . . . . . . . . . . . . . . . . . . rb_cm に使用する TMU のコントロール ファイル . . . . . LOAD 文と UNLOAD 文 . . . . . . . . . . . . SYNCH 文 . . . . . . . . . . . . . . . . . SET 文 . . . . . . . . . . . . . . . . . . . rb_cm 操作の例 . . . . . . . . . . . . . . . . . 例 : 異種コンピュータ間でのデータのコピー . . . . . 例 : 同一コンピュータ上のテーブル間でのデータのコピー rb_cm 動作結果の検証 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-3 7-3 7-4 7-5 7-6 7-9 7-10 7-11 7-12 7-12 7-12 7-16 7-18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-3 8-4 8-4 8-5 8-5 8-6 8-8 8-8 8-9 目次 vii テーブルとインデックスの再編成 この章について . . . . . . REORG の動作 . . . . . . REORG 操作のオプション . REORG 操作中のデータ処理 . コーディネータ ステージ . 入力ステージ . . . . . 変換ステージ . . . . . インデックス作成ステージ クリーンアップ ステージ . REORG の構文 . . . . . . discardfile 句 . . . . . . 使用上の注意 . . . . . 第7章 第8章 5-7 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . コピー管理オプションによるデータのコピー データベースのバックアップ この章について . . . . . . . . . . . . . . . バックアップ レベルとモード . . . . . . . . . . 外部フル バックアップ . . . . . . . . . . . 復元規則 . . . . . . . . . . . . . . . . バックアップ データ . . . . . . . . . . . . バックアップ計画 . . . . . . . . . . . . . バックアップの手順 . . . . . . . . . . . . バックアップ用データベースの準備 . . . . . . . . ALTER DATABASE CREATE BACKUP DATA コマンド ALTER DATABASE DROP BACKUP DATA コマンド バックアップ セグメントの格納領域の要件 . . . バックアップ セグメントの変更 . . . . . . . TMU バックアップの実行方法 . . . . . . . . . バックアップ操作の範囲 . . . . . . . . . . バックアップ ファイルのサイズの設定 . . . . . テープへのバックアップ . . . . . . . . . . TMU バックアップ用格納域マネージャの使用 . . フル バックアップ用の外部ツールの使用 . . . . BACKUP 構文 . . . . . . . . . . . . . . バックアップ メタデータ . . . . . . . . . . . メディア履歴ファイル (rbw_media_history) . . . . バックアップ ログ ファイル (action_log) . . . . 第9章 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-10 8-10 8-11 8-13 8-14 8-15 8-17 8-18 8-20 8-22 8-26 8-27 8-29 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-3 9-4 9-4 9-5 9-10 9-11 9-11 9-12 9-12 9-13 9-19 データベースの復元 この章について . . . . . . . . . . . . . . . . TMU の完全復元と部分復元 . . . . . . . . . . . 復元パス . . . . . . . . . . . . . . . . 復元の例 . . . . . . . . . . . . . . . . TMU 復元の実行方法 . . . . . . . . . . . . . . 外部復元操作の推奨手順 . . . . . . . . . . . 特別なセグメントの復元 . . . . . . . . . . . コールド復元操作 . . . . . . . . . . . . . バックアップ復元後に作成されるオブジェクトの PSU RESTORE 構文 . . . . . . . . . . . . . . 部分復元の手順 . . . . . . . . . . . . . . 付録 A 例 :AGGREGATE モードでの TMU の使用 付録 B XBSA バックアップのための格納域マネージャ構成 特記事項 索引 viii Table Management Utility Reference Guide まえがき まえがき この章について . . . . . . . . . . . . . . . . . . . 3 まえがき . . . . . 対象読者 . . . . ソフトウェア要件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 4 4 本書の表記法 . . . . . . . 文字の表記規則 . . . . . 構文の規則 . . . . . . . 構文ダイアグラム . . . . . キーワードと区切り文字 . . 識別子と名前 . . . . . . 文中記号の表記規則 . . . . コメント 記号 . . . . . プラットフォーム アイコン . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 5 6 7 9 9 10 10 10 関連文献 . . . . . . . . . . . . . 11 . . . . . . . . 13 13 13 13 . . . . . . . その他のマニュアル . . オンライン マニュアル 印刷版マニュアル . . オンライン ヘルプ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 Table Management Utility Reference Guide この章について この章では、本書の概要と表記法について説明します。 まえがき 本書では、Table Management Utility (TMU) とその姉妹バージョンである PTMU を使 用して IBM Red Brick Warehouse データベース内のテーブルおよびインデックスを ロードおよび保守するために必要な情報を提供します。また、TMU を効果的に使 用するために必要な情報に加えて、構文の定義と手順の説明も示します。効率的な データ ウェアハウス操作を開発および保守するには、本書と『Administrator's Guide』を併せてご覧ください。 本書は、UNIX、Linux、および Windows プラットフォーム上で動作する IBM Red Brick Warehouse を対象にしています。すべてのプラットフォームに対して使用可能 または適用可能でない機能およびオプションについては、特に明記してあります。 オペレーティング システムまたはプラットフォームに固有の情報については、『リ リース ノート』、適切な『Installation and Configuration Guide』、またはハードウェア およびオペレーティング システムに付属するマニュアルを参照してください。 まえがき 3 対象読者 対象読者 本書では、以下のユーザを対象としています。 ■ ■ データベース管理者 IBM Red Brick Warehouse 内のテーブルおよびインデックスのロードと保守 を担当するデータベース ユーザ 本書では、読者が以下の知識や経験を持っていることを前提としています。 ■ ■ ■ 使用しているコンピュータ、オペレーティング システム、およびオペレー ティング システムが提供するユーティリティに対する実務知識 リレーショナル データベースの使用経験、またはデータベースの概念に関 する知識 データベース サーバ管理、オペレーティング システム管理、またはネッ トワーク管理の経験 ソフトウェア要件 本書では、データベース サーバとして IBM Red Brick Warehouse、バージョン 6.2 を 使用することを前提としています。 IBM Red Brick Warehouse には、コーヒーと紅茶を取り扱う架空の会社の販売データ をおさめた Aroma というデータベースが添付されています。このデータベースで は、Aroma Coffee and Tea Company という企業の毎日の販売業務を管理しています。 このデータベースのディメンジョン モデルは、1 つのファクト テーブルと、それに 付属する複数のディメンジョンテーブルから成っています。 サンプル データベースの作成とデータのロードの詳細は、 『Administrator's Guide』 を参照してください。データベースとそのデータ内容の詳細は、『SQL Self-Study Guide』を参照してください。 サンプル データベースのインストール スクリプトは、<redbrick_dir>/sample_input ディレクトリにあります。<redbrick_dir> は、使用しているシステムの IBM Red Brick Warehouse ディレクトリをさします。 4 Table Management Utility Reference Guide 本書の表記法 本書の表記法 ここでは、このマニュアルで使用する以下の表記規則について説明します。表記規 則を覚えておくと、このマニュアル、およびほかのマニュアルの内容を理解するの に役立ちます。 以下の表記規則について説明します。 ■ ■ ■ ■ ■ ■ 文字の表記規則 構文の規則 構文ダイアグラム キーワードと区切り文字 識別子と名前 文中記号の表記規則 文字の表記規則 このマニュアルは、新しい用語、画面表示、コマンド構文などを表記するのに以下 の規則を使用します。 表記規則 意味 KEYWORD プログラミング言語の文中では、主要な要素 ( キーワード ) は、すべて大文字のセリフ フォントで表記されます。 Computer 製品の表示情報やユーザの入力情報はモノスペース フォント で表記されます。 ♦ この記号は、製品やプラットフォームなどに特有の情報の終 わりを表します。 ➞ この記号は、メニュー項目を表します。たとえば、"[ ツール ] ➞[ オプション ] を選択します。" は、[ ツール ] メニューの [ オプション ] を選択することを意味します。 ヒント : コマンドの入力、または実行の指示がある場合、入力後に ENTER キーを 押してください。コマンド以外の文字の入力やほかのキーを押す指示がある場合、 ENTER キーを押す必要はありません。 はじめに 5 構文の規則 構文の規則 本書では、オペレーティング システム コマンドの構文に以下の規則を採用してい ます。 コマンドの構成要素 例 表記規則 値および パラメータ <table_name> 適切な名前、値、式に置き換える項目は、 山形かっこ < > で囲んで表記します。 オプション項目 [ ] オプション項目は、角かっこで囲みます。 角かっこは入力しません。 選択肢 ONE |TWO 選択肢は縦棒で区切ります。必要に応じ て、いずれか 1 つを選択できます。 必須選択肢 {ONE|TWO} 必須選択肢は、中かっこで囲みます。いず れか 1 つを選択してください。中かっこは 入力しません。 デフォルト値 ONE|TWO デフォルト値は、下線を付けて表記しま す。ただし、図の部分では太字で表記しま す。 繰り返し項目 name, ... 繰り返し可能な項目は、後にカンマと省略 記号を記述します。各項目は、カンマで区 切ります。 記述記号 () , ; . かっこ、カンマ、セミコロン、ピリオドは 記述記号です。記述されているとおりに使 用してください。 6 Table Management Utility Reference Guide 構文ダイアグラム 構文ダイアグラム このマニュアルでは、以下の要素で作成されたダイアグラムを使用して、ステート メントの構文と、システム レベルのコマンド以外のすべてのコマンドを記述しま す。 要素 意味 ステートメントの開始。 ステートメント構文は次の行に続きます。完全な ステートメント以外の構文要素はこの記号で終了 します。 ステートメントは前の行から続いています。完全 なステートメント以外の構文要素はこの記号で始 まります。 ステートメントの終了。 SELECT ステートメントの必須項目。 オプション項目。 DISTINCT DBA TO CONNECT TO 選択を含む必須項目。1 つの項目が存在する必要 があります。 SELECT ON ASC 選択を含むオプション項目。デフォルト値が存在 する場合、太字で印刷されます。 DESC , オプション項目。複数項目が可能です。繰り返す 項目の前にカンマが必要です。 ASC DESC はじめに 7 構文ダイアグラム 先行する構文要素は、以下のように組み合わされてダイアグラムを形成します。 REORG <table_name> , INDEX ( <index_name> ) ; ON OPTIMIZE RECALCULATE RANGES OFF 以下のように複雑な構文ダイアグラムは、要素の詳細なダイアグラムのポイント参 照用として繰り返されます。ポイント参照ダイアグラムは、影を付けて角を囲み、 グレーの線と小さい文字で表します。 LOAD LOAD <INPUT_CLAUSE> <FORMAT_CLAUSE> DATA <DISCARD_CLAUSE> <TABLE_CLAUSE> <optimize_clause> <segment_clause> ; <criteria_clause> <comment_clause> ポイント参照ダイアグラムの後に、影付き部分の拡大ダイアグラム ( この場合は <INPUT_CLAUSE>) が続きます。 INPUTFILE <filename> TAPE DEVICE INDDN ( START RECORD '<FILENAME >' <START_ROW> <START_ROW 8 Table Management Utility Reference Guide '<DEVICE_NAME> ' ) STOP RECORD <stop_row> キーワードと区切り文字 キーワードと区切り文字 キーワードとは、ステートメントおよびコマンド ( システム レベルのコマンドを除 く ) で使用するために予約された単語のことです。構文ダイアグラムでは、キー ワードが大文字で表記されます。ユーザが実際にキーワードを記述する場合は、大 文字 / 小文字のどちらを使用してもかまいません。ただし、スペルは構文ダイアグ ラムに表記されるとおりでなければなりません。 構文ダイアグラム内の区切り文字も、ダイアグラムに示されているとおりにステー トメントとコマンドの中に入れる必要があります。 識別子と名前 構文ダイアグラムおよび例の中の変数は、識別子および名前に対するプレースホル ダです。変数は、文脈に応じて任意の名前、識別子、またはリテラルに置き換える ことができます。変数は、追加の構文ダイアグラムで拡大される複雑な構文要素を 表すためにも使用されます。変数は、構文ダイアグラム、例、テキストでは、<> (山形かっこ)で表記されます。 以下に示す構文ダイアグラムでは、変数を使用して簡単な SELECT 文の一般的な フォームを説明しています。 SELECT <column_name> FROM FROM <table_name> このフォームの SELECT 文を書き込む場合、変数の <column_name> と <table_name> を特定の列とテーブルに置き換えます。 はじめに 9 文中記号の表記規則 文中記号の表記規則 マニュアル内では、数種類の記号によってその内容が区別されます。この節ではこ れらの記号について説明します。 コメント 記号 コメント記号によって区別される情報には、次の表に示す 3 種類があります。この 情報は常に斜体で表記されます。 記号 ラベル 説明 警告 : 必須の情報、注意、重要な情報が含まれています。 重要 : 現在説明されている手順または機能に関する重要な 情報が含まれています。 ヒント : 現在説明されている機能に関する、詳細または ショートカットなどの追加情報が含まれます。 プラットフォーム アイコン 機能アイコン、製品アイコン、およびプラットフォーム アイコンは、特定のプラッ トフォームに関する情報を意味します。 アイコン UNIX Windows 説明 UNIX と Linux オペレーティング システムにのみ関係のあ る情報を意味します。 Windows プラットフォームにのみ関係のある情報を意味 します。 10 Table Management Utility Reference Guide 関連文献 これらのアイコンは、節全体に適用される場合と、節内の一部のパラグラフにのみ 適用される場合があります。アイコンが節見出しの隣に付いている場合、その機 能、製品、またはプラットフォーム固有の情報の範囲は、同じレベルまたは上位レ ベルの節が現れる直前までです。♦ 記号は、機能、製品、またはプラットフォーム 固有の情報が節内の一部のパラグラフにのみ記述されている場合に、その固有情報 の範囲の末尾を表します。 関連文献 IBM Red Brick Warehouse のマニュアルには、以下の文書が含まれています。 マニュアル 説明 『Administrator's Guide』 ウェアハウスのアーキテクチャやサポートされる スキーマなど、データべースに関連した基本概念 のマニュアルです。データべースのインプリメント や保守の手順について説明しています。システム テーブルとコンフィグレーション ファイルの説明 も含まれています。 『Client Installation and Connectivity Guide』 ODBC、Red Brick JDBC Driver、RISQL エントリ ツール、RISQL レポータをクライアント システム にインストールして構成するためのガイドです。C および C++ アプリケーション用 ODBC 製品と Java アプリケーション用 JDBC 製品を使用して、IBM Red Brick Warehouse にアクセスする方法を説明し ています。 『IBM Red Brick Vista User’s Guide』 IBM Red Brick Vista の集約計算とマネジメントのシ ステムについて説明しています。集約を使用してク エリを自動的にリライトすることによって Vista ク エリ パフォーマンスを向上させる方法、毎日集め られるデータをもとに最高の集約セットを作るよ う推奨すること、詳細テーブルが更新されるとき に集約テーブルがどのように保守されるかを説明 しています。 『Installation and Configuration Guide』 IBM Red Brick Warehouse のインストールと環境設 定に関する説明書と、プラットフォーム別マニュ アルです。UNIX および Linux ベースのシステム用 と、Windows ベースのシステム用があります。 (1/2) はじめに 11 関連文献 マニュアル 説明 『Messages and Codes Reference Guide』 IBM Red Brick Warehouse 製品が出力するすべての 状態情報、警告、エラー メッセージとその考えら れる原因、対処方法が示されています。さらに、ロ グ ファイルに書き込まれるイベント ログ メッセー ジについても説明しています。 『Query Performance Guide』 クエリ パフォーマンスの決定要因と、最適なクエ リ パフォーマンスを得るためのデータベースの チューニング方法について説明しています。Red Brick ツールを使用してクエリの性能とリソース使 用率を監視する方法について例示しています。 ツールの種類としては、EXPLAIN、SET STATS、 Dynamic Statistic Tables、Query Performance Monitor があります。 『リリース ノート』 マニュアルの印刷後に判明した現リリースに関す る情報が含まれます。 『RISQL Entry Tool and RISQL Reporter User’s Guide』 SQL 文の入力に使用する コマンドライン ツールで ある RISQL エントリ ツールと、RISQL エントリ ツールにレポート フォーマット設定機能を付加し た RISQL レポータの詳細なガイドです。 『SQL Reference Guide』 Red Brick SQL のインプリメントと RISQL (IBM Red Brick Warehouse データベースのための拡張機能 ) に 関する詳細な言語リファレンスです。 『SQL Self-Study Guide』 例題に基づいて SQL を復習し、RISQL 拡張機能、 マクロ関数、Aroma のサンプル データベースを紹 介します。 このマニュアル データのロード、管理、バックアップに関連した 機能をまとめた、Table Management Utility について 説明しています。データのコピーと rb_cm コピー 管理ユーティリティについても説明しています。 (2/2) このほか、以下の書籍やマニュアルも役に立つ場合があります。 ■ ■ ■ SQL の入門書 リレーショナル データベースの入門書 お使いのハードウェア プラットフォームおよびオペレーティング システ ムのマニュアル 12 Table Management Utility Reference Guide その他のマニュアル その他のマニュアル 上記以外の情報は、以下のマニュアルを参照してください。 ■ ■ ■ オンライン マニュアル 印刷マニュアル オンライン ヘルプ オンライン マニュアル Red Brick 製品には、各種の IBM Red Brick Warehouse マニュアルを電子フォーマット で収録した CD-ROM が同梱されています。収録されているマニュアルは、システム にインストールして使用することも、CD-ROM から直接アクセスすることも可能で す。 印刷版マニュアル 印刷マニュアルを注文する場合は、担当販売員までご連絡ください。 オンライン ヘルプ IBM はグラフィカル ユーザ インタフェース (GUI) を用いたオンライン ヘルプを提 供します。これにより、各インタフェースや実行する関数についての情報を参照す ることができます。オンライン ヘルプを表示するには、GUI のヘルプ機能を利用し てください。 はじめに 13 第1章 概要 この章について . . . . . . . . . . . . . . . . . . . . 1-3 TMU の操作および機能 . . . . . . . . . . . . . . . . . 1-4 TMU のコントロール ファイルとステートメント 終端記号 . . . . . . . . . . . . . コメント . . . . . . . . . . . . . ロケール文字およびマルチバイト文字 . . USER 文 . . . . . . . . . . . . . LOAD DATA 文と SYNCH 文 . . . . . . UNLOAD 文 . . . . . . . . . . . . GENERATE 文 . . . . . . . . . . . REORG 文 . . . . . . . . . . . . BACKUP 文 . . . . . . . . . . . . RESTORE 文 . . . . . . . . . . . UPGRADE 文 . . . . . . . . . . . SET 文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1-7 1-7 1-8 1-8 1-8 1-9 1-9 1-10 1-10 1-10 1-11 1-11 1-12 1-2 Table Management Utility Reference Guide この章について Table Management Utility (TMU) は、データベースへのデータのロード、およびテー ブル、インデックス、事前計算ビュー、参照整合性の維持を行うために使用する IBM Red Brick Warehouse のプログラムです。TMU の主な機能は、大量のデータを非 常に高速にロードしインデックスを付けることですが、次の機能も提供します。 ■ ■ ■ ■ ■ テーブル全体や一部のデータを移動したり、データを編集して TMU やほ かのアプリケーションに使用するためにデータベースからデータをアン ロードする。 インクリメンタル ロードや SQL を使った挿入、更新、削除によって大幅 に変更するテーブルを再構成し、インデックスを付け直す。 アンロードしたデータをロードするときに使用する DDL (CREATE TABLE) 文や TMU の LOAD DATA 文をテーブルに設定された情報から生成する。 IBM Red Brick Warehouse の新バージョンを使用する際に、データベースを アップグレードする。 データベースのフル バックアップおよびインクリメンタル バックアップ と、完全復元および部分復元を実行する。 この章では、以下について説明します。 ■ ■ TMU の操作および機能 TMU のコントロール ファイルとステートメント Table Management Utility 概要 1-3 TMU の操作および機能 TMU の操作および機能 TMU は、データベース サーバから独立して動作するプログラムです。オペレー ティング システムのコマンド ラインから起動し、ほかの IBM Red Brick Warehouse コンポーネントと同じコンフィグレーション情報を使用します。TMU プログラム はリモートで起動できます。このため、DBA がネットワーク クライアント マシン 上の入力ファイルから運用中のサーバ マシン上のデータベース テーブルにデータ をロードすることが可能です。 TMU を起動する前に、TMU の制御言語を使用してコントロール ファイルに書き込 む必要があります。コントロール ファイルには実行するタスクを指定し、タスクに 必要な情報を記述します。TMU を起動する際に、コントロール ファイルを入力 データとして指定します。TMU はコントロール ファイルに書かれたタスクを実行 し、テープ、ディスク、標準入力のいずれかから入力データを読み込み、指示に 従ってデータベースを修正したり、出力ファイルをテープまたはディスクに書き込 みます。同時に、TMU はシステム ログやアカウンティング情報も書き込みます。 TMU は、テープ、ディスク、データなど各種のフォーマットをサポートします。 図 1-1 は、TMU とその入出力を示したものです。 図 1-1 TMU 入出力オプション 入力 出力 データベース システム テーブル 更新 コントロール ファイル アンロード format ファイル コントロール ファイル 入力データ ファイル 入力データ 入力データ ( 標準入力、 ( 標準 入力、 パイプ パイプ) ) テーブルと インデックス ファイル 破棄 ファイル アンロード format LOAD DATA ファイル 制御 ファイル CREATE TABLE DDL ファイル アカウンティング および ログ要求 メッセージ データ ( 標準 UNIX ログ 出力、 デーモンまたは メッセージ パイプ ) Windows ( 標準エラー、 ログ スレッド 警告メッセージ (rbwlogd) ファイル ) Table Management Utility (rb_tmu または rb_ptmu) 1-4 Table Management Utility Reference Guide TMU の操作および機能 UNIX テープについてのサポートは、UNIX システムに対してだけです。♦ 図 1-2 は、ローカル クライアント マシンから リモート サーバ上の TMU を起動する しくみを示しています。 図 1-2 リモート TMU アーキテクチャ ローカル クライアント マシン Client Table Management Utility (rb_ctmu) コントロール ファイル 入力 ファイル ネットワーク 接続 ロード リモート サーバ マシン Red Brick Warehouse サーバ およびデータベース 出力 ファイル アンロード / 破棄 Table Management Utility (rb_ptmu) この場合、クライアント マシンから rb_ctmu プログラムによって TMU が起動しま す。しかし、サーバ マシン上の IBM Red Brick Warehouse データベースに対して LOAD DATA 操作または UNLOAD 操作が実行されます。この機能によって、DBA がコントロール ファイル、入力ファイル、および出力ファイルをクライアント上で 維持することができ、運用マシンのセキュリティ リスクが低減します。 以下に、TMU のその他の重要な機能をいくつか紹介します。 ■ 並列ロードおよび REORG 操作 パラレル TMU (PTMU) は、データ レコードのロード中に行われるイン デックス作成、データ変換、参照整合性チェックを並列で行うことができ るので、複数のインデックスと参照整合性制約を持つテーブルのロード性 能が向上します。 本書の内容は、TMU と PTMU の両方に適用します。動作や構文に違いが ある場合には、注釈を付けています。PTMU の一般的な使い方は、 2-51 ページ「PTMU の効果的利用のポイント」を参照してください。 Table Management Utility 概要 1-5 TMU の操作および機能 ■ ■ ■ ■ Copy Management ユーティリティ Copy Management ユーティリティ (rb_cm) は、エンタプライズ全体の中に ある複数データベース間のデータの移動と同期を簡略化します。高速に ロードとアンロードを行うだけでなく、ネットワークを介してデータを移 動することもできます。このユーティリティについては、第 7 章「コピー 管理オプションによるデータのコピー」で説明します。 Auto Aggregate モード Auto Aggregate モードは、新規入力データとテーブルの既存データを自動 的に集約する機能です。たとえば、各店舗の日別売上を Sales テーブルに ロードする場合、新たに入力する各店舗の売上を入力済みの売上に自動的 に加算し、累積合計つまり集計値を格納することができます。Auto Aggregate モードの内容は第 3 章「ウェアハウス データベースへのデータ のロード」を、詳しい例は付録 A 「例 :AGGREGATE モードでの TMU の 使用」を参照してください。 事前計算ビュー保守 事前計算ビュー保守機能では、詳細テーブルが更新されるたびに集約テー ブルが自動的に更新されるため、詳細テーブルと集約テーブルの同期が保 証されます。この保守機能を使用することで、ユーザが集約テーブルを更 新するためのスクリプトを独自に開発する必要がなくなり、多くの場合、 更新速度が向上します。この機能の詳細については、『IBM Red Brick Vista User’s Guide』を参照してください。 統合型バックアップおよび復元操作 TMU を使用することによって、フル バックアップ / インクリメンタル バックアップ、および完全 / 部分復元を実行できます。バックアップはオ ンラインで行うことができます。バックアップ中も、データベースのロー ドおよび更新が可能です。TMU は、8K ブロック レベルでインクリメンタ ルな変化を追跡します。これは、レベル 1 およびレベル 2 のバックアップ を高速化します。復元では、TMU がバックアップ メタデータを使用して 最適な復元パスを自動的に構築します。ディスク、テープ、および XBSA 準拠の格納域管理システムへのバックアップがサポートされています。 1-6 Table Management Utility Reference Guide TMU のコントロール ファイルとステートメント TMU のコントロール ファイルと ステートメント TMU のコントロール ファイルには、実行する機能を指定するステートメント、な らびに各機能の実行に必要な TMU の情報が含まれています。1 つのコントロール ファイルには、次のような制御文を複数記述することができます。 ■ ■ ■ データベースのユーザ名とパスワードを入力する USER 文 実行する機能に応じた各種の制御文 TMU の実行環境を制御する SET 文 LOAD DATA 文 USER 文 SYNCH SEGMENT 文 UNLOAD 文 GENERATE 文 REORG 文 BACKUP 文 RESTORE 文 UPGRADE 文 SET 文 以降の節で、上記の各制御文について説明します。 終端記号 以降の節の各制御文に対する詳細な構文ダイヤグラムに示されるように、制御文の 最後にはセミコロン (;) を付ける必要があります。1 つのコントロール ファイルに複 数の制御文を記述する場合、各制御文の最後にセミコロンを付ける必要がありま す。 Table Management Utility 概要 1-7 コメント コメント コントロール ファイルにコメントを記述するには、C 言語形式の区切り記号 (/*...*/) でコメントを囲みます。この方法を使用すれば、記号の間に複数のコメントを記述 できます。もう 1 つの方法は、コメントの前に 2 つのハイフン (--) を付け、コメン トの最後に行の終わりを示す (EOL) を付けます。この方法で記述できるコメントは 1 行に限られます。 ロケール文字およびマルチバイト文字 データベース ロケールにかかわらず、ほとんどの TMU の制御文 (LOAD DATA、 UNLOAD、SYNCH、REORG など ) は ASCII 文字で指定する必要があります。しか し、TMU は、データベースオブジェクト名およびこのような文で使用する特殊な 文字の一部としてマルチバイト文字をサポートしません。また、データベースロ ケール仕様と異なる TMU 入力ファイルに使用するロケール仕様を定義できます。 TMU が返すメッセージは、データベース ロケールの言語で表示されます。ただし、 カレント ユーザの環境変数 RB_NLS_LOCALE によって、そのロケールが無効に なっていない場合に限ります。それ以外の場合、TMU 操作は、データベースのロ ケール仕様を使用します。 IBM Red Brick Warehouse がサポートする定義済みロケールの一覧については、イン ストール CD-ROM の relnotes ディレクトリにある locales.pdf ファイルを参照してく ださい。 USER 文 USER 文は、データベースのユーザ名とパスワードを指定するものです。コマンド ラインに入力したり、プロンプトに従って対話方式で入力しなくても、TMU を起 動することができます。 USER 文は、1 つのコントロール ファイルに 1 つしか入力できず、またファイルの 先頭ステートメントでなければなりません。コマンド ラインにユーザ名とパスワー ドを入力した場合は、その値がコントロール ファイルの USER 文に優先し、USER 文が無効になったという警告が表示されます。 USER 文の詳細については、2-21 ページ「ユーザ名とパスワードを指定する USER 文」を参照してください。 1-8 Table Management Utility Reference Guide LOAD DATA 文と SYNCH 文 LOAD DATA 文と SYNCH 文 LOAD DATA 文は、データベースにデータをロードするときに必要な制御情報を指 定します。この情報には、キーワード LOAD DATA、データのソース、そのフォー マット、そのロケール、ロードできないレコードに対する処置、および入力データ レコード フィールドをデータベースのテーブルの列にマップする方法があります。 LOAD DATA 文でデータそのものは指定しません。 テーブルのオフライン セグメントにデータをロードした場合は、データのロード後 に、テーブルのほかの部分とそのセグメントを同期しなければなりません。これ は、SYNCH 文を使って行います。SYNCH 文を使用するのは、オフライン セグメン トへのロードを行った場合だけです。 LOAD DATA および SYNCH コントロール ファイルの詳細については、 第 3 章「ウェアハウス データベースへのデータのロード」を参照してください。コ ピー管理ユーティリティ rb_cm によるロード操作の詳細については、第 7 章「コ ピー管理オプションによるデータのコピー」を参照してください。 UNLOAD 文 UNLOAD 文は、移動するデータやほかのツールで使用するデータを、複数の フォーマットのいずれかにデータベースのテーブルからアンロードするとき必要な 情報を指定します。UNLOAD 文には、UNLOAD キーワード 、アンロードするテー ブルの名前、出力フォーマットの記述、出力ファイルの書き込み先などの関連情報 が含まれます。データは、テーブルのスキャンまたはインデックスのいずれかに よって決まる順序でアンロードすることができます。テーブル全体をアンロードす ることも、指定された行だけをアンロードすることもできます。 別のテーブルにロードするデータをアンロードする場合、アンロードするテーブル に対応する SQL の CREATE TABLE 文と、そのデータに対応する TMU の LOAD DATA 文を自動生成する命令を TMU の UNLOAD 文に含めることができます。自動 生成されたステートメントは、テンプレートとして、そのまま、あるいは修正して テーブルを作成し、アンロードしたデータをテーブルにロードするために使用しま す。この機能は、GENERATE 文でも利用できます。 Table Management Utility 概要 1-9 GENERATE 文 UNLOAD コントロール ファイルの詳細については、第 4 章「テーブルからのデー タのアンロード」を参照してください。コピー管理ユーティリティ rb_cm で使用す るデータのアンロードについては、第 7 章「コピー管理オプションによるデータの コピー」を参照してください。 GENERATE 文 GENERATE 文は、テーブルに設定された情報に基づいて SQL の CREATE TABLE 文 または TMU の LOAD DATA 文を自動的に生成する際に必要な情報を指定します。 GENERATE 文を使用すれば、CREATE TABLE 文または LOAD DATA 文を作成する タスクを、データをアンロードするタスクから切り離して、実際にはデータをアン ロードしないでこれらの文を作成することができます。 GENERATE コントロール ファイルの詳細については、第 5 章「CREATE TABLE 文 と LOAD DATA 文の生成」を参照してください。 REORG 文 REORG 文は、テーブルの再編成を TMU に指示します。再編成とは、参照整合性を 保証することと、内部の格納効率を上げるために、指定されたインデックスを再作 成することです。ここでの参照の整合性とは、参照元テーブルのフォーリン キー値 が参照先テーブルのプライマリ キー値として存在するという制約を指します。ま た、REORG 文を使用して、REORG 文の対象テーブルで定義された集約テーブルを 再作成することもできます。REORG 文では、キーワード REORG、テーブル名、イ ンデックス名、事前計算ビュー名、およびそれらを再作成する命令を指定します。 REORG コントロール ファイルの詳細については、第 6 章「テーブルとインデック スの再編成」を参照してください。 BACKUP 文 BACKUP 文は、オンライン モードまたはチェックポイント モードのいずれかで、 レベル 0、1、または 2 のデータベース バックアップを実行します。BACKUP コン トロール ファイルの詳細については、第 8 章「データベースのバックアップ」を参 照してください。 1-10 Table Management Utility Reference Guide RESTORE 文 RESTORE 文 RESTORE 文は、1 つ以上の TMU バックアップからデータベース全体またはデータ ベースの一部を復元します。RESTORE コントロール ファイルの詳細については、 第 9 章「データベースの復元」を参照してください。 UPGRADE 文 UPGRADE 文は、IBM Red Brick Warehouse の新バージョンを使用する前に、既存 データベースのアップグレードを TMU に指示します。すべてのバージョンでデー タベースのアップグレードが必要なわけではありません。アップグレードが必要な バージョンには、新しい IBM Red Brick Warehouse ソフトウェアの既存データベース をアップグレードし UPGRADE コマンドに必要な情報が組み込まれています。 ; UPGRADE DDLFILE '<filename>' DDLFILE '<file name>' TMU が、アップグレード手段の一部として DDL 文を含む ファイルを生成することを示します。このファイルは必須で はなく、ファイルの内容はリリースごとに異なります。 以下の情報については、IBM Red Brick Warehouse の各リリースに添付のリリース ノートを参照してください。 ■ ■ ■ IBM Red Brick Warehouse の新リリースをインストールする際に、データ ベースのアップグレードが必要かどうか。 DDL ファイルの内容に関する詳細を含む、UPGRADE 文の構文の変更。 UPGRADE 操作がそのリリースに対して行う変更。 新規ソフトウェアのインストール方法と稼働中のデータベースをアップグレードす る方法は、ご使用のプラットフォームの『Installation and Configuration Guide』と 『リリース ノート』を参照してください。 Table Management Utility 概要 1-11 SET 文 SET 文 特定のセッションにおける TMU の動作をカスタマイズする各種オプションが利用 できます。これらのオプションに対応する SET 文をコントロール ファイルに記述 すると、その指定は、構成ファイル (rbw.config) に設定されているグローバル パラ メータよりも優先されます。たとえば、SET 文を使用して、特定のロード操作が使 用する一時領域のデフォルト位置およびサイズを変更できます。 SET 文の詳細については、2-23 ページ「動作を制御する SET 文とパラメータ」を参 照してください。 1-12 Table Management Utility Reference Guide 第2章 と この章について . . の実行 . . . . . . . . . . . . . . . . . . 2-3 ユーザ アクセスと必要な権限 . . . . . オペレーティング システムのアクセス データベースのアクセス . . . . . TMU 出力ファイルの権限 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-4 2-4 2-5 2-5 rb_tmu と rb_ptmu の構文 . . . . . . . . . . . . . . . . 2-5 終了状態コード . . . . . . . . . . . . . . . . . . . . 2-7 TMU の設定方法 . . . . . . . . . . . . . . . . . . . 2-8 リモート TMU の設定と構文 . . . . . . . . . . . クライアントとサーバの互換性 . . . . . . . . . クライアント構成 . . . . . . . . . . . . . . サーバ構成 . . . . . . . . . . . . . . . . rb_ctmu の構文 . . . . . . . . . . . . . . . オプション . . . . . . . . . . . . . . . リモート TMU 操作のためのコントロール ファイル ユーザ名とパスワード . . . . . . . . . . . 使用上の注意 . . . . . . . . . . . . . . 構文例 . . . . . . . . . . . . . . . . リモート TMU 操作の概要 . . . . . . . . . . . 例 :Windows と UNIX 間のリモート TMU 操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-12 2-12 2-13 2-14 2-14 2-15 2-16 2-16 2-17 2-17 2-18 2-19 ユーザ名とパスワードを指定する USER 文 . . . . . 2-21 . . . . . . . . 2-23 2-25 2-27 2-28 動作を制御する SET 文とパラメータ . ロック動作 . . . . . . . . . バッファ キャッシュのサイズ . . 一時領域の管理 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 日時値のフォーマット . . . . . . . . . ロード情報限界値 . . . . . . . . . . . メモリ マップ限界 . . . . . . . . . . 事前計算ビューの保守の設定 . . . . . . . エラー発生時の事前計算ビュー管理 . . . . 行メッセージの管理 . . . . . . . . . . バージョン管理の有効化 . . . . . . . . レコード インターバルのコミット . . . . . コミット タイム インターバル . . . . . . ロード統計情報の表示 . . . . . . . . . バックアップおよび復元 (BAR) ユニット サイズ 外部バックアップおよび復元の動作 . . . . REORG タスク . . . . . . . . . . . . PTMU だけを使用した並列ロード タスク . . 逐次モード動作 (PTMU のみ ) . . . . . . . PTMU の効果的利用のポイント . . . . . . . 並列処理を使用する動作 . . . . . . . . 並列ロード時の最大破棄レコード数 . . . . PTMU による自動的な行の生成 AUTOROWGEN PTMU と複数のテープ装置の併用 . . . . . PTMU と 3480/3490 複数テープ装置の併用 . . 2-2 Table Management Utility Reference Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-32 2-33 2-34 2-35 2-35 2-36 2-38 2-39 2-40 2-44 2-44 2-45 2-46 2-47 2-49 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2-51 2-51 2-52 2-52 2-53 2-53 この章について TMU または並列 TMU (PTMU) を使用する前に、実行するタスクを定義するステー トメントが記述されたコントロール ファイルを用意する必要があります。これらの ステートメントは以降の章で説明します。コントロール ファイルを新規に作成する か、または既存ファイルを編集して、必要な入力ファイルを用意してから、この章 に示す手順に従って TMU または PTMU を実行します。 この章では、以下について説明します。 ■ ■ ■ ■ ■ ■ ■ ■ ユーザ アクセスと必要な権限 rb_tmu と rb_ptmu の構文 終了状態コード TMU の設定方法 リモート TMU の設定と構文 ユーザ名とパスワードを指定する USER 文 動作を制御する SET 文とパラメータ PTMU の効果的利用のポイント 2-5 ページ に示す構文の注釈と、2-51 ページ に述べる PTMU に固有の機能を除き、 PTMU の使い方は TMU と同様です。 TMU と PTMU の実行 2-3 ユーザ アクセスと必要な権限 ユーザ アクセスと必要な権限 TMU または PTMU を使用するには、オペレーティング システムとデータベースの 両方に対して必要な権限をもつ必要があります。 重要 : このマニュアルでは、IBM Red Brick Warehouse ソフトウェアのインストー ル先のディレクトリとして、ディレクトリ redbrick ( 例の中では redbrick_dir) を使 用しています。また、データベース管理者のユーザ ID は redbrick であり、これが IBM Red Brick Warehouse ソフトウェアのインストール時に、オペレーティング シス テムのユーザ ID として使用されています。ソフトウェアをほかの場所にインス トールする場合や、ほかのユーザ ID でインストールする場合は、ディレクトリ redbrick または管理者のユーザ ID redbrick を、当該の場所またはユーザ ID redbrick に置き換えてください。 オペレーティング システムのアクセス redbrick 以外のユーザとして TMU または PTMU (rb_tmu または rb_ptmu) を実行す る場合、コントロール ファイルおよび入力ファイルを参照する読み取りアクセス権 と、テーブル ファイル、インデックス ファイル、破棄データ ファイル、および生 成されたファイルの書き込み先のディレクトリを更新する書き込みアクセス権が ユーザ ID redbrick に付与されていることを確認してください。たとえば、サイトの 管理者のユーザ名が redbrick であるときに、ユーザ名 calvin で TMU を実行する場 合、必要なファイルの読み取り、書き込み、および実行のためのアクセス権が、 ユーザ redbrick に付与されていることを確認してください。管理者のユーザ名に別 のユーザ名が使用されている場合は、必要なファイルに対する必要なアクセス権が 別のユーザ名に付与されていることを確認してください。 Windows Windows プラットフォームでは、TMU または PTMU を実行するユーザは、以下の ユーザ グループのいずれかに所属する必要があります。 ■ ■ ■ Administrator REDBRICK_DBA **_REDBRICK_DBA (* は任意のプレフィックスを示します。たとえば、 TMU_REDBRICK_DBA) Windows の標準 Administrator グループの TMU ユーザ部分を作成しない場合、管理 ツール User Manager ([ スタート ] メニューから実行 ) を使用して、グループ REDBRICK_DBA または *_REDBRICK_DBA を作成し、ユーザをそのグループに割 り当てる必要があります。♦ 2-4 Table Management Utility Reference Guide データベースのアクセス データベースのアクセス アクセスするデータベースは、TMU の起動時にコマンド ラインから指定できます。 指定がなければ、TMU では、環境変数 RB_PATH に指定されたデータベースが使用 されます。 TMU に対して指定するデータベース ユーザ ID には、TMU の操作を実行するため に必要なオブジェクト アクセス権とタスク アクセス権が付与されている必要があ ります。ユーザ ID とパスワードは、プロンプトに応じてコマンド ラインで入力す るか、または USER 文で指定することができます。 UNIX TMU 出力ファイルの権限 デフォルトでは、すべての TMU 出力ファイル ( 破棄データ ファイル、生成された ファイル、アンロード ファイル、およびバックアップ ファイル ) は、rb_tmu また は rb_ptmu 実行ファイルを実行するユーザの権限を継承します。これらの権限は、 そのユーザの現在の umask 設定に基づきます。umask が 0 に設定されている場合、 出力ファイルは、すべてのユーザに対して rw になります。ユーザ redbrick に対し てのみ権限を rw に制限するには、umask を 077 に設定します。 % umask 077 ♦ rb_tmu と rb_ptmu の構文 TMU と PTMU の実行ファイルの名前は、それぞれ rb_tmu と rb_ptmu です。この 2 つのファイルは、ディレクトリ redbrick のサブディレクトリ bin にあります。これ らのプログラムはユーザ ID redbrick で実行され、ユーザ redbrick は自分が作成し たすべてのファイルの所有者となります。rb_ctmu は、リモート サーバでロードま たはアンロード操作を開始するために使用するクライアントの実行ファイルです。 詳細については、2-12 ページを参照してください。 TMU と PTMU を起動するための構文は以下のとおりです。 rb_tmu [options] control_file [db_username [db_password]] rb_ptmu [options] control_file [db_username [db_password]] TMU と PTMU の実行 2-5 オプション オプション 以下のオプションがあります。指定と指定の順序は任意です。 -interval <nrows> または -i <nrows> オプション。<n> 行のデータがロードされるごとに、システ ム メッセージ ファイルに進捗状況メッセージを出力するよ う TMU に指示します。TMU は小さいバッチで行を処理する ので、インターバルが生じるバッチの終了時に、処理した行 数を通知します。そのため、通知される行数が正確に <nrows> にならないことがあります。報告のインターバルを 短くすると、ロード処理が遅くなります。 i 行数を指定しないと、進捗状況メッセージは出力されませ ん。 -database <db_name> オプション。rbw.config で指定されている論理データベース または -d <db_name> 名。このオプションは RB_PATH よりも優先されます。デー タベース名を指定しない場合、環境変数 RB_PATH の値が使 用されます。 -timestamp または -t オプション。TMU が出力するすべての情報とエラー メッ セージにタイムスタンプが付加されます。タイムスタンプ形 式は、オペレーティング システムのロケールに応じて異な りますが、メッセージはデータベースのロケール ( つまり、 環境変数 RB_NLS_LOCALE が指定するロケール ) を使用し ます。 <control_file> TMU 制御文を記述したファイルのパス。 <db_username>、 <db_password> オプション。データベースのユーザ名とパスワード ( オペ レーティング システムのユーザ アカウントとパスワードで はない )。ユーザ名はシングルバイト文字でもマルチバイト 文字でも指定できますが、パスワードはシングルバイト文字 で指定する必要があります。これらの引数をコマンドやコン トロール ファイルにも入力しないと、コントロール ファイ ルを実行する前に、TMU で、入力を要求するプロンプトが 表示されます。コマンドとコントロール ファイルの両方に 入力した場合は、コマンドの入力値が優先されます。 2-6 Table Management Utility Reference Guide 使用上の注意 使用上の注意 ■ オプションを指定せずに rb_tmu または rb_ptmu をシステム プロンプトに 入力すると、TMU または PTMU の構文が表示されます。たとえば、以下 のような場合です。 % rb_tmu Usage: /redbrick_dir/bin/rb_tmu [<Options>] <control_file> [<username> [<password>]] Options: -i or -interval <nrows> Display progress every <nrows> rows. -t or -timestamp Append a timestamp to all TMU messages. -d or -database <database> Database to use. ■ TMU または PTMU の実行中に割り込みを行うと、使用中のファイルを閉 じて直ちに終了します。 終了状態コード 終了直後、TMU と PTMU は、処理中に発生した最も高い状態コードを戻します。 たとえば、TMU で警告メッセージだけが生成された場合は、1 の終了状態コードが 戻されます。ただし、警告メッセージと致命的なメッセージの両方が生成される と、3 の終了状態コードが戻されます。これらの終了状態コードを使用して、TMU または PTMU を実行する、ユーザのアプリケーションを制御することができます。 以下の表は、終了状態コードの意味を示します。 状態 意味 0 通知メッセージと統計メッセージは実行中に出力されることがあります が、警告メッセージ、エラー メッセージ、致命的なメッセージは実行中 には出力されません。 1 警告メッセージが実行中に出力されます。 2 エラー メッセージが実行中に出力されます。 3 致命的なメッセージが実行中に出力されます。 終了状態 2 または 3 が戻されると、TMU または PTMU は実行を停止します。 TMU と PTMU の実行 2-7 TMU の設定方法 TMU の設定方法 環境変数を設定し、TMU または PTMU を起動するには 1. 2. Windows ユーザ redbrick としてログインします。(TMU を redbrick 以外のユーザと して実行する場合は、2-4 ページ で示すように、ユーザ redbrick が、入力 ファイル、出力ファイル、破棄データ ファイルおよび生成されたファイル を保存するために使用するすべての場所に対して必要なアクセス権を持っ ていることを確認してください )。 システムの環境設定を確認します。 ■ 環境変数 RB_HOST が、正しいデータベース デーモン (UNIX の場合 )、 またはサービス (Windows の場合 ) に設定されていることを確認しま す。 ■ 環境変数 RB_CONFIG が、rbw.config ファイルが存在するディレクト リに設定されていることを確認します。 ■ 環境変数 RB_PATH が正しいデータベースに設定されていることを確 認します。この環境変数がアクセス先のデータベースに設定されてい ない場合、-d オプションを使用して、TMU 起動時の論理データベー ス名を指定する必要があります。 Windows では、上記の環境変数のデフォルト値は、レジストリの RB_HOST に設定 されたデータベース サービスによって決定されます。♦ 3. TMU を起動します。rb_tmu を使用して、TMU の制御文が記述されている ファイルを指定します。データベースのユーザ名とパスワードは、コマン ド ラインで入力するか、コントロール ファイル内の USER 文を使用して入 力するか、または TMU のプロンプトに応じて入力することができます。 以下の例は、環境変数 RB_PATH を設定し、aroma.tmu というコントロール ファイ ルを使用して Aroma データベースに対して TMU を実行し、10,000 行ごとにタイム スタンプを付加した進捗状況メッセージを端末に出力する方法を示しています。 UNIX UNIX Korn または Bourne シェルの場合 $ RB_PATH=AROMA; export RB_PATH $ rb_tmu -i 10000 -timestamp aroma.tmu curly secret UNIX C シェルの場合 % setenv RB_PATH AROMA % rb_tmu -i 10000 -timestamp aroma.tmu curly secret ♦ 2-8 Table Management Utility Reference Guide TMU の設定方法 Windows Windows シェルの場合 c:¥db1> set RB_PATH=AROMA c:¥db1> rb_tmu -i 10000 -timestamp aroma.tmu curly secret ♦ TMU では、まずユーザ名 curly、パスワード secret で、変数 RB_PATH が指示する データベースにログインします。TMU では、カレント ディレクトリにあるコント ロール ファイル aroma.tmu に記述されている制御文が実行されます。約 10,000 行 ごと (2-6 ページ に述べたように、指定した行数に達したバッチの終わり ) に、進捗 状況メッセージが出されます。すべてのメッセージに、タイムスタンプが付加され ます。 以下の例は、TMU を起動し、-d オプションでデータベース名を指定する方法を示 しています。シェル プロンプトに以下のコマンドを入力します。 rb_tmu -d AROMA aroma.tmu TMU はコントロール ファイルの中で、USER 文を検索します。USER 文が見つから ない場合、ユーザ名とパスワードの入力を要求するプロンプトが表示されます。こ れらを入力すると、ファイル rbw.config で指定されているディレクトリにあるデー タベース Aroma に対し、ファイル aroma.tmu に記述されている制御文が実行されま す。 以下の例は、PTMU を起動し、タイムスタンプ付きのインターバルを指定する方法 を示しています。以下のコマンドを入力します。 rb_ptmu -i 10000 -timestamp aroma.tmu curly secret 以下の例は、TMU の通知メッセージとエラー メッセージを受け取り、そのメッ セージを load_messages というファイルに書き込む方法を示しています。 UNIX UNIX Korn または Bourne シェルの場合 $ rb_tmu file.tmu system secret > load_messages 2>&1 UNIX C シェルの場合 % rb_tmu file.tmu system secret >& load_messages UNIX 端末にメッセージを表示したり、ファイルに書き込まないように、システム 出力 stderr を /dev/null にリダイレクトして、大量のファイル作成を防ぐことができ ます。この方法をとると、どのような問題が発生しても検出できなくなるため、お 勧めできません。UNIX の grep のようなフィルタを通してメッセージをリダイレク トして、繰り返し出力される通知メッセージを除去することもできます。♦ TMU と PTMU の実行 2-9 TMU の設定方法 Windows Windows シェルの場合 c:¥db1> rb_tmu file.tmu system secret > load_messages 2>&1 ♦ 以下の例は、別のプログラム ( この場合は圧縮解凍プログラム zcat) の出力を TMU の入力として使用する方法を示しています。シェル プロンプトに、以下のように入 力します。 zcat cmpressd_file | rb_tmu mydb.tmu system secret まず、圧縮解凍プログラムが実行され、ファイル cmpressd_file が解凍され、出力 データがパイプによって TMU に送られます。TMU は、mydb.tmu コントロール ファイルを実行する際に、この出力データを入力データにします。圧縮解凍された データのファイルを作成する必要がないため、一時的なファイル領域を節約できま す。コントロール ファイルには、標準入力 ('-') を入力ファイルとして指定しておき ます。 以下の例は、入力データとして標準入力を使用して、1 つのコントロール ファイル (mydb.tmu) で様々なデータ入力ファイル (market.txt はそのうちの 1 つ ) を処理でき るようにする方法を示しています。シェル プロンプトに、以下のように入力しま す。 rb_tmu mydb.tmu system secret < market.txt TMU では、コントロール ファイル mydb.tmu が実行されると、入力ファイルとし て market.txt が使用されます。次回にコントロール ファイル mydb.tmu を使用する とき、別の入力ファイルを指定できます。コントロール ファイルには、標準入力 ('-') を入力ファイルとして指定しておきます。ファイルのリダイレクションとパイ プについては、ご使用のオペレーティング システムのマニュアルを参照してくださ い。 UNIX 以下の例は、UNIX 名前付きパイプと tee コマンドを使用します。複数の TMU イン スタンスを実行し、1 つの入力ファイルを 1 度だけ読み込んで複数のテーブルに ロードする方法です。 Windows Windows システムでも、名前付きパイプと他社製品ソフトウェアを使って同様の操 作を行うことができます。 日別入力データが Sales.txt というファイルにあり、そのデータを Sales というテー ブルに格納する場合を例として説明します。この入力データは、Sales_Monthly と Sales_Quarterly というテーブルに格納される集約売上データを作成するためにも使 用されます。 2-10 Table Management Utility Reference Guide TMU の設定方法 TMU の複数のインスタンスを実行して、一度に 1 つの入力ファイルを読み 込み、複数のテーブルをロードします。 1. 2. 3. Sales テーブルをロードするロード スクリプトを修正し、標準入力元 (stdin) から入力データを読み込むようにします。修正されたスクリプト は、Sales.stdin.tmu というファイルに格納されます。 集約テーブルをロードするロード スクリプトを修正し、名前付きパイプ pipeM および pipeQ から入力データを読み込みます。修正されたスクリプ トは、SalesMonthly.pipeM.tmu と SalesQuarterly.pipeQ.tmu というファイ ルに格納されます。 UNIX の mkfifo ユーティリティを使用して、2 つの名前付きパイプ pipeM と pipeQ を作成します。 % mkfifo pipeM pipeQ 4. TMU の 2 つのインスタンスをバックグラウンドで開始します。これらのイ ンスタンスは、ステップ 2 で修正したロード スクリプトを使用し、それら のスクリプトは上記 2 つのパイプから入力をコントロール ファイルとして 読み込みます。 重要 : C シェルでは、大なり記号 (>) およびアンド記号 (&) は、各 rb_tmu プロセス からの出力を端末ではなく、個別のファイルに送るために使用されます。アンド記 号 (&) は、プロセスをバックグラウンドで実行します。使用中の UNIX シェルに対 応した文字を使用してください。 % rb_tmu MonthlySales.pipe_m.tmu system manager >& pipe_mout & % rb_tmu QuarterlySales.pipe_q.tmu system manager >& pipe_qout & 5. UNIX の cat コマンドを使用して入力データを読み込み、UNIX の tee コマ ンドを使用して標準出力を 2 つのパイプへ送り込み、tee コマンドの標準出 力を TMU の 3 番目のインスタンスに送り込みます。このインスタンスは、 修正された Sales ロード スクリプトをコントロール ファイルとして使用し ます。 % cat Sales.txt | tee pipeM pipeQ | rb_tmu Sales.stdin.tmu ¥ system manager >& sales_out 名前付きパイプと tee コマンドを使用すると、入力ファイルの読み取りは 1 回だけ ですが、読み取ったデータは 1 回の動作で 3 つのテーブルにロードされ、その所要 時間は 1 つのテーブルにロードする場合と同じです。さらに、バックグラウンドで ステップ 5 を実行して、3 つの出力ファイルをすべて監視できます。♦ TMU と PTMU の実行 2-11 リモート TMU の設定と構文 リモート TMU の設定と構文 リモート TMU 機能を使用すると、DBA は、ローカルのコントロール ファイルと入 力ファイルを使用して、クライアント マシンから LOAD DATA、UNLOAD、または GENERATE の操作を開始できます。TMU は、リモートのサーバ マシンで実行さ れ、その出力ファイルがクライアントに返されます。 クライアント TMU 実行ファイルの名前は rb_ctmu です。rb_ctmu を起動すると、 サーバ マシンとの接続が確立し、サーバ側のドライバ TMU プログラム (rb_drvtmu) によって、リモート操作のための rb_ptmu プロセスが開始されます。 リモート TMU の操作を行うには、以下で説明するように、クライアント マシンと サーバ マシンを正しく構成する必要があります。 rb_ctmu プログラムは、Windows プラットフォームには Client Connector Pack の一部 として、UNIX および Linux プラットフォームにはクライアント製品のインストー ルの一部として、インストールされます。また、すべてのプラットフォームで IBM Red Brick Warehouse サーバの一部としてインストールされます。rb_drvtmu プログ ラムは、すべてのプラットフォームでサーバ インストールの一部としてインストー ルされます。 クライアント TMU は、リモート サーバで TMU 操作を実行するために使用します が、rb_ctmu プログラムを使用すると、ローカルの TMU 操作も実行できます。 rb_ctmu プログラムを起動するマシンの環境設定で、TMU 操作の対象となるホスト およびデータベースを指定します。 クライアントとサーバの互換性 クライアントとサーバは、同じプラットフォームまたはオペレーティング システム で実行する必要はありません。たとえば、32 ビットの Windows クライアントを使用 して、64 ビットの UNIX サーバでのロードのリモート操作を実行できます。以下の 構成のすべてがサポートされています。 クライアント (rb_ctmu) サーバ (rb_ptmu と rb_tmu) Windows UNIX または Linux UNIX または Linux UNIX または Linux UNIX または Linux Windows Windows Windows 2-12 Table Management Utility Reference Guide クライアント構成 これらの構成には、以下の前提条件があります。 ■ ■ ■ ロード対象のバイナリ データが、サーバ マシンのフォーマットであるこ と。 アンロードするバイナリ データが、サーバ マシンのフォーマットでクラ イアントに返されること。 外部フォーマット データが、プラットフォーム間で互換性があること。 クライアント構成 環境変数 RB_CONFIG は、ファイル rbw.config のクライアント コピーの位置を示す ためにクライアント マシンで設定する必要があります。 リモート TMU 操作を行う場合のホストおよびデータベースを指定する場合は、 ODBC DSN ( データ ソース名 ) を作成することをお勧めします。この方法では、 rb_ctmu コマンド ラインで、DSN を -s オプションを使用して指定するか、環境変数 RB_DSN を設定します。 Windows プラットフォームで DSN を作成するには、ODBC コントロール パネルを 使用します。『Client Installation and Connectivity Guide』で説明しています。UNIX プ ラットフォームと Linux プラットフォームでは、DSN をユーザのファイル .odbc.ini に追加します。 DSN を作成しない場合は、環境変数 RB_HOST および RB_PATH を設定するか、-h ( ホスト ) および -d ( データベース ) の値を rb_ctmu コマンド ラインで指定します。 -h オプションを使用してリモート サーバを指定する場合は、クライアントのファイ ル rbw.config に、サーバ側のファイル rbw.config の SERVER エントリと全く同一の SERVER エントリが記述されている必要があります。例を示します。 RB_620 SERVER brick:6200 クライアント側のファイル rbw.config にある TUNE パラメータは、リモート TMU の操作に影響しません。TMU コントロール ファイルの SET コマンド ( 存在する場 合 ) と、サーバ側のファイル rbw.config の TUNE パラメータは実行時の動作を制御 します。 TMU と PTMU の実行 2-13 サーバ構成 サーバ構成 rb_ctmu を使用する前に、サーバ側のファイル rbw.config で REMOTE_TMU_LISTENER 構成パラメータが ON ( デフォルト ) に設定されている ことを確認します。 RBWAPI REMOTE_TMU_LISTENER ON このパラメータによって、サーバはリモート TMU からの要求に応答できます。リ スニング ポートの番号は、サーバ ポートに 2 を足した番号になります。たとえば、 IBM Red Brick Warehouse のインストール時にポート番号を 6200 と指定した場合、リ モートの TMU ポートは 6202 になります。 リモート TMU 機能をオフにするには、REMOTE_TMU_LISTENER を OFF に設定し てから、rbwapid デーモンを停止および再開します。このパラメータがファイル rbw.config に記述されていない場合、リモート TMU はデフォルトでオンのままにな ります。rbwapid デーモンまたはサービスを開始し、サーバがリモート TMU 要求 をリスニングしているかどうか確認する場合には、rbwlogview 出力をチェックする こともできます。 クライアント TMU は、必ずサーバ マシンの 並列 TMU (rb_ptmu) を起動します。リ モート TMU のロード操作をシリアル モードで実行する場合は、コントロール ファ イルに以下の SET コマンドを記述する必要があります。 set tmu serial mode on; サーバ マシンでの rb_drvtmu と rb_ptmu のやりとりは、ユーザには見えません。 ドライバ プログラムを設定または構成する必要はありません。 rb_ctmu の構文 クライアント TMU の構文は以下のとおりです。 rb_ctmu [options] control_file [db_username [db_password]] 2-14 Table Management Utility Reference Guide rb_ctmu の構文 オプション 大部分のオプションは、rb_tmu および rb_ptmu プログラムでサポートされている オプションと同じです。2-6 ページを参照してください。以下のオプションは、 rb_ctmu プログラムに固有のものです。これらのオプションの指定順序は特に決 まっていませんが、実行ファイル rb_ctmu に従い、コントロール ファイルよりも優 先されます。 -s <dsn> データ ソース名 (DSN)。UNIX および Linux のプラット フォームではファイル .odbc.ini で定義され、Windows プラッ トフォームではレジストリで定義されています。DSN は、 環境変数 RB_DSN を使用して設定することもできます。 DSN を使用した場合、-d <database> オプション、および環境 変数 RB_PATH の現在の設定よりも優先されます。 -h <host> RB_HOST 値。サーバ マシンのファイル rbw.config で定義し ます。この値は、環境変数 RB_HOST を使用して設定するこ ともできます。 -h オプションを使用する場合は、クライアントのファイル rbw.config またはファイル .odbc.ini に、サーバ側のファイル rbw.config の SERVER エントリと全く同一の SERVER エント リが記述されている必要があります。 -w <time_in_secs> または -waittime <time_in_secs> オプション。この値には、リモート サーバに接続する場合 のタイムアウト間隔を秒単位で指定します。最初の接続に失 敗すると、クライアント TMU では、ここで指定した待機時 間の間、再試行が行われます。値を指定しないか、または 0 秒に指定すると、接続は 1 回のみ行われ、接続できない場合 は、エラーが表示されます。 -show TMU 操作自体を実行することなく、rb_ctmu コマンドの詳 細な接続情報を表示します。コマンドで指定したオプション または現在の環境に基づいて、-show 出力では、接続に使用 される環境変数または DSN、リモート マシン名、IP アドレ ス、ポート番号、データベース名、およびデータベース ユーザが表示されます。ユーザのパスワードは表示されませ ん。 TMU と PTMU の実行 2-15 rb_ctmu の構文 リモート TMU 操作のためのコントロール ファイル rb_ctmu のコントロール ファイルは、クライアント マシンに保存し、そのファイル には、実行可能な LOAD 文、UNLOAD 文、または GENERATE 文のいずれか 1 つを 記述する必要があります。このファイルには、複数の SET 文を記述することができ ます。 以下の TMU 操作がサポートされます。 ■ ■ ■ ■ LOAD DATA UNLOAD 生成された DDL ファイルと TMU ファイルは、リモート UNLOAD 操作で はサポートされません。 GENERATE CREATE TABLE GENERATE LOAD DATA 以下の TMU 操作はリモートで実行できません。 ■ ■ ■ ■ ■ REORG SYNCH UPGRADE BACKUP RESTORE リモート TMU 機能では、テープ装置からのロード、またはテープ装置へのアン ロードは実行できません。 ユーザ名とパスワード rb_ctmu のデータベース ユーザ名とパスワード エントリは、rb_tmu の場合と同じ 規則に従います。rb_ctmu では、ユーザ名とパスワードは検証されません。検証は リモート マシンで行われます。 コマンド ラインでデータベース ユーザ名を指定する代わりに、クライアント マシ ンで環境変数 RB_USER を設定できます。 2-16 Table Management Utility Reference Guide rb_ctmu の構文 使用上の注意 クライアント TMU 構文を表示するには、システム プロンプトに、オプションを指 定せずに rb_ctmu を入力します。例を示します。 109 brick % $RB_CONFIG/bin/rb_ctmu (C) Copyright IBM Corp. 1991-2002. All rights reserved. Remote TMU Client Tool Version 06.20.0000(0)TST Usage: rb_ctmu [<Options>] <Control_file> [<Username>] [<Password>] Options: -i or -interval <nrows> Display progress every <nrows> rows. -t or -timestamp Append a timestamp to all TMU messages. -d or -database <database> Database to use. -s <DSN> Data Source Name. -h <Host> RB Host if different from RB_HOST. -w or -waittime <secs> Wait time for connection. -show Show connection information only. (No execution) Arguments: <Control_file> Path to control file to be used. <Username> User name, prompted for if not given. <Password> Password, prompted for if not given. 構文例 ■ 以下の例では、red_brick_620 という名前の DNS を使用しています。 % rb_ctmu -s red_brick_620 sales.tmu orwell george ■ 以下の例では、ホスト rb_6200、データベース aroma、および待機時間 を 10 秒に設定しています。 % rb_ctmu -h rb_6200 -d aroma -w 10 sales.tmu wolfe tom ■ 以下の例では、DSN、ホスト、またはデータベースを指定していません。 クライアント TMU では、環境変数 RB_DSN で指定されている場合はそれ を使用します。指定されていない場合は、RB_HOST で指定したホストと、 RB_PATH で指定したデータベースに接続します。 % rb_ctmu sales.tmu system manager TMU と PTMU の実行 2-17 リモート TMU 操作の概要 ■ 以下の例では、-show オプションだけが指定されています。デフォルトの 接続情報は表示されますが、ロード操作は実行されません。 brick% rb_ctmu -show sales.tmu system manager (C) Copyright IBM Corp. 1991-2002. All rights reserved. Remote TMU Client Tool Version 06.20.0000(0)TST ** INFORMATION ** (12003) Connection information for Remote TMU execution: RB_HOST Environment variable:RB_620 Machine:brick.usa.ibm.com IP Address: 8.36.53.21 Port: 6200 + 2 Database:aroma User:system リモート TMU 操作の概要 以下の手順は、リモート TMU 操作を実行するために必要なステップの概要を示し ています。 リモート TMU コマンドを実行するには 1. 2. 3. クライアント マシンで環境変数 RB_CONFIG を設定します。オプション で、変数 RB_DSN、RB_HOST、RB_PATH、および RB_USER を設定する か、適切なソース名 (DSN) を作成します。 サーバ側のファイル rbw.config で、パラメータ REMOTE_TMU_LISTENER が ON に設定されていることを確認します。 クライアント マシンで TMU コントロール ファイルを作成し、LOAD DATA、UNLOAD、または GENERATE コマンドを指定します。LOAD DATA 操作については、クライアント マシンに入力ファイルが存在するこ とを確認します。 クライアント TMU が Windows 上にあり、リモート TMU マシンが UNIX マ シンである場合は、入力ファイルと出力ファイルのパス名を UNIX フォー マットで指定します。 リモート TMU のロード操作をシリアル モードで実行する場合は、コント ロール ファイルに以下の SET コマンドを記述する必要があります。 set tmu serial mode on; 2-18 Table Management Utility Reference Guide 例 :Windows と UNIX 間のリモート TMU 操作 4. rb_ctmu プログラムに 2-15 ページで指定したオプションを付けて、コマン ド ラインからコントロール ファイルを実行します。 例 :Windows と UNIX 間のリモート TMU 操作 この例では、Windows マシンからクライアント TMU を実行して、UNIX マシンの Aroma データベースに接続する方法を示します。この例の TMU 操作は、Period テーブルに対する GENERATE CREATE TABLE コマンドです。以下の手順はすべて、 Windows クライアントで実行されます。 1. 環境変数 RB_CONFIG を、Client Connector Pack ソフトウェアとともにイン ストールされたファイル rbw.config を示すように設定します。 C:¥RedBrick¥Client32>set RB_CONFIG=¥redbrick¥client32 2. [Data Sources] (ODBC) コントロール パネルを使用して、TMU 操作が実行さ れるサーバ環境を定義するデータ ソース名 (DSN) を作成します。 3. 環境変数 RB_DSN を、新しい DSN の値に設定します。 C:¥RedBrick¥Client32>set RB_DSN=BRICK_620 4. GENERATE 操作に関する TMU コントロール ファイルを作成します。この ファイルに gen_pd.tmu という名前を付けます。 generate create table from period ddlfile '/tmufiles/period.ddl'; TMU と PTMU の実行 2-19 例 :Windows と UNIX 間のリモート TMU 操作 5. Windows コマンド ラインから rb_ctmu.exe プログラムを実行し、ステップ 4 で作成したコントロール ファイルを指定します。DSN、ホスト、または データベースを指定する必要はありません。これらは、環境変数 RB_DSN で設定済みです。 C:¥rbw620¥bin>rb_ctmu gen_pd.tmu system manager (C) Copyright IBM Corp. 1991-2002. All rights reserved. Remote TMU Client Tool Version 06.20.0000(0)TST ** INFORMATION ** (13004) TMU executing in Remote Mode. ** INFORMATION ** (1312) Generated CREATE TABLE statement for table PERIOD. ** STATISTICS ** (500) Time = 00:00:00.01 cp time, 00:00:05.18 time, Logical IO count=5, Blk Reads=0, Blk Writes=0 6. ローカル マシンの出力ファイル period.ddl の内容を確認します。 CREATE TABLE PERIOD ( PERKEY INTEGER NOT NULL UNIQUE, DATE DATE NOT NULL, DAY CHARACTER(3) NOT NULL, WEEK INTEGER NOT NULL, MONTH CHARACTER(5) NOT NULL, QTR CHARACTER(5) NOT NULL, YEAR INTEGER NOT NULL, PRIMARY KEY(PERKEY)); 2-20 Table Management Utility Reference Guide ユーザ名とパスワードを指定する USER 文 ユーザ名とパスワードを指定する USER 文 データベース ユーザ名とパスワードをコマンド ラインで入力する代わりに、コン トロール ファイルの先頭に USER 文を入れることができます。USER 文は、1 つの コントロール ファイルに 1 つしか指定できず、またファイルの先頭にある必要があ ります。 USER TMU の起動時に使用するデータベース ユーザ名を指定します。 <db_username> ユーザ名は、john、smith2、elvis などのリテラル値でも、環境変数 でもかまいません。 ユーザ名に環境変数を指定すると、その環境変数に設定されたユー ザ名が使用されます。環境変数が定義されていなければ、警告メッ セージが表示されます。TMU の起動時に有効なユーザ名が指定さ れないと、エラーが発生します。 データベース ユーザ名を構成する文字は、シングルバイト文字で も、マルチバイト文字でもかまいません。 PASSWORD データベース ユーザのパスワードを指定します。パスワードは、リ <db_password> テラル値でも環境変数でもかまいませんが、シングルバイト文字で 構成される必要があります。 パスワードに環境変数を指定すると、その環境変数に設定されたパ スワードが使用されます。環境変数が定義されていなければ、警告 メッセージが表示されます。TMU の起動時に有効なパスワードが 指定されないと、エラーが発生します。 UNIX ユーザ名やパスワードが $ で始まる場合は、環境変数と見なされます。$DBADMIN や $SECRET がその例です。♦ Windows ユーザ名やパスワードが % 記号で囲まれているか $ で始まる場合は、環境変数と見 なされます。%DBADMIN% や $DBADMIN、および %SECRET% や $SECRET が その例です。♦ 以下の USER 文は、リテラル値を使用しています。 user dbadmin password secret; TMU と PTMU の実行 2-21 ユーザ名とパスワードを指定する USER 文 以下の USER 文は、環境変数を使用しています。 オペレーティング システム ステートメント UNIX user $MY_DBNAME password $MY_PSSWD; Windows user %MY_DBNAME% password %MY_PSSWD%; user $MY_DBNAME password $MY_PSSWD; 以下の USER 文は、リテラル値と環境変数の両方を使用しています。 オペレーティング システム ステートメント UNIX user dbadmin password $MY_PSSWD; Windows user dbadmin password %MY_PSSWD%; user dbadmin password $MY_PSSWD; 2-22 Table Management Utility Reference Guide 動作を制御する SET 文とパラメータ 動作を制御する SET 文とパラメータ コントロール ファイルには、各種の機能を実行するステートメントとともに、特定 のセッションにおける TMU と PTMU の動作を指定する SET 文を指定することがで きます。たとえば、あるロード操作において、ファイル rbw.config で指定されてい るディレクトリとは別の、一時領域用のディレクトリを指定することができます。 RBW_LOADINFO_LIMIT は例外として、以下の TMU および PTMU パラメータを SET 文で制御することができます。 SET 文 コントロールの対象 LOCK WAIT、NO WAIT データベースまたは対象テーブルが ロックされた時の TMU の動作 TMU BUFFERS TMU が使用するバッファ キャッシュの サイズ INDEX TEMPSPACE TMU によるメモリおよびディスクの一 時領域の使い方 DATEFORMAT 入力データの有効な代替日付フォー マット RBW_LOADINFO_LIMIT RBW_LOADINFO システム テーブル中 に格納した履歴情報の行数 TMU MMAP LIMIT ロード操作中にプライマリ キーのイン デックスにマッピングしているメモリ の使用可能サイズ PRECOMPUTED VIEW MAINTENANCE ON、OFF すべての計算済み集約に対しての自動 集約管理の有効または無効 PRECOMPUTED VIEW MAINTENANCE ON ERROR ROLLBACK、INVALIDATE 管理できない集約をロールバックする か、無効にします。 TMU ROW MESSAGES LOAD 処理中に返されるメッセージの 警告レベルの定義 TMU VERSIONING OFF、ON、 RECOVER バージョン管理された LOAD、 REORG、および SYNCH 操作 (1/3) TMU と PTMU の実行 2-23 動作を制御する SET 文とパラメータ SET 文 コントロールの対象 TMU COMMIT RECORD INTERVAL 各コミット操作の間にテーブルにロー ドされるレコードの数 TMU COMMIT TIME INTERVAL 各コミット操作の間にデータがテーブ ルにロードされる時間 STATS ON、INFO、OFF 現在の TMU 操作に関する通知メッセー ジを表示し、統計情報をレポートしま す。 TMU BAR_UNIT_SIZE TMU バックアップの各トランザクショ ンに対してコミットされたデータの量 (2/3) 2-24 Table Management Utility Reference Guide ロック動作 SET 文 コントロールの対象 PTMU のみに影響 TMU MAX TASKS TMU INPUT TASKS TMU INDEX TASKS 再編成における入力データおよびイン デックス作成作業の数 TMU CONVERSION TASKS TMU INDEX TASKS ロード処理におけるデータ変換作業と インデックス作成作業の並列処理 TMU SERIAL MODE OFF、ON 逐次処理の使用 (3/3) 以下の SET 文の説明で示されるように、一部の SET 文はファイル rbw.config に指定 した同等のグローバル設定よりも優先されます。コントロール ファイルの SET 文 は、そのコントロール ファイルを使用する TMU セッション中の TMU の動作にだ け影響します。1 つのコントロール ファイルに複数の TMU 文が記述されている場 合 (1 つのファイルに 3 つの LOAD DATA 文と 1 つの REORG 文がある場合など ) は、 最初の LOAD DATA 文の後に挿入した SET 文がその後のすべての制御文に適用され ます。そのセッションが終了すると、各オプションの値はファイル rbw.config に指 定された値に戻ります。ファイル rbw.config に値が指定されていなければ、デフォ ルト値に戻ります。 ロック動作 TMU の動作中は、TMU がデータベースまたは対象となるテーブルを自動的にロッ クします。データベースやテーブルがすでにロックされている場合、直ちに終了す るか、あるいはロックが解除されるまで待機するかは、TMU の SET LOCK 文で選 択されている動作に応じて決まります。 TMU と PTMU の実行 2-25 ロック動作 構文 ロックされたテーブルが見つかったとき、ある特定のセッションに対して使用する 動作を指定するには、以下の構文を使用して SET LOCK 文を TMU のコントロール ファイルに記述します。 SET LOCK WAIT ; NO WAIT WAIT デフォルトの動作。すでにデータベースやテーブルがロックされてい る場合、TMU はロックが解除されるまで待機し、動作を完了させま す。 バージョン管理操作はこのモードを使用します。 NO WAIT すでにデータベースやテーブルがロックされている場合、TMU は、 データベースまたはテーブルがロック中のため動作が実行できなかっ たというメッセージを表示し、直ちに終了します。( データベース サーバのデフォルトの動作も WAIT になっています。) 重要 : ロックの待機のためにデッドロックが発生する可能性がある場合、ロック 要求は拒否され、ロックを要求した操作に制御が戻ります。デッドロックが発生す るのは、LOCK TABLE コマンドまたは LOCK DATABASE コマンドを使用するとき だけです。TMU の自動ロック動作によってデッドロックが発生することはありま せん。デッドロックの詳細については、『Administrator's Guide』を参照してくださ い。 以下の例は、SET LOCK 文を使ってロック動作を設定する方法です。 set lock no wait; 2-26 Table Management Utility Reference Guide バッファ キャッシュのサイズ バッファ キャッシュのサイズ TMU の性能は、システムの負荷やデータベースに関するその他の要因に加え、プ ログラムのバッファ キャッシュのサイズの影響を受けます。TMU バッファ キャッ シュは、デフォルト設定を使用することをお勧めします。バッファ キャッシュのサ イズは、ハードウェア、ソフトウェア、ユーザ環境を分析した上で、変更した方が 性能が向上すると判断された場合にかぎり変更してください。 構文 ある特定のセッションに対して TMU バッファ キャッシュのサイズを指定するには、 TMU のコントロール ファイルに SET 文を記述します。すべてのセッションに対し て指定するには、ファイル rbw.config の TUNE パラメータを編集します。 SET TMU BUFFERS <num_blocks> TUNE TMU_BUFFERS <num_blocks> ; <num_blocks> 8KB のブロック単位で指定します。変数 <num_blocks> の値は、32 ビット プラットフォームでは 128 ∼ 131071 の範囲の整数、64 ビッ ト プラットフォームでは 128 ∼ 8388607 の範囲の整数でなければな りません。デフォルトのバッファ キャッシュ サイズは 128 ブロック です。 重要 : この値を大幅に増やすと、性能に影響することがあるので注意してくださ い。OS とデータベース運用間の相互作用によって非常に大きなバッファ キャッ シュが発生し、かえって性能が低下することがあります。 SET 文では、ある特定のセッション中にバッファ キャッシュのサイズを増やすこと はできますが、減らすことはできません。たとえば、ファイル rbw.config または TMU のコントロール ファイルで最後に記述した SET 文によって設定されたバッ ファ キャッシュのサイズが 1024 ブロックの場合、SET 文で 512 ブロックに減らす ことはできません。 以下の例は、バッファ キャッシュのサイズを指定する方法を示しています。 ■ SET コマンド ■ ファイル rbw.config のエントリ SET TMU BUFFERS 1024; TUNE TMU_BUFFERS 1024 TMU と PTMU の実行 2-27 一時領域の管理 使用上の注意 LOAD DATA 文に OPTIMIZE OFF 構文が含まれている場合、デフォルトのバッファ キャッシュ サイズ 128 ページでは、インデックス検索を適切に処理するには不十分 な場合があります。バッファ キャッシュが不足する典型的な状況は、LOAD 操作の 終了時に統計メッセージ 500 で返される論理入出力数が、ロードのために入力する 行数の 1/2 より大きい場合です。このような状況では、バッファ キャッシュのサイ ズを増やすことにより、性能を上げることができます。 例 以下の例は、バッファ キャッシュのサイズを増やす方法です。 ■ SET コマンド ■ ファイル rbw.config のエントリ SET TMU BUFFERS 5000; TUNE TMU_BUFFERS 5000 一時領域の管理 データ ロードやインデックス作成が進むにつれて、中間結果がメモリに格納されて いきます。格納量がしきい値に達すると、ディスク ( スピル領域 ) に書き出されま す。以下のパラメータは、OPTIMIZE オプションが ON の場合に、メモリおよび ディスクの一時領域の使い方を制御します。 ■ ■ ■ ■ INDEX TEMPSPACE DIRECTORIES。このパラメータは、インデックス作 成操作で TMU で使用される一時的なディレクトリ領域を指定します。 INDEX TEMPSPACE THRESHOLD。このパラメータは、インデックス作成 のときのディスクへの書き込みサイズを指定します。 INDEX TEMPSPACE MAXSPILLSIZE。このパラメータは、スピル ファイ ルが拡張できる最大サイズを指定します。 TEMPSPACE DUPLICATESPILLPERCENT。このパラメータは、TMU で重 複行を記録するために使用される INDEX TEMPSPACE MAXSPILLSIZE の 比率を指定します。 OPTIMIZE オプションが OFF の場合、INDEX TEMPSPACE MAXSPILLSIZE は重複 行を記録するために使用できます。 この節では、SET コマンドとファイル rbw.config の TUNE パラメータについて説明 します。これらのパラメータはディスクの一時領域の割り当ておよび管理を制御し ます。TMU および PTMU の動作だけでなく、SQL DDL 文にも影響を与える一時領 域の管理の詳細については、『Administrator's Guide』を参照してください。 2-28 Table Management Utility Reference Guide 一時領域の管理 構文 ある特定のセッションに対して INDEX TEMPSPACE パラメータを指定するには、 TMU のコントロール ファイルに SET 文を記述します。すべてのセッションに対し て指定する場合は、ファイル rbw.config 内の TUNE パラメータを編集します。 , SET INDEX TEMPSPACE DIRECTORIES '<dir_path>' THRESHOLD <value> MAXSPILLSIZE <size> DUPLICATESPILLPERCENT ; <percent> RESET TUNE INDEX_TEMPSPACE_DIRECTORY INDEX_TEMPSPACE_THRESHOLD dir_path <value> INDEX_TEMPSPACE_MAXSPILLSIZE <size> INDEX_TEMPSPACE_DUPLICATESPILLPERCENT <percent> TMU と PTMU の実行 2-29 一時領域の管理 DIRECTORY <dir_path>、 ファイル一時領域に使用するディレクトリまたはディレ DIRECTORIES <dir_path>、クトリのセットを指定します。<dir_path> は、絶対パスで なければなりません。ファイル rbw.config 内のエントリ … を使用して、ディレクトリのセットを定義するには、複 数の行を入力します。ディレクトリの使用順序は内部で 決定され、ユーザはその順序を制御できないため、ディ レクトリの指定順序に効力はありません。 デフォルトのディレクトリは、UNIX では /tmp、Windows では c:¥tmp です。 THRESHOLD <value> インデックス作成時の一時領域をディスクに書き出すし きい値を指定します。複数のインデックスに関わる動作 の場合は、メモリのサイズが各インデックスに等分され ます。 サイズは、KB (K) または MB (M) で表し、数値の後に K または M を付加します。数値と単位識別子 (K、M) との 間には、スペースを入れません。たとえば、1024K、 500M のように指定します。 対応する MAXSPILLSIZE の値を指定する前に、しきい値 を指定します。しきい値は、ファイル rbw.config 内で MAXSPILLSIZE エントリよりも前に記述する必要があり ます。 しきい値を 0 (K、M) に指定すると、行数またはインデッ クス エントリ数が 200 に達した時点でファイルがディス クに書き出されます。 インデックス作成に対するデフォルトのしきい値は、 10MB (10M) です。 MAXSPILLSIZE <size> ファイル一時領域の最大容量を指定します。複数のイン デックスに関わる操作の場合は、このファイル領域が作成 中の各インデックスに等分されます。 サイズは KB (K)、MB (M)、GB (G) のいずれかで表し、数 値の後ろに K、M、G を付加します。数値と単位識別子 (K、M、G) との間には、スペースを入れません。たとえ ば、1024K、500M、8G のように指定します。 MAXSPILLSIZE のデフォルト値は 1GB (1G) です。 MAXSPILLSIZE の最大値は 2047GB です。 (1/2) 2-30 Table Management Utility Reference Guide 一時領域の管理 DUPLICATESPILLPERCENT <percent> 破棄された重複行を一時的に格納する INDEX TEMPSPACE MAXSPILLSIZE の割合を指定します。0 ∼ 100 の整数で指定してください。デフォルトは、2 パーセ ントです。 RESET インデックス作成用の TEMPSPACE パラメータを、ファ イル rbw.config で指定されている値に戻します。 (2/2) 使用上の注意 インデックス作成の一時領域パラメータを設定する際は、以下のガイドラインに 従ってください。 ■ ■ THRESHOLD の値は、MAXSPILLSIZE 値の前に指定してください。 ファイル rbw.config の INDEX TEMPSPACE パラメータ設定は、TMU のイ ンデックス作成操作だけでなく、SQL のインデックス作成操作にも影響し ます。 例 以下の例は、ある特定のセッションに対するパラメータを変更するために使用でき る SET コマンドを示しています。 SET INDEX TEMPSPACE THRESHOLD 2M; SET INDEX TEMPSPACE MAXSPILLSIZE 3G; SET INDEX TEMPSPACE DUPLICATESPILLPERCENT 5; SET INDEX TEMPSPACE DIRECTORIES '/disk1/itemp', '/disk2/itemp'; UNIX ♦ Windows SET INDEX TEMPSPACE DIRECTORIES 'd:¥itemp', 'e:¥itemp'; ♦ 以下の例は、INDEX_TEMPSPACE パラメータをファイル rbw.config の設定値に戻す 方法です。 SET INDEX TEMPSPACE RESET; TMU と PTMU の実行 2-31 日時値のフォーマット 以下に、すべてのセッションに適用されるファイル rbw.confg 内のエントリの例を 示します。 TUNE INDEX_TEMPSPACE_THRESHOLD 20M TUNE INDEX_TEMPSPACE_MAXSPILLSIZE 8G TUNE INDEX_TEMPSPACE_DUPLICATESPILLPERCENT 5 TUNE INDEX_TEMPSPACE_DIRECTORY /disk1/itemp TUNE INDEX_TEMPSPACE_DIRECTORY /disk2/itemp TUNE INDEX_TEMPSPACE_DIRECTORY /disk3/itemp UNIX ♦ TUNE INDEX_TEMPSPACE_DIRECTORY d:¥itemp TUNE INDEX_TEMPSPACE_DIRECTORY e:¥itemp TUNE INDEX_TEMPSPACE_DIRECTORY f:¥itemp Windows ♦ 日時値のフォーマット TMU の文で指定する日付定数に、代替の日付フォーマット (ANSI SQL-92 の日時 フォーマット以外 ) を使用する場合、そのフォーマットに月数の数値が含まれ、デ フォルト順序の mdy が使用されていない場合は、TMU の SET DATEFORMAT 文を 使用して、日付の入力フォーマットを指定する必要があります。LOAD DATA 文に 日付定数を使用して日付列に定数をロードし、ACCEPT 句または REJECT 句、ある いは WHERE 句の UNLOAD 文に日付値を指定することができます。SET DATEFORMAT 文は、コントロール ファイル中で使用する LOAD DATA 文または UNLOAD 文の前に記述する必要があります。 SET <format> DATEFORMAT '<format>' ; 非 ANSI SQL-92 ( 代替 ) 日付入力の月、日、年の各要素の順序を、 m、d、y の文字の組合せで指定します。デフォルトのフォーマット は mdy です。この SET 文は、SQL SET 文と同じフォーマットの組 合せを使用します。フォーマットの詳細については、『SQL Reference Guide』の SET DATEFORMAT 文の説明を参照してくださ い。 以下の制御文は、後ろに続く TMU 制御文中の定数がすべて ymd フォーマット ( 年、 月、日 ) になるように指定します。たとえば、2000/11/30 のようになります。 SET DATEFORMAT 'ymd'; 2-32 Table Management Utility Reference Guide ロード情報限界値 以下の制御文は、後ろに続く TMU 制御文中の定数がすべて dmy フォーマット ( 日、 月、年 ) となるように指定します。たとえば、30/11/2000 となります。 SET DATEFORMAT 'dmy'; ロード情報限界値 各ロード操作に関する情報は、RBW_LOADINFO システム テーブルに、1 回の操作 につき 1 行ずつ格納されます。RBW_LOADINFO_LIMIT 構成パラメータは、その テーブル内に格納できる行の最大数を指定します。これにより、システムが記録す る履歴ロード情報の量を制御できます。 RBW_LOADINGFO_LIMIT 構成パラメータは、ファイル rbw.config 内のエントリと してだけ指定できます。つまり、等価の SET 文はありません。このパラメータはす べての TMU セッションに適用されます。以下のダイヤグラムはこのエントリの構 文を示しています。 DEFAULT <value> RBW_LOADINFO_LIMIT <value> 格納される情報の行数を指定します。指定する値に上限はありませ んが、適切な数値を設定するようにしてください。デフォルト値は 256 行です。 使用上の注意 ■ ■ このパラメータを現行値より小さい値に設定した場合、ファイル RB_DEFAULT_LOADINFO は切り捨てられます。ただし、元のファイルは RB_DEFAULT_LOADINFO.save として保存されます。 RBW_LOADINFO_LIMIT の現在値は、RBW_OPTIONS システム テーブル に保存されます。 例 RBW_LOADINFO_LIMIT の値をチェックするには、RBW_OPTIONS テーブルの中 を調べます。 select option_name, value from rbw_options where option_name = 'RBW_LOADINFO_LIMIT'; OPTION_NAME VALUE RBW_LOADINFO_LIMIT 256 TMU と PTMU の実行 2-33 メモリ マップ限界 メモリ マップ限界 ディメンジョン テーブルのプライマリ キー インデックスを共有メモリにマッピン グすることにより、参照整合性検査の速度は大幅に上がります。 デフォルトでは、TMU は利用可能な共有メモリを使用して、必要なインデックス のマッピングを試みます。共有メモリの不足のために、ディメンジョン テーブルの すべてのプライマリ キー インデックスをマッピングできない場合、TMU はできる だけ多くのインデックスを利用可能な共有メモリにマッピングします。 LOAD 操作の性能を最大にするには、ディメンジョン テーブルのすべてのプライマ リ キー インデックスを共有メモリにマッピングするために十分な、共有メモリを 構成することをお勧めします。これらのインデックスを部分的にしかマッピングで きないと、ロード時間が大幅に長くなることがあります。TMU MMAP LIMIT 文ま たは TUNE TMU_MMAP_LIMIT パラメータで、TMU が利用できる共有メモリ量を 制御できます。 特定のセッションについて、メモリ マッピングするインデックスへのメモリ割当量 を制限するには、TMU のコントロール ファイルに SET 文を記述します。すべての セッションについて、メモリ マッピングするインデックスへのメモリ割当量を制限 するには、ファイル rbw.config の TUNE パラメータを編集します。構文は以下のと おりです。 SET TMU MMAP LIMIT TUNE TUNETMU_MMAP_LIMIT TMU_MMAP_LIMIT <size> <size> ; <size> LOAD または REORG 操作中に、インデックスのマッピングに利用 可能なメモリの量を示す整数値。<size> の値は、KB (K) または MB (M) で指定します。 <size> を指定しないと、デフォルトはオペレーティング システム限 界になります。 LOAD または REORG 操作の実行中、TMU は使用可能なメモリ マップの限界まで マッピングを行います。ディメンジョン テーブルのプライマリ キー インデックス がメモリ マップの限界より大きい場合、TMU はインデックスのマッピングをメモ リ マップの限界まで実行してから、バッファ キャッシュを介してインデックスの 残りにアクセスします。 2-34 Table Management Utility Reference Guide 事前計算ビューの保守の設定 事前計算ビューの保守の設定 事前計算ビュー管理は、詳細テーブルが更新されると自動的に集約テーブルを更新 します。 構文 ある特定のセッションに使用する動作を指定するには、以下の構文を使用して TMU のコントロール ファイルに PRECOMPUTED VIEW MAINTENANCE 文を記述 します。すべてのセッションに使用する動作を指定するには、ファイル rbw.config 内の OPTION パラメータを編集します。 SET PRECOMPUTED VIEW MAINTENANCE ; ON OFF OPTION PRECOMPUTED_VIEW_MAINTENANCE ON OFF RBW_OPTIONS システム テーブル内のこのパラメータの現行値を表示できます。 OPTION_NAME 列内に PRECOMPVIEW_MAINTENANCE を記述すると、それに対 する設定が VALUE 列に入ります。 エラー発生時の事前計算ビュー管理 PRECOMPUTED VIEW MAINTENANCE ON ERROR 文は、バージョン管理された データベース内で、管理中のエラーが原因で管理不能な集約テーブルが発見された ときに、データベースが行う処置を指定します。この文はバージョン管理された データベースにだけ適用されます。 TMU と PTMU の実行 2-35 行メッセージの管理 構文 ある特定のセッションに使用する動作を指定するには、PRECOMPUTED VIEW MAINTENANCE ON ERROR 文を TMU のコントロール ファイルに記述します。す べてのセッションに使用する動作を指定するには、ファイル rbw.config 内の OPTION パラメータを編集します。 SET PRECOMPUTED VIEW MAINTENANCE ON ERROR ROLLBACK ; INVALIDATE OPTION PRECOMPUTED_VIEW_MAINTENANCE_ON_ERROR ROLLBACK INVALIDATE ROLLBACK トランザクション全体がロールバックされるので、集約テーブルも 含めてすべてのテーブルを元の状態に復旧します。 INVALIDATE 違反した集約は無効とマークされます。 RBW_OPTIONS システム テーブル内のこのパラメータの現行設定を表示できます。 OPTION_NAME 列内に PRECOMPVIEW_MAINTENANCE_ON_ERROR を記述する と、それに対する設定が VALUE 列に入ります。 行メッセージの管理 LOAD 処理中に返されるメッセージや警告は特定のファイルに送るか、LOAD 処理 中に表示するかを決めることができます。これによって、それらのメッセージをど のように、いつ表示するかを管理することができます。 2-36 Table Management Utility Reference Guide 行メッセージの管理 構文 1 つのセッションに対して表示されるメッセージおよび警告の量を制御するには、 TMU のコントロール ファイルに SET 文を記述します。すべてのセッションに対し て表示されるメッセージまたは警告の量を制御するには、ファイル rbw.config 内の TUNE パラメータを編集します。構文は以下のとおりです。 SET TMU ROW MESSAGES FULL ; NONE TUNE TMU_ROW_MESSAGES FULL NONE FULL TMU の ROW MESSAGES を FULL に設定し、LOAD DATA 文の ROW MESSAGES 句でファイル名を指定した場合、すべての行レベルの警 告メッセージがそのファイルに出力されます。TMU の ROW MESSAGES を FULL に設定し、ROW MESSAGES 句を指定しない場 合、すべての行レベルの警告メッセージが標準出力に出力されます。 FULL と NONE のどちらを設定しても、メッセージはエラー レベルに 応じて、ログ ファイルにも出力されます。 NONE TMU の ROW MESSAGES を NONE に設定した場合、 ROWMESSAGES 句を指定しても無視され、警告レベルのメッセージ は生成されません。FULL と NONE のどちらを設定しても、メッセー ジはエラー レベルに応じて、ログ ファイルにも出力されます。 ロギング操作が複数回実行されると、ロード操作の速度が大幅に低下することがあ ります。ロギングの構成方法については、 『Administrator's Guide』を参照してくださ い。 TMU と PTMU の実行 2-37 バージョン管理の有効化 バージョン管理の有効化 バージョニングが有効なデータベース上では、TMU 操作がバージョン管理された トランザクションとして実行できます。SET TMU VERSIONING 文およびファイル rbw.config の OPTION TMU_VERSIONING パラメータは、TMU 操作をバージョン管 理されたトランザクションとして実行するか、ブロッキング トランザクションとし て実行するかを指定します。バージョン管理されたトランザクションを使用する と、データベースの新しいバージョンに対する書き込み実行中に、以前にコミット されたバージョンに対するクエリ (Read) 操作が実行できます。ブロッキング トラン ザクションは、関連するすべてのテーブルをロックし、トランザクションが完了す るまでクエリ操作の開始を禁止します。バージョン管理されたデータベースの設定 については、『Administrator's Guide』を参照してください。 以下の TMU の操作は、バージョン管理されたトランザクションとして実行できま す。 ■ ■ ■ オンライン LOAD 操作 REORG SYNCH 重要 : バージョン管理された各 PTMU トランザクションは、約 100 KB の共有メモ リを余分に必要とします。 ある特定のセッションに対する TMU のバージョン管理を制御するには、SET 文を TMU のコントロール ファイルに記述します。すべてのセッションに対して指定す る場合は、ファイル rbw.config 内の OPTION パラメータを編集します。 SET TMU VERSIONING OFF ; ON RECOVER OPTION TMU_VERSIONING OFF ON RECOVER TMUVERSIONING に OFF を指定すると、すべての TMU 操作がブロッキング トラ ンザクションとして実行されます。デフォルト値は OFF です。TMU VERSIONING に ON を指定すると、データはバージョン ログに直接ロードされ、TMU のすべて の LOAD および REORG 操作がバージョン管理されたトランザクションとして実行 されます。 2-38 Table Management Utility Reference Guide レコード インターバルのコミット TMUVERSIONING に RECOVER を指定すると、データはバージョン ログに直接 ロードされます。ロードがコミットすると、バージョン ログ内の変更されたブロッ クはデータベースに戻されます。PTMU を使用する場合、この操作は、ロード処理 と並行して実行されます。RECOVER オプションは対象テーブルへの排他的アクセ スを必要とするので、LOAD 操作中に対象テーブルに対する同時クエリは実行でき ません。 バージョン ログを使用すれば、LOAD 操作の安定性と復旧の可能性が高まります。 TMU VERSIONING ON と比較すると、TMU VERSIONING RECOVER はバージョン ログの使用を減らして、データベース ファイルのバック アップを容易にします。 TMU VERSIONING RECOVER は、オンラインの LOAD 操作のためにサポートされ ていますが、オフラインの LOAD または REORG 操作のためにはサポートされてい ません。LOAD 操作中に ALTER DATABASE FREEZE QUERY REVISION 文を実行し ないでください。 レコード インターバルのコミット TMU の COMMIT RECORD INTERVAL 文は、各コミット操作の間でテーブルにロー ドするレコード数を指定します。この機能は、TMU と PTMU のどちらでも利用で きます。 1 つのセッションに対する TMU COMMIT RECORD INTERVAL 文を制御するには、 TMU のコントロール ファイルに SET 文を記述します。すべてのセッションに対す る TMU COMMIT RECORD INTERVAL 文を制御するには、ファイル rbw.config 内の OPTION パラメータを編集します。 SET TMU COMMIT RECORD INTERVAL ; OFF <record_count> OPTION TMU_COMMIT_RECORD_INTERVAL OFF <record_count> <record_count> 1 回のコミットでロードされるレコード数を示す、正の整数を指 定します。各コミット実行後、ロード操作が <record_count> に指 定されたレコード数に達するまで続行されると、次のコミットが 実行されます。値に 0 を指定すると、レコード インターバルは無 効となり、OFF ( デフォルト ) を指定した場合と等しくなります。 TMU と PTMU の実行 2-39 コミット タイム インターバル 使用上の注意 ■ ■ ■ ■ ■ レコード インターバルのコミット操作が終了するごとに、TMU は、ロー ドされた行数を示す通知メッセージを表示します。現在のトランザクショ ンが中止されると、データベースは最後に正常終了したコミット インター バルの時点へロールバックされます。 TMU COMMIT RECORD INTERVAL 文は、TMU VERSIONING が ON また は RECOVER に設定されている場合にだけ有効です。VERSIONING が OFF に設定されている場合、この文は無効です。 OPTIMIZE ON でバージョン管理されたロードを実行する場合は、各コ ミット操作でインデックスのマージが必要となります。INDEX TEMPSPACE パラメータの値によっては、インデックス作成フェーズで発 生するマージが多くなり、ロード操作が 1 つのトランザクションとして実 行された場合よりもインデックスの効率が悪くなります。 TMU COMMIT TIME INTERVAL 文と組み合わせて使用する場合、どちらか 一方の条件が満たされた時点でコミットが実行されます。コミット実行 後、両コマンドのカウンタがリセットされ、次のインターバル (TIME また は RECORD) に達するまでロードが続行されます。 PRECOMPUTED_VIEW_MAINTENANCE ON 文と組み合わせて使用する場 合、コミットを実行するごとに、すべての事前計算ビューが自動的に管理 されます。したがって、事前計算ビューは有効のまま保たれ、詳細テーブ ルのデータとの同期が維持されます。 コミット タイム インターバル TMU COMMIT TIME INTERVAL 文は、各コミット操作間にデータがテーブルにロー ドされる時間を、分単位で指定します。この機能は、TMU と PTMU のどちらでも 利用できます。 1 つのセッションに対する TMUCOMMIT TIME INTERVAL 文を制御するには、TMU のコントロール ファイルに SET 文を記述します。すべてのセッションに対する TMU COMMIT TIME INTERVAL 文を制御するには、ファイル rbw.config 内の OPTION パラメータを編集します。 SET TMU COMMIT TIME INTERVAL ; OFF <minutes> OPTION TMU_COMMIT_TIME_INTERVAL OFF <minutes> 2-40 Table Management Utility Reference Guide コミット タイム インターバル <minutes> ロード操作でコミットが実行される間隔を示す正の整数を ( 分単 位で ) 指定します。各コミット実行後、指定した時間 (<minutes>) に達するまでロード操作が続行されると、次のコミットが実行さ れます。この値に 0 を指定すると、タイム インターバルが無効と なって、OFF ( デフォルト ) を指定した場合と同じになります。 TMU COMMIT TIME INTERVAL 文で指定する時間は、トランザク ションの開始時点からコミット操作の開始時点までの時間です。 このコミット操作にはやや時間がかかる可能性があります。 使用上の注意 ■ ■ ■ ■ ■ タイム インターバルのコミット操作が終了するごとに、TMU は、ロード された行数を示す通知メッセージを表示します。現在のトランザクション が中止されると、データベースは最後に正常終了したコミット インターバ ルの時点へロールバックされます。 TMU COMMIT TIME INTERVAL 文は、TMU VERSIONING が ON または RECOVER に設定されている場合にだけ有効です。VERSIONING が OFF に 設定されている場合、この文は無効です。 OPTIMIZE ON でバージョン管理されたロードを実行する場合は、各コ ミット操作でインデックスのマージが必要となります。INDEX TEMPSPACE パラメータの値によっては、インデックス作成フェーズで発 生するマージが多くなり、ロード操作が 1 つのトランザクションとして実 行された場合よりもインデックスの効率が悪くなります。 TMU COMMIT RECORD INTERVAL 文と組み合わせて使用する場合、どち らか一方の条件が満たされた時点でコミットが実行されます。コミット実 行後、両コマンドのカウンタがリセットされ、次のタイム インターバルま たはレコード インターバルに達するまでロードが続行されます。 PRECOMPUTED_VIEW_MAINTENANCE ON 文と組み合わせて使用する場 合、コミットを実行するごとに、すべての事前計算ビューが自動的に管理 されます。したがって、事前計算ビューは有効のまま保たれ、詳細テーブ ルのデータとの同期が維持されます。 TMU と PTMU の実行 2-41 コミット タイム インターバル 例 以下に、バージョン管理されたデータベース Aroma のテーブル Sales 用コントロー ル ファイルに、LOAD DATA 文を指定した例を示します。コミット インターバルは 20,000 レコードごとに設定されています。以下に、TMU のコントロール ファイル の記述を示します。 set tmu versioning on; set tmu commit record interval 20000; load data inputfile '$RB_CONFIG/sample_input/aroma_sales.txt' recordlen 86 insert into table sales ( perkey position(2) integer external(11) nullif(1)='%', classkey position(14) integer external(11) nullif(13)='%', prodkey position(26) integer external(11) nullif(25)='%', storekey position(38) integer external(11) nullif(37)='%', promokey position(50) integer external(11) nullif(49)='%', quantity position(62) integer external(11) nullif(61)='%', dollars position(74) decimal external(12) radix point '.' nullif(73)='%'); 2-42 Table Management Utility Reference Guide コミット タイム インターバル 以下の例は、上記の TMU 操作の出力を示しています。 ** STATISTICS ** (500) Time = 00:00:00.01 cp time, 00:00:00.00 time, Logical IO count=0 ** STATISTICS ** (500) Time = 00:00:00.01 cp time, 00:00:00.00 time, Logical IO count=0 ** INFORMATION ** (366) Loading table SALES. ** INFORMATION ** (8555) Data-loading mode is INSERT. ** INFORMATION ** (8707) Versioning is active. ** INFORMATION ** (8710) Interval commit set to 20000 records. ** INFORMATION ** (352) Row 3 of index SALES_STAR_IDX is out of sequence. Switching to standard optimized index building. Loading continues... ** INFORMATION ** (8708) Performing interval commit... ** INFORMATION ** (513) Starting merge phase of index building SALES_STAR_IDX. ** INFORMATION ** (367) Rows: 20000 inserted. 0 updated. 0 discarded. 0 skipped. ** INFORMATION ** (8709) Commit complete. Loading continues... ** INFORMATION ** (8708) Performing interval commit... ** INFORMATION ** (513) Starting merge phase of index building SALES_STAR_IDX. ** INFORMATION ** (367) Rows: 40000 inserted. 0 updated. 0 discarded. 0 skipped. ** INFORMATION ** (8709) Commit complete. Loading continues... ** INFORMATION ** (8708) Performing interval commit... ** INFORMATION ** (513) Starting merge phase of index building SALES_STAR_IDX. ** INFORMATION ** (367) Rows: 60000 inserted. 0 updated. 0 discarded. 0 skipped. ** INFORMATION ** (8709) Commit complete. Loading continues... ** INFORMATION ** (315) Finished file /redbrick/sample_input/aroma_sales.txt. 69941 rows read from this file. ** INFORMATION ** (513) Starting merge phase of index building SALES_STAR_IDX. ** INFORMATION ** (367) Rows: 69941 inserted. 0 updated. 0 discarded. 0 skipped. ** STATISTICS ** (500) Time = 00:00:29.21 cp time, 00:00:33.73 time, Logical IO count=1044 ここでは、4 回コミット操作が実行されたことに注意してください。20,000、 40,000、60,000、69,941 レコードを挿入後に各 1 回ずつです。 TMU と PTMU の実行 2-43 ロード統計情報の表示 ロード統計情報の表示 SET STATS 文を使用して、現在の TMU セッションに対する統計情報レポートを作 成できます。以下の構文ダイヤグラムは、SET STATS 文の構造を表しています。 SET STATS ON INFO OFF ON 各ロード操作の統計情報の要約を返します。 INFO INFO 設定は、ON 設定で表示されるのと同じ統計情報以外に、事 前計算ビュー管理中に生成されたサーバ メッセージなど、ロード 操作に関する追加情報を返します。 OFF 統計情報のレポートを作成しません。デフォルト設定は OFF で す。 バックアップおよび復元 (BAR) ユニット サイズ BAR ユニット サイズは、個々のバックアップ ファイルと XBSA オブジェクトの推 奨最大サイズを表します。ただし、1 つの PSU に対するバックアップ ブロックのサ イズが、BAR ユニット サイズを超えている場合、このサイズは適用されません。1 つの PSU のバックアップ ブロックは、複数のバックアップ ファイルまたは XBSA オブジェクトに分けることはできませんが、複数の PSU のブロックを、1 つのバッ クアップ ファイルまたは XBSA オブジェクトに入れることはできます。 SET BAR_UNIT_SIZE <size> K|M|G TUNE BAR_UNIT_SIZE <size> K|M|G 2-44 Table Management Utility Reference Guide ; 外部バックアップおよび復元の動作 <size> K | M | G バックアップ ファイルの最大サイズを、KB (K)、MB (M)、または GB (G) で指定します。この最大サイズは、1 つの PSU のバック アップ データが指定したサイズを超えた場合には適用されませ ん。このパラメータのデフォルト値は 256 MB です。このパラメー タの最小値は 1 MB です。 BAR ユニット構成の詳細については、8-15 ページを参照してください。 外部バックアップおよび復元の動作 1 つのデータベースについて外部のフル バックアップと TMU インクリメンタル バックアップを併わせてサポートするには、外部バックアップ操作の実行直前に SET FOREIGN FULL BACKUP コマンドを実行します。このコマンドはバックアップ セグメントをリセットして、信頼できる外部バックアップが作成されることを示し ます。次に、TMU フル バックアップの実行後と同じように TMU インクリメンタル バックアップを続けて実行できます。外部バックアップの詳細については、 8-20 ページを参照してください。 同等の機能を持つ SET FOREIGN FULL RESTORE コマンドは、外部の完全復元操作 をサポートします。このコマンドは、外部復元の実行直後、かつ復元されたデータ ベースに対して接続や変更が加えられる前に出します。外部復元操作の詳細につい ては、9-11 ページを参照してください。 SET FOREIGN FULL BACKUP ; SET FOREIGN FULL RESTORE ; SET FOREIGN FULL BACKUP コマンドおよび SET FOREIGN FULL RESTORE コマ ンドには、それぞれに BACKUP_DATABASE タスク権限と RESTORE_DATABASE タ スク権限が必要です。 TMU と PTMU の実行 2-45 REORG タスク REORG タスク 以下の文は、REORG 操作の入力タスク数およびインデックス作成タスク数を制御 します。 ■ ■ ■ SET TMU MAX TASKS。入力タスクおよびインデックス作成タスクに割り 当てられるタスク数の上限を指定します。MAX TASKS 文で指定する合計 タスク数は、2 以上にする必要があります。 SET TMU INPUT TASKS。対象テーブルのスキャンに割り当てられるタス ク数を指定します。変換タスク数は必ず入力タスク数と等しくなるため、 このオプションは変換タスク数も同時に制御します。 SET TMU INDEX TASKS。インデックスに割り当てられるタスク数を指定 します。 SET TMU INPUT TASKS 文と SET TMU INDEX TASKS 文は、SET TMU MAX TASKS 文と組み合わせて使用しないでください。 構文 以下に、SET TMU TASK 文、またはファイル rbw.config のパラメータ TUNE TMU_TASKS の構文ダイヤグラムを示します。 SET TMU MAX TASKS <num_tasks> TMU INPUT TASKS TMUINDEX TMU INDEX TASKS TASKS TUNE TMU_MAX_TASKS TMU_INPUT_TASKS TMU_INDEX_TASKS 2-46 Table Management Utility Reference Guide <num_tasks> ; PTMU だけを使用した並列ロード タスク <num_tasks> タスク数を示す整数。<num_tasks> に 0 を指定すると、 REORG 操作はデフォルト動作に戻ります。 警告 : タスク数が多すぎると、REORG 操作で指定された入力タスクまたはイン デックス作成タスクは割り当てられないことがあります。 例 以下の例は、ある特定のセッションに対するパラメータを変更するために使用でき る SET 文を示しています。 SET TMU MAX TASKS 5; SET TMU INPUT TASKS 3; SET TMU INDEX TASKS 2; 以下に、すべてのセッションに適用されるファイル rbw.confg 内のエントリの例を 示します。 TUNE TMU_MAX_TASKS 5 TUNE TMU_INPUT_TASKS 3 TUNE TMU_INDEX_TASKS 2 PTMU だけを使用した並列ロード タスク PTMU では、データをロードするときに、(1 つの CPU 上でも ) 複数のタスクを使用 してロード操作のデータ変換とインデックス作成を実行することができます。ユー ザは、サイト リソースと作業負荷の要件に基づき、データ変換とインデックス作成 に対する並列処理量を制御することができます。データ ロードの並列処理方法は、 3-8 ページ「データ ロードの処理ステージ」を参照してください。 構文 1 つのセッションについて PTMU 並列処理パラメータを設定するには、以下に示す 一方または両方の SET 文を PTMU のコントロール ファイルに記述します。すべて のセッションについて PTMU 並列処理パラメータを設定するには、ファイル rbw.config 内の TUNE パラメータを編集します。 TMU と PTMU の実行 2-47 PTMU だけを使用した並列ロード タスク SET TMU CONVERSION TASKS <num_tasks> ; SET TMU INDEX TASKS <num_tasks> ; TUNE TMU_CONVERSION_TASKS <num_tasks> TUNE TMU_INDEX_TASKS <num_tasks> TMU CONVERSION 入力データを、プラットフォーム別の内部フォーマットに変換 TASKS するタスク。また、これらのタスクは、一意性の確認と、参照 整合性のチェックも行います。タスク数には、実際に使用する タスクの数を指定します。デフォルト値は、マシン上のプロ セッサ数 ( ハードウェアから判定 ) の半分です。 TMU INDEX TASKS ロードするデータに応じて、インデックスのエントリを重複可 能なインデックスに変換するタスク。重複可能なインデックス には、1 つしか関連タスクを割り付けることができません。こ のパラメータには、すべての重複可能なインデックスの処理に 使用できるタスクの最大数を指定します。実際に使用されるタ スクの数は、重複可能なインデックスの数とこのパラメータに 指定した数の少ない方です。デフォルト値は、重複可能なイン デックス 1 つ当たり 1 タスクです。 このパラメータは、使用するインデックス タスクをデフォル ト値より少なくする場合に使います。 このパラメータは、インデックスのエントリを一意のインデッ クスに変換するタスクには影響しません。 <num_tasks> タスク数を示す整数。 2-48 Table Management Utility Reference Guide 逐次モード動作 (PTMU のみ ) 例 以下の例は、SET 文と TUNE パラメータ エントリの使用方法を示しています。 特定の PTMU セッションについて、コントロール ファイルから並列処理を制御す る場合は、以下のように入力します。 set tmu conversion tasks 5; set tmu index tasks 8; ファイル rbw.config を使用して、すべての PTMU セッションに対する並列処理を制 御するには、以下のように入力します。 TUNE tmu_conversion_tasks 5 TUNE tmu_index_tasks 8 例 TMU の CONVERSION TASKS パラメータの効果を説明するために、システムのプ ロセッサ数を 8 とします。デフォルト設定では、そのうち 4 つが変換タスクに使用 されます。4 つより多くのプロセッサを使用する場合は、TMU CONVERSION TASKS パラメータに 4 より大きな値を設定してプロセッサ数を増やします。 例 TMU INDEX TASKS パラメータの効果を説明するために、重複可能なインデックス の数を 5 とし、TMU INDEX TASKS が 3 に設定されているとします。この場合、3 つのタスクが使用され、一部のタスクで複数のインデックスが並列処理されます。 重複可能なインデックスが 5 つあって、TMU INDEX TASKS が 6 に設定されている 場合、重複可能なインデックス 1 つ当たり 1 つのタスク、つまり合計 5 つのタスク が使用されます。 逐次モード動作 (PTMU のみ ) PTMU を逐次モードで実行させて、並列処理を使用させないようにすることができ ます。この場合、PTMU は TMU として効果的に動作します。この機能は、並列処 理のための資源の消費とオーバーヘッドを回避したい場合に便利です。PTMU の代 わりに TMU を使用することもできますが、PTMU を逐次モードで使用すると、 PTMU では複数の操作を 1 つのコントロール ファイルに統合して実行させることが できます。コントロール ファイルには、逐次モードで実行する操作に加え、並列 モードで実行する操作も指定します。 TMU と PTMU の実行 2-49 逐次モード動作 (PTMU のみ ) 重要 : TMU の SERIAL MODE パラメータは、PTMU が並列処理を使用する操作だ けに影響します。PTMU の逐次処理が通常モードである操作には影響しません。そ れらの操作は 2-51 ページ に定義されています。 特定のセッションについて、PTMU の逐次モードを制御するには、SET 文を PTMU コントロール ファイルに記述します。すべてのセッションについて PTMU の逐次 モードを制御するには、ファイル rbw.config の TUNE パラメータを編集します。 SET TMU SERIAL MODE OFF ; ON TUNE TMU_SERIAL_MODE OFF ON 例 複数の操作を実行する PTMU のコントロール ファイルがあると仮定します。ほと んどの操作は並列に実行されますが、以下の場合は逐次モードで実行した方が有利 です。 ■ ■ 小さなディメンジョン テーブルをロードする場合に、並列処理のオーバー ヘッドにより、実際の処理時間が逐次モードより長くなる場合 大きなテーブルをロードするとき、並列モードではほかのユーザの性能を 低下させ、一方で逐次モードでは、要求時間内にロードを完了できほかの ユーザに影響を与えない場合 SET SERIAL MODE 文 ( コントロール ファイル内で必要とされる場合も含めて ) は、 PTMU に並列モードと逐次モードとの切り換えを指示します。 2-50 Table Management Utility Reference Guide PTMU の効果的利用のポイント PTMU の効果的利用のポイント TMU と PTMU の機能は似ていますが、PTMU には固有の機能がいくつかあります。 これらの機能については以降の節で詳しく説明します。 並列処理を使用する動作 PTMU には、並列処理を使用する操作と逐次処理を使用する操作があります。 ■ ■ 並列処理は以下の操作に使用されます。 ❑ オンライン LOAD 操作 (INSERT、APPEND、MODIFY、UPDATE、お よび REPLACE モードの場合 ) ❑ REORG 操作 逐次処理は以下の操作に使用されます。 ❑ オフライン LOAD 操作 ❑ SYNCH、UNLOAD、および UPGRADE 操作 PTMU は、MODIFY または UPDATE モードでデータをロードする場合、ACCEPT 句 または REJECT 句での疑似列と基本列との組み合せ使用はサポートされません。そ の代わり、PTMU は逐次モードで動作します。 MODIFY または UPDATE モードでデータをロードする場合、LOAD DATA 文に以下 の項目のいずれか、またはすべてが指定されていると、PTMU の参照整合性検査は 出力タスクで実行されます。 ■ ■ ■ ■ AGGREGATE 句 AUTOROWGEN 句 RETAIN 句 基本列が 1 列含まれた ACCEPT 句または REJECT 句 データのロードに PTMU を使用して並列処理を利用する場合、APPEND モードまた は INSERT モードが使用できるときは、MODIFY モードを使用しないでください。 たとえば、空のテーブルにデータをロードするには、MODIFY モードではなく INSERT モードを使用します。既存のテーブルに対し、既存の行を修正しないで新 しい行を追加するには、MODIFY モードではなく APPEND モードを使用します。 TMU と PTMU の実行 2-51 並列ロード時の最大破棄レコード数 並列ロード時の最大破棄レコード数 PTMU は複数の入力行を同時に処理するため、ロード中に最大破棄レコード数に達 して途中で終了する場合の動作が TMU と異なる場合があります。たとえば、500 行 目の入力が破棄されることによって破棄の上限を超えたとしても、既に PTMU は、 501 行目や 502 行目の処理に入っている場合があります。501 行目や 502 行目が破棄 される際は、最大数を超えていても、各行を破棄したというメッセージが表示さ れ、破棄ファイル ( 指定した場合 ) にその行が書き出されます。最大破棄数を超え てテーブルに挿入された行は、ロード操作が終了する前に削除されます。 その他の類似の理由によりロード操作が異常終了した場合にも、同じ現象が起きる ことがあります。対象のテーブルについて設定した MAXROWS PER SEGMENT の 制限を超えた場合などです。 PTMU による自動的な行の生成 AUTOROWGEN PTMU は、並列ロード操作中の自動行作成をサポートします。ただし、自動行作成 を行うと、その操作に適用される並列処理の量が減少します。これは、参照整合性 検査と行作成をすべて 1 つのプロセスで行う必要があるためです。性能を低下させ ないためには、並列ロードで自動行作成を使用しないようにします。性能の低下は 重大な問題につながることがあります。 参照整合性に合致しない行が少ししかないと思われる大量のデータをロードするに は、AUTOROWGEN OFF を指定し、破棄ファイルを指定してデータをロードしま す。それから、AUTOROWGEN ON を指定し、破棄ファイルに書き出された行を ロードします。 重要 : 破棄処理のためにロード処理の速度が大幅に低下するので、破棄される行 数が大量になると予想される場合、この方法は適切ではありません。 2-52 Table Management Utility Reference Guide PTMU と複数のテープ装置の併用 PTMU と複数のテープ装置の併用 UNIX 一部の UNIX システムでは、PTMU と複数のテープ装置の併用をサポートしていま せん。♦ PTMU を複数のテープ装置 (8 ミリ装置など ) と併用する場合、オペレータの介入な しに、データベースにデータを連続的にロードすることができます。以下の句をコ ントロール ファイルに記述し、ファイル名と各装置名を指定してください。 INPUTFILE '<filename>' TAPE DEVICE 'device_name[,…' 以下の例は、PTMU に使用する複数のテープ装置を記述し、ロードする方法です。 コントロール ファイルに以下の行を記述すると、テープ装置 tx0 および tx1 から データがロードされます。 INPUTFILE 'myfile' TAPE DEVICE '/dev/rmt/tx0,/dev/rmt/tx1' tx0、tx1 の順にすべてのデータをロードしてもファイルの終わりに達しなければ、 PTMU は一時停止し、次のテープをロードするように要求します。テープ装置 tx0 に次のテープをロードします。 PTMU と 3480/3490 複数テープ装置の併用 UNIX 3480/3490 テープ装置は、一部の UNIX システムでは利用できません。♦ PTMU を 3480 または 3490 複数テープ装置と併用する場合は、以下の句をコント ロール ファイルに記述して、装置名と、各テープ装置に対するカートリッジの範囲 を指定します。 INPUTFILE '<filename>' TAPE DEVICE '<device_name>[(<start><end>)][,…' コントロール ファイルに以下の行を記述すると、3480/3490 テープ装置の tf0 および tf1 からデータがロードされます。 INPUTFILE myfile' TAPE DEVICE '/dev/rmt/tf0(1-3), /dev/rmt/tf1(1-3)' tf1 からすべてのデータをロードしてもファイルの終わりに達しなければ、PTMU は 一時停止し、次のテープをロードするように要求します。 TMU と PTMU の実行 2-53 PTMU と 3480/3490 複数テープ装置の併用 データは、以下の順にロードされます。 ロード順 テープ装置 カートリッジ テープ 1 tf0 1 テープ 2 tf1 1 テープ 3 tf0 2 テープ 4 tf1 2 テープ 5 tf0 3 テープ 6 tf1 3 新規カートリッジを要求するプロンプトが表示 されます テープ 8 tf1 1 テープ 9 tf0 2 2-54 Table Management Utility Reference Guide … 1 … tf0 … テープ 7 第3章 ウェアハウス データベース へのデータのロード この章について . . . . . . . . . . . . . . . . . . . . 3-5 LOAD DATA の動作 . . . . . . . . . . . . . 入力と出力 . . . . . . . . . . . . . . . データ ロードの処理ステージ . . . . . . . . 入力ステージ . . . . . . . . . . . . . 変換ステージ . . . . . . . . . . . . . メイン出力ステージおよびインデックス ステージ エラー処理とクリーンアップ ステージ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-6 3-6 3-8 3-10 3-11 3-11 3-11 データをロードする手順 . . . 3-12 . . . . . . . . . . . . . 予備的な決定 . . . . . . . . . . . テーブルのロード順の決定 . . . . . 入力データのソート . . . . . . . . 自動的な行の生成による参照整合性の維持 参照整合性に違反したレコードの破棄 生成行を参照先テーブルに追加する . 入力行の修正 . . . . . . . . . モードを組み合わせて行を追加する . AUTOROWGEN モードの指定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-14 3-14 3-15 3-16 3-16 3-17 3-19 3-21 3-22 LOAD DATA 文の作成 . . . . . . . . . . . . . . . . . 3-23 LOAD DATA の構文 . . . . . . . . . . . . . . . . . . 3-24 Input 句 . . . . . . . . . . . . . . . . . . . 3-24 . . . . . . . . . . 3-29 3-35 3-36 3-36 3-37 . . . . Format 句 . . . . . . . . . . . . . . . EBCDIC から ASCII への変換 . . . . . . . IBM 構文コード セット (CS 640) . . . . EBCDIC データをロードする 2 つの方法 . 例 : Format 句 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Locale 句 . . . . . . . . . . . . XML 入力ファイルのロケール指定 . . 使用上の注意 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-38 3-41 3-42 Discard 句 . . . . . . . . . . . . . . . 使用上の注意 . . . . . . . . . . . . デフォルト値 . . . . . . . . . . . テーブル ロック . . . . . . . . . . モードの組み合わせにおける競合 . . . . DEFAULT モードとシンプル スター スキーマ トラブルシューティング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-43 3-54 3-54 3-54 3-55 3-56 3-57 Row Messages 句 . . . . . . . . . . . . . . . . . . . . 3-57 Optimize 句 . . . . . . . . . . . . . . . . . . . . 3-59 MMAP Index 句 . . . . . . . . . . . . . . . . . . . . 3-63 Table 句 . . . . . . . . . . . . . . . . . . シリアル (SERIAL) 型列のロード . . . . . . . RETAIN と DEFAULT による選択的列更新 . . . . simple フィールド . . . . . . . . . . . . . xml_path 指定 . . . . . . . . . . . . . 集約操作 . . . . . . . . . . . . . . . 例 :Position 句 . . . . . . . . . . . . . 例 :XML データと対応するコントロール ファイル 例 :NULLIF . . . . . . . . . . . . . . 例 :Auto Aggregate . . . . . . . . . . . 例 :ROUND 関数 . . . . . . . . . . . . 連結フィールド . . . . . . . . . . . . . 定数フィールド . . . . . . . . . . . . . sequence フィールド . . . . . . . . . . . . increment フィールド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-65 3-68 3-69 3-70 3-75 3-76 3-77 3-78 3-79 3-80 3-80 3-81 3-84 3-85 3-86 Segment 句 . . . . . . . . . . . . . . . . . . . . . 3-87 Criteria 句 . . . . . 使用上の注意 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-90 3-93 Comment 句 . . . . . . . . . . . . . . . . . 3-95 . . . . . . フィールド型 . . . . . . . 文字型フィールド . . . . 外部数値型フィールド . . 3-2 Table Management Utility Reference Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-97 . 3-99 . 3-101 外部浮動小数点数値型フィールド . . . . . . . . . . パック 10 進数型フィールドおよびゾーン 10 進数型フィールド 整数バイナリ型フィールド . . . . . . . . . . . . . 浮動小数点バイナリ型フィールド . . . . . . . . . . . 日時型フィールド . . . . . . . . . . . . . . . . . . 3-103 . . 3-104 . . 3-105 . . 3-106 . . 3-107 日付時間フィールドのフォーマット マスク . . . . . サブフィールドの構成要素 . . . . . . . . . 入力フィールドを読み込むフォーマット マスク . . . . . . . . . . . . . . . . 3-109 . 3-110 . 3-113 数値フィールドの制限付き日付時間マスク . 日付時間マスクの入力データ要件 . . . . . . . . . . . . . . . . . . . . 3-116 . 3-118 SYNCH 文の作成 . . . . . . . . . . . 3-119 . . . . . . . . . 入力データのフォーマット . . . . . . . . . . ディスク ファイル . . . . . . . . . . . . 固定長フォーマットのレコード . . . . . . 可変長フォーマットのレコード . . . . . . 区切り記号付きフォーマットのレコード . . . XML フォーマット . . . . . . . . . . UNIX オペレーティング システムのテープ ファイル TAR テープ . . . . . . . . . . . . . ANSI 標準ラベル テープ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-122 . . 3-123 . . 3-123 . . 3-124 . . 3-128 . . 3-129 . . 3-131 . . 3-131 . . 3-132 フィールド型の変換 . . . . . LOAD DATA 構文の要約 . <input_clause> . . <format_clause> . . <locale_clause> . . <discard_clause> . . <rowmessages_clause> <optimize_clause> . <mmap_index_clause> <table_clause> . . <simple_field> . . xml_path . . . . <concatenated_field> <constant_field> . . <sequence_field> . . <increment_field> . <segment_clause> . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-133 . . 3-137 . . 3-137 . . 3-138 . . 3-138 . . 3-139 . . 3-139 . . 3-140 . . 3-140 . . 3-140 . . 3-141 . . 3-141 . . 3-142 . . 3-142 . . 3-143 . . 3-143 . . 3-143 ウェアハウス データベースへのデータのロード 3-3 非文字列の <criteria_clause> 文字列の <criteria_clause> . <comment_clause> . . . <field_type> . . . . . . <field_type> ( 続き ) . . . <restricted date_spec> . . 3-4 Table Management Utility Reference Guide . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-144 3-144 3-144 3-145 3-146 3-146 この章について TMU と LOAD DATA 文が記述されているコントロール ファイルを使用して、デー タ ウェアハウスにデータをロードします。 この章では、LOAD DATA 文の作成、LOAD DATA 文のフィールド指定、およびオフ ライン ロードの場合の SYNCH 文について説明します。 この章では、以下について説明します。 ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ LOAD DATA の動作 データをロードする手順 予備的な決定 LOAD DATA 文の作成 : ❑ Input 句 ❑ Format 句 ❑ Locale 句 ❑ Discard 句 ❑ Row Messages 句 ❑ Optimize 句 ❑ MMAP Index 句 ❑ Table 句 ❑ Segment 句 ❑ Criteria 句 ❑ Comment 句 フィールド型 日付時間フィールドのフォーマット マスク 数値フィールドの制限付き日付時間マスク SYNCH 文の作成 入力データのフォーマット フィールド型の変換 LOAD DATA 構文の要約 ウェアハウス データベースへのデータのロード 3-5 LOAD DATA の動作 LOAD DATA の動作 データをロードするには、データベースとロードするテーブルが存在している必要 があります。ユーティリティ プログラム (UNIX の rb_creator および Windows の dbcreate) を使用してデータベースを作成し、SQL CREATE TABLE 文を使用して、 ユーザ テーブルを定義します。ロード プロセスによって、プライマリ キーがある 各テーブルにプライマリ キー インデックスが自動的に作成されます。既存のユー ザ定義インデックスも作成されます。テーブルとインデックスの定義については、 『Administrator's Guide』および『SQL Reference Guide』を参照してください。 入力と出力 データのロードに必要な TMU への入力ファイルは、次のとおりです。 ■ ■ LOAD DATA コントロール ファイル 入力データ レコードを格納しているテープまたはディスク上のファイル データのロードからの出力は、次のとおりです。 ■ ■ ■ データベースの一部であるテーブル ファイルとインデックス ファイル 状況メッセージ、エラー メッセージ、警告メッセージ フォーマット エラー、データ整合性不良、あるいは参照整合性不良により ロードできなかったレコードまたは行を格納した破棄ファイル (ASCII また は EBCDIC フォーマット ) データ フォーマットの記述、テーブル ファイル、およびインデックス ファイルな どの、TMU とデータベース サーバが必要とする情報を格納する各種の IBM Red Brick Warehouse システム テーブルも TMU により更新されます。 TMU はテーブルの定義に基づき、すべてのプライマリ キーにインデックスを自動 的に作成します。ロード時に存在しているユーザ定義のインデックスの作成 更新も 行います。 3-6 Table Management Utility Reference Guide 入力と出力 64 ビット プラットフォームで実行して、ラージ ファイル ( 大きさが 2 GB を超える ファイル ) 用にファイル システムを有効にしている場合は、2 GB を超える入力ファ イルや出力ファイルをロード、またはアンロードすることができます。2 GB を超え る入力ファイルをロードできるのは、そのファイルがディスク フォーマット内に収 まっている場合だけです。 オフライン セグメントにデータをロードした場合は、新たにロードしたセグメント を、SYNCH SEGMENT 文を使ってテーブルおよびインデックスと同期させること でロード操作が完了します。 次にあげる TMU の機能は、データのロードやコピーに利用できます。 ■ ■ ■ Auto Aggregate モード TMU Auto Aggregate モードを使用すると、テーブル内にあるデータから自 動的に、選択された新しい入力データを集約することができます。 事前計算ビュー保守機能 事前計算ビュー保守機能では、詳細テーブルが更新されるたびに集約テー ブルが自動的に更新されるため、詳細テーブルと集約テーブルの同期が保 証されます。詳細テーブルのいずれかのセグメントがオフラインになって いるときは、保守は実行されません。詳細については、『IBM Red Brick Vista User’s Guide』を参照してください。 Automatic Row Generation 機能 TMU の Automatic Row Generation 機能は、標準化されていないデータまた は不正な値が混在するデータを高速にロードする場合に便利です。この機 能は、参照整合性に違反した入力行を破棄せずに、次の動作をします。 ❑ 参照整合性に必要な行を生成して参照先テーブルに追加し、入力行を 破棄せずにロード中のテーブルに追加する。 ❑ 参照整合性に違反した値を、指定した参照先テーブルのデフォルト値 に置き換えてその行をテーブルに追加する。 ❑ 参照先テーブルごとに上記の動作を指定し、必要に応じて参照先テー ブルに行を生成したり、修正された行をテーブルにロードする。 ウェアハウス データベースへのデータのロード 3-7 データ ロードの処理ステージ ■ 行を生成中の詳細ディメンジョン テーブルで定義されている事前計算 ビューは維持できません。事前計算ビュー保守機能がオンになっている と、そのようなビューには無効のマークが付けられます。 Automatic Row Generation 機能の詳細は、3-16 ページ「自動的な行の生成に よる参照整合性の維持」を参照してください。 Copy Management ユーティリティ Copy Management ユーティリティ (rb_cm) を使用すると、企業内に存在す る複数のデータベース間でデータを移動できます。rb_cm の詳細は、第 7 章「コピー管理オプションによるデータのコピー」を参照してください。 データ ロードの処理ステージ データを入力ファイルからデータベースにロードする場合、ロード プロセスにはい くつかの処理が含まれます。各ステージで発生している動作を理解すると、ボトル ネックとリソース競合を適切に取り除くことができ、データのロードに要する時間 を短縮できます。 ロード操作は、次のステージで構成されます。 ■ ■ 入力ステージ ❑ TMU 制御文の構文を検証する。 ❑ テーブルとセグメントをロックする。 ❑ 入力レコードを読み込み、エラー処理 / クリーンアップ ステージの進 捗状況とステータスをモニタする。 ❑ PTMU の場合、変換ステージおよびインデックス ステージに対する追 加処理を設定する。 変換ステージ ❑ 入力レコードを内部的な行フォーマットに変換し、データを検証す る。 ❑ 参照整合性をチェックする (Automatic Row Generation がオフの場合 )。 3-8 Table Management Utility Reference Guide データ ロードの処理ステージ ■ ■ ■ メイン出力ステージ ❑ 参照整合性を検査する (Automatic Row Generation がオンの場合 )。 ❑ 行データをテーブルに書き込む。 ❑ 入力を一意的なインデックスに書き込み、一意性を検査する。 非一意インデックス用の追加インデックス ステージ ❑ エントリを非一意インデックスに書き込む。 エラー処理とクリーンアップ ステージ ❑ エラーを処理する。 ❑ インデックスの作成を完了する。 ❑ 進捗状況と状態を、入力ステージに通知する。 TMU では、すべてのステージを制御する単一プロセスが使用されます。行は小さ なバッチにされ、1 つのステージで 1 つのバッチの処理が終了してから、次のバッ チの処理が開始されます。 PTMU は、並列処理機能を備えており、次の 2 つの方法により性能を改善します。 ■ ■ 各ステージごとに別のプロセスを使用し、パイプラインを作成します。パ イプラインにより、行のバッチをあるステージから次のステージに渡し、 行の複数バッチを同時に処理できます。 単一 CPU しか備えていないシステムの場合も、複数プロセスは I/O および CPU 重複使用による利点を享受でき、ロード時間が減少します。 複数 CPU を備えたシステムの場合、PTMU は、変換プロセスおよび出力プ ロセスの作成を追加して、パイプラインのスループットをさらに改善でき ます ( ユーザは、追加プロセスの数を定義できます )。 ウェアハウス データベースへのデータのロード 3-9 データ ロードの処理ステージ 図 3-1 は、PTMU の複数プロセスが提供するロード操作および追加並行処理の各ス テージのシーケンスを示します。TMU は、全ステージに単一プロセスを使用しま す。 図 3-1 PTMU による複数プロセス LOAD DATA の処理シーケンス 入力ステージ 入力 プロセス コントロール ファイル システム テーブル 入力レコード 変換 プロセス タスク タスク PK インデックス 重複可能な インデックス セグメント システム テーブル プロセス 主要 I/O 変換 ステージ データおよび一意 インデックス セグメント 凡例: メイン出力 ステージ メイン出力 プロセス 状態 / 制御フロー 各ステージの追加プロセス インデックス ステージ インデックス インデックス インデックス プロセス タスク クリーンアップ エラーおよび ステージ エラー処理および クリーンアップ プロセス 入力ステージ 入力ステージでは、PTMU によって LOAD DATA 文の構文がチェックされ、排他使 用のためにテーブルまたはセグメントがロックされます。すでにテーブルがロック されている場合にロック解除を待つか処理を中止するか、TMU を指定することが できます。 3-10 Table Management Utility Reference Guide データ ロードの処理ステージ 変換ステージ 変換ステージでは、PTMU によってコード セット間の変換など、必要なデータ変換 が各レコードで実行されます。たとえば、EBCDIC から ASCII への変換、MS932 か ら EUC への変換、外部コード セットから内部 ( バイナリ ) フォーマットへの変換、 10 進数の位取りなどの変換が行われます。このステージでは、PTMU が参照整合性 を検査し (Automatic Row Generation がオフの場合 )、データと列データ型の比較、お よび切り捨て、アンダーフロー、オーバーフローの有無の検査により、データの正 常性を確認します。PTMU は複数の変換プロセスを使用するため、変換のパフォー マンスが大幅に向上しています。 メイン出力ステージおよびインデックス ステージ メイン出力ステージでは、PTMU によってデータがテーブルに書き込まれ、すべて の一意インデックスのエントリが作成されます。このほか、Automatic Row Generation がオンになっている場合、PTMU によってこのステージで参照整合性確 認が実行され、自動生成された行が参照先テーブルに挿入されます。さらに、この ステージで、PTMU は単一プロセスを使用して、各一意インデックスに入力しま す。 このステージで、PTMU によって非一意インデックスにエントリが作成されます。 PTMU は、デフォルトにより、非一意インデックスごとに単一インデックス プロセ スを使用するため、ロード操作中にこの部分の作業が高速になります。 エラー処理とクリーンアップ ステージ エラー処理およびクリーンアップ ステージでは、処理中断時にロードした行の追跡 などのエラー処理および処理終了後のクリーンアップを行います。さらに、パイプ ラインを使用して進捗を監視し、入力ステージにフィードバックし、処理済みレ コードのフローを制御します。PTMU は、このステージで単一プロセスを使用しま す。 ウェアハウス データベースへのデータのロード 3-11 データをロードする手順 データをロードする手順 ウェアハウス データベースのテーブルにデータをロードするには タスク 説明 テーブルのロード順を決定します。 3-14 ページ データを順序付けしてからロードするか、順序付け せずにロードするかを決定し、必要に応じてデータ を順序付けします。 3-15 ページ 入力データについて、次の項目を確認します。 入力データの方法は、 3-29 ページの Input 句の項 で説明します。ファイルや レコードのフォーマットは 3-122 ページ、入力データ からサーバ データ型へ変換 するデータ型変換は 3-133 ページで説明します。 ■ 入力データの媒体 ( ディスク、TAR あるいは標準 ラベル テープ、または標準入力のいずれか ) ■ レコードの長さ ( 固定または可変 ) ■ レコードのフォーマット ( 固定長、可変長、区切 り記号付き、または XML) ■ レコード フィールドの順序とデータ型 ■ レコード フィールドとテーブル列のマッピング ■ コード セット (ASCII、EBCDIC、または XML エ ンコード ) 使用するロード モードを APPEND、INSERT、 MODIFY、REPLACE、または UPDATE のいずれか に決定します。MODIFY または UPDATE モードを 使用する場合は、AGGREGATE モードを使うこと ができます。 ロード モードは、3-29 ペー ジで説明する Format 句で指 定します。 Automatic Row Generation を使用するかどうかを決定 3-16 ページ「自動的な行の します。一部または全部の参照先テーブルとの参照 生成による参照整合性の維 整合性に違反した行を破棄しない設定ができます。 持」を参照してください。 データ整合性や参照整合性に違反したレコードを破 ファイルを破棄するかどう 棄する場合は、個別の破棄ファイルを使用するかど かは、3-43 ページで説明す る Discard 句で指定します。 うかも決定します。 ロードするテーブル上に定義されている、事前計算 ビューを自動的に管理するかどうかを決定します。 詳細については、 『IBM Red Brick Vista User’s Guide』を 参照してください。 (1/2) 3-12 Table Management Utility Reference Guide データをロードする手順 タスク 説明 行レベルの警告メッセージを表示する方法を決定し ます。 行メッセージ ファイルの選 択肢は、3-57 ページで説明 するとおり Row Message 句 で指定します。 オプティマイズ モードを使用してデータをロード するかどうかを決定します。 オプティマイズ モードは、 3-59 ページで説明する Optimize 句で指定します。 LOAD DATA 制御文を、テーブルごとにファイルに 記述します。1 つのファイルに、タイプの異なる複 数の制御文を記述することができます。 1-7 ページ「TMU のコント ロール ファイルとステート メント」を参照してくださ い。 テーブルのセグメントを指定してデータをロードす る場合は、オフライン ロードにするかどうかを決 定します。オフライン ロードの場合は、ALTER SEGMENT 操作でセグメントをオフラインにしま す。 なし LOAD DATA 文を記述しているコントロール ファイ なし ルを使い、TMU を実行します。 オフライン セグメントにデータをロードした場合 は、SYNCH 文を使って TMU を実行し、セグメン トを同期します。次に ALTER SEGMENT 操作でセ グメントをオンラインにします。 SYNCH 文は、3-119 ページ で説明します。 特定のテーブル上のロード操作の状態を検査するに RBW_LOADINFO テーブル は、RBW_LOADINFO テーブルを検索してくださ の詳細については、 い。 『Administrator's Guide』を参 照してください。 (2/2) ウェアハウス データベースへのデータのロード 3-13 予備的な決定 予備的な決定 LOAD DATA 文を作成して、データをデータベース中のテーブルにロードする前に、 下記の項目を決定してください。この項目は、文の記述方法に影響します。 ■ ■ ■ どの順序でテーブルをロードするのか 入力データは順序づけられているか、あるいは、順序づけの必要があるか どうか Automatic Row Generation を使用して参照整合性を維持するかどうか 各項目は、以後の節で説明します。 テーブルのロード順の決定 TMU によって、コントロール ファイル内の LOAD DATA 文の順にテーブルがロー ドされます。1 つの LOAD DATA 文では、1 つのテーブルしかロードできません。 テーブルのロード順を制御するには、コントロール ファイルの LOAD DATA 文で テーブルのロード順を指定します。 フォーリン キーが参照しているテーブルを、フォーリン キーがあるテーブルより 前にロードしさえすれば、どの順序でテーブルをロードしてもかまいません。つま り、参照先テーブルを、参照元テーブルの前にロードするということです。たとえ ば、参照元テーブルである Sales テーブルに 3 つのフォーリン キーがある場合、そ のフォーリン キーが参照する 3 つのテーブルは Sales テーブルをロードする前に ロードする必要があります。 3-14 Table Management Utility Reference Guide 入力データのソート 入力データのソート 入力ファイルのデータをソートするかどうかを決定する際は、ソートによるデータ のロードに使用できる時間の短縮と、ソートにかかる時間およびソートされたデー タの維持管理を考慮しなければなりません。 テーブルの初期ロードの場合は、データをソートした方がロードが高速になりま す。インデックスのあるテーブルにデータをインクリメンタル ロードする場合、オ プティマイズ モードを使用すればソートの有無は重要ではなくなります。テーブル に複数の STAR インデックスがある場合、STAR インデックスとプライマリ キー イ ンデックスの両方がある場合、または複数列プライマリ キーが参照されている場合 は、データをソートしても意味がありません。IBM では、OPTIMIZE OFF の状態で ロードするには、プライマリ STAR インデックスの先行列のキー順に、入力データ をソートすることをお勧めしています。 初期ロードのデータをソートする場合、プライマリ キーの値の順に参照先テーブル のデータをソートしてください。参照元テーブル上に単一 STAR インデックスがあ る場合、STAR インデックス定義のキー順にデータをソートできます。これにより、 インデックスの効率が向上する場合があります。参照元テーブル上の単一 STAR イ ンデックスに基いて、入力データをソートする場合、CREATE STAR INDEX 文中で 最初に名前を付けられたフォーリン キー列中のデータの変化がもっとも遅くなるよ うに、ソートしてください。次に名前を付けられたフォーリン キー列中のデータの 変化が、その次に遅くなるようにします。以下、同様です。各フォーリン キー列の データの順序は、参照先テーブル中の対応するプライマリ キーのデータ順序に一致 する必要があります。複数の STAR インデックスを使用する場合、入力データの順 序を選択するのが難しくなるため、ソートの効用は減少します。 フォーリン キーになっている列のデータは、参照先テーブルのプライマリ キーの データ順と一致していれば、任意の順序でデータをソートすることができます。た とえば、参照元テーブルのフォーリン キー列の入力データを降順で照合する場合 は、参照先テーブルの対応する列の入力データも降順で照合してください。 ウェアハウス データベースへのデータのロード 3-15 自動的な行の生成による参照整合性の維持 自動的な行の生成による参照整合性の維持 Automatic Row Generation 機能 (AUTOROWGEN) を使うと、TMU は参照整合性の維 持に必要な行を追加することができます。この機能がオフの場合、TMU によって 参照整合性に違反しているレコードは破棄されます。ただし、ロードするデータが 使用済みである場合、処理に慣れていない場合、または不完全な場合には、この動 作に時間がかかったり、処理が失敗することがあります。AUTOROWGEN 機能に は、参照整合性を維持するために行を破棄する以外に次の動作を指定できます。 ■ ■ 新規行を生成し、参照先テーブルに追加する (ON モード )。 1 つ以上のフォーリン キー列の列デフォルト値で、ロードするテーブル (ターゲット テーブル ) に挿入する行を修正する (DEFAULT モード )。 ■ 1 回のロード操作において、上記の動作を組み合わせる。 このように、1 回のロード操作において参照整合性を維持する方法をテーブル単位 で選択することができます。読み込みや書き込みを行うテーブルは、ロード操作の 始めに自動的に適宜ロックされます。 rbw.config ファイルまたは LOAD DATA 文の Discard 句で AUTOROWGEN 機能を ON モードまたは OFF モードに設定することができます。ただし、DEFAULT モードま たは混合モードに設定することができるのは Discard 句でだけです。 行を生成中の詳細ディメンジョン テーブルで定義されている事前計算ビューは維持 できません。Aggregate Maintenance がオンになっていると、そのようなビューには 無効のマークが付けられます。 参照整合性に違反したレコードの破棄 AUTOROWGEN 機能が OFF ( デフォルト ) の場合は、参照整合性に違反したレコー ドがすべて破棄され、標準の破棄ファイルか、参照整合性違反用の破棄ファイルに 書き込まれます。参照先テーブルごとに破棄ファイルを作成することもできます。 3-16 Table Management Utility Reference Guide 自動的な行の生成による参照整合性の維持 生成行を参照先テーブルに追加する AUTOROWGEN 機能が ON の場合、参照先テーブルのプライマリ キー列にない値を フォーリン キー列に持つ入力行があった場合は、新規に行を生成し、参照先テーブ ルに挿入してから、その入力行をテーブルに追加します。この動作は、参照先テー ブルが参照するアウトボード テーブルにもカスケード方式で継承されます。 このモードでは、参照先テーブルに行が挿入されるにつれて、テーブルが大きくな ります。テーブルの大きさが MAXROWS PER SEGMENT 値を超えると、これらの フォーリン キー列上に作成された STAR インデックスで REORG 操作を実行する必 要がある場合があります。 生成された行の値には、テーブルの作成時に定義された各列のデフォルト値が使用 されます。 例 :AUTOROWGEN ON 図 3-2 は、AUTOROWGEN ON 機能を示します。( 太字はプライマリ キー、斜体の 太字はフォーリン キーを表します )。 図 3-2 参照先テーブルに行を追加する AUTOROWGEN ON 機能 Class Product classkey class_type class_desc classkey prodkey prod_name pkg_type Market mktkey hq_city hq_state district region Store storekey mktkey store_type store_name street city state zip Sales perkey classkey prodkey storekey promokey quantity dollars Period perkey date day week month qtr year Promotion promokey promo_type promo_desc value start_date end_date ウェアハウス データベースへのデータのロード 3-17 自動的な行の生成による参照整合性の維持 Sales テーブルには、各小売店舗で販売した製品の日別総売上が格納されています。 各店舗のマネージャは商品を自由に注文できるので、日別売上データをロードする 時には、新しい製品のエントリが Product テーブルにない場合があります。データ のロードを夜間に行い、新製品の情報を翌日に入力すれば、円滑に運用することが できます。 Product テーブルは、次のように定義されます。 create table product ( classkey integer not null, prodkey integer not null, prod_name char(30) default 'new product', pkg_type char(20), constraint prod_pkc primary key (classkey, prodkey), …; 各店舗では、製品の分類ごとに新製品に採番するための一定範囲の Prodkey 値をあ らかじめ確保しています。 以下の LOAD DATA 文は Sales テーブルに日別売上をロードする際に、Automatic Row Generation 機能を ON に設定しています。 … load data inputfile 'sales.txt' recordlen 86 insert discardfile 'sales_disc.txt' autorowgen on TMU は、新製品の売上レコードをロード中に検出すると、そのレコードを Sales テーブルに挿入し、新しい Prodkey 値に対応する行を Product テーブルに追加しま す。その行にデフォルト値が指定されていればデフォルト値を設定し、そうでなけ れば NULL を設定します。 ロード プロセス中に、次のレコードが検出されたとします。 …:01/96/d22:7:789:78:…:236:… Dollars Perkey Storekey 新しい Prodkey 値 Classkey 3-18 Table Management Utility Reference Guide 自動的な行の生成による参照整合性の維持 789 という値は、その店舗で新製品につけた値ですが、Product テーブルのプライマ リ キーには存在しません。TMU は、AUTOROWGEN 機能で次の行を Product テー ブルに挿入してから、前ページの情報を Sales テーブルに挿入します。 classkey prodkey prod_name pkg_type 7 789 new product NULL デフォルト値を実際の製品名に置き換えるという作業は残っていますが、新製品の データはすでにロードされているため、そのデータを分析することができます。追 加された新製品を見つけるには、以下のような SELECT 文を実行します。 select prodkey, product from product where product = 'new product'; 次に、NULL になっているデータを修正し、Product テーブルを更新します。 入力行の修正 Discard 句で参照先テーブルのリストに AUTOROWGEN DEFAULT モードを指定した 場合、リスト内の参照先テーブルのプライマリ キー列に存在しない値をフォーリン キー列に持つ入力行があると、そのフォーリン キー列のデフォルトに値を置き換え てから、その行がターゲット テーブルに挿入されます。このモードでは、参照先 テーブルに行は追加されません。このモードは、あまり重要でないフォーリン キー 列に例外的な値があるデータを処理する時に便利です。また、参照先テーブルの行 数を、MAXROWS PER SEGMENT の値未満にしておきたい場合にも便利です。 ウェアハウス データベースへのデータのロード 3-19 自動的な行の生成による参照整合性の維持 例 :AUTOROWGEN DEFAULT 次の例は、入力行が修正されてからロードされることによって参照整合性が保持さ れる AUTOROWGEN DEFAULT モードを示します。これは 3-17 ページに示した例の データベースです。Sales テーブルが次のように定義され、Prodkey 列にデフォルト 値が設定されています。 create table sales ( perkey integer not null, classkey integer not null, prodkey integer not null default 0, storekey integer not null, promokey integer not null, quantity integer, dollars dec(7,2), constraint sales_pkc primary key (perkey, classkey, prodkey, storekey, promokey), … ; Product テーブルに AUTOROWGEN DEFAULT モードが指定されている Sales テーブ ルでロード操作を実行するとします。Sales テーブルが参照するほかのすべての テーブルは、デフォルト動作が OFF モードです。 load data inputfile 'sales.txt' recordlen 86 insert discardfile 'sales_disc.txt' autorowgen default (product) … 次のレコードでは、Product テーブルに存在しない値が Prodkey にあります。 …:01/96/d22:7:789:78:45:36:236.56:… …:01/96/d22:7:790:78:46:42:168.72:… …:01/96/d22:7:791:78:46:143:937.25:… Perkey 3-20 Table Management Utility Reference Guide Dollars Quantity Promokey Storekey 新しい Prodkey 値 Classkey 自動的な行の生成による参照整合性の維持 Product テーブルは何も変更されませんが、最初の 2 つのレコードが以下のように Sales テーブルに追加されます。 perkey classkey prodkey storekey promokey quantity dollars 1996-01-22 7 0 78 45 36 236.56 1996-01-22 7 0 78 46 42 168.72 3 番目のレコードは破棄されます。プライマリ キーの値が、直前のレコードと同じ になるからです。Product テーブル以外の参照先テーブルとの参照整合性に違反し ているレコードは破棄されます。 モードを組み合わせて行を追加する AUTOROWGEN 機能は、ON 動作と DEFAULT 動作を組み合わせて使用することも できます。行が参照先テーブルまたは参照元テーブルのいずれに追加される場合 も、LOAD DATA 文の Discard 句で、テーブルごとに ON と OFF を指定します。 重要 : モードを組み合わせた場合、DEFAULT モードのテーブル リストに指定した 参照先テーブルを、ON モードのテーブル リストに指定した別のテーブルから参照 していると、競合エラーが発生する場合があります。競合エラーの例は、3-54 ペー ジ「使用上の注意」を参照してください。 例 :AUTOROWGEN 混合モード … 次の例は、AUTOROWGEN 混合モード操作を示します。これは 3-17 ページに示し た例のデータベースです。SALES テーブルに対する LOAD DATA 文に次の Discard 句を指定します。 … discardfile ’ales_dscd’ discards 100 autorowgen on (store, promotion) default (product) ウェアハウス データベースへのデータのロード 3-21 自動的な行の生成による参照整合性の維持 レコードが Sales テーブルにロードされると、必要に応じて Store テーブルと Promotion テーブルにも行が追加されて、参照整合性が維持されます。Store テーブ ルの外部テーブルである Market テーブルにも、必要に応じて行が追加されます。 ただし、Product テーブルの Prodkey 列に存在しないフォーリン キー値を持つレ コードがあると、レコードは Sales テーブルの Prodkey 列のデフォルト値 (0) に置き 換えられてから Sales テーブルに追加されます。また、Period テーブルの Perkey 列 に存在しない Perkey 値を持つレコードは、破棄されます。Period テーブルは、ON のテーブル リストにも DEFAULT のテーブル リストにもないため、AUTOROWGEN OFF モードで動作するからです。 AUTOROWGEN モードの指定 データ ウェアハウスのデフォルト動作は、rbw.config ファイル内にエントリがある システム デフォルトとして制御されます。 OPTION AUTOROWGEN OFF ON LOAD DATA 文の Discard 句で、ロード操作ごとに AUTOROWGEN 機能を設定する ことができます。3-43 ページ「Discard 句」を参照してください。Discard 句でこの 機能を設定すると、ロードしているテーブルが参照するテーブルごとに動作 (ON、 OFF、DEFAULT) を指定できるため、より柔軟な制御ができます。 3-22 Table Management Utility Reference Guide LOAD DATA 文の作成 LOAD DATA 文の作成 TMU の LOAD DATA 文に記述する内容とその順序は以下のとおりです。 1. 2. 3. 4. 5. 6. 7. 8. 9. 入力データを格納しているファイル ( テープ上のファイル、ディスク上の ファイル、または標準入力のいずれか )。 入力データのフォーマット ( フォーマット指定 )。 入力データのロケール ( データベース ロケールと異なる場合 )。 破棄データ処理のオプション ( 破棄レコードのファイル名とフォーマット および Automatic Row Generation 機能 )。 メッセージ指示のオプション。メッセージと警告を表示するファイル名の 指定。 オプティマイズ処理のオプション ( インデックスをオプティマイズ モード で作成するかどうかの指定 ) と破棄レコードを記録する破棄ファイル。 データのロード先テーブル、およびテーブル列に対するデータ フィールド のマップ。テーブルのオフライン セグメントも指定できます。 どの入力レコードをロードし、どれを破棄するかを決定する基準。 ロード操作やロードしたデータについてのコメント。 1 つの LOAD DATA 文では、1 つのテーブルしかロードできません。データは、テー ブルの全列または一部の列にロードすることができます。その列の名前は、フィー ルド定義と呼ばれるソース データの記述で指定します。入力ファイルのデータを使 用する場合は、フィールド定義に入力レコードのフィールドのデータ型に関する情 報を記述します。TMU がデータを自動的に生成する場合は、自動生成される入力 データに関する情報を指定します。 1 つのコントロール ファイルには複数の LOAD DATA 文を記述でき、各文は順に処 理されます。 ウェアハウス データベースへのデータのロード 3-23 LOAD DATA の構文 LOAD DATA の構文 <input_clause> p. 3-25 LOAD DATA <discard_clause> p. 3-45 row_messages_clause p. 3-58 <table_clause> p. 3-65 <segment_clause> p. 3-88 <format_clause> p. 3-30 <optimize_clause> p. 3-59 <locale_clause> p. 3-39 mmap_index_clause p. 3-63 ; <criteria_clause> p. 3-90 <comment_clause> p. 3-95 この構文ダイアグラムに表示されている句については、以後の節で詳しく説明しま す。この章の最後にある LOAD DATA 文の構文の要約を参照してください。 Input 句 TMU は、テープ ドライブ、ディスク ドライブ、およびシステム標準入力から入力 を読み取ります。Input 句には、入力データを格納している 1 つまたは複数のファイ ル、入力装置 ( テープ ドライブの場合 )、レコード番号 ( 部分的なロードの場合 ) を 指定します。1 つの LOAD DATA 文に指定するファイルは、テープ上のファイル、 ディスク上のファイル、または標準入力のいずれか 1 種類で、異なる種類のファイ ルを指定することはできません。 3-24 Table Management Utility Reference Guide Input 句 <input_clause> LOAD DATA p. 3-24 へ戻る '<filename>' INPUTFILE INDDN ' ( START RECORD '<filename>' <start_row> ) TAPE DEVICE STOP RECORD '<device_name> ' <stop_row> INPUTFILE また テーブルにロードする入力データを格納しているファイル。ファ は INDDN イル名は、オペレーティング システムのファイル指定規則に従い '<filename>' ます。ファイル名は、一重引用符で囲みます。複数ファイルを指 定する場合はカッコで囲み、各ファイル名をカンマで区切ります。 標準入力の場合は、ファイル名参照が '-' です。 INPUTFILE '-' 重要 : コントロール ファイルの LOAD DATA 文を rb_cm ユーティリティで使用す る場合は、INPUTFILE を標準入力に設定する必要があります。 ウェアハウス データベースへのデータのロード 3-25 Input 句 ファイル名には、環境変数を含めることができます。 UNIX ドル記号 ($) がファイル名の一部の場合は、その前にスラッシュ (/) を挿入し、環境変数と区別します。 INPUTFILE '$INPUT/file.1' ♦ Windows パーセント記号 (%) がファイル名の一部の場合は、その前に ¥ マーク (¥) を挿入し、環境変数と区別します。 INPUTFILE '%INPUT%¥file.1' ♦ 標準ラベル テープの場合、LOAD DATA 文内のファイル名は、大 文字、または小文字のどちらでもかまいません。テープのファイ ル名は大文字である必要があります。標準ラベル テープは、17 文 字までのファイル名をサポートします。指定したファイル名が 17 文字を超える場合、TMU では最初の 17 文字が使用されます。 TAR テープはファイル名に大文字と小文字の区別があり、LOAD DATA 文のファイル名はテープ上のファイル名と一致させる必要 があります。 3-26 Table Management Utility Reference Guide Input 句 WIN UNIX NT TAPE DEVICE テープ装置は、巻戻しテープ装置である必要があります。この句 '<device_name>' は、入力ファイルが 1 つ以上のテープに格納されている場合に使 用します。 テープ フォーマットは TAR または ANSI 標準ラベル テープのどち らでもかまいません。テープのレコード長は固定、可変のどちら でもかまいませんが、レコードがセグメント化されていないこと が条件です。テープが ANSI テープ フォーマットに準拠している かどうかが TMU によってチェックされます。TMU は、ANSI テー プ フォーマットに準拠しているかをチェックし、そうでなければ TAR テープとして扱います。テープ フォーマットの詳細について は、3-122 ページ「入力データのフォーマット」を参照してくださ い。 ファイル名リストで指定できる名前は、1 つのマルチファイル標 準ラベル テープ上のファイル名です。ただし、1 つのテープ上の 複数の TAR アーカイブ ファイルはサポートされません。この場合 は、最初のファイルだけが読み取られます。 テープ装置名は一重引用符で囲む必要があります。装置名には、 定数や環境変数を指定できます。 テープに格納されているファイル名が data_file.1 で、マウント先 テープ装置名が /dev/rmt0 の場合、input 句は以下のようになりま す。 INPUTFILE 'data_file.1' TAPE DEVICE '/dev/rmt0' テープ装置名が TAPE という環境変数に定義されている場合は、 Input 句は以下のようになります。 INPUTFILE 'data_file.1' TAPE DEVICE '$TAPE' 重要 : TAPE DEVICE パラメータは、rb_cm ユーティリティに使用するコントロー ル ファイルの LOAD DATA 文には無効です。その場合は、標準入力を指定します。 ♦ START RECORD, 入力ファイルのロード開始レコードと終了レコードを指定します。 STOP RECORD START RECORD キーワードを指定すると、指定したレコードから ロードを開始します。それ以前のレコードは、読み込みとカウン トはしますが、内容は無視します。STOP RECORD キーワードを 指定すると、指定したレコード数でロードが終了します。 デフォルト値は次のとおりです。START RECORD:1 および STOP RECORD:end-of-all-files。 ウェアハウス データベースへのデータのロード 3-27 Input 句 START RECORD 句と STOP RECORD 句は、次の場合に使用すると便利です。 ■ ■ ■ Discard 句で指定した最大破棄数に達したなどの理由でロードが中断されて しまったが、引き続きロードを行いたい場合 :START RECORD を使用し、 次にロードするレコードを指定します。START RECORD に使用する行数 は、TMU のメッセージで通知されます。 入力ファイルが大きすぎる場合:START RECORD と STOP RECORD を使い、 2 回のロードに分割します。 入力データのフォーマットや内容が不明なため、ロード スクリプトをテス トしたい場合 :STOP RECORD を使い、数行でロードを終了させます。 TMU は、以下の規則に従ってレコード数をカウントします。 ■ ■ ■ 検出したレコードだけをカウントします。たとえば、テープ #1 を使わず にテープ #2 からロードを開始した場合は、テープ #2 ( 最初に使用したテー プ ) の先頭レコードが最初のレコードになります。 ファイルやテープの終わりに達しても、カウントしたレコード数はリセッ トされません。処理中の LOAD DATA 文が終了するまで、カウントは続行 します。 START RECORD を指定すると、SEQUENCE 型に定義されたフィールドは、 入力開始前のレコードもカウントしてシーケンス値が増えていきます。た とえば、START RECORD を 10 にし、SEQUENCE (2,2) と列を指定すると、 最初にロードされるのは 10 番目のレコードで、シーケンス値は 20 になり ます。 3-28 Table Management Utility Reference Guide Format 句 この例は、固定長フォーマットのレコードが格納された market.txt という入力ファ イルを使用します。market.txt ファイル内の各レコードのフィールドは同じ位置で 開始し、終了します。フィールドは文字で区切られません。入力ファイルは、デ フォルトのディスク装置にあります。TMU は、100 番目のレコードからロードを開 始し、200 番目のレコードで終了します。 load data inputfile 'market.txt' start record 100 stop record 200 recordlen 7 replace nls_locale 'English_Canada.MS1252@Default discardfile 'mktdisc.txt' discards 1 optimize on discardfile 'mktdups.txt' into table market( mktkey integer external (4), state char (2) ); Format 句 Format 句はオプションの指定で、入力データのフォーマットを記述します。 ■ ■ ■ ■ レコード長 : 固定または可変 モード :APPEND、INSERT、MODIFY、REPLACE、または UPDATE 論理データ フォーマット : 固定長、区切り記号付き、可変長、XML、また はデータベースからのアンロード フォーマット コード セット :ASCII または EBCDIC Format 句がないということは、レコードが ASCII コード セットであること、および その長さは Table 句のフィールド定義で指定されたフィールド長から決定されると いうことを表します。 有効なフォーマット指定の組み合わせについては、3-122 ページ「入力データの フォーマット」を参照してください。 ウェアハウス データベースへのデータのロード 3-29 Format 句 <format_clause LOAD DATA p. 3-24 へ戻る APPEND RECORDLEN <n> INSERT FIXEDLEN <n> INTRA RECORD SKIP <n> REPLACE MODIFY AGGREGATE UPDATE AGGREGATE FORMAT IBM FORMAT SEPARATED BY '<c>' FORMAT IBM SEPARATED BY '<c>' FORMAT UNLOAD FORMAT VARIABLE FORMAT IBM VARIABLE FORMAT XML FORMAT XML_DISCARD RECORDLEN <n> 各レコード内のバイト数。復帰改行文字やそのほかのレコード 分離記号がない固定長レコードを表します。ファイルがバイナ リ データを含む場合、この値が必要です。ファイルに ASCII 文字や数字などの文字と外部数値データしか含まれていない場 合、復帰改行文字で区切られたデータ レコードであることを 示す値を省略することもできます。ただし、この値を含めた場 合には、<n> に復帰改行文字を含める必要があります。 RECORDLEN を FORMAT UNLOAD や FORMAT XML とともに 使用することはできません。 3-30 Table Management Utility Reference Guide Format 句 FIXEDLEN <n> VARIABLE FORMAT の場合は、固定部分の長さを表します。 FIXEDLEN <n> を指定しないと、TMU は入力レコードを行単 位で読み込みます。 FIXEDLEN を FORMAT XML とともに使用することはできませ ん。 INTRA RECORD SKIP 可変長フォーマットの場合だけ有効です。前レコードを読み込 <n> んだあと、<n> バイトをスキップするよう、読み込みプロセス に指示します。入力レコード間の復帰改行文字をスキップする 場合に追加します。 APPEND 既存テーブルにデータ行を追加するモードです。新しい行のそ れぞれが、テーブルに既存しないプライマリ キー値を持って いる必要があります。このプライマリ キー値を持っていない レコードは破棄されます。このモードの使用には、テーブルの INSERT アクセス権が必要です。 INSERT デフォルト モードです。空のテーブルにデータをロードする ロード モードです。テーブルが空でない場合は、ロード操作 が終了します。このモードの使用には、テーブルに対する INSERT アクセス権が必要です。 REPLACE テーブルの内容を置き換えるモードです。このモードの使用に は、テーブルに対する INSERT アクセス権および DELETE アク セス権が必要です。 ヒント : REPLACE モードでは、テーブルの既存データが削除されるので、注意し て使用してください。 MODIFY テーブルにデータ行を追加したり既存の行を更新するモードで す。入力行のプライマリ キーが既存の行のプライマリ キー値 と同じ場合は、既存の行が新しい行で置換されます。そうでな い場合は、入力行が新しい行として追加されます。DEFAULT キーワードと RETAIN キーワードを使用すると、指定した列の 更新ができます (3-69 ページ参照 )。このモードの使用には、 テーブルに対する INSERT アクセス権および UPDATE アクセス 権が必要です。 MODIFY モードには、LOAD DATA 文にプライマリ キー列の指 定が必要です。 ウェアハウス データベースへのデータのロード 3-31 Format 句 UPDATE テーブルの既存の行を更新するモードです。新しい行はそれぞ れ、テーブル内に既存するプライマリ キー値を持っている必 要があります。このプライマリ キー値を持っていないレコー ドは破棄されます。DEFAULT キーワードと RETAIN キーワー ドを使用すると、指定した列の更新ができます (3-69 ページ参 照 )。このモードの使用には、テーブルに対する UPDATE アク セス権が必要です。 UPDATE モードには、LOAD DATA 文にプライマリ キー列の指 定が必要です。 AGGREGATE MODIFY または UPDATE モードで、列単位の集約演算を行い ます。これらのモードでは、simple フィールド (3-70 ページ参 照 ) および increment フィールド (3-86 ページ参照 ) に集約演算 子を適用することができます。使用できる集約演算子は、 ADD、SUBTRACT、MIN、MAX、および INCREMENT です。 MODIFY AGGREGATE モードでは、入力行のプライマリ キー がテーブルの既存の行と一致すると、指定した集約演算子を 使って既存の行を更新します。入力行のプライマリ キーが既 存の行と一致しなければ、入力行を挿入し、ADD、 SUBTRACT、MIN、MAX のいずれかの集計演算子を指定した 列には、入力値が入ります。ADD、SUBTRACT、MIN、また は MAX のいずれかの集約演算子が指定されている場合は、 テーブル内の一致行からの値が必要であり、この場合はその値 がないため、その列に入力値が挿入されます。集約演算子 INCREMENT が指定されている列には増分値が挿入されます。 UPDATE AGGREGATE モードでは、入力行のプライマリ キー がテーブルの既存の行のプライマリ キーと一致しないと、入 力行を破棄します。既存の行と一致する場合は、指定した集計 演算子を使って既存の行を更新します。 集約演算の詳しい例については、付録 A 「例 :AGGREGATE モードでの TMU の使用」を参照してください。 集約演算子を、プライマリ キー列に使用することはできませ ん。 3-32 Table Management Utility Reference Guide Format 句 No FORMAT keywordレコードがすべて RECORDLEN <n> で定義された固定長であ ることを表します。RECORDLEN が定義されていないと、復 帰改行文字が見つかるまでレコードの読み込みが行われます。 バイナリ データは使用できません。固定長フォーマット レ コードの詳細については、3-123 ページ「固定長フォーマット のレコード」を参照してください。 FORMAT IBM EBCDIC コード セットのデータであることを示します。 CHARACTER フィールドと EXTERNAL フィールドは、 EBCDIC から ASCII に変換されます。整数のフィールドは、 IBM Red Brick Warehouse を実行しているシステムの内部表現に 変換されます。EBCDIC から ASCII への変換に関する詳細につ いては、IBM 顧客サポート センターに問い合せてください。 テープを使用する場合は、ANSI 標準ラベル (EBCDIC) フォー マットである必要があります。TMU は、複数ファイル テープ と複数リール ファイルを扱うことができます。入力ファイル は、テープに格納されている順序で指定しなければなりませ ん。 通常、IBM フォーマットの指定は、IBM メインフレーム シス テムで作成したファイルに使用します。 FORMAT データ レコード内のフィールドが、キャラクター <c> により SEPARATED BY '<c>' 区切られていることを示します。キャラクター <c> は、単一文 字のリテラルであり、基数点キャラクター (10 進数 ) とは別の ものを指定します。たとえば、データを感嘆符 (!) で区切る場 合、次のように指定します。 format separated by '!' タブ文字でデータを区切る場合は次のように指定します。 format separated by 'tab' ここで tab は、実際のタブ キーストロークを示し、空白スペー ス (' ') で表すこともできます。 重要 : 分離記号文字 (SEPARATED BY '<c>') は、データベース ロケール コード セッ トにより指定してください。使用する文字は、シングルバイトまたはマルチバイト 構成のいずれでもかまいません。入力データ中のセパレーターとして使用する文字 が、データベース ロケール仕様のキャラクターとして表現できない場合、入力デー タは正しく解釈されません。 ウェアハウス データベースへのデータのロード 3-33 Format 句 FORMAT IBM EBCDIC コード セットのデータであること、およびデータ レ SEPARATED BY '<c>' コード中のフィールドがキャラクター <c> により区切られる ことを示します。<c> は単一文字のリテラルです。この文字 は、基数指示キャラクター (10 進数 ) とは別にしてください。 UNLOAD フォーマット ロードするデータが、TMU の UNLOAD 文によってデータベー スから内部フォーマットでアンロードされたデータであること を示します。このフォーマット指定は、外部フォーマットでア ンロードされたデータのロードには使用できません。 UNLOAD 文の詳細については、第 4 章「テーブルからのデー タのアンロード」を参照してください。 FORMAT UNLOAD を使用する場合は、RECORDLEN キーワー ドとフィールド定義は使用できません。 Format variable, Format 以降の simple フィールドに、最低 1 つの VARLEN データ IBM variable フィールド型が指定されている場合のみ、使用します (IBM キーワードは、入力レコードが EBCIDIC であることを意味し ます )。 可変長フォーマットでは、入力レコードは固定長部分と可変長 部分で構成されます。入力レコードの固定長部分はすべて同じ 長さです。固定長の長さを指定するには、FIXEDLEN を使用 します。可変長の長さはレコードごとに異なります。 FORMAT XML 入力ファイルが XML (Extended Markup Language) 文書であるこ とを表します。TMU が Xerces-C++ パーサを使用してどのよう に XML データを解釈するかについては、3-70 ページ「simple フィールド」および 3-122 ページ「入力データのフォーマット」 を参照してください。 FORMAT XML_DISCARD 入力ファイルが、以前行われたロード操作で破棄された XML 形式ファイルであることを示します。このオプションにより、 破棄された行を再ロードすることができます。詳しくは、 3-43 ページを参照してください。 3-34 Table Management Utility Reference Guide EBCDIC から ASCII への変換 EBCDIC から ASCII への変換 FORMAT IBM オプションを使用してデータをロードする場合は、次のような制約が あります。 ■ ■ ■ ■ シングルバイトの EBCDIC コード セットだけがサポートされます。 ASCII への変換は、構文コード セット (CS 640) の範囲の EBCDIC 文字に制 限されます。該当する文字は、次に記載した表のとおりです。 TMU は CS 640 以外に、EBCDIC の感嘆符 (!) を IBMUSCanada コード セッ ト 037 の定義 (16 進数値 : 5A、10 進数値 : 90) に従って変換します。 このセクションでアドレス指定されていないほかのコード ポイントは、す べて ASCII への TMU マッピングがサポートされていません。こうした文 字をマップしようとすると予測できない結果になります。 ウェアハウス データベースへのデータのロード 3-35 EBCDIC から ASCII への変換 IBM 構文コード セット (CS 640) ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789 ( スペース ) ( 左カッコ . ( ピリオド ) ) 右カッコ " ( 二重引用符 ) = ( 等号 ) / ( スラッシュ ) > ( より大きい ) % ( パーセント ) * ( アスタリスク ) : ( コロン ) ? ( 疑問符 ) & ( アンパサンド ) + ( 正符号 ) ; ( セミコロン ) _ ( アンダースコア ) ' ( アポストロフィ ) , ( コンマ ) < ( より小さい ) - ( ハイフン ) EBCDIC データをロードする 2 つの方法 TMU で EBCDIC データをロードするには次の 2 つの方法があります。 ■ ■ Format 句にキーワード FORMAT IBM を指定する。 NLS_LOCALE 句に IBM コード セットを指定する。 FORMAT IBM 指定と NLS_LOCALE 指定は相互に排他的です。TMU 各コントロー ル ファイル内には、いずれか 1 つだけを指定してください。 3-36 Table Management Utility Reference Guide EBCDIC から ASCII への変換 CS 640 に準拠した文字だけをロードすることがわかっている場合は、FORMAT IBM 指定または NLS_LOCALE 指定のいずれも使用できますが、FORMAT IBM の方が高 性能を実現します。ただし、入力データが CS 640 準拠であるかどうかわからない 場合は、NLS_LOCALE 句を使用し、指定した言語と完全互換の EBCDIC コード セットを指定してください。ロード操作の性能は必ずしも最適化されませんが、 ロードされたデータとそのデータを使用して作成されたデータベース オブジェクト ( インデックスなど ) の両方の整合性が維持されます。 例 : Format 句 この例は、Format 句の用法を示します。Market テーブルには、入力ファイル market.txt にあるレコードによって修正された既存のデータが含まれます。 MODIFY キーワードは、market.txt のレコードのプライマリ キーと一致する行が Market テーブルに存在する場合は、その行をファイルのレコードに置き換えるよ うに指示します。一致する行が Market テーブルに存在しない場合、TMU では新規 に行を挿入します。 market.txt ファイルに固定長フォーマット レコードが格納されていないとします。 フィールド間に分離記号文字がなく、レコードはすべて同じ長さです。 RECORDLEN は、各レコードの TMU の読み込み単位をバイト数で指定します。 RECORDLEN は、Mktkey フィールドと State フィールドのバイト数を合計し、改行 文字に使用する 1 バイトを加算したものです。TMU は 7 バイトを 1 レコードとして ロードします。 load data inputfile 'market.txt' recordlen 7 modify nls_locale 'English_Canada.MS1252@Default discardfile 'mktdisc.txt' discards 1 optimize on discardfile 'mktdups.txt' into table market( mktkey integer external (4), state char (2) ); ウェアハウス データベースへのデータのロード 3-37 Locale 句 この例は、UNLOAD フォーマットでデータをロードする Format 句の用法を示しま す。フォーマットの指定もフィールドの指定もキーワード UNLOAD だけに適用さ れます。 load data inputfile 'market.txt' insert format unload discardfile 'mktdisc.txt' discards 1 optimize on discardfile 'mktdups.txt' into table market; この例は、可変長フォーマットでデータをロードする Format 句の用法を示します。 load data inputfile 'market.txt' fixedlen 6 intra rec skip 1 insert format variable … (mktkey integer external (4) state varlen external (2) Locale 句 ロケールとは言語とテリトリ固有の組合せのことです。ロケール指定は、言語、地 域、コード セット、照合順序の 4 つの要素で構成されます。IBM Red Brick Warehouse のデフォルト ロケ−ルは、次のとおりです。 English_UnitedStates.US-ASCII@binary ■ ■ ■ ■ English = 言語 United_States = 地域 US-ASCII = コード セット binary = 照合順序 3-38 Table Management Utility Reference Guide Locale 句 ロケールの別の例を示します。 Japanese_Japan.MS932@Binary German_Austria.Latin1@Default French_France.Latin1@Default Spanish_Mexico.Latin1@Spanish 重要 : バイナリ以外の照合順序値は言語学上のソートを意味します。デフォルト ロケールは、CAN/CSA Z243.4.1 Canadian order が指定するソート定義を使用します。 CAN/CSA Z243.4.1 は英語と一部の西欧言語に適用されます。 ロケールの詳細については、『Administrator's Guide』およびインストール CD-ROM の locales.pdf ファイルを参照してください。 TMU は、処理のほとんどにデータベース ロケールを使用しますが、TMU 入力ファ イルとして別のロケールを指定できます。これにより、TMU では、データがデー タベース テーブルにロードされるとき、自動的にあるコード セットから別のコー ド セットに変換されます。入力ファイルのロケールは、データベース ロケールと 異なる場合、LOAD DATA 文の Locale 句の NLS_LOCALE キーワードを使用して指 定されます。Locale 句が省略された場合、入力ロケールはデータベース ロケールと 同一と想定します。 重要 : Locale 句は単に入力ファイルそのものの内容を参照します。TMU のコント ロール ファイルで指定した、すべての情報をデータベース ロケール内で指定する 必要があります。特に、セパレーター、基数、およびエスケープ キャラクターは、 データベース ロケール コード セットを使用して指定する必要があります。入力 データ中のセパレータあるいは基数ポイントとして使用する文字が、データベース ロケール中の文字として表すことができない場合、入力データを正しく解釈できま せん。 <locale_clause> NLS_LOCALE LOAD DATA p. 3-24 へ戻る ' ' <language> _<territory> . <codeset> @<sort> XML_ENCODING ウェアハウス データベースへのデータのロード 3-39 Locale 句 NLS_LOCALE 入力データのコード セットがデータベース ロケールと 異なる場合の入力データのロケールを示します。ロ ケールは、どの文字が入力データ中の 10 進数基数ポイ ントとして解釈されるかを示しますが、RADIX POINT 定義をこの指定に優先させることができます。この定 義は、DECIMAL フィールド記述の一部として Table 句 で行われます。 '<language>_<territory>. <codeset>@<sort>' 入力ファイルのロケールの一部あるいはすべてを示し ます。ロケールは一重引用符で囲む必要があります。 ロケ−ルを構成する 4 つの要素をすべて指定する必要 はありません。 XML_ENCODING このオプションは、XML フォーマットでロードする場 合のみ適用されます。このキーワードを指定すると、 XML 入力ファイルで定義されたネイティブ エンコード が使用されます。XML ファイルのエンコード文字列は 3-41 ページ のリストに記載されている文字列のいずれ かと一致している必要があります。 ヒント : ロケールの一部を指定する場合は、すべてのセパレータ ( 下線記号、ピリ オド、および @ 記号 ) を指定する必要はありません。指定する要素の直前のキャラ クター ( 上記の例では下線記号 "_") だけを入力します。 次の規則は、指定されていないロケール要素のデフォルト値にだけ適用されます。 RB_NLS_LOCALE 環境変数で指定されたロケールと同じデフォルト値および優先 順位規則が入力ファイル ロケールに適用されます。IBM では、ロケ−ルを完全に指 定しない場合、言語は指定された要素の 1 つに指定するよう特に推奨します。そう しないと、未指定の要素に不適切なデフォルト値が設定される場合があります。 3-40 Table Management Utility Reference Guide XML 入力ファイルのロケール指定 ■ 言語だけを指定する場合、省略された要素として、指定された言語のデ フォルト値が設定されます。たとえば、ロケールを Japanese に設定する場 合、完全なロケール指定は次のようになります。 Japanese_Japan.JapanEUC@Binary 各言語のデフォルト コンポーネントのリストは、インストール CD-ROM の RELNOTES ディレクトリにある locales.pdf ファイルを参照してくださ い。テリトリだけを指定した場合、言語のデフォルトは English、コード セットは US-ASCII、照合順序はバイナリに設定されます。たとえば、ロ ケールを _Japan に設定する場合、完全なロケール指定は次のようになりま す。ただし、この指定は実際的ではありません。 English_Japan.US-ASCII@Binary ■ ■ 同様に、コード セット以外を指定しない場合、言語のデフォルトは English、テリトリのデフォルトは UnitedStates、照合順序要素のデフォル トはバイナリとなります。 最後に、ソート要素 ( 照合順序 ) 以外を指定しない場合、言語のデフォルト は English、テリトリのデフォルトは UnitedStates、コード セットのデフォ ルトは US-ASCII となります。 XML 入力ファイルのロケール指定 XML フォーマットでの TMU ロードは完全に各国対応化されます。XML 入力ファ イルのロケールは 2 種類の方法で指定できます。 ■ ■ インストール CD-ROM にある /RELNOTES/locales.pdf にリストされている とおり、IBM Red Brick Warehouse でサポートされているロケールは、標準 の language_territory.codeset@sort 文字列で指定されます。 Xerces-C++ パーサによりサポートされているエンコードは、 XML_ENCODING キーワードで指定されます。このパーサでは、次のエン コードがサポートされています。 ❑ ASCII ❑ UTF-8 ❑ ❑ ❑ ❑ ❑ UTF-16 ( ビッグ エンディアン / スモール エンディアン ) UCS4 ( ビッグ エンディアン / スモール エンディアン ) EBCDIC コード ページ IBM037 および IBM1140 ISO-8859-1 (Latin1) Windows-1252 ウェアハウス データベースへのデータのロード 3-41 使用上の注意 使用上の注意 ■ ■ ■ ■ Discard 句で指定したすべての破棄ファイルに入力ファイル ロケールが使 用されます。ただし、Optimize 句で指定した破棄ファイルにはデータベー ス ロケールが使用されます。 Criteria 句中の ACCEPT および REJECT 処理の指定はすべて、データベース ロケールを使用します。 TMU メッセージのロケールは、データベース ロケールまたは RB_NLS_LOCALE 環境変数を使用して、カレント ユーザに対して指定し たロケールのいずれかをとります。 データベースのコード セットとは異なる入力ファイルのコード セットを 指定する前に、両者間のコード セットの変換がサポートされていることを 確認してください。サポートされる言語およびコード セットの全リスト は、インストール CD-ROM の relnotes ディレクトリにある locales.pdf ファ イルを参照してください。 警告 : IBM Red Brick Warehouse は、データ紛失あるいはデータ破壊が不整合なコー ド セットの使用が原因で発生した場合のリカバリ手段を提供していません。 例 次の例は、LOAD DATA 文中で Locale 句を使用している例を示します。言語は English、テリトリは Canada、コード セットは MS1252、照合シーケンスはカナダ標 準に基づいたデフォルトの照合シーケンス方式を使用します。 load data inputfile 'market.txt' recordlen 7 modify nls_locale 'English_Canada.MS1252@Default' discardfile 'mktdisc.txt' discards 1 optimize on discardfile 'mktdups.txt' into table market( mktkey integer external (4), state char (2) ); 3-42 Table Management Utility Reference Guide Discard 句 Discard 句 データ変換、データの内容、または参照整合性のいずれかにエラーがあるか、 Criteria 句の ACCEPT および REJECT 基準によって TMU が破棄したレコードは、 1 つまたは複数の Discard ファイルに出力されます。 重要 : 3-59 ページに説明するオプティマイズ モードでロードを実行すると、 Discard 句で指定した破棄ファイルではなく、Optimize 句で指定した破棄ファイルに 重複行が出力されます。 Discard 句はオプションで、破棄ファイルについて次の情報を指定します。 ■ ■ ■ 破棄ファイル名 参照整合性に違反したレコードと、データ整合性に違反したレコード ( データ変換、データ内容、または ACCEPT および REJECT 基準による違 反データ ) を異なるファイルに破棄するかどうか。 参照先テーブルごとに破棄ファイルを指定し、参照整合性に違反したレ コードをさらに分けるかどうか。1 つのレコードに複数の参照整合性エ ラーがある場合は、違反したテーブルの指定ファイルのすべてに書き込ま れます。 Discard 句では、違反した行を破棄せずに、Automatic Row Generation 機能を使って 参照整合性を維持する指定をすることもできます。この機能のデフォルト動作は、 rbw.config ファイルの AUTOROWGEN パラメータで設定します。rbw.config ファイ ルでデフォルト動作を設定しなかった場合、デフォルト動作は OFF です。LOAD DATA 文の Discard 句では、すべてまたは指定したテーブルのデフォルト動作を変更 することができます。 重要 : TMU LOAD DATA 文 (DISCARDFILE および RI_DISCARDFILE など ) に対し て複数の破棄ファイルがある場合、破棄ファイルの名前は一意なものにする必要が あります。ファイル名が一意でない場合は、一方のファイルが他方のファイルに上 書きされます。 ウェアハウス データベースへのデータのロード 3-43 Discard 句 XML Discard データを XML フォーマットでロードすると、結果として得られる Discard ファイル は XML フォーマットではなく、固定長フォーマットになります。破棄された行を 再ロードするには、次の手順に従って操作します。 1. 2. 行が破棄される原因となった問題を解決します。 次の手順に従って、オリジナルのコントロール ファイルを編集します。 a. Format 句を FORMAT XML_DISCARD に変更します。3-29 ページを参 照してください。 b. 入力ファイルの名前を Discard ファイルの名前に変更します。 3-44 Table Management Utility Reference Guide Discard 句 入力レコードは、まずテーブルの列のデータ型に変換され、次にデータ整合性が チェックされます。この段階でエラーが発生するとレコードは破棄され、標準破棄 ファイル ( 指定されている場合 ) に出力されます。次に参照先テーブルごとに参照 整合性チェックが行われます。 LOAD DATA p. 3-24 へ戻る <discard_clause <discard_clause> , DISCARDFILE '<filename>' DISCARDDN ASCII IN EBCDIC RI_DISCARDFILE '<filename>' , ( ) <table_name> '<filename>' OTHER '<filename>' DISCARDS <n> AUTOROWGEN OFF ON , ( <table_name> ) , DEFAULT ( <table_name> ) DEFAULT , ( <table_name> ) , ON ( <table_name> ) ウェアハウス データベースへのデータのロード 3-45 Discard 句 DISCARDFILE '<filename>' TMU により、破棄する入力レコードを書き込むファイル。 ファイルは 2 つまで指定できるので、ASCII と EBCDIC 両方 の破棄ファイルを作成できます。DISCARDFILE の代わり に、DISCARDDN を使用することもできます。 RI_DISCARDFILE 句を使い、参照整合性に違反したレコード 専用のファイルを指定しないかぎり、ここで指定したファイ ルにすべての破棄レコードが出力されます。 redbrick ユーザは、破棄ファイルに対する書き込み許可を 持っていることが必要です。ファイル名は一重引用符で囲む 必要があります。 ASCII、EBCDIC オプション。出力ファイルのコード セットを指定します。 この句は、ASCII ロケール中の EBCDIC 入力データに限って 適用されます。ASCII が指定されている場合、あるいは、何 も指定されていない場合、出力ファイルは入力ロケールの コード セット中に書き込まれます。出力ファイルは、入力 ファイルが EBCDIC の場合に限り、EBCDIC をとります。 RI_DISCARDFILE '<filename>' オプション。参照整合性に違反したレコードを書き込むファ イルを指定します。この句は、ほかのテーブルを参照してい ないテーブルには指定できません。これらのファイルには ASCII フォーマットと EBCDIC フォーマットを指定できませ ん。ファイルは入力ロケールのコード セットで書かれます。 ファイル名は一重引用符で囲む必要があります。 3-46 Table Management Utility Reference Guide Discard 句 <table_name> '<filename>' ロード中のテーブルのフォーリン キーが参照するテーブル の名前と、このテーブルとの参照整合性に違反したレコード を格納するファイルの名前を指定します。これらの名前ペア を使用すると、1 つのファイルにすべての破棄レコードを格 納する場合に比べて、参照整合性違反の解決と再処理が容易 になります。 このテーブルとファイルを指定することで、指定したテーブ ルごとに独立した Discard ファイルを使用できます。レコー ドが複数の参照先テーブルとの参照整合性に違反した場合、 各参照先テーブルに対応するファイルにそれぞれ出力されま す。 複数の組み合わせを指定できます。参照先テーブルがここで すべて指定されない場合、リストにないテーブルとの参照整 合性に違反したレコードは、OTHER キーワードの後に指定 したファイルに出力されます。OTHER キーワードを指定し なかった場合は、DISCARDFILE キーワードに指定した標準 の破棄ファイルに出力されます。 指定するファイル名は、オペレーティング システムのファ イル命名規則に従う必要があります。また、一重引用符で囲 む必要があります。名前のペアはカンマで区切る必要があり ます。 OTHER '<filename>' オプション。<table_name> と <filename> に指定しなかった参 照先テーブルとの参照整合性に違反したレコードを出力する ファイルを指定します。<table_name> と <filename> のリスト を指定し、OTHER 句を省略した場合、リストにないテーブ ルとの参照整合性に違反したレコードは、DISCARDFILE キーワードの後に指定した標準の破棄ファイルに出力されま す。 指定するファイル名は、オペレーティング システムのファ イル命名規則に従う必要があります。また、一重引用符で囲 む必要があります。 ウェアハウス データベースへのデータのロード 3-47 Discard 句 DISCARDS <n> 破棄の理由を問わず、TMU がコントロール ファイルの実行 を継続できる破棄レコードの最大数。コントロール ファイ ルに複数の制御文が含まれている場合は、残りの制御文は実 行されません。 破棄が最大数に達すると、現在の行の TMU バッチにロード されているデータはロール バックされますが、最大数に達 する前に完了したすべてのバッチはテーブル内に残ります。 この最大破棄数は、1 つの LOAD DATA 文で指定した入力 ファイル全体の破棄レコード総数です。複数の入力ファイル を指定した場合、ファイルごとに破棄レコード数はリセット されません。 Discard 句を省略するか、Discard 句の DISCARDS <n> を省略 した場合のデフォルトは 0 です。<n> に 0 を指定した場合は 無制限になります。TMU は破棄されたレコードの数に関係 なくコントロール ファイルの実行を完了します。 3-59 ページで説明するオプティマイズ モードでロードを実 行すると、すべての入力行の処理とカウントが終了してから 重複行を検査するため、実際の破棄レコード数が <n> を超 える場合があります。Discard 句にファイル名を指定せずに DISCARDS <n> を指定した場合、破棄レコード数が <n> に 達した時点で、コントロール ファイルの実行は終了します が、破棄レコードはファイルに保存されません。 3-48 Table Management Utility Reference Guide Discard 句 AUTOROWGEN 入力レコードが参照整合性に違反した場合、つまり入力レ コード内のフォーリン キー値が参照先テーブル内のプライ マリ キー値と一致しない場合の TMU の動作を指定します。 この動作はテーブルごとに OFF、ON、および DEFAULT の 各モードを組み合わせて指定することができます。 参照先テーブルのリストを指定した場合、AUTOROWGEN 機能はモードを組み合わせて動作します。そのほかの直接参 照先テーブルはすべて、AUTOROWGEN が OFF に設定され ている場合と同じように処理されます。こうしたテーブルに 関する参照整合性に違反しているレコードは破棄されます。 AUTOROWGEN 機能を使用する場合は、生成される行が挿 入される参照先テーブルに MAXROWS PER SEGMENT 値が 設定されている必要があります。 行を生成中の詳細ディメンジョン テーブルで定義されてい る事前計算ビューは維持できません。Aggregate Maintenance がオンになっていると、そのようなビューには無効のマーク が付けられます。 AUTOROWGEN OFF 参照整合性に違反したレコードを、破棄ファイルに出力しま す。 ウェアハウス データベースへのデータのロード 3-49 Discard 句 AUTOROWGEN ON 列のデフォルト値を使って新規に行を自動的に生成し、参照 先テーブルに追加して参照整合性を維持します。入力レコー ドは、ロード対象のテーブルに追加されます。ON キーワー ドの後ろにテーブルのリストがない場合は、すべてのテーブ ルにこの動作が適用されます。ON キーワードの後ろにテー ブルのリストがある場合は、そのリストにあるテーブルと、 それらのテーブルが直接または間接に参照しているテーブル ( 外部テーブル ) にだけこの動作が適用されます。 AUTOROWGEN が ON に設定され、参照整合性エラーが複 数のテーブルにカスケードする場合は、参照整合性が満たさ れるまで新規に行が追加されます。参照整合性の維持に必要 な行が追加できない場合 (1 つのテーブルに複数の矛盾する モードが適用されていたり、アクセス許可や認証に違反した 場合など ) は、違反した入力レコードが破棄されます。 AUTOROWGEN DEFAULT 参照整合性エラーが検出されると、そのレコードのフォーリ ン キーがフォーリン キー列のデフォルト値に変更され、 ロード中のテーブルに行が挿入されます。テーブル名のリス トがない場合は、すべてのテーブルにこの動作が適用されま す。DEFAULT キーワードの後ろにテーブル名のリストがあ る場合は、そのリストにあるテーブルにだけこの動作が適用 されます。 3-50 Table Management Utility Reference Guide Discard 句 <table_name> ロードするテーブルが直接参照するテーブルを指定します。 1 つのテーブルを複数のリストに指定することはできませ ん。 ON の後に指定したテーブル : 指定したテーブルまたはその テーブルが直接または間接に参照するテーブルとの参照整合 性エラーが発生した場合は、参照先テーブルに新規の行が挿 入されます。 DEFAULT の後に指定したテーブル : 指定したテーブルとの 参照整合性エラーが発生した場合は、レコードが修正され、 ロード対象のテーブルに挿入されます。 参照整合性に必要な行が挿入できないために矛盾が生じる場 合は、入力レコードが破棄されます。 例 : 参照整合性違反レコードの格納 この例では、データ整合性に違反したレコードが prod_di.txt ファイルに格納さ れ、参照整合性に違反したレコードが prod_ri.txt ファイルに格納されます。 load data inputfile 'prod.txt' format separated by ':' discardfile 'prod_di.txt' ri_discardfile 'prod_ri.txt' discards 10 optimize on discardfile 'prd_dups.txt' into table product( classkey integer external (2) prodkey integer external (2), prodname char (30) pkg_type (20) ); ウェアハウス データベースへのデータのロード 3-51 Discard 句 例 : 違反レコードの別テーブル、別ファイルへの格納 次の例では、TMU により、データ整合性に違反したレコードが orders_di.txt ファ イルに格納されます。参照元テーブル Supplier に対する参照整合性に違反したレ コードは sup_ri.txt ファイルに、参照元テーブル Deal に対する参照整合性に違反し たレコードは deal_ri.txt ファイルに格納されます。それ以外の参照整合性違反レ コードは、misc_ri.txt ファイルに格納されます。 load data inputfile 'aroma_orders.txt' format separated by '*' discardfile 'orders_di.txt' ri_discardfile (supplier 'sup_ri.txt', deal 'deal_ri.txt') other 'misc_ri.txt' discards 10 optimize on discardfile 'orders_dups.txt' into table orders( order_no integer external, perkey integer external, supkey integer external, dealkey integer external, order_type char (20), order_desc char (40) close_date date 'YYY-MM-DD', price dec external (7,2) ); 3-52 Table Management Utility Reference Guide Discard 句 例 :AUTOROWGEN DEFAULT テーブルと AUTOROWGEN の設定が次のようになっているとします。 Dim1 Fact ... Dim3 ... ... Dim2 ... Out1 ... … autorowgen on (dim1, dim3) default (dim2) … Fact テーブルに挿入するレコードが、Dim2 テーブルとの参照整合性に違反してい る場合、参照整合性に違反したフォーリン キー値がフォーリン キー列のデフォル ト値に置き換えられ、新規行が Fact テーブルに挿入されます。 ウェアハウス データベースへのデータのロード 3-53 使用上の注意 使用上の注意 Discard 句の AUTOROWGEN 機能を使用する際は、次の点に注意してください。 デフォルト値 参照整合性エラーが検出され、デフォルト値を使って行を挿入 (ON モードの場合は 参照先テーブル、DEFAULT モードの場合は参照元テーブルに挿入 ) する場合、使用 するデフォルト値は、テーブルの作成時に各列に定義した値から決定されます。デ フォルト値には、定数、NULL、またはシステム値 (CURRENT_USER、 CURRENT_DATE、CURRENT_TIME、または CURRENT_TIMESTAMP) のいずれか を使用できます。各デフォルト値は、列属性 NOT NULL および UNIQUE との組み 合わせで動作や制約が異なります (『SQL Reference Guide』参照 )。 列のデフォルト値は、ALTER TABLE 文で変更できます。 テーブルの各列のデフォルト値は、次のように RBW_COLUMNS システム テーブ ルから検索することができます。 select name, defaultvalue from rbw_columns where tname = 'TABLENAME' ; テーブル ロック ロード中に参照先テーブルが Read ロックまたは Write ロックがかけられるかどうか は、AUTOROWGEN モードの設定によります。ロックは、ロード操作の開始時にか けられ、動作が終了するまで保持されます。参照整合性を維持するために、書き込 みが発生する可能性があるすべての参照先テーブルに Write ロックがかけられます。 また、参照整合性を確認するために読み取る必要があるすべての参照先テーブルに Read ロックがかけられます。 必要なロックはすべて TMU によって自動的にかけられます。手動でロックをかけ る必要はありません。 3-54 Table Management Utility Reference Guide 使用上の注意 ロード中は、AUTOROWGEN のモードにかかわらず、ロード対象のテーブルに Write ロックがかけられます。さらに、rbw.config ファイルまたは LOAD DATA 文で 指定したモードに応じて、参照先テーブルにも次のロックがかけられます。 ■ ■ ■ ■ OFF モード : 直接参照先テーブルには Read ロックが必要です。そのほかの テーブルはロックされません。 ON モード : ON キーワードの後にテーブルを指定しなかった場合は、すべ ての参照先テーブルと、そのテーブルが直接または間接に参照するテーブ ルが Write ロックされます。 ON キーワードの後にテーブルを指定した場合は、指定したテーブルと、 そのテーブルが直接または間接に参照するテーブルが Write ロックされま す。指定外のテーブルが直接参照される場合は、参照先テーブルが Read ロックされます。 DEFAULT モード : DEFAULT キーワードの後にテーブルを指定しなかった 場合は、直接参照されるすべての参照先テーブルが Read ロックされます。 間接に参照されるテーブルは、ロックされません。 DEFAULT キーワードの後にテーブルを指定した場合は、指定したテーブ ルが Read ロックされます。 テーブルを指定した場合、指定外の直接参照されるテーブルは、Read ロッ クされます。 モードの組み合わせにおける競合 モードをテーブルごとに組み合わせる場合、ON モードと DEFAULT モードの両方に テーブルを指定すると、LOAD DATA 文の動作に矛盾が生じる場合があります。そ の場合は、警告メッセージが表示され、レコードは破棄されます。 ウェアハウス データベースへのデータのロード 3-55 使用上の注意 データベースに、次のテーブルがあります。 Dim1 Fact ... Dim3 ... ... DEFAULT Dim2 ON ... Out1 ... ON Fact テーブルに対する LOAD DATA 文に次の Discard 句が含まれるとします。 discardfile 'fact_dscd' discards 100 autorowgen on (dim1, dim2) default (dim3) Fact テーブルにロードするレコードが参照整合性に違反したため、Dim2 テーブル に行を挿入すると Dim2 テーブルが参照整合性に違反するため、Dim3 テーブルに行 を挿入することが必要になったとします。上記の AUTOROWGEN 句によれば、Fact テーブルから直接参照される Dim3 テーブルは、参照整合性違反を解決するには、 フォーリン キーの値を列のデフォルト値に置き換え、Fact テーブルに行を挿入する ことになります。ON と DEFAULT の動作が競合するため、TMU によってそのレ コードは破棄されます。 DEFAULT モードとシンプル スター スキーマ シンプル スター スキーマでは、プライマリ キーがすべてのフォーリン キー列で構 成され、それ以外の列は含まれません。DEFAULT モードでは、参照元テーブルに 入力する各行に同じ値 ( その列のデフォルト値 ) が使用されます。各行のプライマ リ キーはいずれも一意でなければならないため、同じ値を繰り返し使用すると、重 複レコードとして破棄されてしまう場合があります。この動作は 3-20 ページの例に 示されています。 3-56 Table Management Utility Reference Guide Row Messages 句 トラブルシューティング 自動的な行の生成が ON モードまたは DEFAULT モードの場合、対象テーブルに行 が生成できない場合は、以下の点を確認してください。 ■ ■ ■ TMU の実行に使用しているデータベース ユーザ ID が、そのテーブルに対 する INSERT アクセス権を持っていること。 対象テーブルに、NOT NULL と DEFAULT NULL の両方が指定されている 列がないこと。この 2 つの組み合わせを 1 つの列に指定すると、自動的な 行の生成はできません。 各参照先テーブルに、MAXROWS PER SEGMENT の値が設定されているこ と。 1 行もロードされずにロード操作が終了した場合は、Discard 句に指定したファイル に redbrick ユーザが書き込み許可を持っていることを確認してください。 Automatic Row Generation 機能の詳細については、3-16 ページ「自動的な行の生成に よる参照整合性の維持」を参照してください。 Row Messages 句 Row Messages 句を使用すると、LOAD 動作の実行中に行レベルの警告メッセージを 送信するファイル名を指定できます。Row Messages 句を指定しない場合、メッセー ジは標準エラー出力に表示されます。 TUNE TMU_ROW_MESSAGES 構成パラメータが NONE に設定されていると、Row Messages ファイル名は無視されます。このパラメータの詳細は、2-36 ページ「行 メッセージの管理」を参照してください。 ウェアハウス データベースへのデータのロード 3-57 Row Messages 句 コントロール ファイルに Row Messages 句が記述されているかどうかにかかわらず、 メッセージは log デーモンが管理するログ ファイルにも書き込まれます。大量の メッセージ ロギング動作が実行されると、LOAD 動作の速度が大幅に低下します。 ただし、警告メッセージが表示されずにファイルに書き込まれている場合、ユーザ は、パフォーマンス低下の原因がメッセージ ロギングであることに気付かないこと があります。メッセージ ロギングの重要度レベルの構成方法の詳細は、 『Administrator's Guide』を参照してください。 Row Messages モードをグローバルに設定するには rbw.config ファイルを使用し、 個々のロードのモードを設定するには SET 文を使用します。Row Messages を FULL ( デフォルト ) に設定した場合、Row Messages 句でメッセージのファイル名を指定 します。RowMessages ファイル名を指定し、rbw.config または SET 文を NONE に設 定した場合は、RowMessages ファイル名が無視されます。 row_messages 句 LOAD DATA p. 3-24 へ戻る ROWMESSAGES '<filename>' '<filename>' 行警告メッセージの送信先のファイル名。破棄ファイルに指 定したファイルとは別のファイル名を指定します。行警告が ある場合だけファイルが作成されます。 3-58 Table Management Utility Reference Guide Optimize 句 Optimize 句 Optimize 句は、Format 句で REPLACE モード、INSERT モード、APPEND モード、 または MODIFY モードを使用する操作にだけ適用されます。UPDATE モードでは Optimize 句を使用できません。 Optimize 句は、TMU インクリメンタル ロード動作時にインデックスを更新する方 法を指定します。 オプティマイズ モードを rbw.config ファイルで設定すると、すべてのロード操作に 適用することができます。rbw.config ファイルで設定したオプティマイズ モードを LOAD DATA 文で使用する場合は、LOAD DATA 文に Optimize 句を指定する必要は ありません。 <optimize_clause> LOAD DATA p. 3-24 へ戻る OPTIMIZE OFF ON DISCARDFILE '<filename>' OPTIMIZE OFF、ON オプティマイズ モードを切り換えます。デフォルト動作は OFF です。 この LOAD DATA 文では、このオプティマイズ モード設定が rbw.config ファイルの設定に優先します。複数の LOAD DATA 文を格納した TMU のコントロール ファイルを実行する場合、 Optimize 句を指定した LOAD DATA 文には、その Optimize 句 で指定したオプティマイズ モードが適用されます。Optimize 句を指定しない LOAD DATA 文には、rbw.config ファイルで設 定したオプティマイズ モードが適用されます。 OPTIMIZE OFF モード ( 非オプティマイズ モード ) を選択する と、入力行を 1 行挿入するたびにインデックスを更新します。 ロードするデータに多数の重複行がある場合は、このモード が効率的です。 ウェアハウス データベースへのデータのロード 3-59 Optimize 句 OPTIMIZE ON モード ( オプティマイズ モード ) を選択する と、バッチ処理でインデックス エントリを挿入します。バッ チ処理は、入出力の回数が少ないので高速になります。 モードが MODIFY または MODIFY AGGREGATE で、Criteria 句で擬似列ではなく基本列が指定されている場合、OPTIMIZE ON ロードは自動的に OPTIMIZE OFF に切り換えられます。 DISCARDFILE '<filename>' オプション。重複レコードを格納する破棄ファイル。重複レ コードとは、CREATE TABLE 文で UNIQUE と宣言された列の 既存行の値と同じ値を持ち、かつ、インデックスがつけられ たレコードのことです。この定義は MODIFY ロードや MODIFY AGGREGATE ロードには当てはまりません。これら のロードでは、このような重複は破棄されず、既存の行の更 新や再集約に使用されます。更新処理や再集約処理の最中に エラーが発生した場合のみ、これらのレコードは破棄されま す。 このテキスト ファイルには、テーブルの UNLOAD EXTERNAL 動作で出力される行と同じフォーマットで、破棄 行が格納されます。オプティマイズ モードで破棄される重複 レコードのフォーマットは、参照整合性、データ変換、 フォーマットのエラーにより破棄されるレコードのフォー マットとは異なります。LOAD DATA 文でこれらのエラーによ る破棄レコードの破棄ファイルをファイル別に指定すれば、1 つの破棄ファイルに異なるフォーマットのレコードを混在さ せずにすみます。破棄ファイルを指定しないと、ほかの破棄 レコードと同じファイルに重複レコードが出力されます。破 棄レコードの書き込み順は、入力レコード順とはかぎりませ ん。 数値および日時データのフォーマットは、ANSI SQ-92 規則が 指定するデータ型に基づきます。データのフォーマットは ローカライズされません。ただし、データ内のマルチバイト 文字やテーブル名、列名は保存されます。 オプティマイズ モードが OFF の時に破棄ファイルを指定する と、discard file 句は無視されます。 3-60 Table Management Utility Reference Guide 使用上の注意 使用上の注意 オプティマイズ モードでは、rbw.config ファイルまたは RBW_INDEXES システム テーブルに設定されているフィル ファクタを使用して、B-TREE インデックスと STAR インデックスに新しいインデックス ノードが作成されます。フィル ファクタ の詳細については、『Administrator's Guide』を参照してください。 オプティマイズ モードでは、重複レコードを含む全レコードにインデックス エン トリの領域が割り当てられ、この領域は重複レコードが破棄されても即時に再利用 されません。このため、重複行が多いデータをロードすると、以下のような影響が 生じます。 ■ ■ ■ ■ ■ オプティマイズ モードで作成されたインデックスは、非オプティマイズ モードで作成されたインデックスより大きくなります。 重複を削除する前にレコードをカウントするため、実際にテーブル セグメ ントにロードした行数が少なくても MAXROWS PER SEGMENT の限界値 に達してしまいます。 実際の破棄行数が、Discard 句で設定した最大破棄行数 <n> を超える場合が あります。 破棄された重複レコードを修正して非オプティマイズ モードで再ロードす るようにしても、オプティマイズ モードでロードできる実際の行数は、利 用可能な領域に格納できる行数の理論値より少なくなる場合があります。 INSERT モード、APPEND モード、REPLACE モードでは、重複行が破棄さ れる場合、テーブル内の最初の行が保持され、それ以降の重複行は破棄さ れます。最初の行は、ロード プロセスで見つかった最初の行とはかぎりま せん。これは、インデックス作成時の領域の再利用とバッチ処理の方法に よるものです。 OPTIMIZE ON でロードされた MODIFY モードでは、バッチ インデックス更新と直 接インデックス更新の両方を実行できます。新規の入力行に既存の行と同じプライ マリ キーが含まれていると、既存の行が新規の入力行で置き換えられ、インデック スとデータ ファイルはただちに更新されます。ただし、新規の入力行に既存の行と 同じプライマリ キーが含まれていない場合、その行のインデックス エントリが一 時インデックス作成領域に追加され、あとでバッチ操作として挿入されます。 ウェアハウス データベースへのデータのロード 3-61 使用上の注意 OPTIMIZE ON でロードされた INSERT モード、APPEND モード、または REPLACE モードとは異なり、OPTIMIZE ON でロードされた MODIFY モードでは、バッチ操 作の重複行処理で入力行の順序が調べられます。同じプライマリ キー値を持つ行が ある場合、ロード処理で最後に見つかった行がテーブル内に保持されます。これに よって、MODIFY 動作の意味が保証されます。 本質的に、OPTIMIZE ON でロードされた MODIFY モードでは入力行の挿入にバッ チ挿入、および入力行の更新に直接インデックス挿入を使用します。テーブルに複 数の一意なインデックスが定義されている場合、OPTIMIZE は OFF になります。プ ライマリ キー インデックス (B-TREE または STAR インデックス ) を除き、一意なイ ンデックスは一意な列で定義された B-TREE に限られます。 バッチ挿入の利点は、入力ストリームの割合に比例します。そのため、挿入スト リームと更新ストリームの両方を含む入力ストリームに対しては、OPTIMIZE ON の状態でロードされた MODIFY モードを推奨します。 重複削除フェーズで処理される重複は、前の入力ファイルと同じプライマリ キーを 持つ行です。テーブルと同じプライマリ キーを持つ入力行は、重複としてカウント されません。このような入力行は直接更新されます。そのため、MODIFY モードの ロードを使用する場合、INSERT モード、APPEND モード、または REPLACE モー ドを使用する場合ほど、重複処理は問題になりません。 ロード プロセスがオプティマイズ モードで実行されている場合は、重複行を チェックする時間とメモリが必要です。重複行の数が多い場合は、それだけ多くの 時間とメモリが必要になります。次のどちらかの場合には、ロード プロセスにオプ ティマイズ モードを使用しないことをお勧めします。 ■ ■ ロードするテーブルに、プライマリ キー インデックスではない UNIQUE インデックス ( 複数の UNIQUE インデックス ) があり、既存行とキー値が 重複しているために 5,000 以上のレコードが破棄される場合 ロードするテーブルの UNIQUE インデックスが 1 つ ( プライマリ キー イン デックス ) で、入力データのレコード数が 100 万を超え、既存行とキー値 が重複しているためにレコードの 10% 以上が破棄される場合 3-62 Table Management Utility Reference Guide MMAP Index 句 次の例では、TMU により重複レコードが破棄され、指定された mktdups.txt ファイ ルに保存されます。参照整合性違反、データ変換エラーなど、その他の理由で破棄 されたレコードは、別のフォーマットで、mktdups.txt ファイルに保存されます。 load data inputfile 'market.txt' recordlen 7 discardfile 'mktdisc.txt' discards 1 optimize on discardfile 'mktdups.txt' into table market( mktkey integer external (4), state char (2) ); MMAP Index 句 MMAP Index 句は、ロードされるテーブルによって参照されるテーブル上の 1 つ以 上のプライマリ キー インデックスを指定します。このインデックスを指定する目 的は、参照整合性チェックを最適化する手段として、これらのインデックスを mmap システム関数を使ってメモリ マッピングする順序を定義することにありま す。ロード中のメモリマッピングで使用可能なメモリ量を制御する TUNE TMU_MMAP_LIMIT パラメータと組み合わせてこの句を使用します。2-34 ページを 参照してください。 mmap_index_clause LOAD DATA p. 3-24 へ戻る ’ MMAP INDEX ( <pk_index_name> ) SEGMENT <pk_index_name> ( ’ <segment_name> ) ロード中のテーブルによって参照されるテーブルにあるプラ イマリ インデックスを指定します。1 つ以上のインデックス を指定できます。 ウェアハウス データベースへのデータのロード 3-63 MMAP Index 句 SEGMENT <segment_name> 指定したプライマリ キー インデックスのセグメントを 1 つ以 上指定します。参照先テーブル データに関連づけられたイン デックス セグメントがわかっている場合に、このセグメント を指定します。メモリ マッピング関数の適用は、指定したイ ンデックス セグメントに限定されます。 セグメント名のリストは括弧で囲む必要があります。 次の例では、Sales_Forecast テーブルがロードされたときに、Period ディメンジョ ン テーブルおよび Product ディメンジョン テーブルにあるプライマリ キー イン デックスが指定された順序でメモリ マッピングされます。 load data LOAD DATA INPUTFILE 'sales_forecast.txt' RECORDLEN 62 INSERT NLS_LOCALE 'English_UnitedStates.USASCII@Binary' MMAP INDEX (period_pk_idx, product_pk_idx) INTO TABLE SALES_FORECAST ( ...; TMU では、指定された順序でインデックスのメモリ マッピングが行われます。何 らかの理由により、あるインデックスのメモリ マッピングができない場合でも、リ ストにある他のインデックスのメモリ マッピングが行われます。 コントロール ファイルで MMAP INDEX 句が省略されている場合、参照元テーブル のプライマリ キー インデックスは、サイズの降順 ( 大きい順 ) でメモリ マッピング されます。メモリ不足のためインデックスの一部がメモリ マッピングできない場合 でも、セグメントの一部がメモリ マッピングされます。 3-64 Table Management Utility Reference Guide Table 句 Table 句 Table 句は、データのロード先テーブルを指定します。以下の項目を指定すること ができます。 ■ ■ テーブルの列名 以下のいずれかを記述するフィールド定義 ❑ 入力ファイルのレコードのフィールド ❑ 任意の列について、既存値を維持するか、デフォルト値を使うか、ま たは数字シーケンスなどのデータを生成するかの指示 フィールドまたはフィールドのグループは、テーブルの列と 1 対 1 で対応します。 入力データ型とデータベース サーバ データ型のマッピングは、3-133 ページで説明 します。FORMAT UNLOAD 以外のすべてのフォーマットでは、1 つ以上のフィール ドを指定する必要があります。UNLOAD ではフィールドを指定できません。 LOAD DATA p. 3-24 へ戻る <table_clause> INTO TABLE <table_name> , ( <col_name> RETAIN AS $<pseudocolumn> $<pseudocolumn> ) DEFAULT <simple_field> p. 3-71 <concat_field> p. 3-81 <constant_field> <constant_fiel d>p.p.3-84 3-84 <sequence <sequence field> field> p. p. 3-85 3-85 <increment_field> p. 3-86 ウェアハウス データベースへのデータのロード 3-65 Table 句 重要 : 列名、疑似列、およびフィールドの各仕様は、入力データが Format 句中の 指定により、UNLOAD フォーマットを取っている場合に限り、省略します。 <pseudocolumn> はテーブル内の実際の列ではありません。次のいずれかの理由で データを一時的に格納するための列です。 ■ ■ ■ 将来、CONCAT オプションと併用する。 テーブルでは使用しない入力フィールドを破棄する。 Criteria 句に指定する評価基準にする。 <table_name> データをロードするテーブル。指定するテーブルは、 CREATE TABLE 文で定義しておく必要があります。テーブル 名に、ビュー名やシノニム名を使用することはできません。 <col_name>、 $<pseudocolumn> 入力レコードのフィールドまたは TMU が生成したデータを ロードする列、またはシュード列。シュード列名は、先頭文 字をドル記号 ($) にします。 Table 句にテーブル列を指定しないと、既存行は現在の値を 維持し、新規行はデフォルト値がロードされます。MODIFY または UPDATE モードの場合は、プライマリ キー列を Table 句に指定する必要があります。 3-66 Table Management Utility Reference Guide Table 句 AS$<pseudocolumn> Criteria 句で参照するために、指定したテーブルの列やシュー ド列への入力値を格納します。Criteria 句が指定されており、 入力データが固定長または可変長フォーマットで、position 句の指定がない場合、AS $<pseudocolumn> 句を指定する必要 があります。 この場合は、AS $<pseudocolumn> を使って入力列を指定しま す。レコード上のフィールドの位置を指定する方法がないか らです。Criteria 句では $<pseudocolumn> を使って入力フィー ルドを参照します。 固定長または可変長フォーマットの入力データを Position 句 を指定してロードする場合は、AS $<pseudocolumn> を指定す る必要はありません。入力レコード上の位置に基づいて、こ のデータを参照できるからです。同一の入力フィールドにつ いて、Criteria 句で使用するシュード列とテーブル列の両方を 指定することができます。 RETAIN 既存の行を更新するとき、その行のフィールドに対応する列 の現在値が保持されます。新しい行の列にデフォルト値が格 納されます。列のデフォルト値は、CREATE TABLE 文で定義 します。この動作は、AGGREGATE モードと非 AGGREGATE モードの両方に適用します。 RETAIN キーワードは、プライマリ キー列やシュード列には 使用できません。 DEFAULT 列のデフォルト値 ( デフォルト値が定義されていなければ NULL) を、その列に格納します。新規行と既存行の両方に列 のデフォルト値をロードする場合は、DEFAULT キーワード を使って列に格納する値を指定します。シュード列およびシ リアル (SERIAL) 型として定義されているテーブル列には DEFAULT キーワードを使用できません。 重要 : NOT NULL DEFAULT NULL を定義された列に DEFAULT キーワードを使用 すると、ロード操作が中止されます。 ウェアハウス データベースへのデータのロード 3-67 シリアル (SERIAL) 型列のロード シリアル (SERIAL) 型列のロード シリアル (SERIAL) 型列をロードするとき、シリアル値を含む入力データが直接 ロードされるか、自動的にシリアル値が生成されます。シリアル列をロードまたは アンロードするとき、ロード スクリプトでデータ型を外部数値型またはバイナリ整 数型に指定する必要があります。 入力データにシリアル値が含まれ、INSERT、APPEND、REPLACE、UPDATE、 MODIFY のいずれかのモードでロードした場合は、シリアル (SERIAL) 型列の正の 値がすべてロードされます。ゼロまたは負の値を持つ行はすべて破棄されます。 入力データにシリアル値が含まれない場合は、TMU によって自動的に生成されま す。その場合、ロード スクリプトのデータ フィールドを未定義のままにするか、 データフィールドを RETAIN に定義します。シリアル (SERIAL) 型にはデフォルト 値がないので、データフィールドを DEFAULT に定義することはできません。 シリアル値が自動的に生成される場合は、INSERT モード、APPEND モード、 REPLACE モードでシリアル値が自動的に生成されます。 ■ ■ UPDATE モードでは、元のシリアル値が変更されません。 MODIFY モードでは、元のシリアル値が変更されず、新しい行に新しい値 が生成されます。 AUTOROWGEN ON でシリアル値がロードされる場合は、次のとおりです。 ■ ■ シリアル (SERIAL) 型列が参照先テーブルのプライマリ キーの一部になっ ている場合、次の規則でシリアル値が生成されます。 ❑ 値がゼロまたは負の場合は、参照元テーブルの行が破棄され、参照元 テーブル、フォーリン テーブルのどちらにも行が挿入されません。 ❑ 値が正の場合は、参照元テーブルに入力行が挿入され、自動的に生成 された行がフォーリン テーブルに挿入されます。 シリアル (SERIAL) 型列が参照先テーブルのプライマリ キーの一部ではな い場合は、その列のシリアル値が生成されます。 シリアル (SERIAL) 型列があるテーブルではオフライン ロードを実行できません。 シリアル (SERIAL) 型列の詳細については、『SQL Reference Guide』を参照してくだ さい。 3-68 Table Management Utility Reference Guide RETAIN と DEFAULT による選択的列更新 RETAIN と DEFAULT による選択的列更新 次の表は、LOAD DATA 文の Table 句で指定したフィールド定義のタイプおよび Format 句で指定したロード モードに応じた、ロード時の TMU の動作を示します。 ロード モード (Format 句 ) フィールド 定義 APPEND、INSERT、 REPLACE のいずれか UPDATE* MODIFY* 列名 / フィール ド定義なし 列のデフォルト値を ロードする 現在の列値を維 持する 新規行 : 列のデフォ ルト値をロードす る RETAIN キーワード Error (#1362) DEFAULT キーワード 列のデフォルト値をロードする SIMPLE、 CONCAT、 CONSTANT、 SEQUENCE、 INCREMENT フィールドの入力値をロードする 既存行 : 現在の列値 を維持する UPDATE または MODIFY モードの場合は、LOAD DATA 文の Table 句にプライマリ キー列を指定する必要があります。 この例は、所轄本部のある都市が所在する地区および地域の地理的再編成を反映す る新規データを、Market テーブルにロードします。 Market テーブルに対する CREATE TABLE 文は、次のようになります。 create table market ( mktkey integer not null, hq_city char (20), hq_state char (5), district char (14), region char (10), primary key (mktkey)) maxrows per segment 128 ウェアハウス データベースへのデータのロード 3-69 simple フィールド Market テーブルに対する LOAD DATA 文は、次のようになります。 oad data inputfile 'aroma_market.txt' recordlen 45 replace discardfile 'aroma_discards' discards 1 into table market ( mktkey integer external(2), hq_city char(20), hq_state char(2), district char(13), region char(7) ); 以下の LOAD DATA 文は、Hq_city 列と Hq_state 列の情報を現状のまま維持し、 District 列と Region 列に新しい値をロードします。Hq_city と Hq_state のフィール ドを定義している行を省略しても、テーブルの既存値は維持されます。 load data inputfile 'aroma_mkt_upd.txt' recordlen 45 modify discardfile 'mkt_upd_discards' discards 1 into table market ( mktkey integer external(2), これらの行は hq_city retain, 省略しても hq_state retain, かまいません district char(13), region char(7) ); simple フィールド simple フィールドは、列にロードする入力レコード内のフィールドのデータ型を指 定します。 3-70 Table Management Utility Reference Guide simple フィールド <simple_field> <table_clause> p. 3-65 へ戻る POSITION ( <start> <field_type> p. 3-97 ) : <end> xml_path ROUND ADD LTRIM SUBTRACT RTRIM MIN TRIM MAX ADD_NONULL SUBTRACT_NONULL MIN_NONULL : MAX_NONULL NULLIF ( ) <start> : <end> = '<string> ' x'<hex_string> ' ウェアハウス データベースへのデータのロード 3-71 simple フィールド POSITION レコードの先頭から数えたオフセット ( バイト単位 )。このオプ ションは固定長フォーマット ファイルまたは可変長フォーマット ファイルにだけ使用します。SEPARATED BY キーワードにはこの オプションを使用しないでください。レコードの先頭の位置は 1 です。フィールドの位置を指定しないと、直前のフィールドの最 終バイトに 1 を加算した位置になります。 この位置は、レコード中の位置であって、特定フィールド中の位 置ではありません。CHARACTER 型の場合、POSITION キーワー ドやフィールド定義 (char (15) など ) で長さを指定しなかった場合 は、テーブルに定義された列幅が使用されます。 DECIMAL (EXTERNAL、PACKED、ZONED)、INTEGER EXTERNAL、FLOAT EXTERNAL、DATE、TIME、TIMESTAMP、 VARLEN、VARLEN EXTERNAL、および M4DATE の各型は、 POSITION キーワードまたはフィールド定義の length パラメータに よって長さを指定します。 区切り記号付きフォーマットの場合は、POSITION キーワードは 無視されます。 <start>:<end> この位置は、レコード中のデータの位置であって、フィールド中 の位置ではありません。このため、<start>:<end> を指定する際は、 レコード中のデータ位置を指定してください。次の例では、 Weight 列にロードするフィールドが位置 30 で始まり、位置 32 で 終わります。入力ファイルには、このフィールドの前にほかの フィールドや空白があります。 weight position (30:32) integer external (3) Position 句と同様に、<start>:<end> はフィールド中の位置ではな く、レコード中のデータ位置を示します。次の例で、City 列に対 応するフィールドは、位置 25 で始まり位置 44 で終わる 20 バイト です。フィールドの先頭 3 バイトが開始位置の文字列 San と一致 していれば、TMU は City 列に NULL を格納します。 city position (25:44) char (20) nullif (25:27) = 'San' 3-72 Table Management Utility Reference Guide simple フィールド <end> を指定すると、フィールドの長さは <end>-<start>+1 バイト になります。この長さは、フィールド型の定義で指定した長さに 優先します。<end> を指定しないと、その文字列の長さが使用さ れます。 xml_path 各入力フィールドをロードするためにはどのように XML 入力ファ イルを解釈すべきかを指定します。 <field_type> 入力フィールドのデータ型 (integer external など )。データ型の詳細 については、3-97 ページを参照してください。 LTRIM、RTRIM、VARCHAR 列をロードする際に先行スペースと後続スペースを処 TRIM 理する入力修飾子。それぞれの先頭の空白、末尾の空白、または その両方を削除して、入力列を修正します。 NULLIF デフォルト値を列にロードする方法を指定します。デフォルト値 が定義されていない場合、列には NULL がロードされます。指定 した位置のデータが文字列と等しければ、対応する行の列値は NULL になります。 VARLEN および VARLEN EXTERNAL の場合、NULLIF は固定長の 部分に指定し、アタッチされた部分には指定しません。 XML 形式でロードする場合には、NULLIF 条件は指定できませ ん。 <start>:<end> この表で前述の <start>:<end> の説明を参照してください。 <string> データベース ロケ−ル コード セットを使用して指定してくださ い。 x'<hex_string>' 文字列を 16 進数で指定します。文字 x が必要です。 ADD 入力レコードの値を、テーブル列の対応する値に加算します。 SUBTRACT 入力レコードの値を、テーブル列の対応する値から減算します。 MIN 入力レコードの値とテーブル列の対応する値のうち、小さな方を 格納します。 ウェアハウス データベースへのデータのロード 3-73 simple フィールド MAX 入力レコードの値とテーブル列の対応する値のうち、大きな方を 格納します。 ADD_NONULL 入力レコードの値を、テーブル列の対応する値に加算します。入 力レコードの値が NULL の場合、テーブル列の値は変更されませ ん。テーブル列の値が NULL の場合は、0 と見なして処理されま す。 SUBTRACT_NO 入力レコードの値を、テーブル列の対応する値から減算します。 NULL 入力レコードの値が NULL の場合、テーブル列の値は変更されま せん。テーブル列の NULL 値は、0 と見なして処理されます。 MIN_NONULL 入力レコードの値とテーブル列の対応する値のうち、小さな方を 格納します。入力レコードの値が NULL の場合、テーブル列の値 は保持されます。テーブル列の値が NULL の場合、入力レコード の値に置き換えられます。 MAX_NONULL 入力レコードの値とテーブル列の対応する値のうち、大きな方を 格納します。入力レコードの値が NULL の場合、テーブル列の値 は保持されます。テーブル列の値が NULL の場合、入力レコード の値に置き換えられます。 ROUND 浮動小数点入力データ型 (REAL、FLOAT および DOUBLE PRECISION) を整数または 10 進数テーブル データ型 (TINYINT、 SMALLINT、INT、および DECIMAL) へ値を丸めて変換します。 入力フィールドの浮動小数値を整数または 10 進数へ値を丸めて変 換します。この際、スケール値により切り捨てられた部分のもっ とも重要な位に基づいて値を丸めます。5 未満の値は最も近い整 数値に切り捨てられます。5 以上の値は切り上げられます。 3-74 Table Management Utility Reference Guide simple フィールド xml_path 指定 入力フィールドに対する XML パスを構築する方法を図に表すと次のようになりま す。 xml_path <simple_field> p. 3-71 へ戻る /element /@attribute <field_type> p. 3-97 /#PCDATA /element マークアップ タグで指定されている XML ファイルの要素を示し ます。複数の連続要素を指定して、XML ファイルの繰り返し階層 構造を表すことができます。各要素の先頭には必ず "/" 文字が付き ます。また、連続する要素は必ず、"/@attribute" または "#PCDATA" で終わります。 /@attribute この要素に対する特定の属性値を示します。XML ファイルでは、 この値は必ず、引用符で囲まれ、先頭に等号 (=) がついたリテラル 値になります。 #PCDATA 要素の開始タグと終了タグの間に表示されるデータ内容 ( マーク アップ文字以外のものすべて ) を示します。 XML の CDATA セクションでは、パーサーに対して、< 記号や & 記号など、通常、マークアップ文字として認識される文字は無視 し、コンテンツとして取り扱うように指示します。ある要素に CDATA セクションが現れた場合、TMU では、#PCDATA 指定に基 づき、これらの文字も同様にロードされます。1 つの要素に CDATA コンテンツと #PCDATA コンテンツの両方が存在する場合、 文字列が連結され、列に対する入力が作られます。 ウェアハウス データベースへのデータのロード 3-75 simple フィールド <field_type> ほとんどのフィールド型が XML パスで指定できますが、VARLEN フィールド型と VARLEN EXTERNAL フィールド型はサポートさ れていません。指定されたフィールド型で length 指定がサポート されている場合、長さを指定する必要があります。たとえば、文 字型や外部数値型では長さを指定する必要があります。サポート されているフィールド型の構文については、3-97 ページ を参照し てください。 長さの値は、フィールドにロードできるバイト数の最大値を表し ます。指定された値に含まれるバイト数が長さの値よりも少ない 場合、余った部分はスペースで埋められます。値が最大値を超過 すると、入りきらない部分は切り捨てられます。切り捨てられる 部分がスペースではない場合、TMU によって警告メッセージが表 示されます。切り捨てられる部分がスペースである場合は、警告 メッセージは表示されません。 ヒント : XML 入力ファイルにあるデータをよく見て、各フィールドの長さを指定 してください。フィールドの長さによって入力行のサイズが決まります。長さの値 を大きくしすぎると、入力行のサイズが必要以上に長くなってしまいます。 集約操作 集約演算子 ADD、SUBTRACT、MIN、および MAX は、MODIFY AGGREGATE モードと UPDATE AGGREGATE モードでのみ使用できます。プライマリ キー列、 true 擬似列 (AS $<pseudocolumns> ではない )、非数値列ではこれらの集約演算子を 使用できません。 入力レコードの指定したフィールドの値、またはテーブルの指定した列の値が NULL の場合は、集約演算 (ADD、SUBTRACT、MIN、MAX) の結果は NULL にな ります。 3-76 Table Management Utility Reference Guide simple フィールド 例 :Position 句 この例は、固定長フォーマット ファイルを読み込む LOAD DATA 文です。Position 句は、各フィールドの開始バイトの相対位置をレコードの始まりから数えたバイト 単位のオフセットで指定します。Perkey 列に対応するフィールドは位置 4 で始まっ て位置 8 で終わり、その後に 3 つのスペースが続きます。次のフィールドは Prodkey 列に対応し、位置 12 で始まります。その後のフィールドは、Custkey 列に 対応し、位置 17 で始まります。 load data inputfile 'orders.txt' recordlen 39 modify discardfile 'orders_discards' discards 1 into table orders( perkey position (4) integer external (5), prodkey position (12) integer external (2), custkey position (17) integer external (2), invoice sequence (1000,1) ); Invoice のフィールド定義には、Position 句がありません。Invoice 列に格納する値が 生成されます。この値は入力ファイルに存在しないため、Position 句は不要です。 次の例は、orders.txt ファイルから取ったデータです。ダッシュ (-) はスペースを表 します。実際のデータにはスペースが含まれます。 Perkey ProdkeyCustkey ---10045---12---56 ---10046---13---57 ---10047---14---58 ウェアハウス データベースへのデータのロード 3-77 simple フィールド 例 :XML データと対応するコントロール ファイル 次の XML 文書は XML フォーマットでの TMU ロードの入力ファイルとして使用す ることができます。 <?xml version="1.0"?> <aromaproducts> <coffee> <product> <ID classkey="12" prodkey="68"/> <name>Aroma 2002 shirt </name> <package>No_pkg </package> </product> </coffee> </aromaproducts> 次のコントロール ファイル (product_xml.tmu) は、上記の XML 文書 (product.xml) を入力ファイルとして使用して、Product テーブルに 1 行ロードします。 LOAD DATA INPUTFILE 'product.xml' APPEND FORMAT XML NLS_LOCALE 'English_UnitedStates.US-ASCII@Binary' INTO TABLE PRODUCT ( classkey /aromaproducts/coffee/product/ID/@classkey integer external(5), prodkey /aromaproducts/coffee/product/ID/@prodkey integer external(5), prod_name /aromaproducts/coffee/product/name/#PCDATA char(30), pkg_type /aromaproducts/coffee/product/package/#PCDATA char(30) ); 3-78 Table Management Utility Reference Guide simple フィールド 次の TMU および RISQL 出力には、ロードの結果と、ロード後に行われた Product テーブルに対するクエリの結果が表示されています。 157 brick % rb_tmu product_xml.tmu system manager (C) Copyright IBM Corp. 1991-2002. All rights reserved. Version 06.20.0000(0)TST ** STATISTICS ** (500) Time = 00:00:00.00 cp time, 00:00:00.00 time, Logical IO count=0, Blk Reads=0, Blk Writes=0 ** INFORMATION ** (366) Loading table PRODUCT. ** INFORMATION ** (8555) Data-loading mode is APPEND. ** INFORMATION ** (9033) Parsing XML input file product.xml. ** INFORMATION ** (9036) XML Parsing Phase: CPU time usage = 00:00:00.00 time. ** INFORMATION ** (9018) Processed 1 rows in this LOAD DATA operation from XML format input file(s). ** INFORMATION ** (513) Starting merge phase of index building PRODUCT_PK_IDX. ** INFORMATION ** (513) Starting merge phase of index building PRODUCT_FK_IDX. ** INFORMATION ** (367) Rows: 1 inserted. 0 updated. 0 discarded. 0 skipped. ** STATISTICS ** (500) Time = 00:00:00.14 cp time, 00:00:01.17 time, Logical IO count=55, Blk Reads=0, Blk Writes=1 RISQL> select * from product where prodkey = 68; CLASSKEY PRODKEY PROD_NAME PKG_TYPE 12 68 Aroma 2002 shirt No_pkg XML 入力ファイルからのテーブルのロードに関する詳細については、3-129 ページ を参照してください。 例 :NULLIF この例は、ロード先の列 City に対する NULLIF 条件を示します。market.txt ファイ ルのレコードの位置 3 ∼ 5 が San の場合、City 列に NULL が格納されます。 load data inputfile 'market.txt' discardfile 'market_discards' into table market( mktkey integer external (2), city char (20) nullif (3:5) = 'San' ); ウェアハウス データベースへのデータのロード 3-79 simple フィールド 例 :Auto Aggregate この例では、TMU は、入力レコードの金額を Sales テーブルの対応する行の既存値 に加算します。UPDATE AGGREGATE が指定されているので、新しい行がテーブル に追加されません。各レコードは、Sales テーブルに既存するプライマリ キー値を 持っている必要があります。ADD は Auto Aggregate モードの一部なので、 AGGREGATE モードを指定してください。 load data inputfile 'sales.txt' update aggregate discardfile 'sales_discards' into table sales( perkey integer external (5), prodkey integer external (2), mktkey integer external (2), dollars decimal external (7,2) add ); 例 :ROUND 関数 次の例は浮動小数点入力フィールドに対する ROUND 関数の機能を示します。 丸められた値のテーブルへの ロード 入力フィールド値 列タイプ 値 1.5 INT 2 -1.5 INT -2 123.45612 DEC, scale = 2 123.46 123.45612 DEC, scale = 3 123.456 3-80 Table Management Utility Reference Guide 連結フィールド 連結フィールド 連結フィールドは、列にロードする入力レコード内のフィールドの結合を指定しま す。 <table_clause> p. 3-65 へ戻る <concat_field> CONCAT ( , <concat_arg_spec> p. 3-81 )) <concat_arg_spec> p. 3-81 <concat_arg_spec> <concat_field> p. 3-81 へ戻る <column_name> $<pseudocolumn> '<character_string>' LTRIM ( RTRIM <column_name> ) $<pseudocolumn> '<character_string>' TRIM ( <column_name> $<pseudocolumn> '<character_string>' , BOTH , LEFT , RIGHT ) ウェアハウス データベースへのデータのロード 3-81 連結フィールド <column_name>、 $<pseudocolumn>、 <character_string> 連結する入力フィールド。文字列を除き、連結する入力 フィールドを指定する前に各入力フィールドを定義しなけれ ば、後に定義されるフィールドは参照できません。 ある行の連結するフィールドの中に NULL があると、連結 の結果は NULL になります。 文字列は、データベース ロケールのコード セットを使用し て指定してください。 LTRIM、RTRIM、TRIM入力フィールドを連結する前に、それぞれ先頭の空白、末尾 の空白、その両方を削除します。 例 :concat フィールド この例は、2 つのフィールドを連結し、1 つの列に格納します。Product テーブルに は、product.txt ファイルの全フィールドがロードされます。product.txt の Aroma フィールドと Acid フィールドの値は、Aroma 列と Acid 列にそれぞれ格納され、同 時にアンパサンド (&) を区切り文字として連結され、Body 列に格納されます。 LTRIM オプションにより、先頭の空白が削除されます。 load data inputfile 'product.txt' replace format separated by ':' discardfile 'product_discards' discards 100 into table product ( prodkey integer external (2), product char (12), aroma char (8), acid char (7), body concat (ltrim (aroma), '&', ltrim (acid)) ); 3-82 Table Management Utility Reference Guide 連結フィールド 例 :concat フィールドとシュード列 この例は連結フィールドとシュード列の使用法を示します。フィールドが読み込ま れ、テーブルに格納されますが、Str フィールドは個別列としては格納されません。 連結列で使用するシュード列として保存されます。Nba_basic テーブルの連結列 Prd_fr_st_pc に、シュード列として読み込まれたフィールドを含め、その前に読み 込んだ 4 つのフィールドを連結した文字列が格納されます。 load data inputfile 'nba_basic' replace format separated by '|' discardfile 'nba_basic.dsc' discards 100 into table nba_basic( fill_1 char, prd_key char, frm_key char, $str char, pck char, pr_fr_st_pc concat(prd_key, frm_key, $str, pck), mp char, pcbo_tot int external, pcbo_rx int external ); ウェアハウス データベースへのデータのロード 3-83 定数フィールド 定数フィールド 定数フィールドは列にロードする定数値を指定します。このとき、TMU によって 値が生成されますが入力ファイルにはこれらの値がありません。 <constant_field> <table_clause> p. 3-65 へ戻る CONSTANT NULL '<character_literal>' <float_constant> <integer_constant> DATE '<date_literal> ' TIME '<time_literal> ' TIMESTAMP '<timestamp_literal> ' '<alternative_datetime_value>' '<character_literal>'、 指定した列に挿入する値。入力する値は、指定した <float_constant>、 列と互換性のあるデータ型である必要があります <integer_constant>、 (3-133 ページ「フィールド型の変換」参照 )。文字リ '<date_literal>'、'<time_literal>'、テラルは、データベース ロケールのコード セットを '<timestamp_literal>'、 使用して指定します。10 進数定数は、10 進数基数に '<alternative datetime_value>' より指定してください。 有効なリテラルおよび定数値は、『SQL Reference Guide』を参照してください。 ANSI SQL-92 日時データ型、および、代わりに定義した日時フォーマットは有効で す。ANSI SQL-92 日付キーワードが現れる場合、このキーワードの直後にくるリテ ラルも ANSI SQL-92 フォーマットである必要があります。数字で月を表し、mdy 以 外のフォーマットを使用して日付時間の値を表す場合、TMU コントロール ファイ ル中に SET DATEFORMAT コマンドを設定してください。SET DATEFORMAT 文の 詳細については、2-32 ページ「日時値のフォーマット」を参照してください。 ヒント : 日付時間型の定数値を指定する場合は、simple フィールド指定の中で、 3-109 ページ に説明する日付時間フォーマット マスクを使って定数を指定してくだ さい。 3-84 Table Management Utility Reference Guide sequence フィールド TMU は、Orders テーブルにレコードをロードするたびに Dollars 列に定数 999 を格 納します。 load data inputfile 'orders.txt' replace discardfile 'orders_discards' discards 10 into table orders( invoice integer external (5), perkey integer external (5), prodkey integer external (2), custkey integer external (2), dollars constant 999 ); この例では、TMU は 1998 年 3 月 10 日を定数データとし、さらに定数時刻、タイム スタンプ値を作成し、対応する列に格納して、各レコードを Period テーブルにロー ドします。 load data inputfile 'period.txt' replace format separated by '*' into table period ( perkey integer external (5), date_col constant date '1998-03-10', time_col constant time '03:15:30', timestamp_col constant timestamp '1998-03-10 3:15:30' ); sequence フィールド sequence フィールドは、逐次算出した整数値を数値列にロードします。このとき、 TMU によって数値が生成されます。入力ファイルにはこれらの数値がありません。 <table_clause> p. 3-65 へ戻る <sequence_field> SEQUENCE ( ) <start> , <increment> ウェアハウス データベースへのデータのロード 3-85 increment フィールド <start>、 <increment> 初期値と増分値を指定します。0 を含め、正負の整数が使用できま す。読み飛ばす行、ロードする行、エラーにより破棄される行のい ずれに対しても増分を適用した値が割り当てられます。<start> と <increment> のデフォルトは、どちらも 1 です。 重要 : 増分した値が、ロードする列のデータ型の範囲を超えないように注意して ください。 TMU は、1000 から始まる数値を自動的に生成し、Orders テーブルの Invoice 列に ロードします。テーブルの新規行ごとに、数値が 1 ずつ増えます。 load data inputfile 'orders.txt' append discardfile 'orders_discards' discards 10( into table orders invoice sequence (1000, 1), perkey integer external (5), prodkey integer external (2), ); increment フィールド increment フィールドの場合は、既存の列値に追加する値を指定します。このとき、 TMU によって、追加する値が生成されます。入力ファイルにはこれらの値があり ません。 <increment_field> <table_clause> p. 3-65 へ戻る INCREMENT ( <n> ) <n> 加算 ( または減算 ) する値。正か負の数値定数でなければなりません。<n> の デフォルトは 1 です。 指定した列の値が NULL の場合は、その行のインクリメント結果も NULL に なります。 Format 句には、UPDATE AGGREGATE または MODIFY AGGREGATE フォーマット が指定されていなければなりません。INCREMENT モードは Auto Aggregate モード の機能のため、ライセンス キーを有効にしておく必要があります。 3-86 Table Management Utility Reference Guide Segment 句 INCREMENT キーワードは、擬似列 (true 擬似列または AS $<pseudocolumns>) には使 用できません。 この例は、increment フィールドと UPDATE AGGREGATE モードの用法を示します。 TMU は、Weight 列の既存値に 15 を加算します。UPDATE AGGREGATE が指定され ているため、sales.txt ファイルの各レコードは Sales テーブルに存在するプライマリ キー値を持っている必要があります。このプライマリ キー値を持っていないレコー ドは破棄されます。increment フィールドは Auto Aggregate モードを使用するため、 AGGREGATE モードを指定します。 load data inputfile 'sales.txt' recordlen 32 update aggregate discardfile 'sales_discards' discards 1 into table sales( perkey integer external (5), prodkey integer external (2), mktkey integer external (2), dollars decimal external (7,2), weight increment (15) ); Segment 句 Segment 句は Table 句の代わりに使用し、データをロードするテーブルのセグメント を指定します。特定のセグメントにデータをロードするには、次の条件を満たして いなければなりません。 ■ ■ ■ ■ ■ ■ ■ そのセグメントが、テーブルに所属していること そのセグメントがテーブルにある唯一のセグメントではないこと そのセグメントがオフラインであること そのテーブルにローカル インデックスが存在しないこと そのテーブルにシリアル (SERIAL) 型列が存在しないこと Format 句のモードが APPEND、INSERT、または REPLACE のいずれかで あること Discard 句の AUTOROWGEN 機能が OFF であること ウェアハウス データベースへのデータのロード 3-87 Segment 句 オフラインのロード操作は、Optimize 句や rbw.config ファイルの設定にかかわらず、 OPTIMIZE モードで行われます。 <segment_clause> LOAD DATA p. 3-24 へ戻る INTO OFFLINE SEGMENT OF TABLE <table_name> <segment_name> WORKING_SPACE <work_segment> , ( <simple_field> <col_name> AS $<pseudocolumn> $<pseudocolumn> ) <concat_field> <constant_field> <sequence_field> <increment_field> 重要 : 列名、疑似列、およびフィールドの各仕様は、入力データが Format 句中の 指定により、UNLOAD フォーマットを取っている場合に限り、省略することがで きます。 INTO OFFLINE SEGMENT <segment_name> データのロード先であるオフライン行データ セグメント。 このセグメントは、<table_name> で指定するテーブルに所 属し、オフラインでなければなりません。 さらに、セグメントは Format 句で指定したモードの条件を 満たしていなければなりません。このモードの適用範囲 は、ロード先セグメントに限定されます。たとえば、この セグメントが空でない場合、INSERT は失敗しますが、ほ かのセグメント内に行がある場合は失敗しません。 REPLACE は指定したセグメント内のすべての行を削除し ますが、ほかのセグメント内の行は削除しません。 OF TABLE <table_name> セグメントが所属するテーブル 3-88 Table Management Utility Reference Guide Segment 句 WORKING_SPACE <work_segment> 制御情報を新しいデータとして保持できる領域がある非連 結セグメントがロードされます。このセグメントは比較的 小さい場合もあります。このセグメントの大きさは、通常 次の値で十分です。 INITSIZE, EXTENDSIZE: デフォルト値 MAXSIZE: 50KB または 100KB 次の場合は、MAXSIZE の値を大きくしてください。 ■ ■ ■ <col_name, $<pseudocolumn>、 <field specifications>、 AS $<pseudocolumn> ロードするテーブルのインデックス数が多い場合 ロードするデータに重複値が多い場合 INDEX TEMPSPACE THRESHOLD の値が、データ の量に比べて小さい場合 Table 句の場合と同じです。3-66 ページと 3-65 ページに定 義されています。 データをオフライン セグメントにロードした後、SYNCH OFFLINE SEGMENT 操作 により、ロードしたセグメントの部分インデックスをテーブルの既存インデックス と同期する必要があります。3-119 ページ「SYNCH 文の作成」を参照してくださ い。 例 次の例では、LOAD DATA 文によってオフライン セグメントにデータをロードし、 SYNCH 操作によってオフライン セグメントをテーブルのほかの部分と同期します。 load data inputfile 'sales_96_data' append discardfile 'discards_sales_96' discards 3 into offline segment s_1q96 of table sales working_space work01 ( perkey date (10) 'MM/Y*/d01', prodkey integer external (2), mktkey integer external (2), dollars integer external (3) ); synch offline segment s_1q96 with table sales discardfile 'discards_synch'; ウェアハウス データベースへのデータのロード 3-89 Criteria 句 Criteria 句 Criteria 句は、入力レコード単位またはデータ行単位で判定する内容を指定します。 比較結果 (true または false) に応じて、Criteria 句で指定されている (ACCEPT または REJECT) とおりに、レコードがロードまたは破棄されます。Criteria 句の目的は、正 しいデータをロードすることと、AGGREGATE モードのロードが中断した場合に、 同一行が重複して集計されないようにすることです。 Criteria 句で判定の対象に使用できるのは、数値、文字、および日時の各データ型の 列です。 Criteria 句は、データベース ロケールで定めた照合シーケンスおよびコード セット をすべての処理に対して使用します。 数値列または日付時間列に対する <criteria_clause> の構文は、次のとおりです。 LOAD DATA p. 3-24 へ戻る <criteria_clause> ACCEPT <constant> = REJECT <column_name> <> <column_name> < $<pseudocolumn> $<pseudocolumn> > <= >= 3-90 Table Management Utility Reference Guide <constant> Criteria 句 文字列に対する <criteria_clause> の構文は、次のとおりです。 <criteria_clause> LOAD DATA p. 3-24 へ戻る ACCEPT <column_name> REJECT $<pseudocolumn> LIKE NOT <constant> ESCAPE '<c>' ACCEPT 比較基準を満たしている、つまり、比較結果が TRUE である 入力データの各行をテーブルにロードするよう指定します。 その他の値 (NULL 値も ) は破棄されます。 REJECT 比較基準を満たしている、つまり、比較結果が TRUE である 入力データの各行を拒否 ( 破棄 ) するよう指定します。その他 の値 (NULL 値も ) はロードされます。 <constant> 入力レコードまたは行データと比較する、数値、文字、日付 時間のリテラルを指定します。文字と日時の定数は、一重引 用符 (' ') で囲んで指定します。 定数データ型は比較する列またはシュード列のデータ型と同 じか、互換性のあるデータ型である必要があります。たとえ ば、数値定数は文字列や日付時間列と比較できません。 数値、文字、および日付時間の各定数は、『SQL Reference Guide』に示すリテラルの定義に準拠する必要があります。 ANSI SQL-92 に規定する日時データ型と、データベースの日 時フォーマットはどちらも有効です。 キャラクター リテラルは、データベース ロケール中のコード セットで指定してください。10 進数定数は、10 進数基数によ り指定してください。 ウェアハウス データベースへのデータのロード 3-91 Criteria 句 <column_name> 指定したテーブルの数値、文字、日付時間のいずれかの列を 参照します。列を参照すると、TMU はレコードをロードする 前にテーブルの既存行データをチェックします。たとえば、 次の ACCEPT 句の場合、対応する Sales 列の既存値が定数値 1000 に等しい場合だけ、TMU はレコードをロードします。 accept SALES = 1000 列参照は UPDATE モードまたは MODIFY モードでだけ使用で きます。APPEND モード、INSERT モード、REPLACE モード では、対応する行がないので、これらのモードでは列参照を 使用できません。列参照を MODIFY モードで使用する場合、 ACCEPT/REJECT 句を使用できるのは、レコードがプライマ リ キーで識別された既存の列に対応する場合に限ります。レ コードが既存の列に対応しない場合は、比較が行われずにレ コードがロードされます。つまり、MODIFY モードの挿入操 作では比較が行われません。 $<pseudocolumn> 入力レコードの数値、文字、または日付時間のいずれかの フィールドを参照します。シュード列を参照すると、TMU は レコードをロードする前に、入力レコードのデータをチェッ クします。まず、入力データの参照整合性をチェックし、 Criteria 句で指定した比較を行います。たとえば、次の REJECT 句の場合、sales フィールドの値が 100 未満のレコー ドはすべて破棄されます。 reject $SALES < 100 <pseudocolumn> が参照する列は、フィールド定義で指定した 数値、文字、または日付時間のいずれかのシュード列でなけ ればなりません。シュード列の詳細は、3-66 ページを参照し てください。 3-92 Table Management Utility Reference Guide Criteria 句 LIKE、NOT LIKE 列またはフィールドの値を文字列と比較します。参照先の列 または擬似列は文字 (CHARACTER) 型である必要があります。 パーセント記号 (%) のワイルドカードは、任意の文字列を意 味します。下線記号 (_) のワイルドカードは、任意の 1 文字を 意味します。 ESCAPE '<c>' ESCAPE キーワードは、LIKE と NOT LIKE による比較だけに 使用でき、エスケープ文字として動作する文字 (<c>) を指定し ます。エスケープ文字として指定したワイルドカード文字は、 制御文字ではなく文字列定数として処理されます。照合す るパターンにパーセント記号や下線記号が含まれている場合 は、ESCAPE キーワードを使用してください。 エスケープ キャラクターは、データベース ロケールのコード セットを使用して指定してください。エスケープ キャラク ターはシングルバイトおよびマルチバイトのいずれの構成も 使用できます。 使用上の注意 1 つの ACCEPT または REJECT の Criteria 句のみが各 LOAD DATA 文で表されます。 判定条件の判定には、TRUE、FALSE、および UNKNOWN の 3 つの論理値が使用さ れます。NULL 値は UNKNOWN とみなされます。UNKNOWN の動作には注意が必 要です。たとえば DOLLARS 列に NULL が含まれている行は、次のどちらの条件に も該当しません。 accept dollars >= 1000 accept dollars < 1000 Criteria 句にシュード列ではなく基本列が指定されていて、ロード モードが MODIFY または MODIFY AGGREGATE である場合、ロード操作により、自動的に OPTIMIZE OFF に切り替えられます。 ウェアハウス データベースへのデータのロード 3-93 Criteria 句 例 : 有効な Criteria 句 列の値を定数と比較する Criteria 句の例をいくつか示します。このような Criteria 句 は、UPDATE、MODIFY、または AGGREGATE のいずれかのモードでしか使用でき ません。 accept reject accept accept reject DISTRICT = 475 BATCH_ID > 100 CITY = 'Los Angeles' AUTH = 'Y' SALE_DATE <= date '1995-10-16' -- ANSI SQL-92 datetime format reject SALE_DATE <= '10-16-1995' -- Alternative datetime format accept SALE_TIMESTAMP >= timestamp '1995-10-16 13:13:13' -- ANSI SQL-92 datetime format 次に、入力フィールドの値を定数と比較する Criteria 句の例をいくつか示します。 accept accept reject accept $CITY = 'Los Angeles' $TIME_COL >= '13:13:13' $TIME_COL >= time '08:35:40' $TIMESTAMP_COL >= timestamp '1995-10-16 12:13:13' reject $CITY < 'Los Angeles' /* rejects records where input value occurs before "Los Angeles" in alpha-sorted list */ 例 :LIKE および NOT LIKE 次に、Criteria 句で LIKE 演算子と NOT LIKE 演算子を使った例を示します。 reject zip not like '950%' -- rejects any zip codes that do not begin with'950' accept city like 'Hamb_rg' -- accepts cities like 'Hamburg, Hamberg, and so on. reject sales_pct like '%Monthly ¥%' escape '¥' -- rejects any string that ends with 'Monthly %' 3-94 Table Management Utility Reference Guide Comment 句 Comment 句 Comment 句は、ロード操作またはロードするデータを説明する任意の文字列です。 この情報は RBW_LOADINFO システム テーブルに格納され、指定したテーブルへ のロード操作の履歴情報になります。この履歴データは、RBW_LOADINFO シス テム テーブルに対してクエリを行って参照することができます。 LOAD DATA p. 3-24 へ戻る <comment_clause> COMMENT COMMENT '<character_string>' '<character_string>' コメント文字列を RBW_LOADINFO システム テーブルに格 納することを指示します。この文字列は、そのロード操作を 記述する行の Comment 列に格納されます。256 バイト ( 一 重引用符を含めない ) まで指定することができます。キャラ クター ストリングは、データベース ロケールのコード セッ トを使用して指定してください。 例 この例では、ロードするデータのソースを説明したコメントが指定されています。 この情報は、RBW_LOADINFO システム テーブルに格納されるほかの情報と合わ せて、Sales テーブルのロード操作に関する履歴となります。 load data inputfile 'sales.txt' update aggregate discardfile 'sales_discards' into table SALES( perkey integer external (5), prodkey integer external (2), mktkey integer external (2), dollars decimal external (7,2), weight integer external (3) add ) comment 'East coast, Q2-96,input file sales.txt'; ウェアハウス データベースへのデータのロード 3-95 Comment 句 Sales テーブルのロード操作、たとえば、特定のデータ バッチがロードされたかど うかを確認するには、RBW_LOADINFO システム テーブルに次のようなクエリを 実行します。 select * from RBW_LOADINFO where tname = 'SALES' order by started; このクエリから返される情報は、ロード操作の開始時のタイムスタンプ ("STARTED" 列 ) に基づいてソートされた、LOAD DATA 文に入力したコメントと Sales テーブルのロード操作に関する情報です。 RBW_LOADINFO システム テーブルには、最新の LOAD DATA 動作 256 件の情報 が、実行順に 1 行ずつ格納されています。特定の順序でデータを抽出するには、 SELECT 文に ORDER BY 句を指定します。 3-96 Table Management Utility Reference Guide フィールド型 フィールド型 フィールド型は、3-70 ページに説明するとおり、simple フィールド内の入力データ のデータ型を指定します。このデータ型は CREATE TABLE 文の列に定義された データ型に変換されます。これら 2 つのデータ型は、3-133 ページに示す互換性を 満たしている必要があります。 <field_type> ( パート 1/2) <simple_field> p. 3-71 へ戻る CHARACTER 文字 p. 3-99 SUBSTR ( ( <length> CHAR VARLEN 外部数値 p. 3-101 <start> ) , <num> ) EXTERNAL INTEGER EXTERNAL ( <length> INT EXTERNAL ) , <scale> DECIMAL EXTERNAL ( <length> DEC EXTERNAL ) RADIX POINT '<c> ' , <scale> 外部浮動小数 点数値 p. 3-103 パック 10 進数 およびゾーン 10 進数 バイナリ整数 p. 3-105 FLOAT EXTERNAL ( ) <length> DECIMAL DEC PACKED ( <length> ) , ZONED <scale> INTEGER ( INT SMALLINT <scale> ) <restricted_ date_spec> p. 3-116 <restricted_ date_spec> p. 3-116 TINYINT バイナリ浮動 小数点 p. 3-106 REAL DOUBLE PRECISION ウェアハウス データベースへのデータのロード 3-97 フィールド型 <field_type> ( パート 2/2) 日付 p. 3-107 <simple_field> p. 3-71 へ戻る '<date_mask>' DATE ( <length> p. 3-116 ) CURRENT_DATE 時間 p. 3-107 '<time_mask>' p. 3-116 TIME ( <length> ) ( <length> ) CURRENT_TIME タイムスタン プ フィールド '<timestamp_mask>' p. 3-116 TIMESTAMP CURRENT_TIMESTAMP メタ日付 p. 3-107 M4DATE <m4date_mask> ( <length> ) 以降の節では、各フィールド型の定義と例を示します。 3-98 Table Management Utility Reference Guide 文字型フィールド 文字型フィールド CHARACTER、 CHAR 文字列であることを示します。文字型フィールドには、そのシ ステムのコード セットの文字がすべて使用できます。 フィールドの長さ ( バイト数 ) は、<length> で指定します。格 納対象の文字型列が入力レコードのフィールドの長さを超える 場合、入力文字は左寄せされて超過部分にスペースが充填され ます。格納対象の文字型列が入力フィールドの長さより短い場 合、入力フィールドが切り捨てられます。長さを指定しなかっ た場合は、CREATE TABLE 文の列定義で指定した長さになりま す。 XML フォーマットで表される文字型フィールドでは、長さを 必ず指定してください。 VARLEN、VARLEN 文字 (CHAR) 型と可変長文字 (VARCHAR) 型の列のロードに使 EXTERNAL 用し、文字データ セクションの長さを識別します。VARLEN 型、および VARLEN EXTERNAL 型は、XML フォーマットで のロードでは使用できません。 VARLEN および VARLEN EXTERNAL は、可変長フォーマット レコードでだけ使用されます。VARLEN および VARLEN EXTERNAL はどちらも固定長で、その位置は POSITION キー ワードまたはフィールド長仕様を使用して記述されます。 VARLEN および VARLEN EXTERNAL の出力列は、可変長文字 (VARCHAR) 型または文字 (CHARACTER) データ型の実際の 列、または擬似列になります。 VARLEN は、可変長フォーマット レコードの可変長部分にあ るデータ セクションの長さを、バイナリ形式で示すものです。 指定できる VARLEN の最大長は 2 です。 VARLEN EXTERNAL は、可変長フォーマット レコードの可変 長部分にあるデータ セクションの長さを、ASCII/EBCDIC 外部 形式で示すものです。指定できる VARLEN EXTERNAL の最大 長は 8 です。 ウェアハウス データベースへのデータのロード 3-99 文字型フィールド 可変長部分からデータ セクションの長さが抽出されると、 VARLEN および VARLEN EXTERNAL フィールドに対する操作 は、実際には文字データ セクションに対して実行されます。 TRIM、LTRIM、RTRIM、および SUBSTR 機能は、すべてデー タ セクションに適用されます。擬似列で使用された場合は、 データ セクションの長さと同じになるまで、擬似列に文字 データが格納されます。 TMU コントロール ファイルに複数の VARLEN フィールドまた は VARLEN EXTERNAL フィールドがある場合、可変部に出現 するデータ セクションの順序は、固定部の長さフィールドと 同じです。コントロール ファイル内の VARLEN フィールドま たは VARLEN EXTERNAL フィールドの順序とは無関係です。 2 つの VARLEN フィールドまたは VARLEN EXTERNAL フィー ルドの開始位置が同じ場合、この 2 つのフィールドの長さは同 じです。長さが同じでない場合は TMU からエラーが返されま す。 SUBSTR (<start>, <num>) 文字フィールドのサブセットだけをロードすることを示し、開 始位置と文字数を単位とした ( バイトではない ) 文字数を指定 します。POSITION キーワード仕様はバイトを使用します。こ の機能は、マルチバイト構成のキャラクター セットを使用す る場合に指定します。サブストリングの開始位置が 0 ではない 場合、またはサブストリングの長さがテーブルの列の長さより も長い場合は、テーブルの列にロードされるデータは予測する ことができません。 <length> 入力フィールドのバイト数。文字 (CHARACTER) フィールド 型の固定長フォーマットおよび可変長フォーマットの入力デー タでは、POSITION キーワードまたはフィールドの型定義に フィールド長を指定しなかった場合、テーブルに設定された列 幅が使用されます。 ヒント : SUBSTR 機能ではなく POSITION キーワードを使用して、固定長フォー マットのキャラクター データのサブストリングをロードする場合の方が、TMU は 高性能を実現します。しかし、マルチバイトを使用すると、SUBSTR 機能を使用し てストリングを取り出す必要があります。これは、POSITION はバイト単位で指定 するのに対して、SUBSTR はキャラクターを単位とするからです。 char (10) character (24) char (24) substr (1, 5) 3-100 Table Management Utility Reference Guide 外部数値型フィールド 次の例は、LOAD DATA 文中で SUBSTR キーワードを使用して、キャラクター スト リングの一部をテーブル Sales の第 2 列にロードしています。括弧内の数は、開始 キャラクター位置およびサブストリング中のキャラクター数を定義します。 … load data into table sales ( col1 decimal external radix point ',', col2 char substr(1,5) ); たとえば、第 2 列の入力データがストリング California である場合、サブストリング Calif のみがその列にロードされます。 外部数値型フィールド INTEGER EXTERNAL、 INT EXTERNAL [±] <digits> フォーマットの数値を表す文字列。この数 値は、38 桁を超えてはいけません。シリアル (SERIAL) 型列をロードするときにこのフィールド型 を使用します。 DECIMAL EXTERNAL、 DEC EXTERNAL 次のフォーマットの 10 進数を表す文字列。 <field_type> p. 3-97 へ戻る DECIMAL EXTERNAL、 DEC EXTERNAL <digit> . + <digit> . <length> <digit> 入力フィールドのバイト数。固定長フォーマットの外 部数値型の入力データ フィールドは、POSITION キー ワードか、length パラメータによる長さの指定が必須 です。XML フォーマットで表される外部数値型 フィールドでは、length パラメータを必ず指定してく ださい。 先頭と末尾の空白をデータ入力ファイルで使用できま す。 ウェアハウス データベースへのデータのロード 3-101 外部数値型フィールド <scale> 小数点以下の桁数 ( 基数点 )。この値を指定しなけれ ば、デフォルトの 0 が使用されます。入力された小数 データは格納対象のデータ型の値に変換されます。 格納対象のデータ型が DECIMAL または NUMERIC の 場合、入力データの小数点以下の桁数 ( 指定したかデ フォルトかにかかわらず ) は、対象の列の小数点以下 の桁数 ( 列定義の <scale> で指定 ) に揃えられます。 scale を指定した入力値の整数部が対象の列の精度を超 える場合は、オーバーフロー エラーが発生し、そのレ コードは破棄されます。scale を指定した入力値の小数 部が対象のデータ型の小数の精度を超え、超過部分の 桁が 0 でなければ、切り捨てエラーが発生し、そのレ コードは破棄されます。 RADIX POINT '<c>' 数値中の基数を表すのに使用するシングルバイトある いはマルチバイト キャラクター。入力レコード中の データが区分されている場合、基数キャラクターは Format 句中のセパレーター キャラクターとして指定し たキャラクターとは別にしてください。基数ポイント が指定されていない場合、入力ロケールのデフォルト 基数を使用します。 警告 : 基数文字を指定する場合は、データベース ロケール コード セットを使用し て指定する必要があります。データ中の基数ポイントとして使用するキャラクター を、データベース中のキャラクターとして表すことができない場合、入力データを 正しく解釈できません。 3-102 Table Management Utility Reference Guide 外部浮動小数点数値型フィールド 外部浮動小数点数値型フィールド 次のフォーマットの浮動小数点数値を表す文字列。 FLOAT EXTERNAL <field_type> p. 3-97 へ戻る FLOAT EXTERNAL 仮数 ( 小数部 ) <digit> . + <digit> . <digit> 指数部 E e <digit> + - <length> 入力フィールドの合計バイト数。FLOAT EXTERNAL の固定長フォーマット入力データの場合、POSITION キーワードか、length パラメータによる長さの指定が 必須です。XML フォーマットで表される FLOAT EXTERNAL フィールドでは、length パラメータを必ず 指定してください。 例 int external --length specified by POSITION clause integer external (8) decimal external --length specified by POSITION clause decimal external (5) decimal external (5,2) float external --length specified by POSITION clause float external (8) 入力レコードが区切り記号付きフォーマットの場合は、長さが暗黙的に決まる場合 があります。 ウェアハウス データベースへのデータのロード 3-103 パック 10 進数型フィールドおよびゾーン 10 進数型フィールド パック 10 進数型フィールドおよびゾーン 10 進数型 フィールド DECIMAL、 パック 10 進数の数値。この数値は、38 桁を超えてはい DEC、DECIMAL PACKED けません。 length の指定は、入力レコードのフィールド当たりのバ イト数を表します。その場合、数値の精度は (2* <length>) -1 になります。1 桁は 0.5 バイトに相当し、 符号 (+ または -) に 0.5 バイトが予約されるため、最大長 は 20 バイトになります。 DECIMAL ZONED IBM ゾーン 10 進数の数値。このフォーマットは、 FORMAT IBM 句を指定しないと使用できません。この数 値は、38 桁を超えてはいけません。 <length> の指定は、入力レコードのフィールド当たりの バイト数を表します。その場合、バイト数は入力値の桁 数 ( 精度 ) に対応します。1 桁は 1 バイトに相当するた め、最大長は 38 バイトになります。 <length> 固定長フォーマットのパック 10 進数およびゾーン 10 進 数型入力データは、POSITION キーワードか length パラ メータによる長さの指定が必須です。10 進数型データを XML フォーマットでロードする場合、length パラメータ を必ず指定してください。 <scale> 小数点以下の桁数 ( 基数点 )。この値を指定しなければ、 デフォルトの 0 が使用されます。入力された小数データ は格納対象のデータ型の値に変換されます。 <restricted_date_spec> パック 10 進数やゾーン 10 進数の入力データを日時列に ロードするための制限付き日付時間フォーマット マスク を指定します。制限付き日付時間フォーマット マスクの 詳細は、3-116 ページ「数値フィールドの制限付き日付 時間マスク」を参照してください。 3-104 Table Management Utility Reference Guide 整数バイナリ型フィールド 例 decimal -- packed; length specified by POSITION clause dec -- packed; length specified by POSITION clause decimal packed -- length specified by POSITION clause dec packed (5,2) decimal zoned -- length specified by POSITION clause decimal zoned (5,2) decimal zoned (5) decimal packed (8) date 'YYYMMDD' DECIMAL PACKED (6,3) というパック 10 進数の入力型を参照し、DECIMAL (5,2) と いうデータベース データ型に変換する TMU の LOAD DATA 文を次の数値に実行す ると、変換の結果またはエラーの内容は次のようになります。 入力値 実行結果 473220 473.22 819077 切り捨てエラー。レコードが破棄されます。 2323478320 オーバーフロー エラー。レコードが破棄されます。 整数バイナリ型フィールド 整数バイナリ型フィールドの場合、フィールドの長さはフィールドの型によって暗 黙的に決まります。 INTEGER、INT 4 バイトのバイナリ整数。シリアル (SERIAL) 型列をロー ドするときにこのフィールド型を使用します。 SMALLINT 2 バイトのバイナリ整数 TINYINT 2 の補数で表した 1 バイトのバイナリ整数 ウェアハウス データベースへのデータのロード 3-105 浮動小数点バイナリ型フィールド <scale> オプション。小数点以下の桁数 ( 基数点 )。この値を指定 しなければ、デフォルトの 0 が使用されます。入力され た小数データは格納対象のデータ型の値に変換されます。 ターゲット データ型が整数 (INTEGER) 型、TINYINT 型、 小桁整数 (SMALLINT) 型の場合は、小数点の右側の数字 がすべて 0 である必要があります。そうでない場合は切 り捨てエラーが発生し、レコードが破棄されます。 <restricted_date_spec> 整数バイナリ入力データを日時列にロードするための制 限付き日時フォーマット マスクを指定します。制限付き 日時フォーマット マスクの詳細は、3-116 ページ「数値 フィールドの制限付き日付時間マスク」を参照してくだ さい。 例 INT (3) というバイナリ整数型入力を参照し、DECIMAL (5,2) というデータベース データ型に変換する TMU の LOAD DATA 文を次の数値に実行すると、変換の結果 またはエラーの内容は次のようになります。 入力値 実行結果 473220 473.22 819077 切り捨てエラー。レコードが破棄されます。 2123478320 オーバーフロー エラー。レコードが破棄されます。 浮動小数点バイナリ型フィールド REAL および DOUBLE PRECISION フィールド型は、Format 句に FORMAT IBM キー ワードが含まれる場合はサポートされません。 REAL 4 バイトの浮動小数点数値 DOUBLE PRECISION 8 バイトの浮動小数点数値 3-106 Table Management Utility Reference Guide 日時型フィールド 日時型フィールド DATE、TIME、 TIMESTAMP 日付時間、およびタイムスタンプの情報として処理、格納さ れる文字。固定長フォーマットの日付時間型入力データは、 POSITION キーワードか <length> パラメータによる長さの指 定が必須です。 ほかのフィールドの型と異なり、DATE、TIME、および TIMESTAMP のフィールドはサブフィールドから構成されま す。<date_mask>、<time_mask>、および <timestamp_mask> の 各エレメントは、フィールドの定義で、使用するサブフィー ルドとその順序および長さを指定するフォーマット マスクで す。フォーマット マスクの詳細は、3-109 ページ「日付時間 フィールドのフォーマット マスク」を参照してください。 次の表は、各日時型フィールドの有効なサブフィールドを定 義します。各フィールド型の必須フィールドを太字で示しま す。 フィールド型 有効なサブフィールド DATE 年とユリウス日、または年、月、日 TIME 時間、分、秒、秒未満端数 TIMESTAMP 年、ユリウス日、時間、分、秒、秒未満 端数、または年、月、日、時間、分、秒、 秒未満端数 CURRENT_DATE 実際に行をロードした時の時刻。日付値は午前 0 時に変わり ます。 CURRENT_TIME 行をロードした時の時刻。 CURRENT TIMESTAMP 行をロードした時の CURRENT_TIME と CURRENT_DATE の 値。 ウェアハウス データベースへのデータのロード 3-107 日時型フィールド M4DATE <format> で指定したフォーマットの日付を表す文字列。 M4DATE <m4date_mask> M4DATE <m4date_mask>(<length>) POSITION キーワードか <length> パラメータにより、全体の 長さをバイト数で指定しなければなりません。 M4DATE 型フィールドのフォーマットはいずれも、日付時間 リテラルのフォーマット マスクで表現できます。つまり、 M4DATE フォーマットの日付を含む入力データは、入力デー タを修正せずに日付 (DATE) 型の列にロードできるというこ とです。M4DATE フィールドからロードした整数型の列には 日時スカラ関数が使用できなくなるため、新しいデータベー スでは M4DATE フィールドを使用しないでください。 TMU は、M4DATE 文字列をメタ DIS 日付フォーマットに変換し、テーブルをロー ドする時に整数として格納します。フォーマットは次の表に示すいずれかである必 要があります。 フォーマット 例 :1996 年 4 月 10 日 YYJJJ または YYYYJJJ 96/100 1996/100 YYMD または 960410 YYYYMD 1996/4/10 MDYY または 4/10/96 MDYYYY 04101996 DMYY または DMYYYY 10/4/96 10041996 3-108 Table Management Utility Reference Guide 日付時間フィールドのフォーマット マスク D 各月における日を表す 1 桁または 2 桁の数字 JJJ 年間における日をユリウス暦フォーマットで表す 3 桁の数字 M 年間における月を表す 1 桁または 2 桁の数字 YY および YYYY 年を表す、それぞれ 2 桁または 4 桁の数字。2 桁で表す年 <nn> は、19nn と解釈されます。 日、月、および年の各項目は続けて指定するか、1 つの空白、スラッシュ (/)、ハイ フン (-)、ピリオド (.)、またはカンマ (,) で区切って指定します。区切らずに指定す る場合、日と月は、それぞれ 2 桁で表さなければなりません。 日付時間フィールドのフォーマット マスク 日付時間フィールド型のフォーマット マスクは、固定長、可変長または両方のサブ フィールド フォーマット指定子を結合して作成します。DATE フォーマット マスク は、月、日、および年のサブフィールドで構成され、以下のいずれかの形式で表さ れます。 フォーマット 定義 'MMDDYYYY' 固定長フォーマット入力の DATE フォーマット マスク 'M*/D*/Y*' 可変長フォーマット入力の DATE フォーマット マスク 'MM D* YYYY' 固定長と可変長を組み合わせた DATE フォーマット マスク 'm8d16y1997' DATE フォーマット マスク、定数日付 (1997 年 8 月 16 日 )。 日付定数も、3-84 ページに説明するとおり、定数フィールド で定義することができます。 例 date (8) 'MMDDYYYY' date (8) 'DDMMYYYY' date 'y1996m8d17' ウェアハウス データベースへのデータのロード 3-109 サブフィールドの構成要素 サブフィールドの構成要素 サブフィールドを構成する各要素、デフォルト値、フォーマット マスクの指定子は 次の表のとおりです。固定長、可変長サブフィールドの例は、以降の節で説明しま す。 サブフィールド Default の構成要素 値 マスク 指定子 必須サブフィール Y ド。デフォルトは ない。指定は必須。 y?Y* または y?YY Year ユリウス日 ( 年間の日番号 ) サブフィールドの範囲と解釈 1 ∼ 9999。Y の数で読み込む桁数を指定。 00 ∼ 49 は 2000 ∼ 2049、50 ∼ 99 は 1950 ∼ 1999 を 表す。 y<n>Y* ま たは y<n>YY 世紀は固定。<n> で 1 ∼ 99 を指定。 y<n> 年は固定。<n> で 1 ∼ 9999 を指定。 J 1 ∼ 366。J の数で読み込む桁数を指定。1 月 1 日が 1。 j<n> 日は固定。<n> で 1 ∼ 366 を指定。 年は 1 桁または 2 桁で表す。 うるう年は、格納されている日の値が調整される。 Month Day 1 1 M 1 ∼ 12。M の数で読み込む桁数を指定。 m<n> 月は固定。<n> で 1 ∼ 12 を指定。 Mon *Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec Month *January, February, March, April, May, June, July, August, September, October, November, December D 1 ∼ 31。D の数で読み込む桁数を指定。グレゴリオ 暦の規則に従い、月と年によってとりうる値が制約 される。 d<n> 日は固定。<n> で 1 ∼ 31 を指定。 (1/2) 3-110 Table Management Utility Reference Guide サブフィールドの構成要素 サブフィールド Default の構成要素 値 Hour 必須サブフィール ド。デフォルト値 はない。指定は必 須。 マスク 指定子 サブフィールドの範囲と解釈 H 0 ∼ 23。H の数で読み込む桁数を指定。 A AM 午前か午後を表す任意入力のサブフィールド指定子 ( 大文字と小文字の区別はない )。A は、データに A または P が含まれることを表し、AM は、AM また は PM が含まれることを表す。 12 時間表記の時刻は、24 時間表記の時間に変換さ れる。 Minute 秒 秒 端数 0 0 0 h<n> 時は固定。<n> で 0 ∼ 23 を指定。 I 0 ∼ 59。I の数で読み込む桁数を指定。 i<n> 分は固定。<n> で 0 ∼ 59 を指定。 S 0 ∼ 59。S の数で読み込む桁数を指定。 s<n> 秒は固定。<n> で 0 ∼ 59 を指定。 F 0 ∼ 999999。F の数で読み込む桁数と、小数点以下 の桁数 (10- F の数 ) を指定。 たとえば、F は 1/10 秒、FF は 1/100 秒まで入力され ることを表す。 f<n> 秒の小数部は固定。マイクロ秒で指定。<n> で 0 ∼ 999999 を指定。 (2/2) Month、Mon、AM の各サブフィールドの解釈はロケールに固有です。A サブフィー ルドの解釈はロケールに固有ではありません。 固定長サブフィールドでは、サブフィールド マスクの最後の文字が、入力文字数に 達するまで繰り返されます。固定長サブフィールドに、空白を含めることはできま せん。 可変長サブフィールドでは、サブフィールド指定子の後にアスタリスク (*) が続き ます。Mon* と Month* の場合は、月名を完成できる数の文字が処理されます。数値 サブフィールドの場合は、数字以外の文字が初めて出現するまで文字が処理されま す。先頭の空白は無視されます。指定した桁数を超える 0 またはそのほかの数字は 無視されます。 ウェアハウス データベースへのデータのロード 3-111 サブフィールドの構成要素 下線記号 (_) は、サブフィールドが終わり、次の文字を読み飛ばすことを示します。 下線記号をワイルドカードとして使用してバイトをスキップすることもできます。 スキップするバイトごとに下線記号を繰り返す必要があります。 処理されるバイト数は、サブフィールドに指定したフォーマットに関らず、日付時 間フィールドの <length> パラメータに制限されます。 サブフィールド マスクの例 固定長サブフィールドのフォーマット YYYY 年を 4 桁で表すことを示します。 MMDDYYYY 月と日を 2 桁ずつで表し、年を 4 桁で表すことを示します。 _ _ _ _Mon 3 文字の月名の前にある 4 バイト (4 つの下線記号で指定 ) を読 み飛ばすことを示します。 可変長サブフィールドのフォーマット D*/M*/YYYY 月日を 1 桁以上で表し、年を 4 桁で表すことを示します。ス ラッシュ ( 最初の非数字文字 ) でサブフィールドを区切ります。 Mon d1 y?Y* 短縮形の月名を示します。日は 01、年は 1 桁または 2 桁。空白 文字でサブフィールドを区切ります。 固定長サブフィールドと可変長サブフィールドの組み合わせ : 各サブフィールドの 下に示す番号は、以下の説明に対応する番号です。 'Month* D*, YY*_HH:II:SS.FFFF*' (1) (2) (3) (4) (5) (6) (7) (1) 空白を読み飛ばし、月名を読み込み、空白で終了します。 (2) 空白を読み飛ばし、日を表す 1 桁以上を読み込み、カンマで終了します。 (3) 空白をスキップし、年を表す 2 桁以上を読み込みます。年に続く非数字文字は無 視します。 (4) 時を表す 2 桁を読み込みます。空白やそのほかの非数字文字は使用できません。 コロンの有無をチェックします。 3-112 Table Management Utility Reference Guide サブフィールドの構成要素 (5) 分を表す 2 桁を読み込みます。空白やそのほかの非数字文字は使用できません。 コロンの有無をチェックします。 (6) 秒を表す 2 桁を読み込みます。空白やそのほかの非数字文字は使用できません。 コロンの有無をチェックします。 (7) 空白を読み飛ばし、秒未満の端数を表す 4 桁以上を読み込み、その後に続くすべ ての文字を読み飛ばします。 入力フィールドを読み込むフォーマット マスク 各種の入力フィールドと、各フィールドを読み込むための推奨マスクを次に示しま す。 読み込む入力フィールド 使用するフォーマット マスク June 29 May 14 April 1 'Month D* y1996' June 29 49 May 14 96 April 1 1 'Month D* y?Y*' ( 年 : 2049, 1996, 2001) 'Month D* Y*' ( 年 : 0049, 0096, 0001) 'Month D* y19Y*' ( 年 : 1949, 1996, 1901) Tue Jun 4 16:50:49 PDT 1996 Tue Jun 25 16:50:49 PDT 1996 タイムススタンプの場合 : '_ _ _ _Mon D* HH:II:SS_ _ _ _ _YYYY' 日付の場合 : '_ _ _ _Mon D* _ _ _ _ _ _ _ _ _ _ _ _ _YYYY' Tue Jun 4 1996 Sat Jun 15 1996 '_ _ _ _ Mon* D* YYYY' Tue Jun 4 16:50:49 PDT 1996 タイムススタンプの場合 : '_ _ _ _Mon DD HH:II:SS_ _ _ _ _YYYY' 時間の場合 : '_ _ _ _ _ _ _ _ _ _ _HH:II:SS_ _ _ _ _ _ _ _ _' Jun 29, 1996 Jun 7, 1996 'Mon D*,_YYYY' または 'Mon D*,Y*'' Jun 29 1996 Jun 9 1996 Jun 2 1996 'Mon D* YYYY*' (1/2) ウェアハウス データベースへのデータのロード 3-113 サブフィールドの構成要素 読み込む入力フィールド 使用するフォーマット マスク 01/15/96 08:26 AM ( 1996-01-15 08:26:00 として格納 ) 11/15/01 06:15 pm (2001-11-15 18:15:00 として格納 ) 'MM/DD/y?Y* HH:II AM' 1995/060 1996/060 1991/366 1980/366 (1995-03-01 として格納 ) 'YYYY/J*' (1996-02-29 として格納 ) または 'YYYY/JJJ' ( 破棄 ) (1980-12-31 として格納 ) 'YYYY__MM__DD__' ( 年月日を表すマルチバ イト文字を省略し、01-06-1998 と表示 (1998 年1月6日)) (2/2) 例 : 日付時間データのロード この例は、各種フォーマットのデータを DATETIME 列にロードする方法を示しま す。 Datetime と呼ばれるテーブルは、次のように定義されています。 create table datetime ( d1 date, d2 date, d3 date, ts1 timestamp(0), t1 time, ts2 timestamp(0)) Datetime テーブルのデータは、datetime_inputs と呼ばれるファイルにあり、各 フィールドはアスタリスク (*) で区切られています。datetime_inputs ファイルの入 力データの先頭 3 レコードは、以下のとおりです。 96/12/25*December 25 96*07042359*11:59:00PM*Tue Jun 29 16:40:55 PDT 1996 06/12/25*December 25 6*07042359*11:59:00AM*Tue Jun 29 16:40:55 PDT 1996 6/12/25*December 25 6*07042359*12:59:00AM*Tue Jun 29 16:40:55 PDT 1996 d1 へ 3-114 d2 へ ts1 へ t1 へ Table Management Utility Reference Guide ts2 へ サブフィールドの構成要素 このデータをロードする LOAD DATA 文が続きます。現在の日付が列 D3 にロード されます。 load data inputfile 'datetime_inputs' replace format separated by '*' into table datetime ( d1 date 'y19Y*/M*/D*', -- Date subfields separated by / d2 date 'Month D* y?Y*',-- Date subfields separated by space d3 current_date, -- Rows loaded with date at time of load ts1 timestamp(8) 'y1996MMDDHHII', -- Fixed format mask t1 time 'HH:II:SSAM', -- Time subfields separated by : ts2 timestamp '_ _ _ _Mon DD HH:II:SS_ _ _ _ _Y*' -- First 4 characters and 5 characters -- between S and Y are ignored ); データをロードした日付が 1996 年 7 月 1 日の場合、Datetime テーブルに格納される 情報は次のようになります。 d1 d2 d3 ts1 t1 ts2 1996-12-25 1996-12-25 1996-07-01 1996-07-04 23:59:00 23:59:00 1996-06-29 16:40:55 1906-12-25 2006-12-25 1996-07-01 1996-07-04 23:59:00 11:59:00 1996-06-29 16:40:55 1906-12-25 2006-12-25 1996-07-01 1996-07-04 23:59:00 00:59:00 1996-06-29 16:40:55 列 D2 の入力レコードに入っている日付ではなく、特定の日付、1996 年 8 月 16 日に ロードを実行したいとします。このデータをロードする LOAD DATA 文では、次の ような日付値の定数フィールドを使用します。 load data inputfile 'datetime_inputs' replace format separated by '|' into table datetime ( d1 date 'y19Y*/M*/D*', -- Date subfields separated by / d2 date '1996-08-16', -- Rows loaded with 1996-08-16 d3 current_date, -- Rows loaded with date at time of load ts1 timestamp(8) 'y1996MMDDHHII', -- Fixed format mask t1 time 'HH:II:SSAM', -- Time subfields separated by : ts2 timestamp '_ _ _ _Mon DD HH:II:SS_ _ _ _ _Y*' -- First 4 characters and 5 characters -- between S and Y are ignored ); ウェアハウス データベースへのデータのロード 3-115 数値フィールドの制限付き日付時間マスク データをロードした日付が 1996 年 7 月 1 日の場合、Datetime テーブルに格納される 情報は次のようになります。 d1 d2 d3 ts1 t1 ts2 1996-12-25 1996-08-16 1996-07-01 1996-07-04 23:59:00 23:59:00 1996-06-29 16:40:55 1906-12-25 1996-08-16 1996-07-01 1996-07-04 23:59:00 11:59:00 1996-06-29 16:40:55 1906-12-25 1996-08-16 1996-07-01 1996-07-04 23:59:00 00:59:00 1996-06-29 16:40:55 数値フィールドの制限付き日付時間マスク 制限付き日付時間マスクを使って各入力フィールドを定義すると、バイナリ整数、 パック 10 進数、またはゾーン 10 進数の入力データを日付時間列にロードすること ができます。たとえば、1998 年 2 月 14 日という日付を 19980214 と表したパック 10 進数フィールドが入力レコードにある場合、TMU はその入力フィールドから日付 を抽出し、DATE 列に格納します。 <field_type> p. 3-97 へ戻る <restricted_date_spec> DATE '<restricted_date_mask>' TIME '<restricted_time_mask>' TIMESTAMP 3-116 '<restricted_timestamp_mask>' Table Management Utility Reference Guide 数値フィールドの制限付き日付時間マスク <restricted_date_mask>、 <restricted_time_mask>、 <restricted_timestamp_mask> 入力フィールドのサブフィールド。各マスクは固 定長の数値フォーマットのため、3-109 ページで説 明した DATE、TIME、および TIMESTAMP の各入 力フィールド マスクと同様に定義しますが、次の ような制約があります。 ■ ■ ■ ■ ■ 区切り記号 ( スラッシュ ) は使用できませ ん。 可変長のフィールドは使用できません。 マスクに、アスタリスク (*) を含めること はできません。 アルファベットによる表現は使用できま せん。マスクに Mon、Month、AM、PM 指定子を含めることはできません。 10 進数型入力フィールドのマスクは、そ の 10 進数型入力データの許容桁数と一致 しなければなりません。 整数の入力フィールドのマスクには、 フィールドのデータ型の許容バイト数を 超える桁数は指定できません。 整数フィールドの データ型 マスクの最大桁数 INTEGER (4 バイト ) 10 SMALLINT (2 バイト ) 5 TINYINT (1 バイト ) 3 マスクには、読み飛ばす入力データを示す下線記 号 (_) を使用できます。 重要 : 制限付き日付時間マスクを使用した場合は、小数点以下の桁数が無視され ます。パック 10 進数またはゾーン 10 進数型には、フィールド長 (length 引数または Position 句 ) を指定します。またフィールド長は、フォーマット マスクの桁数と一 致する必要があります。 ウェアハウス データベースへのデータのロード 3-117 数値フィールドの制限付き日付時間マスク 日付時間マスクの入力データ要件 入力データは、次の条件を満たしていなければなりません。 ■ ■ ■ 負数は使用できません。負数のデータが含まれている行は破棄されます。 パック 10 進数またはゾーン 10 進数入力データの場合は、入力データの桁 数がマスクの桁数と一致していなければなりません。桁数が違う場合はエ ラーが発生し、TMU のロードが開始されずに中止されます。 バイナリ整数入力データの場合 ❑ 入力データの桁数がマスクで指定する桁数より多いと、その行は破棄 されます。 ❑ 入力データの桁数がマスクで指定する桁数より少ない場合は、入力 データの先頭にゼロがあると見なされます。たとえば、980101 という 入力データに対して YYYYMMDD というマスクを使用すると、デー タは 00980101 という形で格納されます。 例 有効な制限付きマスクと無効な制限付きマスクの例を示します。 3-118 制限付き 日付マスク 例 コメント YYYYMMDD 19980214 有効 : 年が 4 桁、月と日が 2 桁ずつ。 y1998MMDD 0214 00000214 有効 : 年が 1998 に固定され、月と日が 2 桁ず つ。 y?YYJJJ 98046 有効 :2 桁の年で世紀は暗黙的に指定し、その後 に 3 桁のユリウス日が続く。 y?Y* – 可変長の年のフィールドが含まれているため無 効。 MM/DD/YYYY – 区切り記号 (/) が含まれているため無効。 Table Management Utility Reference Guide SYNCH 文の作成 この例は、LOAD DATA 文で制限付き日付マスクを使う方法を示します。Period テーブルには Date_Col という DATE データ型列が含まれます。次の LOAD DATA 文 は、バイナリ整数として格納されている日付情報を Period テーブルの Date_Col 列 にロードします。 load data inputfile 'aroma_period.txt' replace discardfile 'aroma_discards' discards 1 into table period ( perkey integer external (4), month char (4), year integer external (4), quarter integer external (1), tri integer external (10), date_col integer date 'YYYYMMDD' ) ; 入力レコードには、バイナリ整数として格納されている 'YYYYMMDD' フォーマッ トの日付情報 (19971225 など ) があります。TMU は、バイナリの入力データから日 付情報を抽出し、DATE データ型として Date_Col 列に格納します。 SYNCH 文の作成 オフライン セグメントにデータをロードした場合、ロード操作の最後にテーブルと インデックスおよびそのセグメントとを同期させてから、そのセグメントをオンラ インに戻し、使用可能な状態にします。同期は、オフラインのロード操作にのみ必 要です。データのロード時にロード対象セグメントがオンラインであった場合、同 期は不要です。 重要 : SYNCH 操作中は格納対象のテーブルに排他ロックがかかりますが、SYNCH 操作の方がテーブルをオンラインでロードするより高速です。 オフライン セグメントを同期するには、コントロール ファイルの SYNCH OFFLINE SEGMENT 文を記述して TMU を実行します。このステートメントは、LOAD DATA 文と同じコントロール ファイルに記述しても、別のコントロール ファイルに記述 してもかまいません。同期が完了すると、オフライン ロードに使用された作業用セ グメントはテーブルから切り離され、再利用できます。 ウェアハウス データベースへのデータのロード 3-119 SYNCH 文の作成 セグメントにデータをロードした後、ロードしたデータをテーブルに統合せずに削 除するには、次のどちらかの方法を使用してください。 ■ ■ ALTER SEGMENT…CLEAR 文でセグメント内のすべてのデータを削除し ます。セグメントが空白だった場合やロード操作を行なう前にセグメント 内にあったデータが不要になった場合には、この選択が適切です。 SYNCH SEGMENT 文の UNDO LOAD オプションを使い、ロードしたデー タだけを削除します。これは、オフライン操作の前にセグメントにあった データを残しておきたい場合に使用します。 SYNCH OFFLINE SEGMENT <segment_name> WITH TABLE ; <table_name> DISCARDFILE '<discard_filename>' UNDO LOAD <segment_name> ロードされたデータを格納し、所属するテーブルおよびイン デックスと同期するオフライン セグメント。 <table_name> <segment_name> の所属するテーブル。 3-120 Table Management Utility Reference Guide SYNCH 文の作成 DISCARDFILE <discard_filename> 重複行の破棄ファイル。この ASCII ファイルには、オプティ マイズ モードのロード中に破棄された行あるいは UNLOAD EXTERNAL で書き出される行と同じフォーマットで破棄行が 格納されます。破棄ファイルの詳細は、3-60 ページを参照し てください。 この句を省略すると、ファイルへの書き込みは行われません。 UNDO LOAD セグメントに追加された行をすべて削除し、テーブルおよび インデックスとセグメントを同期します。間違ったデータを ロードしたり、予期せず行が大量に破棄されたなどの理由で、 ロードをやり直す場合に使用します。直前に行ったオフライ ン ロード操作による変更がすべて元に戻され、セグメントの 各行がオフライン ロード前の状態になります。 UNDO LOAD オプションは、REPLACE モードでは動作しませ ん。 例 次の例では、LOAD DATA 文と SYNCH SEGMENT 文を記述したコントロール ファ イルを使い、新規にデータがロードされたオフライン セグメントをテーブルのほか の部分と同期します。 load data inputfile 'sales_96_data' append discardfile 'discards_sales_96' discards 3 into offline segment s_1q96 of table sales working_space work01 ( perkey date (10) 'MM/Y*/d01', prodkey integer external (2), mktkey integer external (2), dollars integer external (3) ) ; synch offline segment s_1q96 with table sales discardfile 'discards_synch'; SYNCH 操作は、テーブルに排他ロックをかけるため、同期を行うコントロール ファイルは別に作成し、そのテーブルにアクセスするユーザがいない時間帯に実行 することもできます。 SYNCH 操作の完了後、ALTER SEGMENT...ONLINE を実行して、セグメントをアク セス可能な状態にします。 ウェアハウス データベースへのデータのロード 3-121 入力データのフォーマット 入力データのフォーマット TMU はさまざまな入力データ フォーマットをサポートします。ただし、すべての プラットフォームがすべての入力データ フォーマットをサポートするとは限りませ ん。TMU はディスクとテープによる入力とシステム標準入力を受け付けます。 テープ ファイルは ANSI 標準ラベル フォーマットか TAR (Tape ARchive) フォーマッ トである必要があります。ディスク入力ファイルのレコードには、固定長フォー マット、可変長フォーマット、XML フォーマット、または区切り記号付きフォー マットのいずれかを使用します。XML 入力ファイルをテープからロードすること はできません。 Windows テープ入力は Windows プラットフォームではサポートされていません。◆ データ、レコード フォーマット、テープ フォーマットのあらゆる組み合わせが有 効とはかぎりません。次の表は有効な組み合わせを示します。 入力装置 ファイル フォーマット ディスク ファイル 標準入力 (stdin) レコード 固定長フォーマット 可変長フォーマット 標準フラット ファイル 区切り記号付きフォー マット XML フォーマット テープ装置 : 4 mm DAT 8 mm (Exabyte) 1/4 インチ カートリッジ 9 トラック リール 3480/3490 18 トラック カート リッジ ** TAR 固定長フォーマット 可変長フォーマット 区切り記号付きフォー マット ANSI 標準ラベル 固定長および可変長 1/4 インチ カートリッジ入力装置は TAR テープの場合だけサポートされます。 3480/3490 18 トラック カートリッジは、ANSI 標準ラベル テープ用の可変ブロック 長デバイス ドライバによってだけサポートされます。 TMU は、一部の IBM 標準ラベル テープもサポートします。EBCDIC FB フォーマッ トの固定長レコードが含まれる IBM 標準ラベル テープを読み込むことができます。 ただし、可変長 (VB または VBS) テープを読み込むことはできません。テープの ファイル名は、大文字でなければなりません。 3-122 Table Management Utility Reference Guide ディスク ファイル TMU は UNLOAD という内部フォーマットをサポートします。これは、TMU の UNLOAD コントロール ファイルで作成されたデータ ファイルをロードする場合に 使用します。UNLOAD フォーマット テープを TAR または標準ラベル フォーマット で作成することができます。 ファイル フォーマット、レコードの長さとフォーマット、およびデータ型によっ て、ディスク ファイルとテープ ファイルでは TMU の処理方法が異なります。以下 の節では、各々の処理方法について説明します。 ディスク ファイル ディスク ファイルには、固定長フォーマット、可変長フォーマット、区切り記号付 きフォーマット、または XML フォーマットの入力データを格納できます。LOAD DATA 文でフォーマット キーワードが指定されていない場合、固定長フォーマット のレコードとしてロードされます。 固定長フォーマットのレコード 固定長フォーマットのレコードは長さが一定で、すべてのフィールドのデータ型に 使用できます。レコード長は、次の規則に従って LOAD DATA 文の FORMAT 句の指 定されたサイズの RECORDLEN から判定されます。 ■ ■ ■ ■ ■ RECORDLEN の値が、各フィールドに定義されたフィールドの長さの合計 より大きい場合は、RECORDLEN の値がレコード長として使用されます。 RECORDLEN の値が、各フィールドに定義されたフィールドの長さの合計 より小さい場合は、警告メッセージが表示され、ロード プロセスが停止し ます。 RECORDLEN 句がない場合、各レコードは復帰改行文字が出現するまで読 み込まれます。バイナリ データは使用できません。 RECORDLEN 句が指定されておらず、各フィールドに定義されたフィール ドの長さの合計よりレコードが短い場合は、警告メッセージが表示され、 その行は破棄ファイルに書き込まれます。 RECORDLEN 句が指定されておらず、各フィールドに定義されたフィール ドの長さの合計よりレコードが長い場合は、超過部分のデータが破棄され ます。 固定長レコード フォーマットの EBCDIC を読み込むには、LOAD DATA 文に FORMAT IBM 句を指定します。CHARACTER フィールドと EXTERNAL フィールド は EBCDIC から ASCII に変換され、INTEGER フィールドは作成側マシンのバイト 順に変換されます。 ウェアハウス データベースへのデータのロード 3-123 ディスク ファイル 例 固定長フォーマットのディスク ファイルを読み込む例を示します。 RECORDLEN の値が、各フィールドの長さの合計と等しい場合 … LOAD DATA INPUTFILE 'mkt.txt' RECORDLEN 126 RECORDLEN の値が、各フィールドの長さの合計と等しい場合、データは EBCDIC フォーマットです。 … LOAD DATA INPUTFILE 'mkt.txt' RECORDLEN 126 FORMAT IBM データは復帰改行文字で区切られます。RECORDLEN はありません。 … LOAD DATA INPUTFILE 'mkt.txt' 可変長フォーマットのレコード 可変長フォーマット レコードは、固定長フォーマット レコードが変更されたもの です。可変長フォーマット レコードには固定長と可変長の部分があります。各可変 長レコード フォーマットの固定長部分の長さは同じですが、可変長部分の長さは異 なる場合があります。可変長 TMU 列の場合、列の長さは固定長部分と同じになり、 列の実際のデータは可変長部分に格納されます。 TMU はレコードの固定部分を始めに読み込みます。次に、可変長部分の長さを判 定して、これを読み込みます。 次の規則に従って、LOAD DATA 文の FORMAT 句で定義された FIXEDLEN のサイズ からレコードの固定長部分が決定されます。 ■ ■ FIXEDLEN の値が、各フィールドに定義されたフィールドの長さの合計よ り大きい場合は、FIXEDLEN の値が固定長部分として使用されます。 FIXEDLEN の値が、各フィールドに定義されたフィールドの長さの合計よ り小さい場合は、警告メッセージが表示され、ロード プロセスが停止しま す。 3-124 Table Management Utility Reference Guide ディスク ファイル ■ ■ FIXEDLEN 句がない場合、各レコードは復帰改行文字が出現するまで読み 込まれます。バイナリ データは使用できません。 FIXEDLEN 句が指定されておらず、各フィールドに定義されたフィールド の長さの合計よりレコードが短い場合は、警告メッセージが表示され、そ の行は破棄ファイルに書き込まれます。 可変長部分には、複数の可変長文字データ セクションがあります。データ セク ションの長さは、入力レコードの固定長部分にある、対応する VARLEN または VARLEN EXTERNAL データ フィールドで定義されます。最初のデータ セクション は、固定長部分の末尾から始まります。それ以降のデータ セクションの開始オフ セットは、それ以前のデータ セクションの合計長で決まります。 TMU コントロール ファイルの FORMAT 句に基づいて、TMU は入力ファイルを 2 種 類の方法で読み込みます。 ■ 指定された長さ FIXEDLEN キーワードを使用して、入力レコードの固定長部分の合計長を 示す必要があります。FORMAT 句に含められた INTRA RECORD SKIP 修飾 子によって、TMU は入力レコード間でスキップするバイト数を指示され、 INTRA RECORD SKIP 修飾子は、レコード間の復帰改行文字 ('¥n' または '¥r¥n') をスキップします。 各入力レコードに対して、TMU は指定された長さの固定長部分を読み込 みます。そして、各 VARLEN および VARLEN EXTERNAL フィールドを数 値に変換し、合計することで可変長部分の合計長を判定し、その長さに 従って可変長部分を読み込みます。FORMAT 句に INTRA RECORD SKIP 修 飾子が記述されていると、TMU は指定されたバイト数だけスキップして、 次の入力レコードに進みます。 VARLEN または VARLEN EXTERNAL フィールドの文字列長が有効な数字 でない場合、TMU はエラーを返します。文字列長は有効な数字でも、 データ セクションの実際の長さを表していない場合、TMU は実際の長さ を検出しようとします。ただし、長さにエラーがあると、TMU がそれ以 降のレコードを誤った区切りで読み込むことがあります。 ウェアハウス データベースへのデータのロード 3-125 ディスク ファイル ■ 復帰改行文字 FORMAT 句に FIXEDLEN キーワードが記述されていない場合、TMU は入 力レコードを行単位で読み込みます。入力レコードにはバイナリ データを 使用できず、TMU は読み込みプロセス中に VARLEN フィールドを解釈し ません。 各レコードが復帰改行文字で区切られるため、あるレコードで長さエラー があっても、それ以降のレコードは影響を受けません。長さにエラーの あったレコードだけが破棄されます。 入力データ ファイルがクリーンではなく、入力データ ファイルにバイナ リ データが含まれていない場合は、復帰改行文字による読み込みを使用し てください。 TMU は、読み込んだ入力レコードを内部行に変換します。そして、固定長部分の VARLEN および VARLEN EXTERNAL の出現順序を使用して、可変長部分の各デー タ セクションのオフセットと長さを計算します。その後、データ セクションは内 部行の対応する出力列に格納されます。 使用上の注意 可変長フォーマット レコードは、固定長フォーマット レコードよりもコンパクト ですが、末尾に大量の領域を確保します。また、可変長フォーマット レコードの データ入力ファイルは、固定長フォーマット レコードのデータ入力ファイルよりも 複雑です。可変長フォーマット レコード形式は、次の場合に使用してください。 ■ ■ ■ 異なるコンピュータ間を、外部フォーマットでデータ移動する。 入力ファイルが使用する領域を減らす。 VARCHAR を各国ロケールでロードする。固定長フォーマット レコードで は、CHARACTER 修飾子と RTRIM 修飾子を組み合わせて使用することで、 データを VARCHAR 列にロードするのが普通です。各国ロケールでは、 RTRIM 操作は負担が大きく、LOAD 操作のパフォーマンスが大幅に低下す ることがあります。 3-126 Table Management Utility Reference Guide ディスク ファイル 例 CREATE TABLE 文で market テーブルを作成する。 CREATE TABLE MARKET ( MKTKEY INTEGER NOT NULL UNIQUE, HQ_CITY VARCHAR(20) NOT NULL, HQ_STATE CHARACTER(20) NOT NULL, DISTRICT VARCHAR(20) NOT NULL, REGION CHARACTER(20) NOT NULL, PRIMARY KEY(MKTKEY)); 入力ファイル market.txt ( レコード間に復帰改行文字を使用 )。 00000000001 00000000002 00000000003 00000000004 00000000005 000007 000005 000011 000007 000008 GA FL LA TX NY 000007 000007 000011 000011 000008 South South South South North AtlantaAtlanta MiamiAtlanta New OrleansNew Orleans HoustonNew Orleans New YorkNew York 可変長フォーマット データがロードされる。 ■ 復帰改行文字に従って読み込む。 LOAD DATA INPUTFILE 'market.txt' INSERT FORMAT VARIABLE NLS_LOCALE 'English_UnitedStates.US-ASCII@Binary' INTO TABLE MARKET ( MKTKEY POSITION(2) INTEGER EXTERNAL(11) NULLIF(1)='%', HQ_CITY POSITION(14) VARLEN EXTERNAL(6) NULLIF(13)='%', HQ_STATE POSITION(21) CHARACTER(20) NULLIF(20)='%', DISTRICT POSITION(42) VARLEN EXTERNAL(6) NULLIF(41)='%', REGION POSITION(49) CHARACTER(20) NULLIF(48)='%'); ■ 指定された長さに従って読み込む。 LOAD DATA INPUTFILE 'market.txt' FIXEDLEN 68 INTRA RECORD SKIP 1 INSERT FORMAT VARIABLE NLS_LOCALE 'English_UnitedStates.US-ASCII@Binary' INTO TABLE MARKET ( MKTKEY POSITION(2) INTEGER EXTERNAL(11) NULLIF(1)='%', HQ_CITY POSITION(14) VARLEN EXTERNAL(6) NULLIF(13)='%', HQ_STATE POSITION(21) CHARACTER(20) NULLIF(20)='%', DISTRICT POSITION(42) VARLEN EXTERNAL(6) NULLIF(41)='%', REGION POSITION(49) CHARACTER(20) NULLIF(48)='%'); ウェアハウス データベースへのデータのロード 3-127 ディスク ファイル ロード後のデータ。 RISQL> select * from market; MKTKEY HQ_CITY HQ_STATE DISTRICT REGION 1 Atlanta GA Atlanta South 2 Miami FL Atlanta South 3 New Orleans LA New Orleans South 4 Houston TX New Orleans South 5 New York NY New York North 区切り記号付きフォーマットのレコード 区切り記号付きフォーマット レコードの場合、レコードのフィールド長は、LOAD DATA 文の FORMAT 句に指定した区切り文字によって判定されます。レコードの終 わりは、改行文字 ( ファイルの最終レコードの場合は EOF) で示されます。 文字型と外部フィールド型だけを使用できます。長さの値と POSITION キーワード は無視されます。 区切り記号付きフォーマットのレコードに RECORDLEN 句を指定すると、改行 コードまたは RECORDLEN に指定した文字数のどちらかに達するまでレコードが 読み込まれます。 区切り記号付きフォーマットのレコードが 8192 バイトを超える場合は、レコード の最大長を RECORDLEN 句で指定しなければなりません。 例 区切り記号付きフォーマットのディスク ファイル、またはシステムの標準入力から データを読み込む LOAD DATA 文の例を示します。 各フィールドがカンマで区切られ、レコードが復帰改行文字で終わる場合 … LOAD DATA INPUTFILE 'mkt.txt' FORMAT SEPARATED BY ',' 各フィールドがスラッシュで区切られ、レコードの長さが 126 バイトの場合 … LOAD DATA INPUTFILE 'mkt.txt' RECORDLEN 126 FORMAT SEPARATED BY '/' 3-128 Table Management Utility Reference Guide ディスク ファイル 標準入力から入力データを読み込み、各フィールドがコロンで区切られ、レコード が復帰改行文字で終わる場合 … LOAD DATA INPUTFILE '-' FORMAT SEPARATED BY ':' XML フォーマット XML ファイルはマークアップ タグとデータ内容から構成されます。マークアップ タグは、繰り返し階層構造を持つ要素を定義します。この構造にはデータ値が埋め 込まれていますが、これらの値はフラット データベースの行や列に変換できませ ん。TMU で XML ファイルのデータ内容を検索し、行を作成するには、TMU コン トロール ファイルで指定された規則にしたがって、Xerces-C++ パーサーを使用して XML ファイルを解析します。これらの規則を定義する構文については、3-75 ペー ジ「xml_path 指定」を参照してください。 TMU コントロール ファイルの XML パスは、XML ファイルにある要素の階層に従 う必要があります。ロードされる列それぞれについて、データの場所をポイントす るパスをコントロール ファイルに指定します。このデータは常に、パスを構成する 一連の要素の末尾に存在し、要素の属性値、または要素の開始タグと終了タグで囲 まれた文字データ (PCDATA) のどちらかになります。 行は XML 入力ファイル内部にあるデータ値セットから作成されます。この値セッ トは TMU コントロール ファイルにある XML パスの対応するセットにマップされ ます。コントロール ファイルで指定された最後の共通要素の開始タグと終了タグの 間にあるデータから作成できる行は 1 行だけです。複数行をロードするには、同じ 共通要素で始まって終わる繰り返しブロックが入力ファイルに含まれ、この要素が 最後の共通要素である必要があります。 たとえば、テーブルに 4 列をロードするコントロール ファイルでは、次の 4 種類の パスが定義されます。 ... prod_brand /product/brand/#PCDATA char(20), prod_name /product/brand/category/@name char(20), prod_grind /product/brand/category/@grind char(50), prod_weight /product/brand/category/@weight integer external (5), ... ウェアハウス データベースへのデータのロード 3-129 ディスク ファイル この例では、最後の共通要素は brand です。したがって、1 行を構成するコンテン ツは、入力タグの開始タグ <brand> と終了タグ </brand> の間に入れる必要があ ります。次の例は、入力ファイルの一部ですが、ここで太字で表記されているもの が上記のコンテンツです。 <product> <brand>Aroma <category name='coffee' grind='Whole bean' weight='2'/> </brand> </product> 上記のパスを持つコントロール ファイルを使用すると、TMU によって次の値が ロードされます。 Prod_Brand Aroma Prod_Name Coffee Prod_Grind Whole bean Prod_Weight 2 ここで、TMU ではマークアップ タグではなく、データ値がロードされる点に注意 してください。このテーブルで必要とされているものがデータ値のサブセットだけ である場合、コントロール ファイルの XML パスに相当するサブセットに基づくサ ブセットをロードすることができます。XML データのサブ文字列や連結など、結 果行でさらに TMU 処理が必要な場合、この機能をコントロール ファイルに組み込 むこともできます。 ネスト構造の XML 入力 最後の共通要素のタグ間にあるコンテンツから複数行が作成される場合、XML ファイルの構造はネストされているといえます。構造がネストされるかどうかを TMU コントロール ファイルで指定されている XML パスで定義することはできませ ん。この構造は、XML 入力ファイルのコンテンツに基づいて実行時に決定されま す。ネスト構造が検知されると、ロード操作はエラーになり、終了します。 コントロール ファイルは前の例と同じですが、最後の共通要素 (brand) の内部に繰 り返しデータ値セットが含まれる XML 入力ファイルが使用されている例を考えて みましょう。 <product> <brand> Aroma <category name='Coffee' grind='Whole bean' weight='2'/> <category name='Coffee' grind='Espresso' weight='1'/> </brand> </product> 3-130 Table Management Utility Reference Guide UNIX オペレーティング システムのテープ ファイル 共通要素 <brand> で定義されているコンテンツ内部には、2 つの行がありますが、 オリジナルのコントロール ファイルでこれらの行をロードしようとすると、TMU からエラーが返されます。ただし、次のようにコントロール ファイルを編集するこ とにより 3 つの列をロードすることができます。 ... prod_name /product/brand/category/@name char(20), prod_grind /product/brand/category/@grind char(50), prod_weight /product/brand/category/@weight integer external ... これでロードできるようになりましたが、<brand> 要素で定義されている "Aroma" 文字列はロードできません。代わりに、<category> 要素により各行の境界が定義 され、3 列だけが作成されます。 Prod_Name Coffee Coffee WIN UNIX NT Prod_Grind Prod_Weight Whole bean 2 Espresso 1 UNIX オペレーティング システムのテープ ファイル テープ ファイルには、TAR フォーマットか ANSI 標準ラベル フォーマットを使用す ることができます。以下の節では、各テープを読み込む方法について説明します。 XML 入力ファイルをテープからロードすることはできません。 TAR テープ TAR テープ ファイルは、固定長フォーマット、可変長フォーマット、および区切り 記号付きフォーマットのいずれのレコードについても、ディスク ファイルと同様に 処理します。 TMU は、複数のテープ ボリュームにわたる TAR テープ ファイルを読み込むことが できます。ただし、1 つのテープ上の複数の TAR アーカイブは読み込むことができ ません。 例 TAR テープ ファイルを読み込む LOAD DATA 文の例を示します。 ウェアハウス データベースへのデータのロード 3-131 UNIX オペレーティング システムのテープ ファイル 各フィールドがカンマで区切られ、レコードが復帰改行文字で終わる場合 … LOAD DATA INPUTFILE '/disk1/mkt.txt' TAPE DEVICE '/tape_dev' FORMAT SEPARATED BY ',' ANSI 標準ラベル テープ ANSI 標準ラベル テープには、固定長か可変長のレコードを格納できます。TMU は テープ ラベルからレコード長を決定します。RECORDLEN 句または FIXEDLEN 句 がある場合、その句は無視されます。 SEPARATED 句を指定した場合、区切り記号付きフォーマットのレコードとして処 理されます。TMU はラベルを無視し、TMU の LOAD DATA 文に指定したフィール ドの区切り文字を検索しながらテープ レコードを読み込みます。読み込んだフィー ルド数が、コマンドの指定より少ない場合はエラー メッセージが表示され、その行 は破棄されます。指定したフィールド数を超えた場合は、そのテープ レコードの残 りのフィールドは無視されます。 SEPARATED 句を指定しないと、固定長フォーマットまたは可変長フォーマットの データとして処理されます。TMU は、ラベルからフォーマットを判定し、テープ ラベルに記述されたフォーマットに従って、固定長または可変長のレコードを読み 込みます。レコードの長さが短い場合はエラー メッセージが表示され、そのレコー ドは破棄されます。長い場合は、そのレコードの残りの文字は無視されます。 複数のフォーマットが混在するテープはサポートされません。また 1 つのテープ レ コードを複数のテーブル行に分割することはありません。 固定長フォーマット、可変長フォーマット、または区切り記号付きフォーマットの レコードを格納した EBCDIC フォーマットのデータを読み込むには、それぞれ FORMAT IBM 句または FORMAT IBM SEPARATED BY '<c>' 句を使用します。 次の例は、ANSI 標準ラベル テープ ファイルを読み込む制御文を示します。 3-132 Table Management Utility Reference Guide フィールド型の変換 ラベルによってレコード長が決まり、制御文でフィールド長を指定します。 … load data inputfile 'mkt.txt' tape device 'tape_dev' ラベルによってレコード長が決まり、カンマによってフィールドが区切られます。 データは EBCDIC フォーマットです。 … load data inputfile 'mkt.txt' tape device 'tape_dev' format ibm separated by ',' ♦ フィールド型の変換 TMU は、フィールド型を互換性のあるデータ型に変換します。入力レコードの各 フィールドのデータを、対応するテーブル列のデータ型に変換します。 CHARACTER フィールドおよび VARLEN フィールドは、CHARACTER データ型お よび VARCHAR データ型とそれぞれ互換性があります。数値フィールドは数値デー タ型と互換性がありますが、3-136 ページの表に示すような注意が必要です。 日時入力データ ( 日時入力フィールドまたはバイナリ入力フィールド ) は、日時 データ型と互換性があります (3-136 ページの表を参照 )。 次の場合は、行が破棄されます。 ■ ■ 入力フィールドのデータが、出力テーブル列のデータ型と互換性がない場 合 数値入力フィールドの値が、テーブル列で表現できる最大値を超える場合 ウェアハウス データベースへのデータのロード 3-133 フィールド型の変換 列が NOT NULL DEFAULT NULL として定義されていて、その列に空のフィールド があった場合、ロード動作は終了します。次の表は、実行可能な変換と、日付時間 データ型以外での実行結果を示しています。次の表の各行は、TMU の LOAD DATA 文で指定した入力レコードのフィールド型を示します。この表の各列は、CREATE TABLE 文で指定したデータ型を示します。テーブルの各セルは、各フィールド型の 入力データを各データ型のテーブル列にロードした結果を示します。 テーブル データ型 Char Varchar Integer Serial Smallint Tinyint Decimal Real Float, Double Character、 CONSTANT 'str'、 Concat C C N/A N/A N/A N/A N/A N/A N/A Varlen、 Varlen External C C Integer External N/A O O O O O S S Decimal External N/A O,D,S O,D,S O,D,S O,D,S O,D,S S S Float External, CONSTANT< f > N/A O,S O,S O,S O,S O,S O,S O,S Decimal、 Packed Decimal、 Zoned Decimal N/A O,D O,D O,D O,D O,D S S Integer CONSTANT <i> SEQUENCE <i> N/A None None O O O S OK Smallint N/A OK OK None O O O,S OK Tinyint N/A OK OK OK None O OK OK Real N/A O,S O,S O,S O,S O,S None OK Double N/A O,S O,S O,S O,S O,S O,S None CONSTANT NULL None None None None None None None None M4Date N/A Date Date N/A N/A N/A N/A N/A 入力レコードの フィールド型 3-134 Table Management Utility Reference Guide フィールド型の変換 上の表で使用されている略語を次に説明します。 N/A 不可。ロード プロセスが停止します。 None 変換は不要。 C 文字から文字の変換、左寄せ、右端のスペース充填または切り捨てが行 われます。切り捨てが発生しても、レコードは破棄されません。 OK オーバーフローや桁落ちは発生しません。 O オーバーフローが発生する可能性があります。オーバーフローが発生す ると、レコードが破棄されます。整数部と小数部の両方が格納できる十 分な精度を設定せずに、データを DECIMAL 列にロードすると、オー バーフローが発生します。 S 桁落ちが発生する可能性があります。致命的なエラーではありません。 D 小数点の整列が行われます。小数点以下の桁の切り捨て。切り捨てが発 生すると、レコードが破棄されます。 Date 指定した日付は、1970 年 1 月 1 日から数えた通算日数に変換されます。 これより前の日付は、負数として表されます。 ウェアハウス データベースへのデータのロード 3-135 フィールド型の変換 日時データ型に有効なデータ型変換を次の表に示します。入力レコードのフィール ド型はバイナリ数値入力データを含みます。 テーブル データ型 入力レコードの フィールド型 DATE TIME TIME STAMP DATE None N/A 日付部。入力データから抽出 時間部。午前 0 時 TIME N/A None 日付部。1900-01-01 時間部。入力データから抽出 TIMESTAMP 日付部 時間部 None 上の表で使用されている略語を次に説明します。 N/A 不可。ロード プロセスが停止します。 None 変換は不要。 3-136 Table Management Utility Reference Guide LOAD DATA 構文の要約 LOAD DATA 構文の要約 次に示す構文ダイアグラムは、TMU の LOAD DATA 文の詳細な構文です。 <input_clause> p. 3-25 LOAD DATA <discard_clause> p. 3-45 <format_clause> p. 3-30 <optimize_clause> p. 3-59 <row_messages_clause> p. 3-58 <locale_clause> <locale_claus e>p.p.3-39 3-39 <mmap_index_clause> p. 3-63 ; <table_clause> p. 3-65 <criteria_clause> p. 3-90 <segment_clause> p. 3-88 <comment_clause> p. 3-95 <input_clause> '<filename>' INPUTFILE ( START RECORD TAPE DEVICE ' INDDN '<filename>' <start_row> '<device_name> ' ) STOP RECORD <stop_row> ウェアハウス データベースへのデータのロード 3-137 LOAD DATA 構文の要約 <format_clause> RECORDLEN <n> APPEND FIXEDLEN <n> INSERT INTRA RECORD SKIP <n> REPLACE MODIFY AGGREGATE UPDATE AGGREGATE FORMAT IBM FORMAT SEPARATED BY '<c>' FORMAT IBM SEPARATED BY '<c>' UNLOAD UNLOAD FORMAT フォーマット FORMAT VARIABLE FORMAT IBM VARIABLE FORMAT XML FORMAT XML_DISCARD <locale_clause> NLS_LOCALE ' ' <language> _<territory> XML_ENCODING 3-138 Table Management Utility Reference Guide . <codeset> @<sort> LOAD DATA 構文の要約 <discard_clause> , DISCARDFILE '<filename>' DISCARDDN ASCII IN EBCDIC RI_DISCARDFILE '<filename>' , ( <table_name>' <filename>' ) OTHER '<filename>' DISCARDS <n> AUTOROWGEN OFF ON , ( <table_name> ) , DEFAULT ( <table_name> ) DEFAULT , ( <table_name> ) , ON ( <table_name> ) <rowmessages_clause> ROWMESSAGES '<filename>' ウェアハウス データベースへのデータのロード 3-139 <optimize_clause> OPTIMIZE OFF '<filename>' DISCARDFILE ON <mmap_index_clause> ’ MMAP INDEX ( <pk_index_name> ) SEGMENT ( ’ <segment_name> ) <table_clause> INTO TABLE <table_name> , ( <col_name> RETAIN AS $<pseudocolumn> $<pseudocolumn> DEFAULT <simple_field> <concat_field> <constant_field> <sequence_field> <increment_field> ) LOAD DATA 構文の要約 <simple_field> <field_type> POSITION POSITION ( <start> ) : <end> xml_path ROUND ADD LTRIM SUBTRACT RTRIM MIN TRIM MAX ADD_NONULL SUBTRACT_NONULL MIN_NONULL : MAX_NONULL NULLIF ( ) <start> = : <end> '<string> ' x'<hex_string> ' xml_path /element /@attribute <field_type> p. 3-97 /#PCDATA ウェアハウス データベースへのデータのロード 3-141 LOAD DATA 構文の要約 <concatenated_field> CONCAT ( , <concat_arg_spec> <concat_arg_spec> ) <concat_arg_spec> の構文は、次のとおりです。 <column_name> $<pseudocolumn> '<character_string>' LTRIM ( RTRIM <column_name> ) $<pseudocolumn> '<character_string>' TRIM ( <column_name> $<pseudocolumn> '<character_string>' , BOTH , LEFT , RIGHT <constant_field> CONSTANT NULL '<character_literal>' <float_constant> <integer_constant> DATE ' <date_literal>' TIME '<time_literal>' TIMESTAMP '<timestamp_literal>' '<alternative_datetime_value>' 3-142 Table Management Utility Reference Guide ) LOAD DATA 構文の要約 <sequence_field> SEQUENCE ( ) <start> , <increment> <increment_field> INCREMENT ( ) <n> <segment_clause> INTO OFFLINE SEGMENT OF TABLE <table_name> <segment_name> WORKING_SPACE <work_segment> , ( <simple_field> <col_name> AS $<pseudocolumn> $<pseudocolumn> ) <concat_field> <constant_field> <sequence_field> <increment_field> ウェアハウス データベースへのデータのロード 3-143 LOAD DATA 構文の要約 非文字列の <criteria_clause> ACCEPT <constant> = <constant> REJECT <column_name> <> <column_name> $<pseudocolumn> < $<pseudocolumn> > <= >= 文字列の <criteria_clause> ACCEPT <column_name> REJECT $<pseudocolumn> LIKE <constant> ESCAPE NOT <comment_clause> COMMENT 3-144 Table Management Utility Reference Guide '<character_string>' '<c>' LOAD DATA 構文の要約 <field_type> CHARACTER CHAR VARLEN SUBSTR ( ( ) <length> <start> , <num> ) EXTERNAL INTEGER EXTERNAL ( INT EXTERNAL <length> ) , <scale> DECIMAL EXTERNAL ( DEC EXTERNAL <length> ) , RADIX POINT '<c> ' <scale> FLOAT EXTERNAL ( ) <length> DECIMAL DEC PACKED ( <length> ) , ZONED <scale> INTEGER ( INT SMALLINT <restricted_ date_spec> <scale> ) <restricted_ <restricted date_spec> _date_spe c> TINYINT REAL DOUBLE PRECISION ウェアハウス データベースへのデータのロード 3-145 LOAD DATA 構文の要約 <field_type> ( 続き ) '<date_mask>' DATE ( <length> ) ( <length> ) <length> ) CURRENT_DATE '<time_mask '<time_mask>' >' TIME CURRENT_TIME '<timestamp_mask>' TIMESTAMP ( CURRENT_TIMESTAMP M4DATE <m4date_mask> ( <restricted date_spec> DATE '<restricted_date_mask>' TIME '<restricted_time_mask>' TIMESTAMP '<restricted_timestamp_mask>' 3-146 Table Management Utility Reference Guide <length> ) 第4章 テーブルからのデータの アンロード この章について . . . . . . . . . . . . . . . . . . . . 4-3 UNLOAD の動作 . . . . . . . . . . . . 内部フォーマット . . . . . . . . . . . 外部フォーマット . . . . . . . . . . . 外部フォーマットにデータを変換する . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-4 4-5 4-5 4-6 UNLOAD 構文 . . . . . . . . . . . . 4-8 内部フォーマット データのアンロードとロード . . . . . . . . 4-14 外部フォーマット データのアンロードとロード . . . . . . . . 4-16 テーブルの複数セグメントへの再構成 . . . . . . . . . . . . 4-17 データベースの移動 . . . . . . . . . . . 4-18 外部フォーマット データの他社製品ツールへのロード . . . . . . 4-18 選択した行のアンロード . . . . . 例 : 外部固定長フォーマット データ 例 : 外部可変長フォーマット データ . . . . . . . . . . . . . . . 4-19 4-19 4-21 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4-2 Table Management Utility Reference Guide この章について ウェアハウス テーブルからファイル、磁気テープ、標準出力にデータをアンロード するには、TMU の UNLOAD 文を使用します。TMU があとでこのデータを再ロー ドすることも、別のアプリケーションがこのデータを使用することもできます。 TMU 選択性 UNLOAD 操作のほうが SQL クエリより高速になる場合があります。 UNLOAD 操作はローカルおよびリモートのいずれからでも実行できます。リモー ト TMU 操作の詳細については、2-12 ページを参照してください。 この章では、以下について説明します。 ■ ■ ■ ■ ■ ■ ■ ■ ■ UNLOAD の動作 UNLOAD 構文 内部フォーマット データのアンロードとロード 外部フォーマット データのアンロードとロード テーブルの複数セグメントへの再構成 データベースの移動 外部フォーマット データの他社製品ツールへのロード 選択した行のアンロード 例 : 外部固定長フォーマット データ テーブルからのデータのアンロード 4-3 UNLOAD の動作 UNLOAD の動作 TMU UNLOAD 操作は柔軟であるため、多くの目的に使用できます。その一部を示 します。 ■ ■ ■ ■ システム間でのテーブルやデータベースの移動。 データの定期的な ( 四半期ごとや年ごと ) アンロードと再ロードにより頻繁 に更新されるデータベースの性能の改善。データの格納が効率的になりま す。 テーブルから行を削除する前に行うセグメントのアーカイブ。 別のベンダが提供するツールへのデータのロード アンロードするデータは、テーブル全体でも、指定したセグメントのデータだけで もかまいません。TMU は選択アンロードを実行することもできます。UNLOAD 文 の WHERE 句で制約を指定することによって、アンロードする行を選択することが できます。UNLOAD 操作では、最大で 2,147,483,647 行 (231 -1) をアンロードできま す。アンロードしたいテーブルに含まれる行数がこれを上回る場合は、2 回のアン ロード操作に分けて制約を適用します。あるいは、テーブルに対して SELECT * ク エリを含む SQL EXPORT コマンドを使用します。 アンロードの順序は、データ順 ( テーブルをリレーション スキャンした順 ) または インデックス順を指定することができます。 圧縮やフィルタ処理などの追加処理を行う目的で、出力データを別のプログラムに パイプライン処理することもできます。 TMU の UNLOAD には、アンロードするテーブルやデータに対応する CREATE TABLE 文と LOAD DATA 文を自動作成する機能があり、アンロードしたデータの再 ロードに利用できます。この機能は、第 5 章「CREATE TABLE 文と LOAD DATA 文 の生成」で説明する TMU GENERATE 文でも使用できます。 rb_cm ユーティリティは TMU のアンロード機能を使用します。このユーティリ ティの詳細は、7-3 ページ「rb_cm ユーティリティ」を参照してください。 UNLOAD 文を実行できるのは、DBA システム ロールのメンバー、テーブルの所有 者、またはテーブルの SELECT アクセス権を持っているユーザです。 TMU UNLOAD 文では、2 つのフォーマットでデータをアンロードすることができ ます。内部バイナリ フォーマットと、外部キャラクター単位のフォーマットです。 内部フォーマットでアンロードしたデータは、同一プラットフォーム上の IBM Red Brick Warehouse データベースにだけ再ロードできます。外部フォーマットでアン ロードしたデータは、同じ、または異なるプラットフォーム上の Red Brick データ ベースにも再ロードできます。 4-4 Table Management Utility Reference Guide 内部フォーマット ヒント : データベースサーバの SQL の高速 EXPORT コマンドを使用することによ り、さまざまなフォーマットでデータをアンロードし、指定したファイルに対する クエリの結果をエクスポートすることができます。EXPORT コマンドの詳細につい ては、『SQL Reference Guide』を参照してください。 内部フォーマット 内部フォーマットでテーブルをアンロードすると、バイナリ ファイルが作成されま す。TMU の内部フォーマット ファイルの再ロードは高速ですが、同一プラット フォームでしか再ロードできません。たとえば、内部フォーマットでアンロードし た HP 9000 上のテーブルを IBM RISC System/6000 に再ロードしたり、その逆を行う ことはできません。この場合の「同一 プラットフォーム」の意味するところでは、 2 つのシステムが同じ Red Brick バイナリ、つまり 32 ビットまたは 64 ビットのいず れかを使用していることも要求されます。32 ビット システムのテーブルをアン ロードし、そのバイナリ出力ファイルを 64 ビット システム上に再ロードすること はできません。 内部フォーマット ファイルを再ロードするには、LOAD DATA 文の FORMAT UNLOAD オプションを使用します。内部フォーマットのロードは、外部フォー マットのアンロード ファイルや フラット ファイルのロードより高速です。 外部フォーマット 外部フォーマットでテーブルをアンロードすると、同一プラットフォーム、または 異なるプラットフォームのどちらにでも再ロードできる出力ファイルが作成されま す。外部フォーマット ファイルは文字を基本としているため、必要に応じてファイ ルの読み込みや編集を行うことができます。このファイルは、ほかのアプリケー ションにも使用できます。たとえば、外部フォーマット ファイルにアンロードした データを、デスクトップのスプレッドシート アプリケーションにインポートするこ とができます。 データを外部フォーマットでアンロードする場合、データ、テーブル、および列名 に使用されているマルチバイト文字はそのまま保持されます。ただし、データは ローカライズされません。数値および日時データのフォーマットは、ANSI SQL-92 規則のデータ型に基づきます。 TMU の外部フォーマットでデータがアンロードされる場合は、次の文字ベース ファイルが生成されます。 ■ データが格納される固定長フォーマットまたは可変長フォーマット ファイ ル。ファイル名は、OUTPUTFILE キーワードとファイル名で指定します。 テーブルからのデータのアンロード 4-5 外部フォーマットにデータを変換する ■ ■ CREATE TABLE 文を出力するオプションのファイル。CREATE TABLE 文 は、アンロードするデータを格納するテーブルを作成します。このファイ ルを作成するには、DDLFILE キーワードとファイル名を指定します。 GENERATE CREATE TABLE 文を使用して、このファイルを個別に生成す ることもできます。 LOAD DATA 文を出力するオプションのファイル。LOAD DATA 文はデータ を再ロードします。このファイルを作成するには、TMUFILE キーワード とファイル名を指定します。GENERATE LOAD DATA 文を使用して、この ファイルを個別に生成することもできます。 外部フォーマットでアンロードしたデータを再ロードするには、自動生成された TMU のコントロール ファイル (TMUFILE キーワードで指定 ) を使用して TMU を起 動します。このファイルには、LOAD DATA 文が格納されています。 外部フォーマットにデータを変換する テーブルのデータは、次の表のように変換して外部データ ファイルに出力されま す。 データ型 バイト数 フォーマット 注 Tinyint 4 [0 | –]ddd –128 ∼ 127 Smallint 6 [0 | –]ddddd –32768 ∼ 32767 Varchar ( 可変長フォー 6 マット専用 ) [0 ]ddddd 0 ∼ 32767 Serial 11 [0]ddddddddddd 1 ∼ 2147483647 Integer 11 [0 | –]ddddddddddd –2147483648 ∼ 2147483647 Decimal 1–38 [0 | –] [digits] .[<digits>] 小数点前後の桁数は列の精度とス ケールによって決まる。各行に共 通。 Float 20 [–] d.dddd...E[+ | –]dd 精度が落ちることがあります。 Double 31 [–] d.dddd...E[+ | –]dd 精度が落ちることがあります。 Date 10 YYYY-MM-DD ANSI SQL フォーマットを使用 Time (0) 8 HH:II:SS ANSI SQL フォーマットを使用 (1/2) 4-6 Table Management Utility Reference Guide 外部フォーマットにデータを変換する データ型 バイト数 フォーマット 注 Time (0 以外 ) 15 HH:II:SS.FFFFFF ANSI SQL フォーマットを使用 Timestamp (0) 20 YYYY-MM-DD HH:II:SS ANSI SQL フォーマットを使用 Timestamp(0 以外 ) 26 YYYY-MM-DD HH:II:SS.FFFFFF ANSI SQL フォーマットを使用 (2/2) 外部データ ファイルでは、各列の前に 1 文字の標記文字が置かれます。この標記文 字は、その列に NULL が存在するかどうかを示すものです。標記文字が空白文字の 場合は、その後に値が続きます。標記文字がパーセント記号 (%) の場合は、その フィールドが NULL であり、空白で充填されます。各レコードは改行文字で区切ら れるため、他社製品のツールでも簡単にロードできます。 外部データ ファイルの例は、4-19 ページ「例 : 外部固定長フォーマット データ」を 参照してください。 テーブルからのデータのアンロード 4-7 UNLOAD 構文 UNLOAD 構文 UNLOAD <table_name> USING INDEX <index_ name> , ( <segment_name> SEGMENT ) EXTERNAL VARIABLE DDLFILE OUTPUTFILE '<filename'> TMUFILE '<filename'> '<filename'> OUTPUTDDN TAPE DEVICE '<device_name'> FORMAT SL TAR USING QUERY REVISION ; AND OR WHERE NOT <search_condition> p. 4-13 4-8 Table Management Utility Reference Guide UNLOAD 構文 <table_name> アンロードするテーブル。オフラインのデータ セグメントが 1 つでもある場合は、UNLOAD 文で SEGMENT 句を指定して すべてのセグメントをアンロードする必要があります。 USING INDEX <index_name> アンロード操作に使用するインデックス。インデックス順に よって、データ行のアンロード順が決まります。インデック スを指定しないと、テーブルの行の格納順にアンロードされ ます。 TARGET インデックス以外の任意のインデックスを指定する ことができます。インデックス名は、RBW_INDEXES システ ム テーブルを検索して確認できます。この句を使用する場合 は、指定するインデックスのセグメントをすべてオンラインに してください。 SEGMENT segment_name アンロードするセグメントを指定することができます。セグ メントの数は任意です。セグメント単位でデータをアンロー ドすると、各セグメントがスキャンされ、行の格納順にセグメ ント データがアンロードされます。インデックス順のアン ロードは指定できません。 セグメントは、アンロードするテーブルの任意のセグメント を指定できます。アンロードするセグメントは、オンライン でもオフラインでもかまいません。オフライン セグメントを アンロードする場合はこの句を指定する必要があります。 EXTERNAL アンロードされたデータは、データベース ロケールのコード セットのプレーン テキスト フォーマットになります。 EXTERNAL を指定しないと、データは内部 ( バイナリ ) フォーマットでアンロードされます。この外部データ フォー マットについては、4-6 ページ を参照してください。 VARIABLE 出力ファイルが可変長フォーマットになることを示します。 VARIABLE フォーマットでは VARCHAR 列の有効な後続の空 白文字が失われます。 VARIABLE を指定しなかった場合、出力ファイルは固定長 フォーマットになります。 テーブルからのデータのアンロード 4-9 UNLOAD 構文 DDLFILE '<filename>' 外部フォーマットのアンロードの際に TMU が自動的に作成す る CREATE TABLE 文を出力するファイル。このファイルにセ グメント情報は記述されません。このファイルを使って作成 したテーブルは、どのプラットフォームでも使用できま す。DDLFILE キーワードと filename を指定しないと、ファイ ルは作成されません。 <filename> には、相対パスか絶対パスを指定し、環境変数を 使うことができます。<filename> は、一重引用符で囲んで指定 してください。 このファイルは、ディスク上になければなりません。テープ 装置には出力できません。 生成された DDL ファイルは、リモート TMU UNLOAD 操作で はサポートされません。 TMUFILE '<filename>' 外部フォーマットのアンロードのときに TMU が自動的に作成 する LOAD DATA 文を出力するファイル。データのアンロー ド後に、TMU を起動してデータを再ロードするために、この ファイルをコントロール ファイルとして使用できます。 データを再ロードする前に、このファイルを修正して、ロー ド モードと入力ファイル名を正しく指定する必要がありま す。テープからロードする場合は、テープ装置名も指定する 必要があります。アンロードしたテーブル データの出力先が テープ装置の場合は、TAPE DEVICE 句のテンプレートがファ イルに書き込まれます。出力先がディスク上のファイルの場 合は、TAPE DEVICE 句は含まれません。 <filename> には、相対パスか絶対パスを指定し、環境変数を 使うことができます。<filename> は、一重引用符で囲んで指 定してください。 このファイルは、ディスク上になければなりません。テープ 装置には出力できません。 生成された TMU ファイルは、リモート TMU UNLOAD 操作で はサポートされません。 4-10 Table Management Utility Reference Guide UNLOAD 構文 OUTPUTFILE '<filename>' アンロードするテーブル データを出力するファイル。 ファイルはディスク、テープ、標準出力に書き込むことがで きます。ほかのプログラムあるいはフィルターへのパイプに 書き込むことができます。filename には相対パスか絶対パスを 指定し、環境変数を使うこともできます。filename は、一重引 用符で囲んで指定してください。 標準出力に書き込む場合は、以下のように filename を '-' と指 定してください。 OUTPUTFILE '-' 重要 : rb_cm ユーティリティが使用するコントロール ファイルに UNLOAD 文が記 述されている場合、OUTPUTFILE を標準出力に指定する必要があります。 テーブルまたはセグメントからの出力が、別のプログラムにパ イプ結合する場合、ファイル名参照として指定する記述は、'| <command>' です。<command> はオペレーティング システム プ ログラムで示し、これに対して出力がパイプライン処理されま す。たとえば、次のステートメントは、外部フォーマットを使 用して Sales テーブルをアンロードし、出力を compress プログ ラムに出力します。このプログラムはデータを圧縮し、 outdata_sales というファイルに書き込みます。 unload sales external OUTPUTFILE '| compress > outdata_sales' すべてのオペレーティング システム エラーが TMU によって検 出されるとは限らないので、プログラムが正常に終了したかを 確認する必要があります。 TAPE DEVICE '<device_name>' テープ上のファイルにデータを書き込む場合のテープ装置を指 定します。<device_name> は一重引用符で囲んでください。 ディスク上のファイルにデータを書き込む場合は、TAPE DEVICE <device_name> は指定しません。 UNIX テープは、UNIX でのみサポートされます。♦ テーブルからのデータのアンロード 4-11 UNLOAD 構文 FORMAT テープ出力ファイルのフォーマット。SL (ANSI 標準ラベル )、 または TAR フォーマットを指定してください。SL はデフォル トです。SL フォーマットでアンロードする場合、出力テープ が ANSI 標準ラベル テープでないときは、テープのラベルに使 用するボリューム ID ( ボリュームのシリアル番号 ) の入力を要 求する TMU プロンプトが表示されます。 TAR ファイルは、IEEE-POSIX 標準が定める上限の 8,589,934,591 バイトを超えることができません。アンロードす るテーブルがこの上限を超える場合、標準ラベル テープを使用 してください。複数の UNLOAD 文が記述された単一のコント ロールファイルを作成することによって、複数ファイル ( テー ブル ) を単一の TAR アーカイブにアンロードすることができま す。しかし、単一の TAR ファイルに書き込む UNLOAD 文に WHERE 句を使用しないでください ( 選択性アンロードは、不 可です )。 USING QUERY REVISION この句はバージョン管理されたデータベースにだけ適用されま す。アンロード操作で使用する ALTER DATABASE FREEZE QUERY REVISION のリビジョン セットのリード リビジョンを 指定します。REVISION 句を指定しないと、アンロード操作は 最新のリビジョンを使用します。 クエリ リビジョンがアクティブでないと、UNLOAD 文は句に 関わらず常に最新リビジョンを使用します。 WHERE <search_condition> アンロードする行。この検索条件を満たす行だけがアンロード されます。この検索条件は、SQL クエリの構文のサブセットで す。かっこを使用して検索条件をグループ化し、評価順序を強 制することができます。 WHERE 句をセグメント リストと組み合わせて、アンロード操 作の範囲を限定することができます。セグメントを指定した場 合は、そのセグメントだけに検索条件が適用されます。セグメ ントを指定しないと、テーブル全体に検索条件が適用されま す。 WHERE 句中の文字データに対する制限は、データベースロ ケールが定める照合シーケンスに基づいて評価されます。 ヒント : 検索条件は、特定のセグメントだけから行を選択することがわかってい る場合 ( 検索条件にセグメント化キーの制約が含まれる場合など ) は、そのセグメ ントだけを UNLOAD 文の SEGMENT 句に指定すると、性能が向上します。 4-12 Table Management Utility Reference Guide UNLOAD 構文 次に UNLOAD 文の WHERE 句で使用する <search_condition> の構文ダイアグラムを 示します。 p. 4-8 の <search_condition> UNLOAD に戻る <column_name1> <column_name2> = <literal> <literal> <> < > <= >= <column_name> IS NULL NOT <column_name> LIKE NOT '<character_string> ' ESCAPE '<c>' <column_name1>、 <column_name2> アンロードするテーブルの列。ほかの列と比較したり、NULL かどうかをチェックしたり、定数値と比較することができま す。 <literal> 文字定数、数値定数、日付時間定数。文字、日付時間、数値 の各リテラルは、『SQL Reference Guide』で説明するリテラル 言語要素に対応している必要があります。これらのリテラル は、データベース ロケールのコード セット中に指定してくだ さい。日時定数は、ANSI SQL-92 フォーマットに基づいて表 してください。10 進数定数には、10 進数基数を使用してくだ さい。 テーブルからのデータのアンロード 4-13 内部フォーマット データのアンロードとロード '<character_string>' 完全な文字列を指定しても、任意の数のワイルドカードを 使った文字パターンを指定してもかまいません。文字列は一 重引用符 ( ' ' ) で囲みます。詳細は、 『SQL Reference Guide』の LIKE プレディケートの説明を参照してください。文字列 はデータベース ロケールのコード セット中で指定してくださ い。 ESCAPE '<c>' エスケープ文字に使用する文字を <c > に指定します。この キーワードの直前の string_constant で、ワイルドカード文字 (% と _) を使用したい場合に指定します。 エスケープ文字はデータベース ロケールのコード セット中で 指定してください。シングルバイト文字、マルチバイト文字の どちらでも使用できます。 内部フォーマット データのアンロードとロード 内部フォーマット ( デフォルト ) でテーブルをアンロードする手順は、次のとおり です。 1. 2. TMU コントロール ファイルを新規に作成するか、既存のファイルを開い て、ディスクまたはテープにテーブルまたはセグメントを書き込む UNLOAD 文を記述します。 TMU を起動し、ステップ 1 で作成したコントロール ファイルを使用しま す。 TMU により内部フォーマットでデータがアンロードされ、新規ファイル に格納されます。 内部フォーマット データをテーブルに再ロードする手順は、次のとおりです。 1. 新規のテーブルは、SQL の CREATE TABLE 文で作成します。このステー トメントはユーザが作成するか、TMU によって作成されたものを使用し ます。 重要 : CREATE TABLE 文で作成するテーブルは、データをアンロードしたテーブ ルと同じものか、列の数やデータ型、列順が同じでなければなりません。 2. FORMAT UNLOAD とアンロードするデータが格納されているファイルの 名前を指定する LOAD DATA 文をコントロール ファイルに記述します。 重要 : FORMAT UNLOAD を指定した LOAD DATA 文には、フィールド定義を記述 することはできません。 3. TMU を起動し、ステップ 2 で作成したコントロール ファイルを指定しま す。 4-14 Table Management Utility Reference Guide 内部フォーマット データのアンロードとロード 4. 必要なインデックス、シノニム、ビューを追加します。プライマリ キー インデックスの作成と既存のインデックスの更新は、TMU によってテー ブルのロード中に自動的に実行されます。 パイプを使用すると、中間ファイルを作成せずにアンロード、ロードの処理を実行 することができます。パイプの使用方法の詳細については、オペレーティング シス テムのマニュアルを参照してください。 次の例は、内部フォーマットを使用してテーブルをアンロードする方法を示してい ます。ディスク上の market.output ファイルに Market テーブルがアンロードされま す。FORMAT UNLOAD を指定した LOAD DATA 文を使って同じテーブルに再ロー ドします。 内部フォーマットで Market テーブルをアンロードし、market.output ファイルに 再ロードする手順は、次のとおりです。 1. 新規の TMU のコントロール ファイルまたは既存ファイルに UNLOAD 文 を記述します。例では、unloadmkt.tmu というコントロール ファイルを作 成します。 unload market outputfile 'market.txt' ; 2. unloadmkt.tmu をコントロール ファイルに指定し、TMU を起動します。 rb_tmu unloadmkt.tmu db_username db_password これで market.txt ファイルに、Market テーブルの内容が内部フォーマット で出力されます。 内部フォーマット データを Market テーブルに再ロードするには、次のようにしま す。 1. FORMAT UNLOAD を指定する LOAD DATA 文を記述します。例では、 loadmkt.tmu というファイルを作成します。 load data inputfile 'market.txt' format unload into table market; 重要 : LOAD DATA 文の inputfile には、UNLOAD 文に指定した出力ファイルを指定 します。 2. loadmkt.tmu をコントロール ファイルに指定し、コマンド ラインから TMU を起動します。 3. 必要なインデックス、シノニム、ビューを追加します。 rb_tmu loadmkt.tmu db_username db_password テーブルからのデータのアンロード 4-15 外部フォーマット データのアンロードとロード 外部フォーマット データのアンロードとロード 外部固定長フォーマットまたは外部可変長フォーマットでテーブルをアンロードす る手順は、次のとおりです。 1. 2. 新規の TMU コントロール ファイル、または既存ファイルに、EXTERNAL キーワードを指定して、ディスクまたはテープにテーブルやセグメントの データを出力する UNLOAD 文を記述します。 新規テーブルにデータを再ロードする場合は、DDLFILE キーワード、 TMUFILE キーワード、および <filename> を指定し、CREATE TABLE 文と LOAD DATA 文のテンプレートが自動的に作成されるようにしてください。 あるいはこれらのステートメントを、TMU の GENERATE 文によって作成 することもできます。 ステップ 1 で作成した UNLOAD 文を記述したコントロール ファイルを指 定し、TMU を起動します。 TMU により外部フォーマットでデータがアンロードされ、新規ファイル に格納されます。TMUFILE 句と DDLFILE 句を指定した場合は、自動生成 された LOAD DATA 文と CREATE TABLE 文を記述したファイルも作成され ます。 ヒント : CREATE TABLE 文には、セグメント情報や MAX ROWS PER SEGMENT 句は含まれません。必要に応じ、ファイルを編集してこの情報を追加してくださ い。 外部フォーマット データをデータ ウェアハウス テーブルに再ロードする手順は、 次のとおりです。 1. 新規のテーブルは SQL の CREATE TABLE 文で作成します。このステート メントはユーザが作成するか、TMU が TMU UNLOAD 文または GENERATE 文で自動生成したものを使用します。 重要 : CREATE TABLE 文で作成するテーブルは、データをアンロードしたテーブ ルと同じものか、列の数やデータ型、列順が同じである必要があります。 2. 3. 4. 自動生成された TMU の LOAD DATA 文が記述されているファイルを チェックし、入力ファイル名が正しいことを確認します。テープからロー ドする場合は、TAPE DEVICE 句を編集し、正しい装置名を指定してくだ さい。 TMU コントロール ファイルのような、LOAD DATA 文を記述したファイル をコントロール ファイルに指定し、TMU を起動します。 必要なインデックス、シノニム、ビューを追加します。プライマリ キー インデックスの作成と既存のインデックスの更新は、TMU によってテー ブルのロード中に自動的に実行されます。 4-16 Table Management Utility Reference Guide テーブルの複数セグメントへの再構成 外部固定長フォーマットでテーブルをファイルにアンロードする例を示します。 sales.output ファイルに Sales テーブルをアンロードし、自動生成された TMU ファ イルを使用してデータを再ロードします。 外部フォーマットで Sales テーブルをアンロードし、sales.output ファイルに内容 を再ロードする手順は、次のとおりです。 1. 新規の TMU のコントロール ファイルか既存ファイルに EXTERNAL キー ワードを指定した UNLOAD 文を記述します。この例では、 unloadsales.tmu というコントロール ファイルを作成します。 unload sales external ddlfile 'sales.create' tmufile 'sales.load' outputfile 'sales.output'; 2. unloadsales.tmu をコントロール ファイルに指定し、コマンド ラインから TMU を起動します。 rb_tmu unloadsales.tmu db_username db_password テーブルの再作成に使用する CREATE TABLE 文を記述した sales.create ファイル、データを再ロードする LOAD DATA 文を記述した sales.load ファ イル、外部フォーマット データを格納した sales.output ファイルが TMU で 作成されます。 Sales テーブルを新規データベースに再ロードする手順は、次のとおりです。 1. DDL ファイル sales.create を使用してテーブルを作成します。たとえば、 RISQL エントリ ツール を使用している場合は、次のようにファイルを実 行します。 2. LOAD DATA 文が記述された sales.load ファイルを修正し、正しい入力テー プ装置を指定します。 sales.load をコントロール ファイルに指定し、コマンド ラインから TMU を 起動します。 RISQL> run sales.create ; 3. rb_tmu sales.load db_username db_password 4. 必要なインデックス、シノニム、ビューを追加します。 テーブルの複数セグメントへの再構成 あるテーブルが 1 つのセグメントだけを使用している場合、アンロード操作によって 新規セグメントにデータを分割することができます。以下の手順に従ってください。 1. 2. 3. ディスクまたはテープにテーブルのデータをアンロードします。 複数のセグメントを使う新規テーブルを作成します。 UNLOAD フォーマットでデータを再ロードします。 テーブルからのデータのアンロード 4-17 データベースの移動 データベースの移動 データベースを移動するには、データベースの各テーブルに UNLOAD 文を記述し たファイルを作成します。内部フォーマットを指定すると高速になり、外部フォー マットを使うと柔軟性が高くなります。ただし、異なるプラットフォーム上にある システムにデータベースを移動する場合は、外部フォーマットを指定しなければな りません。 外部フォーマットでデータをアンロードする場合は、TMUFILE パラメータを指定 して、データを再ロードする LOAD DATA 文を記述したファイルが、TMU によって 作成されるようにするか、GENERATE LOAD DATA 文を使用して適当な TMU ファ イルを作成します。 内部フォーマットでデータをアンロードする場合は、LOAD DATA 文を記述したコ ントロール ファイルを作成してください。GENERATE LOAD DATA 文を使用する と、適当な TMU ファイルを作成できます。 LOAD DATA 文は、テーブルをロードする順に記述する必要があります。テーブル 順の決め方は、3-14 ページ「テーブルのロード順の決定」を参照してください。 データベースの移動方法の詳細は、『Administrator's Guide』を参照してください。 外部フォーマット データの他社製品ツールへ のロード 外部フォーマットでテーブルのデータをアンロードした後、自動生成された TMU のコントロール ファイルにある情報を参照して固定長データを入力できる製品に ロードできます。この TMU コントロール ファイルには、データを再ロードする LOAD DATA 文と、フィールドの位置についての情報が記述されています。 たとえば、IBM DB2 にデータをロードする場合は DB2 LOAD ユーティリティを使 用し、Microsoft Excel にロードする場合は Excel の parse 関数を使用します。 データを Excel にロードするとき、Excel は ANSI SQL 日付フォーマットを受け付け ません。parse 関数を使用して日時情報を抽出し、date 関数を使用して Excel の日時 に変換します。NULL を含む列を抽出する場合も、NULL 標記文字を解読する Excel parse 関数を使用します。データが外部フォーマットのため、データを見てフォー マットを処理できるように Excel を設定します。 4-18 Table Management Utility Reference Guide 選択した行のアンロード 選択した行のアンロード テーブルから選択した行だけをアンロードするには、アンロードする行を指定した WHERE 句を UNLOAD 文に追加します。WHERE 句に指定した列の制約を満たす行 だけが、アンロード ファイルに出力されます。 WHERE 句をセグメント リストと組み合わせて、アンロード操作の範囲を限定する ことができます。セグメントを指定した場合は、そのセグメントだけに検索条件が 適用されます。セグメントを指定しないと、テーブル全体に検索条件が適用されま す。WHERE 句によって、特定のセグメントから行が選択される場合は、そのセグ メントだけを UNLOAD 文の SEGMENT 句に指定すると高速になります。 WHERE 句で選択した行を TAR ファイルに書き込むには、まず、テンポラリテーブ ルに挿入するか、ディスクファイルにアンロードしてください。WHERE 句は、 TAR ファイルに対するアンロード操作に使用できません ( 理由は、TAR ファイル中 の各ヘッダーブロックは、後続するファイルの長さを知る必要があるからです。選 択性アンロード操作の場合、この長さを知ることができません )。 Aroma データベースの Sales テーブルから、2000 年の売上データをアンロードしま す。次の UNLOAD 文は、Perkey 列に基づいて Sales テーブルから 2000 年の売上 データをアンロードします。アンロードされた行は、2000_sales_data というファイ ルに外部フォーマットで出力されます。 unload sales external outputfile '2000_sales_data' where perkey >= 96001 and perkey <= 96053; Sales テーブルから、North 地区における 2000 年の売上データをアンロードします。 次の UNLOAD 文は、Perkey 列と Mktkey 列に基づいて、North 地区における 2000 年 の売上データを格納した行を Sales テーブルからアンロードします。アンロードさ れた行は、2000_northern_sales_data というファイルに内部フォーマットで出力さ れます。 unload sales outputfile '2000_northern_sales_data' where perkey >= 96001 and perkey <= 96053 and ( mktkey = 6 or mktkey = 7 or mktkey = 8 ); 例 : 外部固定長フォーマット データ Aroma データベースの Market テーブルについて TMU が生成した外部フォーマッ ト データと、自動生成された CREATE TABLE 文および LOAD DATA 文の例を示し ます。 テーブルからのデータのアンロード 4-19 例 : 外部固定長フォーマット データ Market テーブルは、次のステートメントで作成されています。 create table market ( mktkey integer not null, hq_city char(20), hq_state char(20), district char(20), region char(20), constraint mkt_pkc primary key (mktkey)); TMU UNLOAD 文によって market.txt というファイルが生成されます。 unload market external ddlfile 'market_create.risql' tmufile 'market_load.tmu' outputfile 'market.txt'; この market.txt ファイルには、外部フォーマットの Market テーブルからアンロー ドされたデータが格納されます。 00000000001 00000000002 00000000003 00000000004 00000000005 Atlanta Miami New Orleans Houston New York GA FL LA TX NY Atlanta Atlanta New Orleans New Orleans New York South South South South North 上記の TMU UNLOAD 文からは、Market テーブルを再作成する SQL 文が記述され た market_create.risql というファイルも作成されます。 CREATE TABLE MARKET ( MKTKEY INTEGER NOT NULL UNIQUE, HQ_CITY CHARACTER(20), HQ_STATE CHARACTER(20), DISTRICT CHARACTER(20), REGION CHARACTER(20), PRIMARY KEY(MKTKEY)); さらに、TMU UNLOAD 文によって、次の LOAD DATA 文が記述された market_load.tmu というファイルも作成されます。 LOAD DATA INPUTFILE 'market.txt' RECORDLEN 97 INSERT INTO TABLE MARKET ( MKTKEY POSITION(2) INTEGER EXTERNAL(11) NULLIF(1)='%', HQ_CITY POSITION(14) CHARACTER(20) NULLIF(13)='%', HQ_STATE POSITION(35) CHARACTER(20) NULLIF(34)='%', DISTRICT POSITION(56) CHARACTER(20) NULLIF(55)='%', REGION POSITION(77) CHARACTER(20) NULLIF(76)='%'); 4-20 Table Management Utility Reference Guide 例 : 外部可変長フォーマット データ 重要 : LOAD DATA 文と CREATE TABLE 文ではテーブル名が MARKET になって いることに注意してください。これらのステートメントを使って新規にテーブルを 作成する場合は、ステートメントを編集してテーブル名を変更することをお勧めし ます。同様に、実際の物理位置に対応させるために、入力ファイル名やテープ デバ イス名を編集する必要もあります。 LOAD DATA 文にあるキーワード NULLIF とパーセント記号 (%) は、アンロードし たテーブルの列が NULL であるかどうかを示します。たとえば、New Orleans に対 応する District 列の値が NULL の場合、アンロードしたデータは次のようになりま す。 00000000001 00000000002 00000000003 00000000004 00000000005 Atlanta Miami New Orleans Houston New York GA FL LA TX NY Atlanta Atlanta % New Orleans New York South South South South North 例 : 外部可変長フォーマット データ Aroma データベースの Market テーブルについて TMU が生成した外部可変長 フォーマット データと、自動生成された CREATE TABLE 文および LOAD DATA 文 の例を示します。 VARCHAR 列を含んだ MARKET テーブルは次の文で作成されます。 create table market ( mktkey integer not null, hq_city varchar(20) not null, hq_state char(20) not null, district char(20) not null, region char(20) not null, constraint mkt_pkc primary key (mktkey)); 次の TMU の UNLOAD 文は、Market テーブルからアンロードしたデータを外部 フォーマットで market.txt というファイルに出力します。 unload market external variable ddlfile 'market_create.risql' tmufile 'market_load.tmu' outputfile 'market.txt'; テーブルからのデータのアンロード 4-21 例 : 外部可変長フォーマット データ アンロードしたデータは次のようになります。 00000000001 00000000002 00000000003 00000000004 00000000005 000007 000005 000011 000007 000008 GA FL LA TX NY Atlanta Atlanta New Orleans New Orleans New York South South South South North Atlanta Miami New Orleans Houston New York 上記の TMU 文からは、Market テーブルを再作成する SQL 文が記述された market_create.risql というファイルも作成されます。 CREATE TABLE MARKET ( MKTKEY INTEGER NOT NULL UNIQUE, HQ_CITY VARCHAR(20) NOT NULL, HQ_STATE CHARACTER(20) NOT NULL, DISTRICT CHARACTER(20) NOT NULL, REGION CHARACTER(20) NOT NULL, PRIMARY KEY(MKTKEY)); さらに、TMU によって、次の LOAD DATA 文が記述された market_load.tmu とい うファイルも作成されます。 LOAD DATA INPUTFILE 'market.txt' FIXEDLEN 82 INTRA RECORD SKIP 1 INSERT FORMAT VARIABLE NLS_LOCALE 'English_UnitedStates.US-ASCII@Binary' INTO TABLE MARKET ( MKTKEY POSITION(2) INTEGER EXTERNAL(11) NULLIF(1)='%', HQ_CITY POSITION(14) VARLEN EXTERNAL(6) NULLIF(13)='%', HQ_STATE POSITION(21) CHARACTER(20) NULLIF(20)='%', DISTRICT POSITION(42) CHARACTER(20) NULLIF(41)='%', REGION POSITION(63) CHARACTER(20) NULLIF(62)='%'); 4-22 Table Management Utility Reference Guide 第5章 文と 文の生成 この章について . . . . . . . . . . . . . . . . . . . . 5-3 CREATE TABLE 文の生成 . . . . . . . . . . . . . . . . 5-3 LOAD DATA 文の生成 . . . . . . . . . . . . . . . . 5-5 例 :GENERATE 文と外部フォーマット データ . . . . . . . . . 5-7 . 5-2 Table Management Utility Reference Guide この章について TMU は、既存テーブルに基づいて CREATE TABLE 文と LOAD DATA 文を自動的に 生成することができます。これらの文は、新規テーブルを作成してそこにデータを ロードするためのテンプレートとして使用することができます。これら 2 つのス テートメントは UNLOAD 操作の一部として生成することもできますが、 GENERATE 文を使った方が柔軟性が高くなります。 GENERATE 操作はローカルおよびリモートのいずれからでも実行できます。リ モート TMU 操作の詳細については、2-12 ページを参照してください。 この章では、以下について説明します。 ■ ■ ■ CREATE TABLE 文の生成 LOAD DATA 文の生成 例 :GENERATE 文と外部フォーマット データ CREATE TABLE 文の生成 アンロードしたデータを格納する新規テーブルを作成する場合や、既存テーブルと よく似た新規テーブルのテンプレートを作成する場合は、UNLOAD 操作の一部と して CREATE TABLE 文を生成するのではなく、TMU の GENERATE CREATE TABLE 文を使用して生成することができます。この操作で生成したステートメント は、そのまま使用したり、変更する部分を編集 ( たとえば、ファイル名やテーブル 名の変更、あるいはセグメント情報、MAXROWS、MAXROWS PER SEGMENT の 各値の変更 ) して使用します。 CREATE TABLE 文と LOAD DATA 文の生成 5-3 CREATE TABLE 文の生成 GENERATE 文を実行するには、そのテーブルに対する SELECT アクセス権が必要 です。 GENERATE CREATE TABLE FROM DDLFILE <table_name> '<filename>' ; <table_name> CREATE TABLE 文を生成する基になる既存テーブル。 DDLFILE '<filename>' 生成した CREATE TABLE 文を TMU が書き込むファイル。このファ イルにセグメント情報は記述されません。このファイルを使って、 どのプラットフォームでもテーブルを作成することができます。 <filename> には、相対パスか絶対パスを指定し、環境変数を使うこ とができます。<filename> は、一重引用符で囲んで指定してくださ い。 <filename> の先頭に縦棒 ("|") 文字を 1 つ挿入し、その後にシェル コ マンドを続けることもできます。この特殊フォーマットを使うと、 TMU によりファイルではなくシステム パイプにデータの出力先を 変更することができます。生成された CREATE TABLE 文は、この シェル コマンドの入力データになります。 既存の Product テーブルを基に CREATE TABLE 文を生成し、カレント ディレクト リにある create_product.risql ファイルに書き込む例を示します。 generate create table from product ddlfile 'create_product.risql'; UNIX システム パイプとリモート シェル コマンド (rsh) を使い、リモート ホストにテーブ ルを作成する例を示します。CREATE TABLE 文は、Sales テーブルを基に作成され ます。作成された CREATE TABLE 文は、ディスク上のファイルではなく、システ ム パイプに送られ、UNIX ホスト north1 のリモート シェル コマンド (rsh) で実行さ れます。 リモート シェルは、cat UNIX コマンドを実行することによって、入力データを sales.create というファイルにコピーします。cat コマンドは、出力データをリダイ レクトする特殊文字 (>) を含むため、引用符で囲まれています。この 1 回の操作で CREATE TABLE 文が自動的に生成され、リモート ホストのディスク上のファイル にコピーされます。 generate create table from sales ddlfile '| rsh north1 "cat > sales.create"'; 5-4 Table Management Utility Reference Guide LOAD DATA 文の生成 前の例と同様に、Sales テーブルを基に CREATE TABLE 文を生成し、UNIX ホスト north1 のリモート シェルに出力データを送ります。UNIX リモート シェル コマンド (rsh) は、生成された CREATE TABLE 文を north1 ホスト上で実行中の RISQL エント リ ツール に直接渡し、既存データベースにテーブルを作成します。この 1 回の操作 で、Sales テーブルと同様のテーブルがリモート ホストに定義されます。 generate create table from sales ddlfile '| rsh north1 risql <user password>'; ヒント : この例のように、GENERATE CREATE TABLE 文とリモート シェルの機能 の組み合わせは、rb_cm コピー管理ユーティリティを使う場合に特に便利です。こ のような GENERATE 文を、rb_cm アンロード コントロール ファイルの UNLOAD 文の前に挿入しておくと、データをコピーする直前にリモート テーブルを作成する ことができます。rb_cm コピー管理ユーティリティの詳細は、第 7 章「コピー管理 オプションによるデータのコピー」を参照してください。 LOAD DATA 文の生成 アンロードしたデータを再ロードする場合や、類似したデータを新規テーブルに ロードするテンプレートを作成する場合は、UNLOAD 操作の一部として LOAD DATA 文を生成する代わりに、TMU の GENERATE LOAD DATA 文を使用して生成 することができます。GENERATE LOAD DATA 文では、対象テーブルの名前と入力 ファイルの名前を指定します。この操作で生成した文は、そのまま使用したり、変 更する部分を編集して使用します。 GENERATE 文を実行するには、そのテーブルに対する SELECT アクセス権が必要 です。 GENERATE LOAD FROM <table_name> DATA INTO <new_table_name> TAPE DEVICE '<device_name>' INPUTFILE '<new_filename >' EXTERNAL VARIABLE TMUFILE '<filename>' ; CREATE TABLE 文と LOAD DATA 文の生成 5-5 LOAD DATA 文の生成 <table_name> LOAD DATA を生成する基になる既存テーブル。 INTO <new_table_name> 生成する LOAD DATA 文の INTO 句で使用する代替テーブル 名。指定しないと <table_name> が INTO 句で使用されます。 <new_table_name> で指定するテーブルは、LOAD DATA 文の 生成時に存在する必要はありませんが、LOAD DATA 文の実行 時には存在しなければなりません。 INPUTFILE '<new_filename>' 生成する LOAD DATA 文の INPUTFILE 句で使用するファイル 名。指定しないと文字列 "???" が INPUTFILE 句に指定されま す。その場合は、後で有効な入力ファイル名に編集する必要 があります。 TAPE DEVICE '<device_name>' TAPE DEVICE 句は、テープ装置からデータをロードする LOAD DATA 文を生成する場合に指定します。指定しないと TAPE DEVICE 句のない LOAD DATA 文が作成されます。 テープは、UNIX でのみサポートされます。◆ UNIX EXTERNAL 生成する LOAD DATA 文に、外部フォーマット ファイルから のテーブルの再ロードに必要なフィールド定義を記述する指 定です。EXTERNAL を指定しないと、内部フォーマットを ロードする LOAD DATA 文が生成されます。つまり、フィー ルド定義のない FORMAT UNLOAD を指定することになりま す。 VARIABLE 最低 1 つの VARCHAR 列を含むテーブルだけに適用されます。 TMUFILE '<filename>' TMU によって生成した LOAD DATA 文を書き込むファイルの 名前を指定します。そのテーブルを内部または外部フォー マットのアンロード ファイルから、ロードまたは再ロードす る場合、このファイルは TMU の入力として、そのまま変更し ないで使用することができます。生成したファイルをテンプ レートとして使用し、フィールド定義をほかの入力フォー マットと一致するように編集することもできます。 <filename> には、相対パスか絶対パスを指定し、環境変数を 使うことができます。<filename> は、一重引用符で囲んで指 定してください。 <filename> の先頭に縦棒 ("|") 文字を 1 つ挿入し、その後に シェル コマンドを続けることもできます。この特殊フォー マットを使うと、TMU によりファイルではなくシステム パイ プにデータの出力先を変更することができます。生成された LOAD DATA 文は、このシェル コマンドの入力データになり ます。 5-6 Table Management Utility Reference Guide 例 :GENERATE 文と外部フォーマット データ 既存の Product テーブルを基に、INTO 句に指定した Newproduct という新規テーブ ルに使用する LOAD DATA 文を生成します。生成された LOAD DATA 文は、 INPUTFILE 句に指定した EXTERNAL フォーマットの product_unload ファイルから 入力データを読み込みます。生成されたステートメントは、カレント ディレクトリ にある load_newproduct ファイル (TMUFILE 句で指定 ) に書き込まれます。 generate load data from product into newproduct inputfile 'product_unload' external tmufile 'load_newproduct'; Market テーブルを基に LOAD DATA 文を生成します。INTO 句がないため、生成さ れたステートメントのロード先も Market テーブルになります。新規 market テーブ ルは、内部フォーマットのアンロード ファイルをシステムの標準入力 (INPUTFILE 句のファイル名が '-') からロードします。生成された LOAD DATA 文は、カレント ディレクトリにある copy_market というファイルに書き込まれます。 generate load data from market inputfile '-' tmufile 'copy_market'; 例 :GENERATE 文と外部フォーマット データ Aroma データベースの Store テーブルに対して、GENERATE 文で生成した CREATE TABLE 文と LOAD DATA 文と UNLOAD 文で作成した外部フォーマットのアンロー ド データを示します。 Store テーブルは、次のステートメントで作成されています。 create table store ( storekey integer not null, mktkey integer not null, store_type char(10), store_name char(30), street char(30), city char(20), state char(5), zip char (10), constraint store_pkc primary key (storekey), constraint store_fkc foreign key (mktkey) references market (mktkey)) maxrows per segment 2500; 次の TMU の GENERATE 文は、recreate_store というファイルを作成します。 generate create table from store ddlfile 'recreate_store': CREATE TABLE 文と LOAD DATA 文の生成 5-7 例 :GENERATE 文と外部フォーマット データ recreate_store ファイルには、Store テーブルを作成する次の SQL 文が記述されま す。 CREATE TABLE STORE ( STOREKEY INTEGER NOT NULL UNIQUE, MKTKEY INTEGER NOT NULL, STORE_TYPE CHARACTER(10), STORE_NAME CHARACTER(30), STREET CHARACTER(30), CITY CHARACTER(20), STATE CHARACTER(5), ZIP CHARACTER(10), PRIMARY KEY(STOREKEY), CONSTRAINT STORE_FKC FOREIGN KEY(MKTKEY) REFERENCES MARKET (MKTKEY) ON DELETE NO ACTION); ヒント : この GENERATE 文は、CREATE TABLE 文にセグメント情報、 MAXSEGMENTS 句、MAXROWS PER SEGMENT 句を生成しません。必要な情報の ために、このファイルを編集することができます。 次の TMU の GENERATE 文は、store_load というファイルを作成します。 generate load data from store into new_store inputfile 'store_data' external tmufile 'store_load'; store_load ファイルには、次の LOAD DATA 文が記述されます。 LOAD DATA INPUTFILE 'store_data' RECORDLEN 136 INSERT NLS_LOCALE 'English_UnitedStates.US-ASCII@Binary' INTO TABLE NEW_STORE ( STOREKEY POSITION(2) INTEGER EXTERNAL(11) NULLIF(1)='%', MKTKEY POSITION(14) INTEGER EXTERNAL(11) NULLIF(13)='%', STORE_TYPE POSITION(26) CHARACTER(10) NULLIF(25)='%', STORE_NAME POSITION(37) CHARACTER(30) NULLIF(36)='%', STREET POSITION(68) CHARACTER(30) NULLIF(67)='%', CITY POSITION(99) CHARACTER(20) NULLIF(98)='%', STATE POSITION(120) CHARACTER(5) NULLIF(119)='%', ZIP POSITION(126) CHARACTER(10) NULLIF(125)='%'); ヒント : GENERATE LOAD DATA 文には、新規のテーブル名と入力ファイル名が 指定されています。LOAD DATA 文にあるパーセント記号 (%) は、アンロードした テーブルの列が NULL であるかどうかを示します。 5-8 Table Management Utility Reference Guide 例 :GENERATE 文と外部フォーマット データ Store テーブルから外部フォーマットでアンロードした場合、出力は次のようにな ります。 00000000001 00000000014 Small Roasters, Los Gatos 1234 University Ave Los Gatos CA 95032 00000000002 00000000014 Large San Jose Roasting Company 5678 Bascom Ave San Jose CA 95156 00000000003 00000000014 Medium Cupertino Coffee Supply 987 DeAnza Blvd Cupertino CA 97865 00000000004 00000000003 Medium Moulin Rouge Roasting 898 Main Street New Orleans LA 70125 00000000005 00000000010 Small Moon Pennies 98675 University Ave Detroit MI 48209 … CREATE TABLE 文と LOAD DATA 文の生成 5-9 第6章 テーブルとインデックスの 再編成 この章について . . . . . . . . . . . . . . . . . . . . 6-3 REORG の動作 . . . . . . REORG 操作のオプション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-3 6-4 REORG 操作中のデータ処理 . コーディネータ ステージ . 入力ステージ . . . . . 変換ステージ . . . . . インデックス作成ステージ クリーンアップ ステージ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-6 6-8 6-9 6-9 6-9 6-9 REORG の構文 . . . . . . . . . . . . discardfile 句 . . . . . . . . . . . . 使用上の注意 . . . . . . . . . . . 参照整合性 . . . . . . . . . . . ロック動作 . . . . . . . . . . . インデックスの一部分に対する REORG オンライン操作 / オフライン操作 . . . ディスク領域 . . . . . . . . . . Discard ファイルのフォーマット . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6-11 6-16 6-18 6-19 6-20 6-20 6-20 6-21 6-21 6-2 Table Management Utility Reference Guide REORG の動作 この章について REORG コマンドはインデックスにデータを挿入し、参照整合性を維持し、イン デックスの格納率を向上します。また、事前計算ビューへのデータの挿入と再作成 を行います。REORG 操作は、特定の対象テーブルとその関連データベース オブ ジェクトに適用されます。REORG 操作を並行して実行することで、複数のイン デックスを持つ大規模なテーブルに対してパフォーマンスの向上を図ることができ ます。 この章では、以下について説明します。 ■ ■ ■ ■ REORG の動作 REORG 操作中のデータ処理 REORG の構文 使用上の注意 REORG の動作 REORG 操作は、以下の機能を実行します。 ■ ■ ■ 必要に応じて、テーブルの参照整合性を検査し、違反した行を削除する か、影響を受けたインデックスを無効にします。参照整合性とは、テーブ ルの各フォーリン キー値が、参照先テーブルのプライマリ キー値に存在 するということです。 テーブルの複数のインデックス ( すべてのタイプのインデックス ) を内部で 再編成し、インデックスの格納効率を改善し、インデックスを使ったデー タ アクセスの性能を向上します。すべてのインデックスまたは任意のイン デックスを指定して、または指定したインデックスの任意のセグメントを 指定して再作成できます。 CREATE INDEX 文で作成した DEFERRED インデックスにデータを登録し ます。DEFERRED インデックスとは、空のインデックス構造として作成さ れ、後からデータを登録できるインデックスのことです。DEFERRED イ ンデックスの詳細については、『SQL Reference Guide』を参照してくださ い。 テーブルとインデックスの再編成 6-3 REORG 操作のオプション ■ 事前計算ビューを再作成します。たとえば、アプリケーションで事前計算 ビュー管理が OFF に設定されている場合、REORG コマンドを使用して、 対象テーブルのインデックスは変更せずに事前設定ビューだけを再作成で きます。また、REORG コマンドを使用してインデックスとビューの両方 を再作成することができます。事前計算ビューの詳細については、『IBM Red Brick Vista User’s Guide』を参照してください。 REORG コマンドは集約テーブルを再作成するだけでなく、集約テーブル のインデックスを再作成します。 以下のような場合に、REORG 操作が必要となります。 ■ ■ ■ データベースにリストア操作を実行して、テーブルまたはインデックスの 個々のセグメントをリストアした場合。関連するインデックスを再作成し ます。 データベースの更新によってデータの 30% 以上が影響を受ける場合。更新 されたテーブルに対して TMU REORG 文を実行します。このようなテーブ ルやインデックスを REORG 文で定期的に再作成しておくと、参照整合性 と性能を保つことができます。 無効な STAR を再作成する場合。ある操作によって STAR インデックスが 無効になることがあります。たとえば、テーブルの MAXROWS PER SEGMENT パラメータや MAXSEGMENTS パラメータの値を大きくした り、ALTER 文を使用してセグメントを拡張すると、変更したテーブルを参 照する STAR インデックスが無効になります。このような操作を実行する と、STAR インデックスが無効になり、STAR インデックスの再編成が必要 であるという警告メッセージが表示されます。その後すぐに関連するイン デックスに REORG 操作を実行するか、都合の良い時間に実行してくださ い。ただし、無効なインデックスを持つテーブルにクエリ以外の操作 (INSERT、UPDATE、DELETE) を実行すると、インデックスの再編成が必 要であるというエラー メッセージが表示されます。REORG 操作を実行し ないと、そのテーブルを更新する INSERT、UPDATE、DELETE、LOAD 操 作は実行できません。 以下の場合には、REORG は必要ありません。 ■ ■ 正常なロードによる変更以外にデータに変更がない場合。 テーブルとインデックスが同様にセグメント化されており、新規インデッ クス データが新規テーブル セグメントに対応して新規インデックス セグ メントにロードされている場合。このタイプの設定例は、『Administrator's Guide』を参照してください。 REORG 操作のオプション REORG 操作には、以下のオプションがあります。 6-4 Table Management Utility Reference Guide REORG 操作のオプション ■ ■ ■ ■ ■ ■ ■ ■ ■ インデックスの一部分を再編成するか、インデックス全体を再編成しま す。インデックスの一部分に対する REORG 操作の場合、再編成中の各イ ンデックスごとに 1 つまたは複数のセグメントの指定リストを設定し、操 作範囲を限定できます 1 つのテーブルで定義された複数のインデックスに 対応する複数のセグメントを REORG 操作で再作成することができます。 インデックスの一部分に対する REORG 操作で、セグメントをオンライン またはオフラインのいずれかで再作成します。セグメントがオフラインの 場合でも、REORG 実行中は、クエリでそのインデックスのオンライン部 分を使用できます。 一部分の REORG 操作で、テーブルの一部分だけをスキャンして再作成し ます。テーブル全体をスキャンせず、1 つまたは複数のセグメント データ をスキャンできます。このオプションを使用できるのは、同じ列を使用し て、再作成するテーブルとインデックスをセグメント化する場合と、再作 成するインデックス セグメントのすべてのキーが、指定されたデータ セ グメント内に存在する場合のいずれかです。 ローカル インデックス セグメントに対する REORG コマンドでテーブル セ グメントを指定した場合、対応するそのテーブル セグメントだけがスキャ ンされます。 参照整合性チェックを無効にします。作成するインデックスの参照整合性 チェックが必要でない場合にこのオプションを使用すると、パフォーマン スが向上します。 参照整合性違反の行、または重複インデックス キーとなる行を管理しま す。 ❑ エラーの影響を受ける行を、テーブルおよびテーブルに指定されたす べてのインデックスから削除できます。 ❑ エラーの影響を受ける任意のインデックスを、ほかのインデックスの 再編成に影響を与えることなく無効とマークできます。 ❑ インデックスのいずれかでエラーが発生した場合、直ちに REORG 操 作を中止できます。REORG で再作成されるインデックスは、すべて 無効とマークされます。 参照整合性違反の行を別ファイルに記録します。 参照先テーブルのプライマリ キー インデックスをメモリにマッピングす ることで、参照整合性チェックを最適化します。 削除された行の結果表示方法を管理します。ほかの REORG メッセージと ともに表示するか、あらかじめ指定したファイルに記録するかを指定で き、エラーの種類 ( 重複行か、参照整合性違反か ) 別に複数のファイルに 分けることもできます。破棄ファイルを指定していなかった場合、行が破 棄されるときにメッセージが表示されます。 1 つ以上の事前計算ビューを再作成します。 テーブルとインデックスの再編成 6-5 REORG 操作中のデータ処理 REORG 操作中のデータ処理 シリアル REORG も並列 REORG 操作も同様の機能を実行します。両者の違いは、 並列 REORG 操作が独立した複数のタスクを同時に使用し、シリアル REORG 操作 はタスクを 1 段階ずつ処理する点です。REORG 操作は、以下のステージで構成さ れます。 ■ ■ ■ ■ ■ 6-6 コーディネータ ステージ ❑ REORG 文の妥当性を検査します。 ❑ 必要なすべてのロックをかけ、各インデックスを再作成中の状態に設 定して、ほかのユーザのインデックスへのアクセスを禁止する。 ❑ 再編成されるインデックスまたはインデックスのセグメントをクリア する。 このステージでは、並列 REORG 操作は以下の処理を実行します。 ❑ 各ステージに使用する追加タスク数を決定する。 ❑ 各タスクに作業を割り当てる。 ❑ REORG のパイプライン処理中のタスクの順序を決定する。 ❑ REORG のパイプライン処理の各ステージを実行するプロセス (UNIX)、またはスレッド (Windows) を作成し、実行を開始する。 入力ステージ ❑ 対象テーブルから行を 1 行ずつ読み取る。 ❑ データを変換タスクに渡す。 変換ステージ ❑ 参照整合性チェックが有効な場合、すべてのフォーリン キーの参照整 合性を検査する。参照整合性チェックが無効な場合は、再作成中の STAR インデックスの参照整合性だけを検査する。 ❑ 再作成中の各インデックスのキーを構成する。 ❑ カレント行に対して作業を実行するインデックス作成タスクを識別す る。現在の行のキー値が再作成中のインデックス セグメントいずれに も所属しない場合、その行はスキップされます。 ❑ パイプライン処理の最初のインデックス作成タスクにデータを渡す。 インデックス作成ステージ ❑ 指定されたインデックスのセグメントにキー値を挿入する。 ❑ 次のインデックス作成タスクまたはクリーンアップ タスクにデータを 渡す。 クリーンアップ ステージ ❑ 指定された ON DISCARD オプションに必要な処理を実行する。 ❑ 正常に再作成されたインデックスを有効とマークする。 ❑ REORG 操作の状況を結果表示する。 Table Management Utility Reference Guide REORG 操作中のデータ処理 REORG 操作は、並列処理機能を活用し、2 つの方法で性能を向上させます。 ■ ■ ステージごとに独立したプロセスまたはスレッドを使用し、ステージ間で 行を受け渡すパイプライン処理を作成して、複数行を同時処理します。シ ングル CPU でも、複数プロセスまたは複数スレッドが入出力と CPU の オーバーラップを活用できるので、処理時間を短縮できます。 マルチ CPU では、入力タスク、変換タスク、インデックス作成タスクが追 加作成されるので、パイプライン処理性能がさらに向上します。 REORG 操作の並列処理機能の性能を高めるには、テーブル内の物理記憶装置 (PSU) の数、またはインデックス内のセグメント数を増やします。 テーブルとインデックスの再編成 6-7 コーディネータ ステージ 図 6-1 は、REORG 操作が実行するタスクの順序を示します。 図 6-1 REORG シーケンス REORG タスク シーケンス 凡例: コーディネータ ステージ コントロール ファイル システム テーブル タスク コーディネータ タスク 主要 I/O 状態 / 制御 フロー 入力ステージ データベース テーブル PSU 入力タスク É^ÉXÉN É^ÉXÉN 変換ステージ 参照先テーブル PK インデックス 変換タスク É^ÉXÉN É^ÉXÉN インデックス作成ステージ インデックス 作成タスク インデックス セグメント インデックス 作成タスク É^ÉXÉN インデックス セグメント 主要 I/O クリーンアップ ステージ Discard ファイル データベース テーブル クリーンアップ タスク コーディネータ ステージ コーディネータ タスクは、REORG コマンドを受け取り、REORG パラメータの妥当 性を検証します。使用するタスク数を決定し、また、各ステージに作業を割り当て て、REORG のパイプライン処理中のタスクの順序を決定します。すべてのステー ジが終了した後、コーディネータは REORG 操作を終了させます。 6-8 Table Management Utility Reference Guide 入力ステージ 集約管理が必要な場合、サーバは、対象テーブルおよびインデックスの再編成の終 了後に、コーディネータの最終タスクの一部として集約管理を処理します。そのた めに、TMU は、REORG トランザクションの一部であるサーバと直接通信を行いま す。 入力ステージ 入力ステージでは、ターゲット テーブルの各行が読み込まれ、その情報が変換ス テージに渡されます (REORG 操作を高速に実行するために、テーブルの代わりに STAR インデックスがスキャンされる場合もあります。どちらが利用されるかは ユーザには分かりません )。入力タスク数は、ターゲット テーブル内の PSU の数を 超えることはできません。 変換ステージ 変換ステージでは、参照整合性チェックが行われ ( 有効にするオプションが指定さ れた場合のみ )、再作成中の各インデックスのキーが構成されます。各行に対して 実行するインデックス作成作業が識別され、パイプライン処理の次のステージに行 が渡されます。 インデックス作成ステージ インデックス作成ステージでは、指定したインデックスのセグメントにキー値が挿 入されます。インデックス作成タスクは、1 つのインデックスの複数のセグメント、 または 1 つのインデックスのすべてのセグメント、複数のインデックスのすべての セグメントに値を挿入できます。複数のインデックス作成タスクは、同じインデッ クスの異なるセグメントのサブセットを処理し、各インデックスは異なるパイプラ イン処理のタスクで作成されます。OPTIMIZE オプションが ON の場合は、イン デックスに行を追加するためにソート処理およびマージ処理が実行されます。複数 のインデックス作成タスクを同時に実行することができます。インデックス作成タ スク数が、作成中のインデックス セグメントの総数を超えることはできません。再 作成中でないセグメントには、インデックス作成タスクは割り当てられません。 クリーンアップ ステージ クリーンアップ ステージでは、破棄行が削除され、指定に従って破棄ファイルに記 録されます。クリーンアップ タスクは、ON DISCARD オプションの指定に従って 以下の処理を実行します。 テーブルとインデックスの再編成 6-9 クリーンアップ ステージ ■ ■ ■ DELETE ROW オプションが選択されている場合、破棄行は指定に従って 破棄ファイルに記録されます。削除の最大数を超えると、REORG 操作は 中止され、すべてのインデックスが無効とマークされます。バージョニン グが有効な場合は、テーブルとそのインデックスは操作開始前の状態にリ ストアされます。 INVALIDATE INDEX オプションが指定されている場合は、作成中にエラー が発生したすべてのインデックスが無効とマークされます。 ABORT オプションが選択されている場合、REORG 操作は中止され、すべ てのインデックスが無効とマークされます。 正常に再作成されたインデックスは有効とマークされ、REORG 操作の状況がコー ディネータ タスクに連絡されます。 6-10 Table Management Utility Reference Guide REORG の構文 REORG の構文 REORG REORG <table_name> , ( SEGMENT INCLUDE PRECOMPUTED VIEWS <segment_name> ) , ( <view_name> ) , INDEX ( ) <index_name> , SEGMENT <segment_name> ( ) DEFERRED INDEXES EXCLUDE INCLUDE EXCLUDE INDEXES RECALCULATE RANGES OPTIMIZE ON ON REFERENCE CHECKING OFF OFF , MMAP INDEX ( <pk_index_name> ) , SEGMENT ( <segment_name> ) テーブルとインデックスの再編成 6-11 REORG の構文 REORG の構文 ( 続き ) ON DISCARD INVALIDATE INDEX ABORT DELETE ROW <discardfile_clause > p. 6-16 ; DISCARDS n ROWMESSAGES '<filename>' REORG <table_name> 再編成するテーブルを指定します。 SEGMENT <segment_name> インデックスの部分的な REORG 操作のためにスキャンする テーブル セグメントを指定します。テーブル セグメントを 指定しないと、テーブル全体がスキャンされます。スキャン された行が再作成中のインデックス セグメントに所属して いない場合は無視されます。 テーブル セグメントを指定できるのは、テーブルおよび INDEX 句に指定したすべてのインデックスが、同じ列上で セグメント化されている場合に限られます ( ローカル イン デックスの場合を除きます )。指定のインデックス セグメン トに属するキーを持つ行はすべて、指定のデータ セグメン ト内に存在する必要があります。 ローカル インデックスの REORG では、INDEX 句に指定し たローカル インデックス セグメントに対応したテーブル セ グメントが必要です。 6-12 Table Management Utility Reference Guide REORG の構文 INCLUDE PRECOMPUTED VIEWS <view_name> 詳細テーブルの再編成時に、指定された事前計算ビューを再 作成します。 INCLUDE PRECOMPUTED VIEWS を指定したが、ビュー名 を入力しなかった場合、<table_name> で指定したテーブルに 基づくすべての事前計算ビューが再作成されます。 ビュー名を個別に入力した場合、指定した事前計算ビューだ けが再作成されます。 事前計算ビューのいずれかのセグメントがオフラインである 場合、または事前計算ビューが STAR インデックスで参照さ れている場合には、その事前計算ビューを REORG コマンド で再作成することはできません。 INDEX <index_name> 再作成するインデックスを指定します。この句を指定しない と、テーブルに指定されたすべてのインデックスが再作成さ れます。ユーザが作成したインデックスの名前は、CREATE INDEX 文で指定されます。再作成するインデックスの名前 は、システム生成時のプライマリ キー インデックスのテー ブル名に、_PK_IDX という文字列を付加した名前になりま す。たとえば、Market テーブルのプライマリ インデックス 名は MARKET_PK_IDX です。 SEGMENT <segment_name> REORG 操作によって再作成するインデックス セグメントを 指定します。インデックス セグメントは、指定したイン デックスにアタッチされていなければなりません。インデッ クス セグメントは、オンラインでもオフラインでもかまい ませんが、すべてがオンラインであるか、すべてがオフライ ンであるかのいずれかでなければなりません。インデックス セグメントを指定しないと、インデックスにアタッチされた すべてのセグメントが再作成されます。 [EXCLUDE, INCLUDE] Deferred インデックス、つまり作成時点で登録されていない DEFERRED INDEXES インデックスを、REORG 操作に含めるか、除外するかを指 定します。デフォルトは EXCLUDE DEFERRED INDEXES ( 処理しない ) です。部分的な REORG 操作には、Deferred イ ンデックスを指定できません。 EXCLUDE INDEXES 事前計算ビューの再作成時にだけ使用されます。REORG 操 作からインデックスを除外します。 事前計算ビューとそのインデックスは自動的に再作成される ので、INDEX 句で事前計算ビューにインデックスを作成す る必要はありません。 テーブルとインデックスの再編成 6-13 REORG の構文 RECALCULATE RANGES REORG 文で再作成する任意の STAR インデックスの範囲を 再計算し、そのインデックスのセグメントでインデックス エントリを均等に分割するように指定します。このオプショ ンは、STAR インデックスに使用されているテーブルの MAXROWS PER SEGMENT 値、または MAXSEGMENTS 値 を変更する場合に使用します。このオプションを指定する場 合は、指定するインデックスのうち最低 1 つのインデックス が、STAR インデックスでなければなりません。 RECALCULATE RANGES は、インデックスの一部分に対す る REORG 操作を実行する REORG 文には指定できません。 セグメントの範囲については、『SQL Reference Guide』を参 照してください。 バージョニングが有効な場合は、RECALCULATE RANGES は指定できません。 OPTIMIZE ON, OFF OPTIMIZE モードで、1 つまたは複数のインデックスを再作 成するように指定します。このオプションは、rbw.config ファイルで指定されている OPTIMIZE モードよりも優先さ れます。REORG 文にこの句を指定しないと、rbw.config ファイルの設定でデフォルト動作が決定されます。 OPTIMIZE の詳細については、3-59 ページ「Optimize 句」を 参照してください。 REFERENCE 参照整合性チェックを行うかどうかを指定します。このオプ CHECKING ON、OFF ションを ON にすると、すべてのフォーリン キーがチェッ クされます。OFF にすると、再作成中の STAR インデックス に使用されているフォーリン キーだけがチェックされます。 デフォルトは ON です。 データに参照整合性違反がないことがわかっている場合は、 Deferred インデックス作成時の参照整合性チェックをオフに することができます。 部分的な REORG 操作では、実際にテーブルから読み取られ た行のみに対して参照整合性チェックが行われます。 MMAP INDEX <pk_index_name> 6-14 再編成中のテーブルによって参照されるテーブル上の 1 つ以 上のプライマリ キー インデックスを指定します。このイン デックスを指定する目的は、参照整合性チェックを最適化す る手段として MMAP システム関数でインデックスをメモリ マッピングする順序を定義することにあります。ロード中の メモリマッピングで使用可能なメモリ量を制御する TUNE TMU_MMAP_LIMIT パラメータと組み合わせてこの句を使 用します。2-34 ページを参照してください。 Table Management Utility Reference Guide REORG の構文 SEGMENT <segment_name> 指定したプライマリ キー インデックスの 1 つ以上のセグメ ントを指定します。参照先テーブル データに関連づけられ たインデックス セグメントがわかっている場合に、このセ グメントを指定します。メモリ マッピング関数の適用は、 指定したインデックス セグメントに限定されます。 セグメント名のリストは括弧で囲む必要があります。 ON DISCARD データ行が整合性検査に不合格になる場合、またはデータ行 に重複するインデックス キー値が含まれている場合の処置 を指定します。DELETE ROW、INVALIDATE INDEX、 ABORT の 3 つのオプションがあります。デフォルトは DELETE ROW です。 INVALIDATE INDEX キーが重複している一意インデックス、または参照整合性違 反のために作成、再作成できない STAR インデックスを無効 にします。ディスク領域不足のために作成または再作成でき ないインデックスも無効にします ( このエラーは、行の削 除、プライマリ キーに不足している値の参照先テーブルへの 追加、フォーリン キー制約の削除によって解除できます )。 それ以外のインデックスの再作成は続行されます。バージョ ニングが有効な場合は、クエリでテーブルの以前のバージョ ンとそのインデックスが使用できます。バージョニングが無 効な場合もクエリでテーブルを使用することはできますが、 再作成中のインデックスにアクセスすることはできません。 ABORT インデックスでエラーが発生した場合、REORG 操作は停止 します。バージョニングが有効の場合は、インデックスは初 期状態にロールバックされます。バージョニングが無効な場 合は、再作成中のすべてのインデックスが無効とマークされ ます。再作成中のインデックス以外のインデックスには影響 がありません。ABORT が選択されているときに、インデッ クスのディスク領域が不足すると、REORG 操作は終了しま す。バージョニングが有効な場合は、クエリでテーブルの以 前のバージョンとそのインデックスが使用できます。バー ジョニングが無効な場合もクエリでテーブルを使用すること はできますが、再作成中のインデックスにアクセスすること はできません。 テーブルとインデックスの再編成 6-15 discardfile 句 テーブルおよびすべてのインデックスから、重複行および参 照整合性違反の行を削除します。参照整合性違反の行はテー ブルから直ちに削除されます。重複するキー値は、REORG 操作の最後まで ( すべてのテーブル行が処理されるまで ) 削 除されません。バージョニングが有効な場合は、クエリで テーブルの以前のバージョンとそのインデックスが使用でき ます。バージョニングが無効な場合は、クエリはテーブルに もインデックスにもアクセスできません。 DELETE ROW 部分的な REORG 操作には、DELETE ROW オプションを指 定できません。したがって、INVALIDATE INDEX オプション または ABORT オプションを指定する必要があります。 DISCARDS <n> 削除できる最大行数を指定します。最大行数を超えると、 REORG 操作が終了します。<n> に 0 を指定すると、削除す る行数の制限がなくなります。 ROWMESSAGES '<filename>' 行警告メッセージの送信先のファイル名破棄ファイルに指定 したファイルとは別のファイル名を指定します。行警告があ る場合だけファイルが作成されます。詳細については 3-57 ページ を参照してください。 discardfile 句 <discardfile_clause> は、重複行と参照整合性違反の行を格納する場所を指定します。 <discardfile_clause> DISCARDFILE p. 6-11 の REORG に戻る '<filename>' '<filename>' RI_DISCARDFILE ( , <table_name> '<filename>' ) OTHER 6-16 Table Management Utility Reference Guide '<filename>' discardfile 句 DISCARDFILE '<filename>' TMU によって破棄行が書き込まれるファイル名を指定し ます。削除された重複行は、必ず指定したファイルに書き 込まれます。RI_DISCARDFILE ファイル名が別個に指定 されていない場合は、参照整合性違反で削除された行も指 定したファイルに書き込まれます。このオプションは、 ON DISCARD DELETE ROW オプションが指定されている 場合のみ指定できます。 指定するファイル名は、オペレーティング システムの ファイル命名規則に従い、一重引用符 (') で囲む必要があ ります。 部分的な REORG 操作には、DISCARDFILE オプションを 指定できません。 redbrick ユーザは、Discard ファイルに対する書き込み権 限を付与されている必要があります。 RI_DISCARDFILE '<filename>' 削除した参照整合性違反レコードを書き込むファイル名。 この句は、ほかのテーブルを参照していないテーブルには 指定できません。このオプションは、ON DISCARD DELETE ROW オプションが指定されている場合にだけ指 定できます。 指定するファイル名は、オペレーティング システム のファイル命名規則に従い、一重引用符 (') で囲む必要が あります。 redbrick ユーザは、Discard ファイルに対する書き込み権 限を付与されている必要があります。 テーブルとインデックスの再編成 6-17 使用上の注意 RI_DISCARDFILE 再編成中のテーブル内のフォーリン キーの参照先テーブ <table_name> '<filename>' ル、および指定したテーブルに対する参照整合性違反で削 除された行を記録するファイルを示す、テーブル名とファ イル名の組み合わせを指定します。 このテーブルとファイルを指定することで、指定したテー ブルごとに独立した Discard ファイルを使用できます。レ コードが複数の参照先テーブルとの参照整合性に違反した 場合、各参照先テーブルに対応するファイルにそれぞれ出 力されます。 複数のテーブルとファイルの組み合わせを指定することも できます。複数の参照先テーブル ( すべてではない ) が指 定されている場合、指定されていないテーブルに対する参 照整合性違反のレコードは、キーワード OTHER の後に指 定したファイルに書き込まれます。またキーワード OTHER を指定していない場合は、標準 Discard ファイル ( キーワード DISCARDFILE の後に指定したファイル ) に書 き込まれます。 ファイル名はオペレーティング システムのファイル命名 規則に従い、一重引用符で囲む必要があります。テーブル とファイルの組合せを複数指定する場合は、カンマで区切 ります。 OTHER '<filename>' 上記のテーブル名とファイル名の組み合わせに指定されて いない参照先テーブルに対する参照整合性違反で削除され た行を記録するファイルを指定します。テーブル名とファ イル名の組み合わせが指定され、この句が指定されていな い場合は、指定されていないテーブルに対する参照整合性 違反のレコードは、標準 Discard ファイル ( キーワード DISCARDFILE の後に指定したファイル ) に書き込まれま す。 指定するファイル名は、オペレーティング システム のファイル命名規則に従い、一重引用符 (') で囲む必要が あります。 使用上の注意 重要 : REORG 文を使用するには、DBA システム ロールのメンバーか、テーブル の所有者である必要があります。 6-18 Table Management Utility Reference Guide 使用上の注意 参照整合性 以下の場合を除き、データベースの参照整合性は必ず維持されます。 ■ ■ ■ ■ ■ ALTER SEGMENT 文に OFFLINE OVERRIDE REFCHECK オプションを指定 した場合。 ALTER SEGMENT 文に CLEAR OVERRIDE REFCHECK オプションを指定 した場合。 SQL DELETE 文に OVERRIDE REFCHECK オプションを指定した場合。 REORG 文に ON DISCARD DELETE ROW オプションを指定した場合。 別のテーブルの参照先となる行を持つテーブルで、LOAD DATA 文に REPLACE モードを指定した場合。 いずれの場合も、参照整合性に違反する参照先テーブルから、行が削除される可能 性があります。REORG 文が実行する削除操作は、参照元テーブルをカスケードし ないため、参照先テーブルを再編成する場合は、そのテーブルを参照する各テーブ ルも再編成する必要があります。参照整合性をリストアするには、行が削除された テーブルを参照するすべてのテーブルに対して、ON DISCARD DELETE ROW オプ ションおよび REFERENCE CHECKING ON オプションを指定した REORG 操作を実 行します。この REORG 操作は、削除された行を参照するすべての行を削除して、 参照整合性をリストアします。 警告 : REORG 操作は、行が削除されたテーブル ( 参照先テーブル ) ではなく、参 照元テーブルに対して実行してください。 図 6-2 は REORG 操作で参照元テーブルから行を削除する例を示します。Fact1 テー ブルが Out1 テーブルを参照する Dim1 テーブルを参照するとします。 図 6-2 カスケード しない削除 Out1 Dim1 Fact1 Out1 から複数の行が削除されたので、Dim1 に REORG 操作を実行します。Out1 か ら削除された行を参照する行が Dim1 に存在する場合 ( 参照整合性違反の場合 )、そ の行は REORG 動作で削除され、参照整合性が維持されます。ただし、Dim1 から削 除された行を参照する Fact1 の行は、Dim1 に対する REORG 操作では削除されませ ん。この行を削除して参照整合性を維持するには、Fact1 に対しても REORG 操作を 実行しなければなりません。 テーブルとインデックスの再編成 6-19 使用上の注意 ロック動作 REORG 操作は最初にデータベースに Read ロックをかけます。RECALCULATE RANGES オプションを指定した場合は、REORG 操作によりデータベースに Write ロックがかかります。データベース レベルのロックは、変更するテーブルが REORG によってロックされると解除されます。 バージョニングが有効な場合、テーブルの再編成中、クエリでテーブルの以前の バージョンとそのインデックスを使用できます。バージョニングの詳細は、 『Administrator's Guide』を参照してください。 インデックスの一部分に対する REORG インデックスの一部分に対する REORG 操作には、以下の制限があります。 ■ ■ ■ ■ ■ 参照整合性チェックは、指定したテーブルのデータ セグメントのみを対象 に実行されます。したがって、テーブル全体に対して参照整合性を保証す ることはできません。 指定するセグメントは、すべてがオンラインであるか、すべてがオフライ ンであるかのいずれかでなければなりません。すべてのセグメントがオン ラインである場合、REORG 操作による再作成処理が終了するまで、再作 成中のインデックスは表示されません。再編成中のセグメントがオフライ ンの場合は、オンライン状態のほかのセグメントは REORG 操作中もクエ リで検索可能です。 操作開始時に有効なインデックスだけが、REORG 操作完了時に有効と マークされます。操作開始時に無効なインデックスが有効とマークされる ことはありません。無効なインデックスを有効にするには、インデックス 全体を再作成しなければなりません。 テーブルまたはインデックスから行は削除されません。 DEFERRED インデックスの一部分に対する REORG 操作を行うことはでき ません。 オンライン操作 / オフライン操作 再編成中のセグメントがオフラインである場合、インデックスは無効とマークされ ません。代わりに、セグメントが再作成中であることを示す内部フラグが設定され ます。このフラグが設定されたセグメントは、オンラインにできません。REORG 操作が正常に終了した場合、このフラグはリセットされます。REORG が失敗した 場合は、正常に再編成されるまでそのセグメントにはアクセスできません。 インデックス全体の REORG 操作中、すべてのインデックス セグメントはオンライ ンである必要があります。この場合、インデックス セグメントは、再作成処理が完 了するまで表示されません。 6-20 Table Management Utility Reference Guide 使用上の注意 ヒント : REORG 操作では、「破損」とマークされたセグメントは、問題が解決さ れるまで再作成できません。 ディスク領域 ディスク領域不足のインデックスは無効とマークされますが、超過した行がテーブ ルから削除されることはありません。DELETE ROW オプションまたは INVALIDATE INDEX オプションが指定されている場合は、ディスク領域不足のイン デックスが無効とマークされるだけで、ほかのインデックス作成処理は続行されま す。ABORT オプションが指定されている場合、REORG 操作は直ちに終了します。 バージョニングが有効な場合は、REORG 操作によるすべての変更が元の状態に ロールバックされます。バージョンニングが無効な場合は、再作成中のすべてのイ ンデックスが無効とマークされます。 Discard ファイルのフォーマット 削除された行は外部フォーマットで書き込まれます。UNLOAD 文で作成された ロード スクリプトを使用すれば、削除された行をテーブルにロードすることができ ます。詳細については 4-16 ページ「外部フォーマット データのアンロードとロー ド」を参照してください。 テーブルとインデックスの再編成 6-21 第7章 コピー管理オプションによる データのコピー この章について . . . . . . . . . . . . . . . . . . . . 7-3 rb_cm ユーティリティ . . . . . . システム要件 . . . . . . . . データベースのセキュリティ要件 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-3 7-4 7-5 rb_cm の構文 . . . . 7-6 . . . . . . . rb_cm に使用する TMU のコントロール ファイル LOAD 文と UNLOAD 文 . . . . . . . 内部フォーマットの指定 . . . . . . 外部フォーマットの指定 . . . . . . SYNCH 文 . . . . . . . . . . . . SET 文 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-9 7-10 7-10 7-11 7-11 7-12 rb_cm 操作の例 . . . . . . . . . . . . . . . . . . 例 : 異種コンピュータ間でのデータのコピー . . . . . . UNLOAD コントロール ファイルの作成 . . . . . . LOAD DATA コントロール ファイルの作成 . . . . . rb_cm の実行 . . . . . . . . . . . . . . . . 例 : 同一コンピュータ上のテーブル間でのデータのコピー . UNLOAD コントロール ファイルの作成 . . . . . . LOAD コントロール ファイルの作成 . . . . . . . . rb_cm の実行 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7-12 7-12 7-14 7-14 7-15 7-16 7-17 7-17 7-17 rb_cm 動作結果の検証 . 7-18 . . . . . . . . . . . . . . . . . . . . . . . . . . 7-2 Table Management Utility Reference Guide この章について 複数の IBM Red Brick Warehouse データベースがネットワークで結ばれている環境で は、データベース間でデータをコピーし、対応するテーブルのデータの同期をとる 必要が生じることがあります。たとえば、以下のような場合です。 ■ ■ ■ 各店舗のデータを地域レベルの大規模データベースに定期的に統合する場 合 現在の会社レベルのデータで部門データベースを定期的に更新する場合 販売店が、特定品目の売上データを仕入先と共有したい場合 この章では、以下について説明します。 ■ ■ ■ ■ ■ rb_cm ユーティリティ rb_cm の構文 rb_cm に使用する TMU のコントロール ファイル rb_cm 操作の例 rb_cm 動作結果の検証 rb_cm ユーティリティ TMU は、2 つの物理的な記憶媒体間で高性能のアンロードとロードを実行すること ができます。rb_cm ユーティリティは、以下のタスクを 1 つの操作に統合するイン ターフェイスを提供します。 ■ ■ ■ TMU の UNLOAD 文を使ってデータベースからデータを抽出するタスク 物理的な格納媒体を介さずに、ネットワークを通じてデータを送るタスク TMU の LOAD 文を使ってデータベースにデータをロードするタスク コピー管理オプションによるデータのコピー 7-3 システム要件 図 7-1 は、rb_cm のコピー操作と、LOAD 文および UNLOAD 文の違いを示していま す。 図 7-1 ネットワーク rb_cm および LOAD と UNLOAD の違い アンロード rb_cm コピー操作 ロード Host 2 の Warehouse 2 Host 1 の Warehouse 1 ディスク またはテープ rb_cm ユーティリティは、コピー元とコピー先のテーブル間で、列のデータ型に互 換性がある限り、( 同じデータベース、異なるデータベース、異なるウェアハウス の異なるデータベース、異なるプラットフォームの異なるデータベースのいずれか にあるテーブルであっても ) 2 つのテーブル間でデータをコピーすることができま す。 rb_cm ユーティリティは、TMU のロード機能とアンロード機能をすべてサポート します。たとえば、rb_cm によりコピー元テーブルからデータをアンロードする場 合は、内部フォーマットでも外部フォーマットでもアンロードできます。行を選択 したアンロード ( 選択的アンロード )、セグメント単位のアンロード、APPEND、 INSERT、MODIFY、REPLACE、UPDATE の各モードでのロードもできます。こう した機能を利用してテーブル間のデータ コピーを柔軟に行えます。 rb_cm コマンドは、コピー元テーブルが格納されているコンピュータからでも、コ ピー先テーブルがあるコンピュータからでも起動できます。以降の節では、rb_cm ユーティリティを実行するための必要条件について説明します。 システム要件 ネットワークを通じて、ローカル コンピュータからリモート コンピュータ、また はその逆のコピー操作を行う場合は、次のシステム要件を満たしている必要があり ます。 ■ ■ 7-4 両方のコンピュータが、同一ネットワーク上にあること。 両方のコンピュータに IBM Red Brick Warehouse がインストールされている こと。 Table Management Utility Reference Guide データベースのセキュリティ要件 ■ ■ UNIX Windows ■ 次の方法で、ローカル ホストからリモート ホストへの通信が確立できる こと。 コマンドの実行場所であるローカル ホストから、リモートホスト上のシェ ル デーモンや Red Brick Service にアクセスできる必要があります。 リモート ホストの環境が以下のように設定され、パス上に rb_tmu 実行 ファイルがあること。 UNIX の場合、リモート ホストの .cshrc ファイルまたは profile ファイル に、redbrick_dir/bin を入れるための環境変数 PATH を設定する行が含まれ ている必要があります。♦ Windows の場合、リモート ホストの Red Brick Service が、正しいパスを自 動的に使用します。 リモート ホストで Red Brick Copy Management Service を起動すること。Red Brick Copy Management Service は、Remote Shell Service を実行中の Windows サーバ コンピュータでは起動しません。Copy Management Service を起動す るには、まず Remote Shell Service を停止する必要があります。♦ 同じコンピュータにあるテーブル間でデータをコピーする場合は、特別なシステム 要件の適用はありません。 rb_cm コマンドを、コピー元またはコピー先のコンピュータ以外のシステムから送 信する場合は、コピー元コンピュータのリモート シェルにアクセスできなければな りません。さらに、コピー元コンピュータからコピー先コンピュータのリモート シェルにもアクセスできなければなりません。 データベースのセキュリティ要件 rb_cm ユーティリティを使用してテーブル データをコピーする場合、rb_cm を実行 するユーザは、コピー元とコピー先のデータベースの両方に対し、必要な許可を 持っている必要があります。rb_cm を実行するユーザに必要なものは、以下のとお りです。 ■ コピー元データベースについては、以下のいずれか 1 つです。 ❑ DBA システム ロール ❑ コピー元テーブルの所有権 ❑ ACCESS_ANY タスク権限 ❑ コピー元テーブルに対する SELECT アクセス権 コピー管理オプションによるデータのコピー 7-5 rb_cm の構文 ■ コピー先データベースについては、次のいずれか 1 つです。 ❑ DBA システム ロール ❑ コピー先テーブルの所有権 ❑ MODIFY_ANY タスク権限 ❑ コピー先テーブルに対する INSERT、DELETE、UPDATE いずれかの アクセス権。どのアクセス権が必要かは、rb_cm ユーティリティが実 行するロードのタイプで決まります。各ロード モードに必要な権限 は、以下のとおりです。 必要な権限 コピー先での ロード モード INSERT DELETE UPDATE APPEND Yes No No INSERT Yes No No MODIFY Yes No Yes REPLACE Yes Yes No UPDATE No No Yes rb_cm の構文 rb_cm [-s unload_host] [-c unload_config_path] [-h unload_rbhost] コピー元 [-d unload_database] [-e unload_prog_path] [-f filter_cmd] ( アンロード ) unload_control_file unload_username unload_password パラメータ コピー先 ( ロード ) パラメータ 7-6 [-s load_host] [-c load_config_path] [-h load_rbhost] [-d load_database] [-e load_prog_path] [-f filter_cmd] [-p] load_control_file load_username load_password Table Management Utility Reference Guide rb_cm の構文 重要 : プレフィックス "unload" はデータのコピー元を表し、プレフィックス "load" はコピー先を表します。 -s unload_host、 load_host オプション。コピー元またはコピー先のテーブルが格納され ているコンピュータのホスト名。 デフォルトは、rb_cm コマンドを実行するコンピュータの ホスト名です。 -c unload_config_path、 ウェアハウスのコピー元またはコピー先のホストの load_config_path rbw.config ファイルが格納されているディレクトリのパス。 UNIX 環境変数 RB_CONFIG が設定されていれば、上記のコマン ド ライン引数はオプションです。指定した場合は環境変数 に優先します。RB_CONFIG が設定されていなければ、こ の引数は必須です。♦ Windows RB_CONFIG の値は、RB_HOST の値に基づいてレジストリ から抽出されます。必要に応じて、別のコンフィグレー ション ファイルのパスを指定することもできます。♦ 値を指定しないときのデフォルトは、コピー元またはコ ピー先のコンピュータに設定された RB_CONFIG の値で す。 -h unload_rbhost、 load_rbhost ウェアハウスのコピー元またはコピー先のホストのウェア ハウス API デーモンまたはスレッド (rbwapid) の論理名。 UNIX 環境変数 RB_HOST が設定されていれば、上記のコマンド ライン引数はオプションです。指定した場合は環境変数に 優先します。RB_HOST が設定されていなければ、この引 数は必須です。♦ Windows RB_HOST の値はレジストリでのその値によって決まりま す。必要に応じて、RB_HOST に別の値を指定することも できます。♦ デフォルトは、コピー元またはコピー先のコンピュータに設 定された RB_HOST の値です。 コピー管理オプションによるデータのコピー 7-7 rb_cm の構文 -d unload_database、 load_database コピー元またはコピー先データベースのデータベース論理 名。 環境変数 RB_PATH が設定されていれば、上記のコマンド ライン引数はオプションです。指定した場合は環境変数に 優先します。RB_PATH が設定されていなければ、この引 数は必須です。♦ UNIX RB_PATH の値は、RB_HOST の値に基づいてレジストリか ら抽出されます。必要に応じて、別の論理データベース名 を指定することもできます。♦ Windows デフォルトは、コピー元またはコピー先のコンピュータに設 定された RB_PATH の値です。 UNIX -e unload_prog_path、 load_prog_path rb_tmu、rb_ptmu、および rb_cm の各ユーティリティが格 納されているディレクトリのパスを指定します。 コピー元またはコピー先のコンピュータがリモート コン ピュータで、そのコンピュータ上のデフォルト ログイン シェルが Korn shell (ksh) である場合には、上記の引数を 使ってパスを指定する必要があります。その他のシェルで、 -e オプションはオプションです。♦ 7-8 -f filter_cmd オプション。ユーザが指定するフィルタ プログラム。この プログラムには、実行ファイルやスクリプトを指定するこ とができます。ただし、標準入力から入力し、標準出力 に出力するものである必要があります。 -p load_control_file ファイルに格納されている LOAD 文を、パ ラレル TMU (rb_ptmu) で実行することを指定します ( アン ロード操作はパラレル TMU で実行してもメリットはないた め、標準 TMU で必ずアンロード操作を実行します )。 unload_control_file UNLOAD 文を格納しているファイルのフルパス名。この ファイルは、unload_host で指定したコンピュータ上にある 必要があります。詳細については、 「rb_cm に使用する TMU のコントロール ファイル」を参照してください。 Table Management Utility Reference Guide rb_cm に使用する TMU のコントロール ファイル unload_username、 unload_password rb_cm 操作で、アンロードの実行に使用するデータベース ユーザ名とパスワード。 load_control_file LOAD 文を格納しているファイルのフルパス名。このファ イルは、load_host で指定したコンピュータ上にある必要が あります。詳細については、7-9 ページ「rb_cm に使用する TMU のコントロール ファイル」を参照してください。 load_username、 load_password rb_cm 操作で、ロードの実行に使用するデータベース ユー ザ名とパスワード。 重要 : rb_cm コマンドの引数は、構文に示す順序で指定してください。 rb_cm に使用する TMU のコントロール ファ イル rb_cm ユーティリティは、TMU の UNLOAD 文で作成した出力データを、TMU の LOAD 文に送ります。したがって、rb_cm を実行する前に、対応のとれた TMU の LOAD コントロール ファイルと UNLOAD コントロール ファイルを用意しておく必 要があります。 rb_cm に使用する UNLOAD コントロール ファイルの構文は、以下のとおりです。 UNLOAD 文 SET 文 コピー管理オプションによるデータのコピー 7-9 LOAD 文と UNLOAD 文 rb_cm に使用する LOAD DATA および SYNCH OFFLINE SEGMENT コントロール ファイルの構文は、以下のとおりです。 LOAD DATA 文 SET 文 SYNCH SEGMENT 文 SET 文 重要 : UNLOAD コントロール ファイルには、1 つの UNLOAD 文しか記述できませ ん。LOAD DATA コントロール ファイルには、1 つの LOAD DATA 文しか記述でき ません。文は必ずセミコロン (;) で終了します。 LOAD および UNLOAD コントロール ファイルにある複数の制御文は、セミコロン (;) で区切ってください。コメントは、C 言語形式の区切り記号 (/*…*/) で囲む方法 ( 複数行のコメントが可能 )、または 2 つのハイフン (--) から開始して、その行の最後 で終了する方法 ( 単一行のコメントに限定 ) で記述できます。 LOAD 文と UNLOAD 文 LOAD 文と UNLOAD 文は、それぞれのコントロール ファイルに格納しておく必要 があります。各文の構文は、TMU で使用する LOAD 文と UNLOAD 文の構文と 1 点 だけ異なります。アンロード操作のコピー先やロードするデータのコピー元とし て、ディスク上のファイルやテープ装置を指定することはできません。アンロード のコピー先に標準出力、ロードのコピー元には標準入力を指定してください。 LOAD 文と SYNCH 文の構文については、第 3 章「ウェアハウス データベースへの データのロード」を参照してください。UNLOAD 文の構文については、第 4 章 「テーブルからのデータのアンロード」を参照してください。 内部フォーマットの指定 rb_cm ユーティリティを使って、同一タイプのプラットフォームに格納されている テーブル間でデータをコピーする場合 ( たとえば、コピー元とコピー先のプラット フォームが共に Sun Solaris システムの場合 ) は、内部フォーマットを使ってデータ をアンロードしてください。内部フォーマットはバイナリ データであり、外部 フォーマット データより短時間でロードできます。 7-10 Table Management Utility Reference Guide SYNCH 文 内部フォーマットはデフォルトのアンロード フォーマットのため、UNLOAD 文に 明示する必要はありません。ただし、対応する LOAD 文には、FORMAT UNLOAD キーワードを指定し、ロードするデータが内部フォーマットのデータであることを 指示してください。 外部フォーマットの指定 rb_cm ユーティリティを使って、異なるプラットフォームに格納されているテーブ ル間でデータをコピーする場合 ( たとえば、コピー元のプラットフォームが Compaq TRU-64 で、コピー先のプラットフォームが Sun Solaris の場合 ) は、外部 フォーマットでデータをアンロードする必要があります。外部フォーマットを指定 すると、データベースロケールのコード セット中にプレーン テキスト データが生 成されます。このデータは、異なるプラットフォーム間で互換性があります。 外部フォーマットでデータをアンロードするには、UNLOAD 文に EXTERNAL (VARIABLE) キーワードを指定します。外部フォーマット データをロードする場合 は、入力データ レコードの全フィールドを定義する必要がありますが、LOAD 文は 複雑になります。しかし、LOAD 文を TMU に自動生成させることができます。こ れは、テーブルの UNLOAD 操作の一部として行うか、TMU の GENERATE 文を使 用して作成します。 たとえば、以下の GENERATE 文をファイルに記述し、そのファイルで TMU を実行 すると、TMU では load_control_file というファイルが作成されます。 GENERATE LOAD FROM unload_table INPUTFILE '-' EXTERNAL TMUFILE 'load_control_file' ; load_control_file には、すべての必要な列データ型を定義した LOAD 文が記述され ています。このファイルは編集できるので、SYNCH 文や SET オプションなど、 TMU に対する命令を追加することができます。 SYNCH 文 テーブルのオフライン セグメントにデータをコピーする場合は、そのセグメントを テーブルのほかの部分と同期させなければなりません。同期を行うには、セグメン ト名とテーブル名を指定した SYNCH 文をコントロール ファイルに記述します。こ の文の使用は、オフライン セグメントへのロード操作と組み合わせる場合に限られ ます。 SYNCH 文の詳細については、3-119 ページ「SYNCH 文の作成」を参照してくださ い。 コピー管理オプションによるデータのコピー 7-11 SET 文 SET 文 SET 文は、以下を制御します。 ■ ■ ■ データベース テーブルや対象テーブルがロックされていた場合の TMU 動 作 (SET LOCK オプション )。マルチユーザ環境の自動コピーに rb_cm を使 う場合は、SET LOCK オプションを WAIT に設定してください。 TMU が使用するバッファ キャッシュのサイズ (SET BUFFERCOUNT オプ ション )。 TMU がインデックスの構築操作に使用する一時領域 (SET INDEX_TEMPSPACE オプション )。 上記の SET 文はいずれも LOAD コントロール ファイルに記述できます。 INDEX_TEMPSPACE オプション以外は UNLOAD コントロール ファイルにも記述で きます。 SET 文がロード動作やアンロード動作を制御するのは、その SET 文を記述したコン トロール ファイルを使った rb_cm の動作中だけです。セッションが終了すると、 各オプションの値は、rbw.config ファイルの設定に戻ります。rbw.config ファイルに 値が設定されていない場合、各オプションはデフォルト値に戻ります。 SET 文の詳細については、2-23 ページ「動作を制御する SET 文とパラメータ」を参 照してください。 rb_cm 操作の例 テーブル間でデータをコピーする 2 つの例と、これに必要な rb_cm コマンドの例を 示します。各例の内容は、以下のとおりです。 ■ ■ 異種コンピュータ間でデータをコピーする。 同一コンピュータの同一データ ウェアハウスにあるテーブル間でデータを コピーする。 例 : 異種コンピュータ間でのデータのコピー 販売とマーケティング両方のデータウェアハウスに、Aroma データベースがあると します。Aroma データベースの地域版として、その地域の関連データだけを格納し た Southregion と呼ばれるデータベースがあります。これを管理している地域の マーケティング チームは、ほかの地域のユーザに影響を与えずに Southregion デー タベースの内容を変更したり、長いクエリを実行することができます。 7-12 Table Management Utility Reference Guide 例 : 異種コンピュータ間でのデータのコピー Aroma データベースの Sales テーブルから、この地域の新しい関連データを Southregion データベースの Sales テーブルに定期的にコピーする必要があります。 これは、rb_cm と選択的アンロード操作を併用して行います。以下の図は、この操 作をまとめたものです。 Aroma データベース Sales テーブル Southregion データベース Sales テーブル 新しい行を コピー 会社の Red Brick データベース ホスト プラットフォーム :Compaq TRU-64 ホスト名 :main 地域の Red Brick データベース ホスト プラットフォーム :Sun Solaris ホスト名 :south1 上記の図の操作を行うために、管理者は以下のタスクを実行する必要があります。 1. 2. 3. UNLOAD コントロール ファイルを作成する。 LOAD コントロール ファイルを作成する。 rb_cm コマンドを実行する。 これらのステップについて、以下で詳しく説明します。最初の 2 つのステップは、 初めてコピー操作を行う前に、1 回実行するだけでよい操作です。2 回目以降のコ ピー操作では、同一のコントロール ファイルを再利用することができます。 コピー管理オプションによるデータのコピー 7-13 例 : 異種コンピュータ間でのデータのコピー UNLOAD コントロール ファイルの作成 管理者は、unload_new_sales という UNLOAD コントロール ファイルを、ホスト コ ンピュータに作成します。このファイルに記述する UNLOAD 文には、外部フォー マットのアンロードを指定しなければなりません。この例では、コピー元のコン ピュータとコピー先のコンピュータのプラットフォームが異なるからです。さら に、その地域に関連した行だけを選択的にアンロードする UNLOAD 文でなければ なりません。これらの条件を満たす UNLOAD 文は、以下のとおりです。 UNLOAD SALES EXTERNAL OUTPUTFILE '-' WHERE PERKEY = 94050 AND (MKTKEY = 1 OR MKTKEY = 2 OR MKTKEY = 3 OR MKTKEY = 4); 上記の UNLOAD 文は、South 地区に関連している (Mktkey が 1、2、3、4 のいずれ か ) という条件と、新規行である (Perkey が最新の値と等しい ) という条件を満たす 行を選択的にアンロードします。 LOAD DATA コントロール ファイルの作成 管理者は、load_new_sales という LOAD コントロール ファイルをコピー先のコン ピュータに作成します。以下のように GENERATE 文を使用して、LOAD DATA 文を 取得することができます。 GENERATE LOAD DATA FROM SALES INPUTFILE '-' EXTERNAL TMUFILE 'load_new_sales'; この文を TMU のコントロール ファイルに記述し、TMU を実行します。TMU は、 以下の LOAD 文を格納した load_new_sales というファイルを作成します。 LOAD DATA INPUTFILE '-' RECORDLEN 62 INSERT INTO TABLE SALES ( PERKEY POSITION(2) INTEGER EXTERNAL(11) NULLIF(1)='%', PRODKEY POSITION(14) INTEGER EXTERNAL(11) NULLIF(13)='%', MKTKEY POSITION(26) INTEGER EXTERNAL(11) NULLIF(25)='%', DOLLARS POSITION(38) DECIMAL EXTERNAL(12) NULLIF(37)='%', WEIGHT POSITION(51) INTEGER EXTERNAL(11) NULLIF(50)='%'); 7-14 Table Management Utility Reference Guide 例 : 異種コンピュータ間でのデータのコピー この例では、load_new_sales ファイルを修正して INSERT キーワードを APPEND に 変更する必要があります。APPEND は、コピー先テーブルに行を追加することを TMU に指示します。また、OPTIMIZE ON 句を追加して性能を向上させることもで きます。修正後の LOAD 文は、以下のようになります。 LOAD DATA INPUTFILE '-' RECORDLEN 62 APPEND OPTIMIZE ON INTO TABLE SALES ( PERKEY POSITION(2) INTEGER EXTERNAL(11) NULLIF(1)='%', PRODKEY POSITION(14) INTEGER EXTERNAL(11) NULLIF(13)='%', MKTKEY POSITION(26) INTEGER EXTERNAL(11) NULLIF(25)='%', DOLLARS POSITION(38) DECIMAL EXTERNAL(12) NULLIF(37)='%', WEIGHT POSITION(51) INTEGER EXTERNAL(11) NULLIF(50)='%'); 重要 : データをロードするときに TMU が使用する各フィールド定義の終わりの NULLIF 句が TMU によって使用されます。各フィールドの前には、NULL 値の予約 のための領域があります。 rb_cm の実行 コントロール ファイルの作成後、必要なアクセス権を持ったユーザは、それらの ファイルを使用して rb_cm コマンドを実行することができます。rb_cm コマンド は、コピー元のホスト コンピュータ (main) からでも、コピー先のホスト コン ピュータ (south1) からでも実行することができます。 rb_cm コマンドをコピー元のホスト コンピュータの main から実行する場合、コマ ンドの内容は以下のようになります。読みやすいようにフォーマットを変えていま す。 コピー元 パラメータ コピー先 パラメータ % rb_cm ¥ -s main -c redbrick_dir -h RB_HOST -d Aroma ¥ $RB_CONFIG/util/unload_new_sales maindba secret ¥ -s south1 -c /south1_redbrick_dir -h RB_HOST -d Southregion ¥ '$RB_CONFIG'/util/load_new_sales southdba cryptic rb_cm コマンドでは、以下の内容を検討する必要があります。 ■ Windows ■ -c、-h、-d の各オプションは、コピー元とコピー先の両方に指定されてお り、対応する環境変数に優先します。対応する変数が設定されている場合 は、これらの指定はオプションです。 Windows システムのコピー元とコピー先には、明示的なパスの一部として 環境変数 RB_CONFIG を rb_cm ユーティリティに使用することはできま せん。♦ コピー管理オプションによるデータのコピー 7-15 例 : 同一コンピュータ上のテーブル間でのデータのコピー ■ コピー元 パラメータ コピー先 パラメータ 環境変数 RB_CONFIG を使ってリモート コンピュータ上のコントロール ファイルを指定する場合は、ローカル コンピュータで環境変数の解決をせ ずにリモート コンピュータに渡されるようにエスケープ文字を使用する必 要があります。該当するコマンドをコピー先のホスト コンピュータから実 行する場合、コマンドの内容は以下のとおりです。例では、読みやすいよ うにフォーマットを変えてあります。 % rb_cm ¥ -s main -c redbrick_dir -h RB_HOST -d Aroma ¥ '$RB_CONFIG'/util/unload_new_sales maindba secret ¥ -s south1 -c /south1_redbrick_dir -h RB_HOST -d Southregion ¥ $RB_CONFIG/util/load_new_sales SouthDBA cryptic 重要 : 実際の rb_cm コマンドを入力する場合は、すべてを 1 行で入力してくださ い。 例 : 同一コンピュータ上のテーブル間でのデータの コピー 前述の例と同じ地域のマーケティング チームが、Southregion データベースのコピー をしているとします。このデータベースは、Testdb という名前で保存され、更新や シミュレーションを行うために使用されます。Testdb の修正データは、Southregion データベースに実際に格納されているデータに、定期的に置き換える必要がありま す。以下の図は、1 つのテーブルに対する操作をまとめたものです。 Southregion データベース Sales テーブル Testdb データベース Sales テーブル すべての行を コピー 地域のデータベース ホスト プラットフォーム :Sun Solaris ホスト名 :south1 7-16 Table Management Utility Reference Guide 地域のデータベース ホスト プラットフォーム :Sun Solaris ホスト名 :south1 例 : 同一コンピュータ上のテーブル間でのデータのコピー 上記の操作を行うには、管理者は LOAD および UNLOAD コントロール ファイルを 作成し、適切な rb_cm コマンドを実行する必要があります。 UNLOAD コントロール ファイルの作成 管理者は、unload_south_sales と呼ばれる UNLOAD コントロール ファイルを作成し ます。このファイルには、以下の UNLOAD 文を記述します。 UNLOAD SALES OUTPUTFILE '-'; この UNLOAD 文は、内部 ( バイナリ ) フォーマットでデータをアンロードします。 UNLOAD 動作と LOAD 動作の両方が同一のプラットフォームで行われるため、こ のフォーマットを使用できます。 LOAD コントロール ファイルの作成 管理者は、load_south_sales と呼ばれる LOAD コントロール ファイルを作成します。 このファイルには、以下の LOAD 文を記述します。 LOAD INPUTFILE '-' REPLACE FORMAT UNLOAD OPTIMIZE ON INTO TABLE SALES; 上記の LOAD 文は、Sales テーブルのすべての行をロードされたデータに置き換え ます。 rb_cm の実行 コントロール ファイルの作成後、必要なアクセス権を持ったユーザは、データをコ ピーする rb_cm コマンドを実行することができます。以下にこのコマンドの使用例 を示します。 % rb_cm ¥ -d Southregion $RB_CONFIG/util/unload_south_sales SouthDBA cryptic ¥ -d Testdb /mktg/local/test/util/load_south_sales TestDBA cryp007tic rb_cm コマンドでは、以下の内容を検討する必要があります。 ■ -s オプションが指定されていません。デフォルトのコピー元とコピー先 は、rb_cm コマンドを実行するコンピュータです。 コピー管理オプションによるデータのコピー 7-17 rb_cm 動作結果の検証 ■ Windows ■ -c オプションと -h オプションが指定されていません。両方のデータベース は、同一のウェアハウスにあり、環境変数 RB_HOST に設定されたウェア ハウス API と環境変数 RB_CONFIG に設定されたコンフィグレーション ファイルを使用します。 Windows システムのコピー元とコピー先には、明示的なパスの一部として 環境変数 RB_CONFIG を rb_cm ユーティリティに使用することはできま せん。♦ rb_cm 動作結果の検証 rb_cm ユーティリティで、すべての行が正常にコピーされたことを検証するには、 コピー先データベースにある RBW_LOADINFO テーブルに対し、クエリを実行し ます。RBW_LOADINFO システム テーブルには、rb_cm 操作の一部として実行され たロードを含め、データベースに対する各ロード操作の情報が格納されています。 この情報は、ロードの開始時刻と完了時刻、テーブルに挿入された行数、ロードの 状況などです。RBW_LOADINFO システム テーブルの詳細については、 『Administrator's Guide』を参照してください。 以下の例は、ロード情報を判別するために RBW_LOADINFO システム テーブルに 対しクエリを実行する方法を示しています。 RISQL> select substr (tname,1,12) as table_name, > substr(username, 1,10) as user_name, > substr(string(started), 1, 19) as load_start, > substr(string(finished), 1, 19) as load_finish, > substr (status, 1, 6) as status > from rbw_loadinfo > where tname = 'SALES'; TABLE_NAME USER_NAME LOAD_START LOAD_FINISH STATUS SALES SYSTEM 2000-04-05 00:33:24 2000-04-05 00:33:26 NULL SALES SYSTEM 2000-04-06 00:35:38 2000-04-06 00:35:41 NULL RISQL> 7-18 Table Management Utility Reference Guide 第8章 データベースのバック アップ この章について . . . . . . . . . . . . . . . . . . . 8-3 バックアップ レベルとモード . . . . . . . . 外部フル バックアップ . . . . . . . . . 復元規則 . . . . . . . . . . . . . . バックアップ データ . . . . . . . . . . バックアップ計画 . . . . . . . . . . . バックアップの頻度 . . . . . . . . 使用するレベル . . . . . . . . . . オンラインまたはチェックポイントの選択 データ復旧の重要性 . . . . . . . . 一般的な推奨内容 . . . . . . . . . バックアップの手順 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-4 8-4 8-5 8-5 8-6 8-6 8-6 8-7 8-7 8-8 8-8 バックアップ用データベースの準備 . . . . . . . ALTER DATABASE CREATE BACKUP DATA コマンド ALTER DATABASE DROP BACKUP DATA コマンド . バックアップ セグメントの格納領域の要件 . . . . バックアップ セグメントの変更 . . . . . . . . 有効な操作 . . . . . . . . . . . . . . ADD STORAGE の例 . . . . . . . . . . 無効な操作 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-8 8-9 8-10 8-10 8-11 8-11 8-12 8-12 TMU バックアップの実行方法 . . . . . バックアップ操作の範囲 . . . . . データベース ロケール . . . . バージョン管理されたデータベース バックアップ ファイルのサイズの設定 テープへのバックアップ . . . . . 標準のラベル フォーマット . . . テープ装置の設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-13 8-14 8-14 8-14 8-15 8-17 8-17 8-18 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . テープ容量 . . . . . . . . . . . TMU バックアップ用格納域マネージャの使用 フル バックアップ用の外部ツールの使用 . 外部バックアップ操作の推奨手順 . . . BACKUP 構文 . . . . . . . . . . . バックアップ操作の例 . . . . . . . バックアップ中に表示されるメッセージ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-18 8-18 8-20 8-20 8-22 8-24 8-25 バックアップ メタデータ . . . . . . . . . . . メディア履歴ファイル (rbw_media_history) . . . . メディア履歴ファイルの編集 . . . . . . . PSU オフセットの例 . . . . . . . . . . バックアップ ログ ファイル (action_log) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8-26 8-27 8-28 8-29 8-29 8-2 Table Management Utility Reference Guide この章について 多くのデータベースは、テーブルをロードしたり、サーバベースの DDL 操作や DML 操作を実行して、定期的に変更されています。このようなデータベースは、 システムやソフトウェアの障害に備えて、定期的にバックアップを取る必要があり ます。障害が発生した場合、最近取ったバックアップがあると、データベースを完 全に復旧することが可能になります。データベースが大きいほどバックアップの重 要性が高まります。 データベースのバックアップを取る時間と頻度を決定する前に、実行できる Table Management Utility (TMU) バックアップのタイプを理解し、バックアップに要する時 間と労力を知っておく必要があります。データベースの拡大に伴ってリスクにさら されるデータ量を検証し、必要に応じてデータベース復元のための準備を行う必要 があります。 この章では、TMU での IBM Red Brick Warehouse データベースのバックアップ方法 について説明します。この章では、以下について説明します。 ■ バックアップ レベルとモード ■ バックアップ用データベースの準備 ■ TMU バックアップの実行方法 ■ バックアップ メタデータ 復元操作の詳細については、第 9 章「データベースの復元」を参照してください。 データベースのバックアップ 8-3 バックアップ レベルとモード バックアップ レベルとモード TMU では、フル バックアップ ( レベル 0) とインクリメンタル バックアップ ( レベ ル 1 と 2) をサポートします。 ■ レベル 0 のバックアップは、データベースのフル バックアップです。すべ てのデータベース オブジェクトのコピーが、指定されたメディアに格納さ れます。最新のレベル 0 のバックアップは、あらゆる復元操作の開始点に なります。 ■ レベル 1 のバックアップは、最後のレベル 0 のバックアップ後に変更され たすべてのデータのバックアップです。 ■ レベル 2 のバックアップは、最後に実行された任意のレベル (0、1、また は 2) のバックアップ後に変更されたすべてのデータのバックアップです。 TMU バックアップはレベルに関係なく、オンライン モードでもチェックポイント モードでも実行できます。 ■ オンライン バックアップは、データベースが「ライブ」の状態で、読み取 り操作 ( クエリ ) と書き込み操作 ( 更新およびロード ) の両方が許可されて いる場合に行われます。 ■ チェックポイント バックアップは、データベースが読み取り専用モードの 状態で行われます。つまり、読み取り操作はできても書き込み操作はでき ません。チェックポイント バックアップの実行中は、データベースは変更 できません。 重要 : オンライン バックアップのレベルでのデータベースの復元は行わないでく ださい。オンライン バックアップでは、データベースが一貫性のある状態に復旧さ れるという保証はありません。復元プロセスは、チェックポイント バックアップ時 の状態にデータベースが戻った時点で完了します。 外部フル バックアップ TMU インクリメンタル バックアップは、サード パーティ製のツールとオペレー ティング システム ユーティリティ プログラムを使用して実行したフル バックアッ プとシームレスに統合できます。この組み合わせのバックアップは、大規模なデー タ ウェアハウス、および既にシステム規模でのフル バックアップ ソリューション を配置しているユーザに最適なソリューションです。このアプローチの詳細につい ては、8-20 ページ を参照してください。 8-4 Table Management Utility Reference Guide 復元規則 復元規則 以下の表は、サポートされているバックアップ レベルとモードの組み合わせの一覧 です。データベース復元の関連規則も記載されています。 レベル モード 復元プロセスに関するコメント 0 チェックポイント 復元可能。 1 レベル 0 ( オンライン、チェックポ イント、または外部 ) の後でのみ復 元可能。 2 レベル 0 ( オンライン、チェックポ イント、または外部 ) またはレベル 1 ( オンラインまたはチェックポイン ト ) の後でのみ復元可能。 0 オンライン 復元不可。チェックポイントを続け て実行する必要あり。 1 レベル 0 の後でのみ復元可能。さら にチェックポイントを続けて実行す る必要あり。 2 レベル 0 または 1 の後でのみ復元可 能。さらにチェックポイントを続け て実行する必要あり。 復元プロセスの詳細については、第 9 章「データベースの復元」を参照してくださ い。 バックアップ データ IBM Red Brick Warehouse では、バックアップ セグメントとして宣言されている特別 なデータ セグメントの中のビットマップを管理することにより、データベースに加 えられる変更を追跡します。最後のバックアップ後に変更された各ブロックは、8K 単位でバックアップ セグメントに格納されます。つまり、データベースをインクリ メンタル バックアップすると、最小量のデータがコピーされます。このアプローチ は、データベースが大きいほど効果的です。 バックアップ セグメントの詳細については、8-8 ページ 「バックアップ用データ ベースの準備」を参照してください。 データベースのバックアップ 8-5 バックアップ計画 バックアップ計画 お使いのデータベースについて安定したバックアップを確立するには、適切な計画 を立ててスケジュールを組むことが必要です。計画を立てる場合、パフォーマンス 要件と日常業務における時間的な制約、スケジュールしたバックアップ操作と難易 度、信頼性、および将来実行する必要があると思われる復元操作における時間的な 制約を考慮する必要があります。次回のバックアップ実行時をスケジュールするこ とはできても、復元操作を必要とする破滅的な障害が発生する時期は予測できない ことに注意してください。 データベースのバックアップを取る本当の目的は、ディスクの損失やファイル シス テムの破損などの障害が発生した場合に、データベースを復元する手段を提供する ことです。このことを念頭に置き、データベースをバックアップする頻度、選択す るバックアップ操作のレベル、および実行するモード ( オンラインまたはチェック ポイント ) について考慮する必要があります。また、リスクにさらされても構わな いデータの量についても考慮します。つまり、復旧作業よりも、むしろデータを失 う可能性のある再ロードによる更新を何回実行するか、ということについて検討し ます。これらすべての要因が、TMU バックアップの実装に影響を及ぼします。 バックアップの頻度 バックアップを実行する頻度は、日常的にデータベースに加えられる変更の程度に 応じて決まります。ユーザがクエリを実行する平日の間、データ ウェアハウスにあ まり変化がないのであれば、バックアップを平日にスケジュールする必要はありま せん。反対に、データベースが毎晩新しいデータによって更新される場合は、日次 インクリメンタル バックアップを選択することが賢明です。つまり、ある時点でリ スクにさらされるデータの量を把握しておくことが必要です。安全なバックアップ ファイルやテープにコピーされていないデータは、すべてリスクにさらされていま す。 使用するレベル 選択するバックアップのレベルは、変更の程度やデータベースのサイズによって変 わります。これらの要因によって、バックアップに要する時間が決まります。フル バックアップを完了するには長い時間がかかります。またデータベースが大きいほ ど、所要時間も長くなります。インクリメンタル バックアップは高速で、新しいイ ンデックスやディメンジョン テーブルへの挿入といった、データベースに加えられ る比較的小さな変更を非常に効率よくバックアップします。 8-6 Table Management Utility Reference Guide バックアップ計画 頻繁にインクリメンタル バックアップを実行する場合の唯一の欠点は、復元プロセ スが複雑になりがちなことです。一連のレベル 2 のバックアップと最後のフル バッ クアップの間隔が長すぎると、データベースを一貫性のある状態に戻すために、こ れらのバックアップ ( および最後のフル バックアップ ) をすべて復元する必要があ ります。レベル 1 のバックアップは時間がかかりますが、最後のレベル 0 後に加え られた変更をすべてバックアップするので、データベースの復元に必要なインクリ メンタル バックアップの数は少なくなります。 オンラインまたはチェックポイントの選択 3 番目の考慮すべき事項は、バックアップ操作中にデータベースを変更できるよう にするかどうかについてです。データベースのロードも更新もできなくなるフル バックアップを実行する余裕がない場合は、時間がかかるオンライン モードでの バックアップを実行し、その後すぐにチェックポイント バックアップを実行して、 オンライン バックアップで取れなかった変更内容をバックアップします。オンライ ン バックアップの実行時間はいつでもスケジュールできますが、チェックポイント の場合は、データベースの「ダウンタイム」にスケジュールします。チェックポイ ントは基本のバックアップであり、これがなければデータベースは一貫性のある状 態に復元できません。 データ復旧の重要性 最後に、お使いのアプリケーションで対応可能なデータの損失量について考慮しま す。データベースに対して毎日加えられる小さな更新を再ロードする方が、バック アップを取って復元するよりも簡単であるという点を考慮して、定期的なインクリ メンタル バックアップを実行する場合もあるでしょう。一方、膨大な数の行が毎晩 追加または更新されるような場合には、これらの変更について毎日チェックポイン ト バックアップを実行する必要があります。 データベースが比較的小さい場合、データベースのバックアップを取るよりも、定 期的にアンロードする方がずっと効果的です。次に、復元操作ではなく再ロード手 順によって、データベースを復旧できます。この方法を選択する場合、データベー スのロードで使用する入力ファイルと TMU コントロール ファイルを、すべて保存 しておくことが非常に重要です。 反対に、データベースが非常に大きい場合は、8-20 ページ でも説明するように、フ ル バックアップについては外部ツールを使用し、TMU は インクリメンタル バック アップについてのみ使用する方が、より効率が良いでしょう。 データベースのバックアップ 8-7 バックアップの手順 一般的な推奨内容 信頼でき、かつ効率のよい TMU バックアップ プログラムを実行するために、IBM では以下のことをお勧めします。 ■ オンライン バックアップを行った直後にチェックポイント バックアップ を実行し、一定の間隔で一貫した復元ポイントを指定する ■ 定期的にレベル 0 またはレベル 1、あるいは両方のバックアップを実行す ることにより、復元に必要なインクリメンタル バックアップの数を減らす 9-5 ページ の例は、バックアップの組み合わせの違いにより、必要な復元操作がど のように変わるかを示しています。 バックアップの手順 Red Brick データベースの一般的なバックアップ手順を以下に示します。 1. 2. 3. バックアップ セグメントを作成して、バックアップ用のデータベースを準 備します。8-8 ページを参照してください。 最初のフル バックアップ ( オンライン、チェックポイント、または外部 ) を実行して、将来の復元操作用の基準データを作成します。8-13 ページを 参照してください。 インクリメンタル バックアップを定期的に実行します。一貫性のあるデー タベースの復旧が行えるように、チェックポイント バックアップを頻繁に 実行する必要があります。8-13 ページ を参照してください。 バックアップ用データベースの準備 インクリメンタル バックアップはビットマップ情報に依存します。この情報は、 テーブルのロード操作、データ操作コマンド、または新しいデータベース オブジェ クトの作成によって変更された、各物理格納ユニット (PSU) のブロックを示しま す。このビットマップにより、各 PSU について、最後のバックアップ後に変更され たブロックと未変更のブロックが識別されるため、非常に大きなデータベースでも 効率よくインクリメンタル バックアップを実行できます。 ビットマップ情報は、バックアップ セグメントと呼ばれる単一セグメントの中に格 納されます。このセグメントがない場合、TMU を使ってデータベースのバック アップを取ることはできません。バックアップ セグメントは、部分復元の実行時に も必要です。 8-8 Table Management Utility Reference Guide ALTER DATABASE CREATE BACKUP DATA コマンド バックアップ セグメントを作成するには 1. 2. CREATE SEGMENT 文を使用して、通常のセグメントを作成します。 セグメントの作成に関する情報については、『Administrator’s Guide』を参 照してください。CREATE SEGMENT コマンドの完全な構文については、 『SQL Reference Guide』を参照してください。バックアップ セグメントの 格納領域に関する要件の詳細については、8-10 ページ を参照してくださ い。 以下の節の説明に従って、ALTER DATABASE CREATE BACKUP DATA 文 を実行し、新しいセグメントがバックアップ セグメントであることを宣言 します。 あるいは、IBM Red Brick Warehouse の管理者ツールで [Manage Segments] ウィザー ドと [Manage System] ウィザードを使用して、バックアップ セグメントを作成する こともできます。 ALTER DATABASE CREATE BACKUP DATA コマンド ALTER DATABASE CREATE BACKUP DATA コマンドは、既存の未使用のセグメン トを、データベース用バックアップ セグメントとして指定します。このコマンドが 実行されると、指定されたセグメントは DST_DATABASES テーブルの中でバック アップ セグメントとしてマークされます。バックアップ セグメントとして定義で きるセグメントは、1 つのデータベースにつき 1 つだけです。バックアップ セグメ ントが定義されていないと、TMU バックアップも復元操作も実行できません。 以下の SQL 文は、セグメントを作成してから、それをバックアップ セグメントと して定義する方法を示しています。 1. セグメントの作成 RISQL> create segment backup_seg > storage '/test/bar1' maxsize 2048000, > storage '/test/bar2' maxsize 2048000, > storage '/test/bar3' maxsize 2048000, > storage '/test/bar4' maxsize 2048000; 2. バックアップ セグメントとしてセグメントを定義 RISQL> alter database create backup data in backup_seg; データベースのバックアップ 8-9 ALTER DATABASE DROP BACKUP DATA コマンド ALTER DATABASE DROP BACKUP DATA コマンド ALTER DATABASE DROP BACKUP DATA コマンドは、データベースからバックアッ プ データを削除してから、バックアップ セグメントを通常のセグメントに変更し ます。セグメントそのものは削除されません。このコマンドが実行されると、TMU バックアップ操作は実行できなくなります。 ALTER DATABASE コマンドの詳細については、 『SQL Reference Guide』を参照して ください。 バックアップ セグメントの格納領域の要件 バックアップ セグメントの領域は、CREATE SEGMENT 文を実行するときに 1 つ以 上の PSU のサイズを指定して割り当てます。ALTER SEGMENT ADD STORAGE コ マンドを使用して、領域をセグメントに追加することもできます。通常、バック アップ セグメントに必要な領域の大きさを予測してから、初めてセグメントを作成 する時に、その大きさの領域を割り当てる方法が最善策といえます。 バックアップ セグメントにアクセスする操作はロック集約型であるため、バック アップ セグメントは NFS ファイルシステムのマウント先ではなく、ローカルの ファイルシステムに格納します。セグメントに必要なローカル ディスクの領域は、 データベースのサイズおよび予想されるデータベースの拡大量に応じて変わりま す。バックアップ セグメントに必要な最大領域 ( キロバイト単位 ) は、以下の式か ら計算できます。 ((2 * Total Segments) + (Total PSUs * 10) + 1) * 8 = Maximum Space たとえば、Aroma データベースが 41 個のセグメントと 43 個の PSU から構成されて いるとします (39 個のデフォルト セグメントには PSU が 1 つずつ、2 つのユーザ定 義セグメントには、PSU が 2 つずつ含まれています )。 ((2 * 41) + (43 * 10) + 1) * 8 = 4108K このデータベースに対して新しいセグメントが作成されないと仮定すると、その バックアップ セグメントに必要な領域の最大量は 4,108 キロバイト ( 約 4 メガバイ ト ) になります。ただし、このデータベースのサイズが 2 倍に拡大する場合、バッ クアップ セグメントには約 8 メガバイトの領域を割り当てる必要があります。 新しいデータベース オブジェクトを作成しようとして、バックアップ セグメント が領域不足になった場合は、エラー メッセージが表示されます。この場合、失敗し たコマンドをもう一度実行要求する必要があります。続けて領域不足エラーが発生 しないように、すぐに ALTER SEGMENT...ADD STORAGE 文を使用してバックアッ プ セグメントに領域を追加してください。また、領域を追加した後は、フル バッ クアップを実行することをお勧めします。 8-10 Table Management Utility Reference Guide バックアップ セグメントの変更 重要 : バックアップ セグメント自体がバックアップされるのは、TMU チェックポ イント バックアップの実行時だけです。オンラインの TMU バックアップでは、 バックアップ セグメントはバックアップされません。 バックアップ セグメントの破損 バックアップ セグメントが破損していると、データベースのバックアップ データ を管理できません。さらに、セグメントが修復されるまでは、バックアップ操作も 復旧操作も実行できません。破損しているセグメントの修復手順については、 『Administrator’s Guide』を参照してください。 IBM では、破損している PSU を修復した後で ALTER SEGMENT VERIFY 文を実行 し、PSU が正常であることを確認してから、データベースのフル バックアップを実 行することをお勧めします。 バックアップ セグメントが破損していた間にデータベースに変更がなかったことを 確認できない場合は、ALTER SEGMENT FORCE INTACT 文を使用して、修復され たバックアップ セグメントが正常であるとして、マークしないでください。この間 にデータベースに変更があった場合、次に実行するバックアップ操作では変更され たブロックのすべてをバックアップすることができず、データベースの整合性が崩 れた状態になる可能性があります。この場合、データベースの整合性を復旧できる 唯一の方法は、フル バックアップを実行することです。 VERIFY オプションと FORCE INTACT オプションの詳細については、 『Administrator’s Guide』および『SQL Reference Guide』を参照してください。 バックアップ セグメントの変更 ALTER SEGMENT コマンドの詳細については、『SQL Reference Guide』を参照して ください。以降の節では ALTER SEGMENT 操作のうち、バックアップ セグメント に対して実行できるものと、できないものについて説明します。 有効な操作 以下の ALTER SEGMENT 操作は、バックアップ セグメントに対して実行できます。 ■ ADD STORAGE ■ CHANGE EXTENDSIZE ■ CHANGE MAXSIZE ■ CHANGE PATH ■ COMMENT ■ FORCE INTACT - このオプションは注意して使用してください。11 ページ 「バックアップ セグメントの破損」を参照してください。 データベースのバックアップ 8-11 バックアップ セグメントの変更 ■ MIGRATE TO ■ RENAME ■ VERIFY ■ OPTICAL ON/OFF ADD STORAGE の例 以下に示す ALTER SEGMENT コマンドは、PSU をバックアップ セグメントに追加 します。 RISQL> alter segment backup_seg add storage '/test/bar5' > maxsize 2048000; 無効な操作 以下の ALTER SEGMENT 操作は、バックアップ セグメントに対して実行できませ ん。 ■ ATTACH ■ CLEAR ■ DETACH ■ DROP LAST STORAGE ■ ONLINE および OFFLINE バックアップ セグメントが作成後すぐにオンラインの状態になり、常にオ ンラインである場合、この 2 つのコマンドは使用できません。 RBW_SEGMENTS システム テーブルは常に、このバックアップ セグメン トがオンラインであることを示します。 8-12 ■ RANGE ■ RELEASE STORAGE ■ SEGMENT BY Table Management Utility Reference Guide TMU バックアップの実行方法 TMU バックアップの実行方法 TMU バックアップを実行するには、以下のステップに従います。 1. 2. 3. 4. 8-6 ページ の説明をもとに、バックアップの計画を立てます。少なくとも、 バックアップ操作のレベルとタイプ、およびバックアップをディスク、 テープ、または格納域管理システムのいずれに格納するかを決める必要が あります。 データベースがバックアップ用に準備できていることを確認します。デー タベースのサイズ、および実行する予定のバックアップの数や頻度に基づ いて、バックアップ セグメントに十分な領域を割り当てます。バックアッ プ セグメントの作成およびサイズ調整の手順については、8-9 ページを参 照してください。 完全な BACKUP 文が記述されている TMU コントロール ファイルを作成し ます。BACKUP 構文の定義については、8-22 ページを参照してください。 コントロール ファイルの一般的な情報については、1-7 ページを参照して ください。 コントロール ファイルを実行してバックアップ処理を行うには、rb_tmu または rb_ptmu プログラムを使用します。完全な rb_tmu 構文の詳細につ いては、2-5 ページを参照してください。rb_ptmu を使用する場合、バッ クアップ操作は依然として逐次モードで実行します。並列バックアップは サポートされていません。 チェックポイント バックアップを行うと、データベースへのあらゆる書き 込み操作 (DML、DDL、または TMU) がロックされます。バックアップ処 理中の読み取り操作は可能ですが、書き込み操作はバックアップが完了す るまでロックされます。TMU SET LOCK WAIT オプションを設定して、 テーブルに対する現在のロックが解除されるまでバックアップ操作を待機 させることができます。 TMU BACKUP 操作は、クライアント TMU (rb_ctmu) から起動して、リ モート サーバ マシン上で実行することはできません。 タスク権限 ユーザが TMU バックアップ操作を実行するためには、あらかじめユーザに BACKUP_DATABASE 権限を付与する必要があります。たとえば、以下のような場 合です。 RISQL> grant backup_database to evelyn; この権限は DBA ロールによって継承されます。BACKUP_DATABASE 権限には、 バックアップを検証したり復元操作を実行するための権限は含まれていません。 データベースのバックアップ 8-13 バックアップ操作の範囲 バックアップ操作の範囲 TMU バックアップ操作の範囲は常にデータベース全体に及び、システム カタログ も含まれます。単一オブジェクトや、オブジェクトの集合のバックアップはできま せん。以下に示すオブジェクトまたは変更されたブロックは、バックアップ対象外 です。 ■ 破損しているセグメント ( 破損しているセグメントを修復し、検証してか ら、バックアップを実行してください ) ■ バージョン ログ セグメント ( データベースがバージョン管理されている場 合) ■ rbw.config ファイルや $RB_CONFIG/bar_metadata ディレクトリなどの、 Red Brick データベース ディレクトリ外の関連ディレクトリおよびファイ ル (8-26 ページ を参照 ) バックアップ セグメントはチェックポイント バックアップの一部としてバック アップされますが、オンライン バックアップとしてはバックアップされません。 データベース ロケール TMU バックアップと復元操作は、完全にローカライズされます。データベースの バックアップが取られると、データベース ロケールはデータと共に格納されます。 データベースを復元する場合、バックアップ ロケールとデータベース ロケールが 一致することが必要です。一致しないと復元操作が失敗し、エラー メッセージが表 示されます。破損したデータベースを復元する目的で、そのデータベースの空の バージョンを再作成する必要がある場合は、バックアップに保存されている同じロ ケールを使用して新しいデータベースを作成する必要があります。 バージョン管理されたデータベース TMU オンライン バックアップは、バックアップの開始時にバージョン ログが空で あるかないかに関わらず、バージョン管理されたデータベースに対して実行できま す。これに対して TMU チェックポイント バックアップは、バージョン ログが空の 場合だけ開始できます。バージョン ログが空でない場合、バックアップは、バ キューム クリーナ デーモンがバージョン ログの内容を消去するまで待機します。 チェックポイント バックアップを実行する前に、以下の ALTER DATABASE コマン ドを実行してください。 RISQL> alter database clean version log; 8-14 Table Management Utility Reference Guide バックアップ ファイルのサイズの設定 バージョン ログに破損しているセグメントがある場合、クリーン操作は完了しませ ん。この場合、破損しているセグメントを修復してから ALTER SEGMENT VERIFY コマンドを使用して、セグメントが正常になったことを確認します。ALTER DATABASE コマンドで REMOVE DAMAGED SEGMENTS 句を使用しないでくださ い。使用すると、修復されてバックアップに取られたデータ ブロックが削除されて しまう可能性があります。 破損しているセグメントがあれば、復元を実行する前に、それらの修復も行ってく ださい。ただし、復元前にバージョン ログの内容を消去する場合は、ALTER DATABASE コマンドに REMOVE DAMAGED SEGMENTS 句を入れることができま す。 RISQL> alter database clean version log remove damaged segments; 次に、完全または一部復元操作によって、破損しているセグメントを復元できま す。このコマンドでは、破損しているセグメント ブロックをバージョン ログから 消去するだけなので、セグメントそのものはシステム テーブルの中にあるため、部 分復元が可能です。部分復元の詳細については、9-19 ページ を参照してください。 バックアップ ファイルのサイズの設定 TMU バックアップがディスク、テープ、格納域管理システムのいずれに書き込ま れる場合でも、トランザクションごとにコミットされるバックアップ データの量 は、バックアップと復元のユニット、または BAR ユニット のサイズで定義されま す。BAR ユニット サイズは、個々のバックアップ ファイルと XBSA オブジェクト の最大サイズを表します。ただし、1 つの PSU に対するバックアップ ブロックのサ イズが、BAR ユニット サイズを超えている場合、このサイズは適用されません。1 つの PSU のバックアップ ブロックを複数のバックアップ ファイルに分けることは できませんが、複数の PSU のバックアップ ブロックを 1 つのバックアップ ファイ ルに入れることはできます。 データベースのバックアップ 8-15 バックアップ ファイルのサイズの設定 以下の図は、BAR ユニットサイズが 300 メガバイトに設定されている場合の例で す。PSU6 のバックアップ データはほぼ 320 メガバイトであることから、設定サイ ズを超える単一のバックアップ ファイルを使用します。残りの 2 のファイルはサイ ズ制限内で、複数の PSU のバックアップ ブロックが含まれています。 PSU1 PSU4 PSU2 PSU5 PSU6 PSU3 bar_unit1 (290MB) bar_unit2 (280MB) bar_unit3 (320MB) 1 つのバックアップ ファイルに複数の PSU のブロックを格納できることにより、各 バックアップ操作中に必要とされるデータ コミットの数が減ります。つまり、この アプローチでは、バックアップ操作およびバックアップからの復元操作の両方の性 能が最適化されます。ただし、BAR ユニットサイズ設定が高すぎると、バックアッ プ処理中にリスクにさらされるデータ量が大きくなる可能性があります。処理が失 敗した場合には、まだコミットされていないデータ量が多すぎるため、現在のユ ニット全体をもう一度バックアップする必要があります。 BAR ユニットサイズのデフォルトは 256 メガバイトです。この設定を変更するに は、rbw.config ファイルの BAR_UNIT_SIZE パラメータに値を入力します。たとえ ば、以下のような場合です。 TUNE BAR_UNIT_SIZE 512M あるいは TMU コントロール ファイルに、同等の機能を持つ SET コマンドを入力し ます。 SET BAR_UNIT_SIZE 512M; 1 メガバイト (1M) よりも小さい値が入力されると、TMU からエラーが返されます。 ディスクの場合、このパラメータの最大設定数は 2 ギガバイト (2G) で、設定値が 2G を超えると TMU からエラーが返されます。これに対し、ディスク上での単一 PSU のバックアップ ファイルの物理最大値は、2G から 8K をひいた値です。テープ および XBSA 装置の最大サイズは、装置の種類や設定に応じて、最大で 2 テラバイ トにもなります。 TMU SET コマンドおよび TUNE パラメータの詳細については、2-23 ページ を参照 してください。 8-16 Table Management Utility Reference Guide テープへのバックアップ 推奨事項 初回時の TMU バックアップでは、デフォルトの BAR_UNIT_SIZE 値を使用するこ とをお勧めします。TMU バックアップごとに生成される BAR ユニットの数は、 action_log ファイルの内容を確認して追跡することができます。8-29 ページ を参照 してください。 パラメータを変更する前に、お使いのアプリケーション環境について、いくつか考 慮する必要があります。たとえば、データベースのサイズ、オペレーティング シス テムの I/O の性能、PSU 当たりの使用済みブロックの平均数、格納域マネージャの 構成 (XBSA バックアップを使用している場合 ) などです。 BAR ユニットサイズは、各バックアップ ファイルの推奨サイズを表すもので、す べてのバックアップ ファイルの絶対サイズではないことに注意してください。サイ ズが非常に大きく、使用済みブロックの数も多い PSU があると、実行時にバック アップ ファイルのサイズが高い値に切り上げられる原因になります。ただし、指定 の設定にできる限り近い値です。 UNIX テープへのバックアップ TMU では、4mm、8mm、および DLT テープを使用し、UNIX のオープン / 読み取り / 書き込み / クローズ インターフェイスをサポートする、数多くのノンリワインド 型テープ装置へのバックアップを実行できます。 Windows プラットフォームでは、テープへの直接バックアップはサポートされてい ませんが、バックアップをテープに格納する XBSA 格納域マネージャを設定できま す。格納域マネージャの設定の詳細については、8-18 ページを参照してください。 警告 : 同じテープを後続の TMU バックアップで再利用することはできません。最 初に取ったバックアップは、2 番目のバックアップによって上書きされます。新し いバックアップ操作を実行する前に、新しいテープが装填されていることを確認し てください。 標準のラベル フォーマット テープ上のバックアップ ファイルは、ANSI に準拠するラベル テープ ファイル (ANSI STL フォーマット ) です。1 本のテープに格納できるバックアップは 1 つだけ ですが、1 つのバックアップを複数のテープにまたがって格納することは可能です。 データベースをテープ ファイルにバックアップする前に、テープ装置が可変長に設 定されていることを確認してください。(TMU LOAD 操作と UNLOAD 操作について も、同じ要件が適用されます )。 データベースのバックアップ 8-17 TMU バックアップ用格納域マネージャの使用 テープ装置の設定 TMU バックアップをテープに対して実行する場合、8-22 ページに示すように、コ マンドに論理デバイス名を指定する必要があります。この論理名は、rbw.config ファイルに指定されている物理デバイスを指定する必要があります。たとえば、以 下のような場合です。 BARTAPE dev1 /dev/rmt0 バックアップが開始すると、論理名 ( この例では dev1) が rbw.config ファイルの中 から検索され、マップされた物理デバイス /dev/rmt0 がバックアップ用に使用さ れます。この方法では、DBA はバックアップ操作で使用した元のテープ装置とは別 のテープ装置を使用して、バックアップを復元できます。BARTAPE エントリは随 時編集して、論理デバイス名と物理デバイス名の間のマッピングを更新できます。 各 BARTAPE エントリの 3 つのパートは、必ずスペースで区切ります。論理名には、 英数字を任意に組み合わせて使用できます。物理名は、装置名と全く同じであるこ とが必要です。 テープ容量 TMU を使用してデータベースをテープにバックアップする場合、CAPACITY 値を 指定する必要があります。この値は、各テープにバックアップできるデータの最大 量を表します。TMU では、テープに書き込む未圧縮データのバイト数をすべて、 最大量に達するまでカウントします。標準ラベルおよびファイル マークは、カウン トされません。これらのマークは装置によって異なりますが、ユーザが指定できる 最小容量である 10 メガバイトを超えてはなりません。 テープ装置で圧縮を使用する場合、バックアップで使用する実際の容量は、指定し た容量よりも小さくなる可能性があります。この「余分な」容量を活用するために は、圧縮率を考慮に入れて容量を設定します。 圧縮をサポートしない装置へのバックアップでは、テープでの指示のように、テー プの未圧縮最大格納サイズの 90 ∼ 95% に指定します。テープの実際の容量よりも 大きな容量値を指定すると、テープの終わりに達した時点で TMU からエラーが出 され、バックアップ操作が中止されます。エラー メッセージには、TMU がテープ に書き込んだバイトの合計数が表示されるので、これを目安にして容量値を訂正で きます。◆ TMU バックアップ用格納域マネージャの使用 X/Open Backup Services API (XBSA) は、IBM Tivoli Storage Manager をはじめ複数の格 納域管理製品で実装されます。TMU では、XBSA インターフェイスを使用したバッ クアップをサポートします。したがって、設定された格納域マネージャによって、 バックアップ先と内容が完全に管理されます。 8-18 Table Management Utility Reference Guide TMU バックアップ用格納域マネージャの使用 XBSA バックアップをサポートするように格納域マネージャを設定するには 1. 2. 3. 4. 5. 6. IBM Red Brick Warehouse サーバがインストールされていない場合は、これ をインストールします。または、お使いのデータベースを最新バージョン にアップグレードします。新規または更新のためのインストール プロセス により、TMU バックアップ用に $RB_CONFIG/bar_metadata ディレクト リが自動作成されます。 使用する格納域マネージャをインストールし、その製品のユーザ名をメモ しておきます。 お使いのオペレーティング システム用に、格納域マネージャの製造元から 関連 XBSA ライブラリが提供されている場合は、それがインストールされ ていることを確認します。このライブラリは、実行時に TMU にアクセス できることが必要です。お使いの Red Brick サーバ、プラットフォーム、 アドレスアビリティ (32 ビットまたは 64 ビット ) 用の適切なライブラリを インストールしたことを確認します。 XBSA ライブラリのパス、および格納域マネージャのユーザ名を rbw.config ファイルで指定します。 OPTION BAR_XBSA_LIB<pathname> OPTION BAR_SM_USER <sm_username> 具体例については、付録 B 「XBSA バックアップのための格納域マネー ジャ構成」を参照してください。 オプションで barxbsa ユーティリティ (Windows では barxbsa.exe) を実行し て、格納域マネージャへの接続を検証します。 XBSA をバックアップ メディアとして指定して、TMU バックアップを実 行します ( 構文の詳細については、8-22 ページを参照してください )。 重要 : 1 つのバックアップ操作で使用できる格納域マネージャは 1 つだけです。ま た、このバックアップからの復元を実行するには、同じ格納域マネージャを使用す る必要があります。 格納域マネージャを変更するには、rbw.config ファイルで BAR_XBSA_LIB エントリ と BAR_SM_USER エントリを変更する必要があります。次に barxbsa ( または barxbsa.exe) ユーティリティを実行して接続を検証してから、TMU バックアップを 実行します。 お使いの格納域管理システムに固有の構成情報については、付録 B 「XBSA バック アップのための格納域マネージャ構成」、および格納域管理ソフトウェアに付録の マニュアルを参照してください。 データベースのバックアップ 8-19 フル バックアップ用の外部ツールの使用 フル バックアップ用の外部ツールの使用 ご使用のデータベースが大きすぎて TMU のフル バックアップを完了するのに時間 がかかりすぎる場合や、Red Brick のすべてのファイルを含め、システム バック アップ用に有効なプロセスが既に確立されている場合は、外部ツールを使用してフ ル バックアップを実行することができます。その場合でも、外部ツールにはない、 最適化されたインクリメンタル バックアップを実現する TMU の機能を活用できま す。TMU では、後続のインクリメンタル バックアップ用の基準として、外部のフ ル バックアップを使用できます。安定したフル バックアップの手段が既に確立し ている場合は、TMU を使用してバックアップを再作成する必要はありません。 たとえば、UNIX のダンプおよび復元コマンドや、サードパーティ製ツールといっ た、システム規模のバックアップ ユーティリティを使用して、複数のテープ装置に 並行してバックアップを実行できます。このような外部ツールは、高速フル バック アップを提供するだけでなく、データベース外部の関連ファイル (rbw.config ファイ ルや初期化ファイルなど ) と実際のデータベース ファイル (PSU) との同期も保証し ます。 1 つのデータベースについて外部のフル バックアップと TMU インクリメンタル バックアップを併用するには、外部バックアップ操作の実行直前に以下の TMU SET コマンドを実行します。 SET FOREIGN FULL BACKUP; このコマンドはバックアップ セグメントをリセットして、信頼できる外部バック アップが作成されることを示します。次に、TMU フル バックアップの実行後と同 じように TMU インクリメンタル バックアップを続けて実行できます。 同等の機能を持つ SET コマンドは、外部の完全復元操作をサポートします。 SET FOREIGN FULL RESTORE; このコマンドは、外部復元の実行直後、かつ復元されたデータベースに対して接続 や変更が加えられる前に実行します。外部復元操作の詳細については、9-11 ページ を参照してください。 SET FOREIGN FULL BACKUP コマンドおよび SET FOREIGN FULL RESTORE コマ ンドには、それぞれに BACKUP_DATABASE タスク権限と RESTORE_DATABASE タ スク権限が必要です。 外部バックアップ操作の推奨手順 外部バックアップ中は、データベースに対するいかなる書き込み操作も行わないで ください。以下のステップを実行してください。 8-20 Table Management Utility Reference Guide フル バックアップ用の外部ツールの使用 1. データベースが、外部ユーティリティを使用して完全にバックアップされ ていることを確認します。以下のコマンドが記述されている TMU コント ロール ファイルを実行します。 2. データベースを Read ロックして、外部バックアップ操作中にデータベー スが変更されないようにします。この RISQL セッションはオープンのまま にします。 3. 4. 外部バックアップ操作を実行します。 ステップ 2 と同じセッションを使用して、データベースのロックを解除し ます。 set foreign full backup; RISQL> lock database read; RISQL> unlock database; ヒント : 外部プログラムを使用して取ったデータベースのフル バックアップがあ る場合は、SET FOREIGN FULL BACKUP コマンドを実行してから、インクリメンタ ル バックアップ用に TMU を使用できます。ただし、外部バックアップの実行前に SET FOREIGN FULL BACKUP コマンドを使用することをお勧めします。 データベースのバックアップ 8-21 BACKUP 構文 BACKUP 構文 以下のダイアグラムは、TMU BACKUP 文の構造を表しています。 DIRECTORY ' <directory_name> ' BACKUP TO TAPE DEVICE <logical_device_name> CAPACITY <value> K|M|G XBSA ONLINE 0 LEVEL ; 1 CHECKPOINT 2 DIRECTORY '<directory_name>' TMU がバックアップ データを書き込む既存ディレクトリ の名前を指定します。ディレクトリのパスは完全に指定し ます。環境変数を使用できます。ディレクトリ名はオペ レーティング システムの命名規則に従い、一重引用符 (') で囲む必要があります。TMU 操作を実行しているデータ ベース ユーザには、このディレクトリに対する書き込み 権限が必要です。同じディレクトリを複数のバックアップ 操作で使用できます。 ディレクトリのバックアップは 1 つ以上のファイルに格納 され、これらのファイル名は動的に生成されます。ファイ ルの命名規則を以下に示します。 rb_bar_dbname.yyyymmdd.hhmmss.pid.nnnn dbname: データベースの論理名。dbname は必ず 14 文字で 表記されます。実際の論理名が 14 文字よりも長い場合は、 後ろの 14 文字が使用されます。名前が 14 文字よりも短い 場合は、後ろに下線がつきます。 8-22 Table Management Utility Reference Guide BACKUP 構文 yyyymmdd.hhmmss: ファイルの作成時刻を示す日付とタ イムスタンプ。 pid: ファイルを作成したプロセスの ID。 nnnn: バックアップ ファイルのシーケンス番号。ファイル の作成順序を表します。 <filename>.0001、<filename>.0002 以下同様。 BAR_UNIT_SIZE の値に到達したり、1 つの PSU の使用済 みブロックがすべてバックアップされると、新しいファイ ルが作成されます。 TAPE DEVICE <logical_device_name> テープへのバックアップで使用する UNIX または Linux の テープ装置の論理名を指定します。8-18 ページ 「テープ 装置の設定」を参照してください。 CAPACITY <value> K|M|G バックアップに使用する各テープのデータ格納の最大容量 を指定します。テープの内容がこの容量に達すると、テー プはフルになったと見なされ、別のテープを装填して処理 を継続するようにとのメッセージが TMU から出されま す。CAPACITY パラメータはテープ バックアップには必 須ですが、そのほかのメディアへのバックアップでは使用 できません。 K ( キロバイト )、M ( メガバイト )、G ( ギガバイト ) の指 定がない場合は、デフォルトで K になります。<value> に は、必ず符号なしの整数を指定します。最小容量は 10 メ ガバイト、最大は 2 テラバイトです。この範囲外の値を指 定すると、バックアップは失敗してエラーが返されます。 CAPACITY パラメータの詳細については、8-18 ページ 「テープ容量」を参照してください。 XBSA サードパーティ製の格納域マネージャでバックアップ ファイルを管理することを指定します。XBSA インター フェイスおよび格納域マネージャの設定の詳細について は、8-18 ページ 「TMU バックアップ用格納域マネージャ の使用」を参照してください。 ONLINE または CHECKPOINT バックアップ操作のタイプを指定します。オンライン バックアップ中は、データベースは読み取り操作も書き込 み操作も可能です。チェックポイント バックアップ中は、 データベースは読み取り専用モードになります。 データベースのバックアップ 8-23 BACKUP 構文 LEVEL 0 | 1 | 2 バックアップ レベルを指定します。レベル 0 はフル バッ クアップ、レベル 1 と 2 はインクリメンタル バックアップ です。レベル 1 のバックアップでは、最後のレベル 0 の バックアップ後に加えられた変更内容がすべて記録されま す。レベル 2 のバックアップでは、レベルを問わず、最後 のバックアップ後に加えられた変更内容がすべて記録され ます。 バックアップ操作の例 以下は、各種 TMU バックアップ文の構文例です。 UNIX/Linux backup to directory '/disk1/db_bup/012202' online level 0; # full backup on 1/22/02 backup to directory '/disk1/db_bup/012302' checkpoint level 2; # incremental checkpoint on 1/23/01 backup to xbsa checkpoint level 0; # full backup to Tivoli on 1/30/02 backup to tape device dev1 capacity 100M checkpoint level 0; # full tape checkpoint on 2/01/02 Windows backup to directory 'e:¥db_bup¥012202' online level 0; # full backup on 1/22/02 backup to directory 'e:¥rbds611¥devel¥bar¥013002' checkpoint level 2; # incremental checkpoint on 1/30/02 backup to xbsa checkpoint level 0; # full backup to Legato on 1/30/02 8-24 Table Management Utility Reference Guide BACKUP 構文 バックアップ中に表示されるメッセージ 以下の例では、TMU コントロール ファイル tb_db_level0.tmu は、Aroma データ ベースのバックアップを tb_db_backup というディレクトリに入れます。以下の メッセージには、バックアップ プロセス、バックアップのタイプとレベル、バック アップ ファイルを格納するメディアに関する情報が示されます。 113 brick % rb_tmu -d AROMA tb_db_level0.tmu system manager (C) Copyright IBM Corp. 1991-2002. All rights reserved. Version 06.20.0000(0)TST ** INFORMATION ** (523) Backup of database 'AROMA' with backup level 0, backup type CHECKPOINT, and backup media DIRECTORY started. ** INFORMATION ** (7051) Backup to '/devel/local/bobr/tb_db_backup/rb_bar_AROMA__________.20011119 .162542.00032049.0001' started on Monday, November 19, 2001 4:25:42 PM. ** INFORMATION ** (7061) Backup to '/devel/local/bobr/tb_db_backup/rb_bar_AROMA__________.20011119 .162542.00032049.0001' completed on Monday, November 19, 2001 4:25:42 PM. ** INFORMATION ** (7087) Backup of the database AROMA completed successfully on Monday, November 19, 2001 4:25:42 PM. ** STATISTICS ** (500) Time = 00:00:00.14 cp time, 00:00:00.14 time, Logical IO count=750, Blk Reads=0, Blk Writes=778 以下の出力データは、同じデータベースに対する後続のレベル 1 のバックアップに 関するものです。 124 brick% rb_tmu -d AROMA tb_db_level1.tmu system manager (C) Copyright IBM Corp. 1991-2002. All rights reserved. Version 06.20.0000(0)TST ** INFORMATION ** (523) Backup of database 'AROMA' with backup level 1, backup type CHECKPOINT, and backup media DIRECTORY started. ** INFORMATION ** (7051) Backup to '/devel/local/bobr/tb_db_backup/rb_bar_AROMA__________.20011119 .163859.00032173.0001' started on Monday, November 19, 2001 4:38:59 PM. ** INFORMATION ** (7061) Backup to '/devel/local/bobr/tb_db_backup/rb_bar_AROMA__________.20011119 .163859.00032173.0001' completed on Monday, November 19, 2001 4:38:59 PM. ** INFORMATION ** (7087) Backup of the database TBDB completed successfully on Monday, November 19, 2001 4:38:59 PM. ** STATISTICS ** (500) Time = 00:00:00.07 cp time, 00:00:00.10 time, Logical IO count=320, Blk Reads=0, Blk Writes=307 データベースのバックアップ 8-25 バックアップ メタデータ バックアップ メタデータ データベースの一貫した状態への復元プロセスを自動化するため、TMU ではメタ データ ファイルに依存します。このファイルには、データベースの作成後に実行さ れたバックアップ履歴がすべて保管されています。メタデータ履歴は、単独でイン ストールされるウェアハウス サーバ内にある IBM Red Brick Warehouse データベース ごとに記録されます。バックアップ メタデータがあると、1 つの TMU 操作だけで データベースを復元できます。復元する必要のある特定のバックアップ ( またはそ の復元順序 ) を DBA で指定する必要はありません。 ウェアハウス サーバがインストールされると、以下のメタデータ ディレクトリが 作成されます。 $RB_CONFIG/bar_metadata bar_metadata ディレクトリには、各データベースの <database_name> サブディレク トリが含まれています。<database_name> は rbw.config ファイルに登録されている論 理名です。各 <database_name> ディレクトリには、次の 4 つのファイルが含まれて います。 ■ .dbinfo には、以下の情報が格納されます。 ❑ ❑ ❑ データベース ロケール データベースの論理名とフル パス 現在の動作シーケンス番号。バックアップ操作のシーケンスを追跡す るために使用され、新しい操作ごとに 1 つ増えます。 このファイルは <database_name> ディレクトリから削除しないでください。 ■ .backup_dirty_psu。バックアップ中にエラーを復旧するために使用されま す。 このファイルは <database_name> ディレクトリから削除しないでください。 ■ rbw_media_history。説明については、8-27 ページを参照してください。 ■ action_log。説明については、8-29 ページを参照してください。 <database_name> ディレクトリは、最初の TMU バックアップが実行されるまで作成 されません。 8-26 Table Management Utility Reference Guide メディア履歴ファイル (rbw_media_history) メディア履歴ファイル (rbw_media_history) rbw_media_history ファイルはテキスト ファイルで、データベースに対するすべて のバックアップ操作について、PSU レベルの詳細情報が記述されます。データベー スを特定時点の一貫性のある状態に復旧するためには、このバックアップ履歴を使 用して、復元する必要のあるバックアップ順序を見つける必要があります。 TMU や外部バックアップの各操作が正常終了すると、新しいバックアップ記録が この履歴ファイルに追加されます。TMU バックアップでは PSU ごとに 1 つのレ コードが、外部バックアップではデータベース全体につき 1 つのレコードが記録さ れます。 重要 : rbw_media_history ファイルそのものは TMU ではバックアップされません。し たがって、外部プログラムを使用して定期的にバックアップする必要があります。 各バックアップ記録には、以下の情報が含まれています。 要素 説明 動作シーケンス番号 バックアップ セッションに割り当てられる番号。 1 つの操作でバックアップされた PSU はすべて、 同じ番号を共有します。 バージョン IBM Red Brick Warehouse サーバのバージョン番号 ( たとえば 6.20) バックアップ レベル 0、1、または 2 バックアップ タイプ オンライン (O)、チェックポイント (C)、または E ( 外部バックアップ ) メディア タイプ テープ (T)、ディレクトリ (D)、または XBSA (X) タイム スタンプ 対象 PSU について、最初の使用済みブロックの バックアップが開始した時刻。タイム スタンプの フォーマットは、以下のとおりです。 yyyy-mm-dd.hh:mm:ss このフォーマットは、9-14 ページで定義されてい ます。 PSU のタイプ システム テーブル (S) またはユーザ テーブル (U) 変更されたフル PSU バックアップしたのは PSU 全体か、一部のブロッ クだけかを示します。True (T) または False (F) データベースのバックアップ 8-27 メディア履歴ファイル (rbw_media_history) 要素 説明 メディア ID ディレクトリ バックアップの場合はファイル名、 XBSA バックアップの場合はコピー ID、テープ バックアップの場合は論理デバイス名、テープ ファイル名、およびボリューム名。 バックアップ ブロックのサ イズ 対象 PSU についてバックアップされた使用済みブ ロックの合計数 オフセット 複数の PSU を 1 つのバックアップ ファイルまたは オブジェクトに格納する場合、そのバックアップ メディア内における対象 PSU のバックアップ デー タの格納開始位置 ( ブロック番号 ) PSU サイズ バックアップ時に、対象 PSU の中にある 8K 単位 のブロックの合計数 '<psu_name>' バックアップされた PSU の名前 ( 一重引用符で囲 む) セグメント名 PSU が属するセグメントの名前 外部バックアップの場合、ファイルに添付できるレコードは 1 つだけで、レコード の PSU レベルのコンポーネントは空白になります。 メディア履歴ファイルの編集 redbrick のユーザは、必要に応じて rbw_media_history ファイルを編集できますが、 変更を加える際には細心の注意が必要です。有効なデータベース復元操作に必要な レコードを削除しないように注意してください。これらを削除すると、TMU で間 違った復元シーケンスが作成されることになります。 不要になったバックアップ操作の記録は、安全に削除できます。バックアップ操作 ごとに、固有のバックアップ シーケンス番号があります。最初に、削除するバック アップ操作のシーケンス番号を特定してから、その番号が付いている記録をすべて 削除します。たとえば rbw_media_history ファイルには、以下の一連の 7 つのバッ クアップ記録が含まれているとします。 1. 2. 3. 4. 5. 6. 8-28 レベル 0 のオンライン バックアップ レベル 2 のオンライン バックアップ レベル 1 のオンライン バックアップ レベル 2 のオンライン バックアップ レベル 1 のオンライン バックアップ レベル 2 のオンライン バックアップ Table Management Utility Reference Guide バックアップ ログ ファイル (action_log) 7. レベル 2 のチェックポイント バックアップ バックアップ シーケンス番号 1、5、6、および 7 が付いている記録は、削除しては いけません。シーケンス番号 2、3、4 の記録は、すべて削除できます。 PSU オフセットの例 「オフセット」は、所定の PSU についてバックアップされるブロックの開始位置を 定義します。1 つのバックアップ ファイルに複数の PSU を入れることができるた め、この情報はとても重要です。たとえば、PSU1 は 80K (10 ブロック ) で、そのう ちの 2 つのブロック (16K) が /tmp/file1 というバックアップ ファイルのブロック 20 からバックアップされるとします。rbw_media_history ファイルでは、PSU1 のオフ セット値は 20 になります。/tmp/file1 の最初の 19 ブロックには、別の PSU の使用済 みブロックが入ります。 バックアップ ログ ファイル (action_log) TMU バックアップおよび復元操作によって、特定のデータベースに対して生成さ れるイベント ベースの記録は、<database_name> ディレクトリの中の action_log ファイルに記録されます。新しい記録が生成されるたびに、ファイルの終わりに追 加されます。 rbw_media_history ファイルとは異なり、action_log ファイルには PSU レベルの詳 細は記述されません。そのため、TMU ではこのファイルを使用しません。また、 ログ ファイルにはバックアップ操作および復元操作に関する情報が記述されるのに 対し、rbw_media_history ファイルにはバックアップに関する情報しか記述されま せん。 redbrick のユーザは、必要に応じてファイルの編集や削除を実行できます。この ファイルがない場合、TMU によって新しいファイルが作成されます。新しい空の バージョンのファイルを起動するには、単純に現在のファイルの名前を変更しま す。次のバックアップ操作の開始時に、新しい action_log ファイルが作成されます。 オペレーティング システムによって課される制約以外に、ログ ファイルの最大サ イズに関する制限はありません。 ログ ファイルには、開始された各バックアップまたは復元操作の記録のほかに、完 了した各操作の記録も含まれます。記録には、以下の情報が含まれています。 ■ データベースのフル パス ■ RB_HOST の値 ( ウェアハウス デーモンの論理名 ) ■ 操作を実行したデータベース ユーザ ■ 操作の開始または完了日時 データベースのバックアップ 8-29 バックアップ ログ ファイル (action_log) ■ TMU コントロール ファイルに定義されている、完全なバックアップまた は復元コマンド 記録の数が奇数 ( たとえば、「開始したバックアップ」エントリが 2 つなのに対し 「完了したバックアップ」エントリが 1 つだけなど ) の場合は、ある操作が失敗した ことを示します。ただし action_log ファイルには、失敗の原因を示すエントリは記 述されまれません。失敗の原因は、サーバ ログ ファイル (rbwlog.*) の詳細メッセー ジから判別できます。 ログ ファイルのエントリ例 以下のバックアップ ログ エントリは、Aroma データベースについて正常に終了し たレベル 0 およびレベル 2 のバックアップを記述しています。 TMU 06.20.0000(0)TST [BAR] Backup started. DB: /qa/local/bobr/toucaroma, HOST and USER: TOUCAN SYSTEM, DATE and TIME: Thursday, December 20, 2001 1:29:53 PM, COMMAND: BACKUP TO DIRECTORY /qa/local/bobr/bar0 CHECKPOINT LEVEL 0, BAR_UNIT_SIZE: 262144. Backup to '/qa/local/bobr/bar0/rb_bar_bobr_toucaroma_.20011220.132953.000 01820.0001' started on Thursday, December 20, 2001 1:29:53 PM. Backup to '/qa/local/bobr/bar0/rb_bar_bobr_toucaroma_.20011220.132953.000 01820.0001' completed on Thursday, December 20, 2001 1:29:54 PM. TMU 06.20.0000(0)TST [BAR] Backup completed. DB: /qa/local/bobr/toucaroma, HOST and USER: TOUCAN SYSTEM, DATE and TIME: Thursday, December 20, 2001 1:29:54 PM, COMMAND: BACKUP TO DIRECTORY /qa/local/bobr/bar0 CHECKPOINT LEVEL 0, BAR_UNIT_SIZE: 262144, Number of BAR Units Backed Up: 1, Number of Segments Backed Up: 32, Number of PSUs Backed Up: 39, Number of Blocks Backed Up: 666 TMU 06.20.0000(0)TST [BAR] Backup started. DB: /qa/local/bobr/toucaroma, HOST and USER: TOUCAN SYSTEM, DATE and TIME: Thursday, December 20, 2001 1:36:20 PM, COMMAND: BACKUP TO DIRECTORY /qa/local/bobr/bar2 CHECKPOINT LEVEL 2, BAR_UNIT_SIZE: 262144. Backup to '/qa/local/bobr/bar2/rb_bar_bobr_toucaroma_.20011220.133620.000 02002.0001' started on Thursday, December 20, 2001 1:36:20 PM. Backup to '/qa/local/bobr/bar2/rb_bar_bobr_toucaroma_.20011220.133620.000 02002.0001' completed on Thursday, December 20, 2001 1:36:20 PM. TMU 06.20.0000(0)TST [BAR] Backup completed. DB: /qa/local/bobr/toucaroma, HOST and USER: TOUCAN SYSTEM, DATE and TIME: Thursday, December 20, 2001 1:36:20 PM, COMMAND: BACKUP TO DIRECTORY /qa/local/bobr/bar2 CHECKPOINT LEVEL 2, BAR_UNIT_SIZE: 262144, Number of BAR Units Backed Up: 1, Number of Segments Backed Up: 2, Number of PSUs Backed Up: 7, Number of Blocks Backed Up: 210 8-30 Table Management Utility Reference Guide 第9章 データベースの復元 この章について . . . . . . . . . . . . . . . . . 9-3 TMU の完全復元と部分復元 . . . . . . . . . . . . . 復元パス . . . . . . . . . . . . . . . . . . . 復元の例 . . . . . . . . . . . . . . . . . . . 例 1: レベル 2 のチェックポイント ( 日次 ) . . . . . . 例 2: レベル 1 のチェックポイント ( 日次 ) . . . . . . 例 3: レベル 1 とレベル 2 のバックアップの組み合わせ . 例 4: 悪い例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-4 9-4 9-5 9-6 9-7 9-8 9-9 TMU 復元の実行方法 . . . . . . . . . . . . . 外部復元操作の推奨手順 . . . . . . . . . . 特別なセグメントの復元 . . . . . . . . . . コールド復元操作 . . . . . . . . . . . . . バックアップ復元後に作成されるオブジェクトの PSU RESTORE 構文 . . . . . . . . . . . . . . 構文例 . . . . . . . . . . . . . . . メッセージを出力する RESTORE 操作の例 . . RESTORE SHOW 操作の出力データの例 . . . 部分復元の手順 . . . . . . . . . . . . . FORCE オプション . . . . . . . . . . . 部分復元後のデータベースの一貫性 . . . . . 部分的な利用 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9-10 9-11 9-11 9-12 9-12 9-13 9-15 9-16 9-17 9-19 9-20 9-20 9-21 9-2 Table Management Utility Reference Guide この章について この章では、システムやソフトウェアに障害が発生した場合のデータベースの復元 方法について説明します。この章では、以下について説明します。 ■ ■ TMU の完全復元と部分復元 TMU 復元の実行方法 TMU バックアップの詳細については、第 8 章「データベースのバックアップ」を 参照してください。 データベースの復元 9-3 TMU の完全復元と部分復元 TMU の完全復元と部分復元 TMU バックアップの実行時は、必ずデータベース全体のデータをバックアップし ます。つまり、データベース全体におけるすべてのオブジェクト、またはすべての オブジェクトの変更部分のバックアップを取ります。ただしバックアップからの復 元時には、完全復元 ( データベース全体 ) または部分復元のどちらかを実行できま す。部分復元では、1 つの特定セグメントまたは 1 つの特定の物理格納ユニット (PSU) を復旧します。 多様なレベルとタイプのバックアップを組み合わせたバックアップ方法を使用して いる場合、データベースを一定時点の状態に復元するには、多くの場合、複数の バックアップを特定の順序で復元することが要求されます。TMU では DBA でこの 順番を特定する必要がありません。つまり、復元パスはデータベースのメタデータ 履歴に基づいて、ユーザからは見えないところで自動的に作成されます。 障害発生前の最新のバックアップにデータベースを復元する必要があるとします。 ただし実際の復元要件は、ここに示す例ほど厳しくならないと思われます。たとえ ば、古いバックアップに復元してから、最新の変更一式をデータベースに再ロード するケースも考えられます。たいていの場合、データを再ロードせずにデータベー スを一定時点の状態に復元できるバックアップ方法を採用すべきですが、TMU で は復元プロセスの対象日をユーザが選択できます。対象日を選択しない場合、デ フォルトで最後のチェックポイントの日に復元されます。 復元パス TMU で作成する復元パスは、特定のタイムスタンプに復元する場合でも、コマン ドに対象日を明示しない「ブラインド」復元を実行する場合でも、基本的に同じで す。すべての復元について、パスには最低 1 つのチェックポイント バックアップと 最低 1 つのフル バックアップ (TMU レベル 0 または外部 ) を含める必要があります。 これらの重要なバックアップがメタデータ履歴から失われると、復元操作は失敗し ます。 完全な復元パスを構成するバックアップ サブセットを以下に示します。この場合、 対象日は RESTORE コマンドに指定されている日、または最後に取られたチェック ポイントの日のどちらかです。 a. b. c. d. 9-4 対象日よりも前に取られた、最後のレベル 0 のバックアップ (a) の後、ただし対象日よりも前に取られた、最後のレベル 1 のバックアッ プ ( 該当する場合 ) (b) の後、ただし対象日よりも前に取られた、レベル 2 のバックアップすべ て。(b) が存在しない場合は、(a) の後、ただし対象日よりも前に取られた、 レベル 2 のバックアップすべて 対象日よりも前に取られた、最後のチェックポイント バックアップ Table Management Utility Reference Guide 復元の例 復元プロセスは必ず (d) で停止します。最後のチェックポイント後に取られたオン ライン バックアップは、復元できません。ステップ (a)、(b)、(c) で述べたバック アップは、オンラインとチェックポイントのどちらでも構いません。(a) のレベル 0 のバックアップは、外部のフル バックアップにすることもできます。 データは、元の BACKUP コマンドで指定した同じバックアップ メディアから自動 的に復元されます。データベースの復元元として指定しているバックアップの内容 と範囲を検証するには、復元操作を開始する前に RESTORE...SHOW コマンドを実 行します。復元に必要なバックアップ データを移動した場合、RESTORE 操作は失 敗します。ただし、8-18 ページ で説明しているバックアップと復元間でのテープ装 置の切り替え機能には、この規則は当てはまりません。 復元の例 以下の例は、異なるタイプとレベルを組み合わせたバックアップと、その結果作成 される復元パスを示しています。これらの例は、障害時に TMU が作成する復元パ スが、バックアップ方法によってどのように決定されるかを示しています。 データベースの復元 9-5 復元の例 例 1: レベル 2 のチェックポイント ( 日次 ) この例では、日次インクリメンタル バックアップ操作はほかと比べて短く、一貫し た復旧ポイントが提供されます。ただし障害の発生時期によっては、復元プロセス に複数の操作が含まれる可能性があります。 1. 2. DBA は週末にレベル 0 のチェックポイント バックアップを実行し、週の初 めには最新のフル バックアップが取れている状態になります。 平日の夕方に、DBA はレベル 2 のチェックポイント バックアップを実行し ます。各チェックポイント バックアップでは、前日のバックアップ後に発 生した変更部分だけが格納されます。各バックアップによって、一貫した 復旧ポイントが提供されます。 シ ス テ ム レベル 0 チェック レベル 2 チェック レベル 2 チェック レベル 2 チェック 日曜日 月曜日 火曜日 水曜日 3. 障 害 レベル 2 チェック レベル 2 チェック レベル 2 チェック 木曜日 金曜日 土曜日 矢じり付きの線は、レベル 2 の各バックアップで取られた変更内容が累積 されないことを示します。 木曜日にシステム障害が発生したため、水曜日の業務終了時の状態にデー タベースを復元する必要があるとします。TMU は以下の復元パスを実行 します。 1. 前の日曜日のレベル 0 のバックアップからの復元。 2. 3. 4. 前の月曜日のレベル 2 のバックアップからの復元。 前の火曜日のレベル 2 のバックアップからの復元。 水曜日のレベル 2 のバックアップからの復元。 これでデータベースは、水曜日の夜の状態に完全に復元されました。すべてのバッ クアップがチェックポイントであるため、水曜日までにデータベースに加えられた 変更はすべて反映されています。ただし、水曜日のバックアップ完了後から木曜日 の障害発生までの間に、データベースに変更が加えられている場合、これらの変更 は復元されたデータベースに反映されていません。 9-6 Table Management Utility Reference Guide 復元の例 例 2: レベル 1 のチェックポイント ( 日次 ) この例では、日次インクリメンタル バックアップによって一貫した復旧ポイントが 提供され、最後のレベル 0 のバックアップ後に加えられた変更内容がすべて取られ ます。このアプローチでは復元操作の数は減りますが、日次バックアップは週次処 理よりも時間のかかる処理になります。 1. 2. DBA は週末にレベル 0 のチェックポイント バックアップを実行し、週の初 めには最新のフル バックアップが取れている状態になります。 平日の夕方に、DBA はレベル 1 のチェックポイント バックアップを実行し ます。レベル 1 の各バックアップが累積されます。つまり、前の日曜日の レベル 0 のバックアップ後に発生した変更がすべて格納されます。 シ ス テ ム 障 レベル 0 チェック レベル 1 チェック レベル 1 チェック レベル 1 チェック 日曜日 月曜日 火曜日 水曜日 3. 害 レベル 1 チェック レベル 1 チェック レベル 1 チェック 木曜日 金曜日 土曜日 木曜日にシステム障害が発生したため、水曜日の業務終了時の状態にデー タベースを復元する必要があるとします。TMU は以下の復元パスを実行 します。 1. 前の日曜日のレベル 0 のバックアップからの復元。 2. 水曜日のレベル 1 のバックアップからの復元。 これでデータベースは、水曜日の夜の状態に完全に復元されました。すべてのバッ クアップがチェックポイントであるため、水曜日までにデータベースに加えられた 変更はすべて反映されています。ただし、水曜日のバックアップ完了後から木曜日 の障害発生までの間に、データベースに変更が加えられている場合、これらの変更 は復元されたデータベースに反映されていません。 データベースの復元 9-7 復元の例 例 3: レベル 1 とレベル 2 のバックアップの組み合わせ この例では、DBA は週末にフル バックアップを実行し、平日の間は毎日、オンラ インとチェックポイントの 2 つのバックアップを取ります。このアプローチでは、 営業日中のデータベースの変更が可能になり、各営業日の終了時点でのデータベー ス復旧用のチェックポイント バックアップが確保され、復旧に必要な復元操作の数 が減ります。 1. 2. DBA は、毎日曜日にレベル 0 のチェックポイント バックアップを実行しま す。 平日は、DBA はオンラインのレベル 1、続いてチェックポイントのレベル 2 の 2 つのバックアップを毎日実行します。 シ ス テ ム 障 レベル 0 チェック レベル 1 オンライン レベル 2 チェック レベル 1 オンライン レベル 2 チェック レベル 1 オンライン レベル 2 チェック 日曜日 月曜日 月曜日 夜間 火曜日 火曜日 夜間 水曜日 水曜日 夜間 3. 矢じり付きの線は、レベル 1 の各バックアップで取られた変更が累積され るのに対し、レベル 2 のバックアップは累積されないことを示します。 木曜日の朝にシステム障害が発生したため、水曜日の業務終了時の状態に データベースを復元する必要があるとします。復元プロセスは、次の 3 つ のステップから成ります。 1. 前の週末のレベル 0 のバックアップからの復元。 2. 3. 水曜日のレベル 1 のバックアップからの復元。 水曜日のレベル 2 のバックアップからの復元。 これでデータベースは、水曜日の夜の状態に完全に復元されました。 9-8 害 Table Management Utility Reference Guide 復元の例 例 4: 悪い例 これは、日常的なチェックポイント バックアップの必要性を示す悪い例です。DBA が毎日オンライン バックアップを実行し、週末までチェックポイントを実行しない 場合、平日のどの曜日に対してもデータベースを復元することはできません。 1. 2. DBA は、毎日曜日にレベル 0 のチェックポイント バックアップを実行しま す。 DBA は月曜から土曜まで、レベル 2 のオンライン バックアップを実行しま す。 失われる変更内容 シ ス テ ム 障 害 レベル 0 チェック 日曜日 レベル 2 オンライン 月曜日 レベル 2 オンライン 火曜日 3. レベル 2 オンライン 水曜日 レベル 2 オンライン 木曜日 レベル 2 オンライン 金曜日 レベル 2 レベル 0 オンライン チェック 土曜日 日曜日 木曜日の朝にシステム障害が発生した場合、データベースは水曜日のバッ クアップ前の状態に復元できません。つまり、レベル 2 のバックアップは 実際には役に立ちません。ただ 1 つの方法は、データベースを前の日曜日 の状態に復元することです。この場合、平日にバックアップを取った変更 内容はすべて失われます。 データベースの復元 9-9 TMU 復元の実行方法 TMU 復元の実行方法 TMU 復元操作を実行するには、以下のステップに従います。 1. 2. 3. 4. 部分復元または完全復元のどちらが必要かを判断します。特定の PSU また はセグメントを復元することにより、データベースを一貫した状態に復旧 できる場合もあります。部分復元の詳細については、9-19 ページを参照し てください。 RESTORE...SHOW コマンドを使用して、データベースの復元元のメディア の内容を任意にチェックします。 9-13 ページで定義されている構文を使用して、RESTORE 操作に関する TMU コントロール ファイルを作成します。コントロール ファイルの一般 的な情報については、1-7 ページを参照してください。 RESTORE 操作を実行するには、rb_tmu または rb_ptmu プログラムを使用 します。rb_tmu の完全な構文の詳細については、第 2 章「TMU と PTMU の実行」を参照してください。rb_ptmu を使用する場合、復元操作は依然 として逐次モードで実行されます。並列復元は、XBSA 格納域マネージャ を含め、いかなるバックアップ メディアでもサポートされていません。 TMU BACKUP 操作は、クライアント TMU (rb_ctmu) から起動して、リ モート サーバ マシン上で実行することはできません。 タスク権限 ユーザが TMU RESTORE 操作を実行するためには、あらかじめユーザに RESTORE_DATABASE 権限を付与する必要があります。たとえば、以下のような場 合です。 grant connect, restore_database to evelyn with ybsmur; この権限は DBA ロールによって継承されます。 9-10 Table Management Utility Reference Guide 外部復元操作の推奨手順 外部復元操作の推奨手順 完全復元を実行するにあたって、データベースがなく、データベース関連の操作も 実行していないとします。それでも DBA は、復元操作中にデータベース操作がで きないことを常に確認する必要があります。 1. 指定されているデータベースに対する操作をすべて停止します。 RISQL> alter database terminate database logical_db_name; 2. 3. 4. 5. ユーザがデータベースに接続できないことを確認します。場合によって は、API デーモンまたはサービスを停止するか、rbw.config ファイルから データベース エントリを削除する必要があります。 外部ユーティリティを使用してデータベースを復元します。 ステップ 2 で停止した場合は、API デーモンまたはサービスを再起動しま す。あるいは、rbw.config ファイルのデータベース エントリを必要に応じ て置き換えます。 データベースが外部バックアップから完全に復元されたことを確認しま す。以下のコマンドが記述されている TMU コントロール ファイルを実行 します。 set foreign full restore; 6. 必要であれば、TMU インクリメンタル バックアップを復元します。 特別なセグメントの復元 システム テーブルが含まれているシステム セグメントは、それ自体の復元はでき ませんが、完全復元操作の一部として復元されます。 バックアップ セグメントはチェックポイント バックアップの一部としてのみバッ クアップされますが、これがなくてもデータベースの完全復元は正常に実行できま す。バックアップ セグメントが破損していたり存在しない場合は、完全復元操作の 一部として再作成されます。 バージョン管理されたデータベースの場合、TMU によってバックアップされるこ とのないバージョン ログ セグメントは、復元されるシステム カタログの定義に基 づいて自動的に再作成されます。 データベースの復元 9-11 コールド復元操作 コールド復元操作 コールド復元は、オンラインにできないデータベースのための完全復元操作です。 コールド復元を実行する必要がある場合、データベースを復元するためには、同じ データベースの空のバージョンを同じ環境設定、ロケーション、およびロケールを 使用して再作成する必要があります。また、復元の実行権限 (RESTORE_DATABASE 権限 ) を持つデータベース ユーザを再作成する必要もあり ます。 データベースのコールド復元を開始する前に、rbw.config ファイルおよび以下の ディレクトリの内容を復元します。 $RB_CONFIG/bar_metadata/<database_name> これらのファイルは TMU バックアップには含まれないので、データベースとは別 にバックアップを取る必要があります。 バックアップ セグメントとバージョン ログ セグメント ( 必要な場合 ) が、TMU 復 元操作中に自動的に再作成されます。 バックアップ復元後に作成されるオブジェクトの PSU オブジェクトがデータベース内に作成される前のバックアップから復元を実行する 場合、復元されたデータベースの中には、これらのオブジェクトの PSU は存在しま せん。ただし、ファイルシステムの中には存在します。デフォルト名を持つ PSU の 場合、サーバがデフォルト名を再利用しようとするときに問題が生じる可能性があ ります。ユーザ定義の PSU でも同様の事態が生じることがあります。いずれの場合 も、バックアップからの復元後に、復元された RBW_STORAGE テーブルにクエリ を実行して、セグメントおよび PSU ロケーションのリストをシステム内の物理ファ イルと比較する必要があります。次にシステムレベルのコマンドを使用して、未使 用の PSU を削除できます。 9-12 Table Management Utility Reference Guide RESTORE 構文 RESTORE 構文 以下のダイアグラムは、TMU RESTORE 文の構造を表しています。 RESTORE SEGMENT <segment_name> FORCE PSU ' <pathname>' FORCE ; AS OF '<timestamp>' SHOW SEGMENT <segment_name> RESTORE 操作の対象セグメントを 1 つ指定します。指定 のセグメントは、RBW_SEGMENTS テーブルの中に存在 していることが必要です。セグメントとそれが所属する テーブルの定義は、バックアップ後に変更されていてはい けません。 PSU '<pathname>' RESTORE 操作の対象 PSU ( ファイル ) を 1 つ指定します。 ファイル名は、一重引用符で囲みます。ファイルのフル パスを指定する必要はありません。相対パス名を使用でき ます。 指定の PSU は、RBW_STORAGE テーブルの中に存在して いることが必要です。PSU とそれが所属するテーブルの 定義は、バックアップ後に変更されていてはいけません。 セグメントも PSU も指定されていない場合のデフォルト 操作は、データベース全体の完全復元です。 FORCE 復元元となるバックアップが行われた後に、指定された PSU またはセグメントに加えられた変更に関係なく、部 分的な RESTORE 操作を実行することを指定します。この オプションは、データベースの完全復元には使用できませ ん。FORCE オプションを使用する場合の詳細については、 20 ページを参照してください。 データベースの復元 9-13 RESTORE 構文 AS OF '<timestamp>' データベースの復元時点を指定します。<timestamp> は必 ず一重引用符で囲い、以下のフォーマットに従う必要があ ります。 'yyyy-mm-dd.hh:mm:ss' yyyy: 年、必ず 4 桁 mm: 月、1 ∼ 12 dd: 日、1 ∼ 31 hh: 時、0 ∼ 23 mm: 分、0 ∼ 59 ss: 秒、0 ∼ 59 たとえば、'2001-12-31.11:59:59' 日付 (yyyy-mm-dd) はすべて指定する必要がありますが、 時間の指定はオプションです。時間を指定しない場合は、 ピリオドは入れないでください。時間文字列の 3 つの部分 をすべて指定する必要はありません。hh、hh:mm、およ び hh:mm:ss の指定が可能です。 復元操作で AS OF が指定されている場合、 rbw_media_history ファイルは rbw_media_history という ファイルにコピーされます。この場合、<timestamp>.sv の <timestamp> は、復元操作を実行する時間です (AS OF のタ イムスタンプではありません )。AS OF のタイムスタンプ よりも後にタイムスタンプを押されたバックアップ記録 は、現在のバージョンの rbw_media_history ファイルから 削除されます。このファイルの詳細については、 8-27 ページを参照してください。 SHOW 復元プロセスに必要なバックアップのシーケンスと内容を 表示します。このオプションの使用時は、実際の RESTORE 操作は行われません。 SHOW コマンドの出力データは一連のメッセージで、 バックアップされた各 PSU の詳細情報、および格納場所 や装置といった、復元パスの中の各バックアップに関する 情報が含まれています (9-17 ページを参照 )。SHOW オプ ションは、RESTORE コマンドのほかのすべてのオプショ ンと組み合わせて使用できます。 IBM では、復旧操作を実行する前に RESTORE SHOW コマ ンドを実行することをお勧めします。 9-14 Table Management Utility Reference Guide RESTORE 構文 構文例 以下の例はすべて、有効なデータベースの復元文です。 ■ restore; データベースを最後のチェックポイントの状態に復元します。 ■ restore as of '2001-12-31.11:59:59'; データベースを指定の日時の状態に復元します。 ■ restore segment sales_seg1; 指定のセグメントを最後のチェックポイントの状態に復元します。 ■ restore segment sales_seg1 as of '2001-12-31'; 指定のセグメントを指定の日の状態に復元します。 ■ restore psu '/rb/test/sales_psu1' force; チェックポイント バックアップが取られた後、PSU に加えられた変更の有 無に関わらず、指定の PSU を最後のチェックポイントの状態に復元しま す。 ■ restore show; データベースの復元パスを示します。 データベースの復元 9-15 RESTORE 構文 ■ restore as of '2001-12-31.11:59:59' show; 指定の日時のデータベースの復元パスを示します。 ■ restore segment sales_seg1 as of '2001-12-31.11:59:59' show; 指定されているセグメントについて、指定の日時の復元パスを示します。 メッセージを出力する RESTORE 操作の例 以下のメッセージは、レベル 0 およびレベル 2 のバックアップからデータベースが 正常に復元された場合に表示されます。 (C) Copyright IBM Corp. 1991-2002. All rights reserved. Version 06.20.0000(0)TST ** INFORMATION ** (7054) Starting database restore of database /qa/local/bobr/toucaroma. ** INFORMATION ** (7055) Starting restore from /qa/local/bobr/bar0/rb_bar_bobr_toucaroma_.20011220.132953.00001820.0001 on Friday, December 21, 2001 11:11:26 AM. ** INFORMATION ** (7044) Completed restore from /qa/local/bobr/bar0/rb_bar_bobr_toucaroma_.20011220.132953.00001820.0001 on Friday, December 21, 2001 11:11:27 AM. ** INFORMATION ** (7055) Starting restore from /qa/local/bobr/bar2/rb_bar_bobr_toucaroma_.20011220.133620.00002002.0001 on Friday, December 21, 2001 11:11:27 AM. ** INFORMATION ** (7044) Completed restore from /qa/local/bobr/bar2/rb_bar_bobr_toucaroma_.20011220.133620.00002002.0001 on Friday, December 21, 2001 11:11:27 AM. ** INFORMATION ** (560) Restore process will re-start the database /qa/local/bobr/toucaroma now. ** INFORMATION ** (7088) Restore of the database /qa/local/bobr/toucaroma completed successfully on Friday, December 21, 2001 11:11:27 AM. ** STATISTICS ** (500) Time = 00:00:00.14 cp time, 00:00:00.86 time, Logical IO count=881, Blk Reads=933, Blk Writes=705 9-16 Table Management Utility Reference Guide RESTORE 構文 RESTORE SHOW 操作の出力データの例 RESTORE...SHOW コマンドの出力データの先頭には、以下に示す 3 つの一般的な バックアップ情報が示されます。 ■ ■ ■ レベル (0、1、2) メディアのタイプ (XBSA、テープ、ディレクトリ ) タイプ ( オンライン、チェックポイント、外部 ) これらの情報は、復元パスに含まれているバックアップごとに繰り返し表示されま す。たとえば出力データには、レベル 0 のバックアップに関する詳細情報、続いて レベル 2 のバックアップに関する同様の情報が含まれる場合があります。 主エントリの下には、PSU レベルの情報を示す行が表示されます。 <first_PSU_name> <media_ID> <full_backup> <backup_size> <timestamp> <second_PSU_name> <media_ID> <full_backup> <backup_size> <timestamp> ... ... ... ... ... ■ ■ ■ ■ <media_ID>: バックアップ ファイルの場所 <full_backup>:1 または 0。PSU 全体がバックアップされたのか (1)、あるい はその一部のブロックだけがバックアップされたのか (0) を示します。 <backup_size>:8K 単位でバックアップされた、対象 PSU のブロックの数 <timestamp>:PSU がバックアップされた日時 データベースの復元 9-17 RESTORE 構文 たとえば、RESTORE SHOW コマンドの出力データの一部を以下に示します。この 例では、復元パスにはレベル 0 のチェックポイント バックアップとレベル 1 の チェックポイント バックアップが含まれています。 brick % rb_tmu -d AROMA tb_db_show.tmu system manager (C) Copyright IBM Corp. 1991-2002. All rights reserved. Version 06.20.0000(0)TST ** INFORMATION ** (7074) The following messages contain information about the list of PSUs to be restored: BACKUP_LEVEL: Level_0 MEDIA_TYPE: DIRECTORY BACKUP_TYPE: CHECKPOINT PSU_NAME:"/qa/local/bobr/tb_db/RB_DEFAULT_IDX" MEDIA_ID:"/devel/local/bobr/tb_db_backup/rb_bar_AROMA__________.20011119.162542.00 032049.0001" FULL_BACKUP:1 BACKUP_SIZE:41 TIMESTAMP:2001-11-19.16:25:42 PSU_NAME:"/qa/local/bobr/tb_db/RB_DEFAULT_LOCKS" MEDIA_ID:"/devel/local/bobr/tb_db_backup/rb_bar_AROMA__________.20011119.162542.00 032049.0001" FULL_BACKUP:1 BACKUP_SIZE:8 TIMESTAMP:2001-11-19.16:25:42 PSU_NAME:"/qa/local/bobr/tb_db/RB_DEFAULT_TABLES" MEDIA_ID:"/devel/local/bobr/tb_db_backup/rb_bar_AROMA__________.20011119.162542.00 032049.0001" FULL_BACKUP:1 BACKUP_SIZE:12 TIMESTAMP:2001-11-19.16:25:42 PSU_NAME:"/qa/local/bobr/tb_db/RB_DEFAULT_INDEXES" MEDIA_ID:"/devel/local/bobr/tb_db_backup/rb_bar_AROMA__________.20011119.162542.00 032049.0001" FULL_BACKUP:1 BACKUP_SIZE:19 TIMESTAMP:2001-11-19.16:25:42 PSU_NAME:"/qa/local/bobr/tb_db/RB_DEFAULT_SEGMENTS" MEDIA_ID:"/devel/local/bobr/tb_db_backup/rb_bar_AROMA__________.20011119.162542.00 032049.0001" FULL_BACKUP:1 BACKUP_SIZE:32 TIMESTAMP:2001-11-19.16:25:42 ... BACKUP_LEVEL: Level_1 MEDIA_TYPE: DIRECTORY BACKUP_TYPE: CHECKPOINT PSU_NAME:"/qa/local/bobr/tb_db/RB_DEFAULT_IDX" MEDIA_ID:"/devel/local/bobr/tb_db_backup/rb_bar_AROMA__________.20011119.163859.00 032173.0001" FULL_BACKUP:1 BACKUP_SIZE:42 TIMESTAMP:2001-11-19.16:38:59 PSU_NAME:"/qa/local/bobr/tb_db/RB_DEFAULT_LOCKS" MEDIA_ID:"/devel/local/bobr/tb_db_backup/rb_bar_AROMA__________.20011119.163859.00 032173.0001" FULL_BACKUP:1 BACKUP_SIZE:8 TIMESTAMP:2001-11-19.16:38:59 PSU_NAME:"/qa/local/bobr/tb_db/RB_DEFAULT_TABLES" MEDIA_ID:"/devel/local/bobr/tb_db_backup/rb_bar_AROMA__________.20011119.163859.00 032173.0001" FULL_BACKUP:1 BACKUP_SIZE:13 TIMESTAMP:2001-11-19.16:38:59 PSU_NAME:"/qa/local/bobr/tb_db/RB_DEFAULT_INDEXES" MEDIA_ID:"/devel/local/bobr/tb_db_backup/rb_bar_AROMA__________.20011119.163859.00 032173.0001" FULL_BACKUP:1 BACKUP_SIZE:20 TIMESTAMP:2001-11-19.16:38:59 PSU_NAME:"/qa/local/bobr/tb_db/RB_DEFAULT_SEGMENTS" MEDIA_ID:"/devel/local/bobr/tb_db_backup/rb_bar_AROMA__________.20011119.163859.00 032173.0001" FULL_BACKUP:1 BACKUP_SIZE:34 TIMESTAMP:2001-11-19.16:38:59 ... ** STATISTICS ** (500) Time = 00:00:00.03 cp time, 00:00:00.03 time, Logical IO count=3, Blk Reads=0, Blk Writes=2 9-18 Table Management Utility Reference Guide 部分復元の手順 部分復元の手順 部分復元操作を使用して、データベースを復元できる場合もあります。部分復元を 使用できるのは、基本テーブル、インデックス セグメント、および PSU だけです。 システム テーブルのデータは部分復元できません ( システム テーブルは、完全復元 操作の一部として復元されます )。部分復元操作では、指定のセグメントまたは PSU を、最後のチェックポイント バックアップの状態に復旧します。完全復元操作 と同様に、最後のチェックポイント バックアップ後にオンライン バックアップで 取られた変更内容は復元できません。 重要 : 部分復元は、できるだけ避けてください。部分復元する必要がある場合は、 完全復元と組み合わせるのではなく、単独で実行するようにしてください。同じオ ブジェクトに対して、複数の部分復元を連続して実行することは避けてください。 FORCE オプション (9-20 ページを参照 ) の必要性のあるなしに関わらず、部分復元 操作後にデータベースが一貫した状態に戻るという保証はありません。 RBW_SEGMENTS または RBW_STORAGE テーブルに記録されている単一セグメン トまたは PSU がデータベースの中に存在しない場合、これらは復元できません。た とえば、テーブルとそのセグメントを誤って削除してしまった場合などです。この ような場合は、次のどちらかの処理を実行します。 ■ ■ 完全復元を実行する。このソリューションをお勧めします。 失われたセグメントを再作成してから、これを復元する。セグメントは、 バックアップを取ったときと全く同じに定義する必要があります。復元操 作では、ファイル名やサイズ パラメータの定義の違いは検知されません。 定義に違いがある場合、完全復元が必要になるほどデータベースが破損す る可能性もあります。 次のような場合には、単一セグメントや PSU の復元は避けてください。 ■ ■ 目的のセグメントが所属するテーブルのテーブル記述、または目的の PSU が含まれているセグメントが変更された場合。たとえば、コラムの追加や 削除など。 目的のセグメント、または目的の PSU が含まれているセグメントの行数が 変更された場合。行の挿入や削除を実行した場合、行数が変わった可能性 があります。 上記のどの条件も当てはまらない場合は、部分復元が可能です。最新のバックアッ プがある場合、データを失わずにセグメントまたは PSU を復元できます。 重要 : 最新のバックアップがない場合、FORCE オプションを使用してセグメント または PSU を復元できる可能性があります。ただし、強制復元を実行した後は、 データベースを一貫性のある使用可能な状態にするために追加作業が必要となりま す。FORCE オプションを使用する前に、顧客サポートに相談なさることを強くお 勧めします。 データベースの復元 9-19 部分復元の手順 FORCE オプション 復元元のバックアップを実行した後で、部分復元に指定されているセグメントまた は PSU に加えられた変更内容は、復元操作によってセグメントまたは PSU がその バックアップ状態に戻されたときに失われます。失われる変更内容としては、変更 されたセグメント範囲や、追加、更新、または削除された行などが考えられます。 データが誤って失われないために、RESTORE コマンドで FORCE キーワードを使用 しなければ操作を完了できないことを伝える警告メッセージが TMU から出されま す。FORCE オプションによって、RESTORE コマンドは組み込まれている一貫性検 査の一部を上書きしてしまい、データベースが一貫性のない状態になる場合があり ます。 部分復元操作では、指定されたセグメントまたは PSU のバックアップ データをリ セットします。このため、FORCE オプションを使ってオブジェクトを復元した後 で、同じオブジェクトに対して続けて復元操作を実行した場合、この警告メッセー ジは表示されません。 部分復元後のデータベースの一貫性 FORCE オプションの指定の有無に関わらず、部分復元操作を実行した後は、関連 するデータベース オブジェクトの整合性を確認してください。 1. 該当するセグメントに対して、CHECK TABLE コマンドを実行します。 RISQL> check table <table_name> segment <segment_name> directory > '<directory_name>'; 2. このステップはオプションですが、できるだけセグメント内の物理構造の 一貫性を確認することをお勧めします。不整合が見つかった場合は、顧客 サポートの指示があるまで修復作業は行わないでください。 該当するセグメントまたは PSU が所属するテーブルに対して TMU REORG コマンドを実行して、インデックスおよび事前計算ビュー ( 該当する場合 ) を再構築します。すべてのインデックスとビューを、同時にテーブル上 に再構築してください。例を示します。 reorg <table_name> include precomputed views; 3. すべての参照元テーブルに対して、TMU REORG コマンドを繰り返し実行 します。 reorg <referencing_table_name> include precomputed views; 復元されたセグメントまたは PSU が所属するテーブルの参照レベルごと に、処理を繰り返し実行します。たとえば、アウトボード表のセグメント が復元された場合、このアウトボード表を参照するディメンジョン テーブ ルが最初に REORG され、次にこのディメンジョン テーブルを参照する ファクト表が REORG されます。 9-20 Table Management Utility Reference Guide 部分復元の手順 4. 部分復元操作の影響を受けるすべてのオブジェクトに対して、CHECK TABLE コマンドと CHECK INDEX コマンドを実行します。このステップ はオプションですが、できるだけ実行するようにしてください。 部分的な利用 破損しているセグメントの復元処理中に、ユーザに対して対象テーブルまたはイン デックスへの部分アクセス権を与えることができます。 1. 復元操作を実行する前に ALTER SEGMENT コマンドを実行して、破損し ているセグメントをオフラインにします。 RISQL> alter segment <segment_name> offline; 2. rbw.config ファイルで、すべてのユーザのテーブルおよびインデックスに PARTIAL_AVAILABILITY パラメータを設定します。あるいは、特定セッ ション用の SET PARTIAL AVAILABILITY コマンドを使用します。例を示 します。 RISQL> set partial availability info; 3. 部分的な利用の詳細については、『Administrator's Guide』および『SQL Reference Guide』を参照してください。 復元したセグメントをオンラインに戻してから、必要な REORG 操作を実 行します。 RISQL> alter segment <segment_name> online; データベースの復元 9-21 付録 例 ドでの モー の使用 付録 A の例は、TMU の Auto Aggregate 機能を使い日別入力データから 四半期と年間の累計を生成して管理する例を示しています。 付録 A では、以下について説明します。 ■ ■ ■ ■ ■ データベース環境 運用計画 ロード手順 : リフレッシュ ロード ロード手順 : 毎日のロード 結果 データベース環境 日別入力データは、日々の業務で使用している別のシステムから抽出 します。このデータは次の時間単位で使用します。 ■ ■ ■ 当月より前のすべての月の月間合計 当月の当日までの月間累計 当月の日別合計 上記の時間単位に加え、ウェアハウス データベースの分析に、当日ま での四半期累計と当日までの年間累計が必要です。これらの数値は TMU が自動的に生成し、データ ロードの中で更新できます。 ウェアハウス データベースは、新規の日別合計、当日までの月間累 計、それ以前の日別合計の修正値の情報を使って毎日更新されます。 月に 2 回、ウェアハウス データベース全体を再ロード ( リフレッシュ ) します。 この例では、今日の日付を 2000 年 5 月 4 日としています。 運用計画 運用計画 まず、日別値の修正データを反映させる方法を決定し、集計の対象期間を指定する period キーのコード体系を決めます。 日別入力データには、当日以前の修正値が含まれている可能性があるため、当日ま での四半期累計や当日までの年間累計を算出する際は注意が必要です。新規の日別 合計値を各集計値に加算しただけでは、すでに集計値に算入されている日の日別合 計の修正値をとらえることはできません。これを解決するには、当日までの月間累 計に 1 日ごとに算出したデータを使用します。各日について、前月の当日までの月 間累計を 2 つの集計値から減算し、新規の当日までの月間累計を加算すれば、日別 合計の修正値を反映させることができます ( 当月以外の修正値は、半月毎のリフ レッシュで反映 )。 この計画では、毎日の更新に使う入力データを 2 つのファイルに分割する必要があ ります。1 つのファイルに日別合計、もう 1 つのファイルには当日までの月間累計 を格納し、当日までの月間累計だけを集計値の算出に使用できるようにしておきま す。半月毎のリフレッシュ ( および初期ロード ) には、3 つのファイルを使用しま す。毎日の更新に使用する日別合計のファイルと当日までの月間累計のファイル、 そして前月までの月間データを格納したファイルの 3 つです。次の図は、これらの ファイルとその使い方を示しています。 (daily.dat) (mtd.dat) 日別合計 ( 製品と グループ別 ) 当日までの 月間累計 ( 製品と グループ別 ) (mon.dat) 前のすべての 月の月間累計 ( 製品と グループ別 ) 毎日のロードに使用 リフレッシュを初期ロードに使用 リフレッシュ後は、Auto Aggregate オプションを使って当日までの四半期と年間の 累計を算出します。前述したように、毎日の更新に使うデータを 2 つのファイルに 分割し、リフレッシュ データを 3 つのファイルに分割しておくと、リフレッシュ後 と毎日行う集計に使う当日までの月間累計を別にしておくことができます ( 当日と 前日の両方について当日までの月間レコードが必要なことに注意してください )。 A-2 Table Management Utility Reference Guide 運用計画 8 桁の period キーを使用し、YYQQMMDD のように、年、四半期、月、日を 2 文字 ずつで表します。このフォーマットを使い、集計の対象となる各期間を以下のよう に表します。 集計の対象機間 フォーマット 解説 日別合計 YYQQMMDD 8 桁すべてを充填。 月間合計 YYQQMM00 8 桁すべてを充填。 当日までの月間累計 YYQQMM00 8 桁すべてを充填。 当日までの四半期累計 YYQQ_ _ _ _ 4 文字の後に 4 文字の空白。 当日までの年間累計 YY_ _ _ _ _ _ 2 文字の後に 6 文字の空白。 例 :AGGREGATE モードでの TMU の使用 A-3 ディメンジョン テーブル ディメンジョン テーブル この例にあるディメンジョン テーブル Period、Product、Market は、図 1-1 から図 1-3 に示すように作成して、データをロードします。 図 1-1 Period テーブル データ period.dat 96010100 96010200 96010300 96020400 96020500 96020501 96020502 96020503 96020504 9601 9602 96 ロードされるテーブル ロードに使用される LOAD DATA 文 A-4 Table Management Utility Reference Guide create table period ( perkey char (8) not null, primary key (perkey)) maxrows per segment 48; load data inputfile 'period.dat' modify into table period ( perkey char(8)); ディメンジョン テーブル 図 1-2 Product テーブル データ product.dat 022 055 314 319 ロードされるテーブル ロードに使用される LOAD DATA 文 create table product( prodkey char(3) not null, primary key (prodkey)) maxrows per segment 8; load data inputfile 'product.dat' modify into table product( prodkey char(3)); 図 1-3 Market テーブル データ market.dat 478 523 931 ロードされるテーブル ロードに使用される LOAD DATA 文 create table market ( mktkey char (3) not null, primary key (mktkey)) maxrows per segment 8; load data inputfile 'market.dat' modify into table market ( mktkey char(3)); 例 :AGGREGATE モードでの TMU の使用 A-5 Sales テーブル Sales テーブル 以下の例のように、Sales テーブルを作成します。 create table sales( perkey char (8) not null, prodkey char(3) not null, mktkey char(3) not null, dollars integer, primary key (perkey, prodkey, mktkey), foreign key (perkey) references period (perkey), foreign key (prodkey) references product(prodkey), foreign key (mktkey) references market (mktkey)); Sales テーブルのデータは、3 つの入力ファイルから入力します。 ファイル データ month.dat 2000 年 1 ∼ 4 月の各月について、マーケット別、製品別の月間売 上合計が格納されています。 mtd.dat マーケット別、製品別の当日まで (2000 年 5 月 3 日まで ) の月間売 上累計が格納されています。 daily.dat 2000 年 5 月 1 ∼ 3 日の各日について、マーケット別、製品別の日 別売上合計が格納されています。 A-6 Table Management Utility Reference Guide Sales テーブル 1996 年 5 月当日までの 月間累計データ 1996 年 1 ∼ 4 月の月間データ /* month.dat */ 96010100022478132 96010100022523048 96010100022931019 96010100055478026 96010100055523423 96010100055931025 96010100314478721 96010100314523096 96010100314931516 96010100319478318 96010100319523741 96010100319931925 96010200022478012 96010200022523036 96010200022931428 96010200055478076 96010200055523011 96010200055931066 96010200314478030 96010200314523741 96010200314931852 96010200319478045 96010200319523098 96010200319931016 96010300022478231 96010300022523311 96010300022931056 96010300055478753 96010300055523072 96010300055931455 96010300314478622 96010300314523944 96010300314931823 96010300319478456 96010300319523029 96010300319931047 96020400022478036 96020400022523891 96020400022931038 96020400055478059 96020400055523761 96020400055931648 96020400314478089 /* mtd.dat */ 96020500022478055 96020500022523106 96020500022931066 96020500055478124 96020500055523164 96020500055931212 96020500314478124 96020500314523103 96020500314931107 96020500319478093 96020500319523094 perkey mktkey prodkey sales 4 つの製品 (022, 055, 314, 319), 3 つの市場 (478, 523, 931) 1996 年 5 月 3 日の日別データ /* daily.dat */ 96020501022478044 96020501022523033 96020501022931022 96020501055478055 96020501055523066 96020501055931099 96020501314478088 96020501314523077 96020501314931065 96020501319478045 96020501319523006 96020501319931008 96020502022478004 96020502022523068 96020502022931041 96020502055478023 96020502055523082 96020502055931091 96020502314478005 96020502314523009 96020502314931013 96020502319478021 96020502319523052 96020502319931049 96020503022478007 96020503022523005 96020503022931003 96020503055478046 96020503055523016 96020503055931022 96020503314478031 96020503314523017 perkey sales mktkey prodkey mktkey prodkey sales perkey 例 :AGGREGATE モードでの TMU の使用 A-7 ロード手順 : リフレッシュ ロード ロード手順 : リフレッシュ ロード 初期ロードと半月毎のリフレッシュで Sales テーブルにデータをロードする手順は、 以下のとおりです。( ステップ 1 ∼ 3 では、詳細レベルのレコードをロードします )。 1. 2. 3. 4. 5. 6. 7. 前月までの月間合計を格納している month.dat ファイルをロードします。 製品別、マーケット別の当日までの月間累計を格納している mtd.dat ファ イルをロードします。 当月の日別合計を格納している daily.dat ファイルをロードします。 ( ステップ 4 ∼ 5 では、四半期のレコードと当日までの四半期のレコードを 作成します。) month.dat ファイルを使い、前月まで (1 ∼ 4 月 ) のデータをロードし、前 の四半期 ( 第一四半期、つまり 1 ∼ 3 月 ) の累計を算出します。 mtd.dat ファイルを使い、当月 (5 月 ) の当日までの月間累計をロードし、 当日までの四半期累計 (4 ∼ 5 月の当日までの四半期合計 ) を算出します。 ( ステップ 6 ∼ 7 では、当日までの年間累計を集計します )。 month.dat ファイルを使い、前月まで (1 ∼ 4 月 ) のデータをロードし、前 月までの期間について、当日までの年間累計を集計します。 mtd.dat ファイルを使い、当月 (5 月 ) のデータをロードし、当月のデータ を算入した当日までの年間累計を集計します。 A-8 Table Management Utility Reference Guide ロード手順 : リフレッシュ ロード リフレッシュ ロードのステップ 1 ∼ 3 Sales テーブルへの初期ロードと、その後の半月毎のリフレッシュには、次の LOAD DATA 文を使用します。 /*initial load */ /*loading month records */ load data inputfile 'month.dat' modify into table sales( perkey char(8), prodkey char(3), mktkey char(3), dollars integer external (3)); /*loading month-to-date records */ load data inputfile 'mtd.dat' append into table sales( perkey char(8), prodkey char(3), mktkey char(3), dollars integer external (3)); /*loading daily records */ load data inputfile 'daily.dat' append into table sales( perkey char(8), prodkey char(3), mktkey char(3), dollars integer external (3)); 例 :AGGREGATE モードでの TMU の使用 A-9 ロード手順 : リフレッシュ ロード リフレッシュ ロードのステップ 4 ∼ 5 初期ロードと、その後の半月毎のリフレッシュで、四半期合計と当日までの四半期 累計を算出するには、次の LOAD DATA 文を使用します。 /* load monthly data and compute aggregates for full quarters*/ load data inputfile 'month.dat' modify aggregate into table sales( perkey position(1:4) char (8), prodkey position(9:11) char(3), mktkey position(12:14) char(3), dollars position(15) integer external(3) add); /* load month-to-date data; compute aggregate for qtr-todate*/ load data inputfile 'mtd.dat' modify aggregate into table sales( perkey position(1:4) char (8), prodkey position(9:11) char(3), mktkey position(12:14) char(3), dollars position(15) integer external(3) add); リフレッシュ ロードのステップ 6 ∼ 7 初期ロードと、その後の半月毎のリフレッシュで、年間合計と当日までの年間累計 を算出するには、次の LOAD DATA 文を使用します。 /*load monthly data and compute year-to-date for prior months*/ load data inputfile 'month.dat' modify aggregate into table sales( perkey position(1:2) char (8), prodkey position(9:11) char(3), mktkey position(12:14) char(3), dollars position(15) integer external(3) add); /* load current month and complete year-to-date aggregate*/ load data inputfile 'mtd.dat' modify aggregate into table sales( perkey position(1:2) char (8), prodkey position(9:11) char(3), perkey position(12:14) char(3), dollars position(15) integer external(3) add); A-10 Table Management Utility Reference Guide ロード手順 : 毎日のロード ロード手順 : 毎日のロード 毎日の更新データを使って Sales テーブルにデータをロードする手順は、以下のと おりです。 ( ステップ 1 ∼ 2 では、新規データおよび修正データをロードします。) 1. 2. 3. 4. 5. 6. MODIFY モードで、当月の日別合計を格納している daily.dat ファイルを ロードします ( 修正データをとらえるため )。 MODIFY モードで、最新の当日までの月間累計を格納している mtd.dat.new ファイルをロードします。 ( ステップ 3 ∼ 4 では、修正したデータで四半期合計と当日までの四半期累 計を調整します。) MODIFY AGGREGATE モードで、mtd.dat.old ファイルをロードし、dollars 列の減算を行い、昨日の当日までの月間累計を四半期合計と当日までの四 半期累計から減算します。 MODIFY AGGREGATE モードで、mtd.dat.new ファイルをロードし、 dollars 列の加算を行い、今日の当日までの月間累計を四半期合計と当日ま での四半期累計に加算します。 ( ステップ 5 ∼ 6 では、修正データで年間合計と当日までの年間累計を調整 します。) MODIFY AGGREGATE モードで、mtd.dat.old ファイルをロードし、dollars 列の減算を行い、昨日の当日までの月間累計を年間合計と当日までの年間 累計から減算します。 MODIFY AGGREGATE モードで、mtd.dat.new ファイルをロードし、 dollars 列の加算を行い、今日の当日までの月間累計を年間合計と当日まで の年間累計に加算します。 例 :AGGREGATE モードでの TMU の使用 A-11 ロード手順 : 毎日のロード 毎日のロードのステップ 1 ∼ 2 日別詳細データをロードするには、次の LOAD DATA 文を使用します。 /*loading month-to-date records*/ load data inputfile 'mtd.dat.new' modify into table sales( perkey char(8), prodkey char(3), mktkey char(3), dollars integer external (3)); /*loading daily records*/ load data inputfile 'daily.dat' modify into table sales( perkey char(8), prodkey char(3), mktkey char(3), dollars integer external (3)); 毎日のロードのステップ 3 ∼ 4 修正した合計値を反映して、四半期合計と当日までの四半期累計を算出するには、 以下の LOAD DATA 文を使用します。 /*after initial loads, daily updates*/ /*using yesterday's mtd.dat file */ /*(you will always have to keep the prior day's data)*/ /* monthly totals and aggregates for previous quarters /* load data inputfile 'mtd.dat.old' */yesterday's file/* modify aggregate into table sales( perkey position(1:4) char (8), prodkey position(9:11) char(3), mktkey position(12:14) char(3), dollars position(15) integer external(3) subtract); /* current month for current quarter-to-date data */ load data inputfile 'mtd.dat.new' /*today's file*/ modify aggregate into table sales( perkey position(1:4) char (8), prodkey position(9:11) char(3), mktkey position(12:14) char(3), dollars position(15) integer external(3) add); A-12 Table Management Utility Reference Guide ロード手順 : 毎日のロード 毎日のロードのステップ 5 ∼ 6 修正した合計値を反映して、年間合計と当日までの年間累計を算出するには、以下 の LOAD DATA 文を使用します。 /*aggregates of year-to-date data - previous months*/ load data inputfile 'mtd.dat.old' /*yesterday's file*/ modify aggregate into table sales( perkey position(1:2) char (8), prodkey position(9:11) char(3), mktkey position(12:14) char(3), dollars position(15) integer external(3) subtract); /*aggregates of year-to-date data - current month*/ load data inputfile 'mtd.dat.new' /*today's file*? modify aggregate into table sales( perkey position(1:2) char (8), prodkey position(9:11) char(3), mktkey position(12:14) char(3), dollars position(15) integer external(3) add); 例 :AGGREGATE モードでの TMU の使用 A-13 結果 結果 日別合計の修正を反映し、5 月 4 日について、新しい日別合計ファイル (daily.dat) と 月間累計ファイル (mtd.dat) でデータベースを更新します。新しいデータは、次の 図のようになります。ここには、daily.dat ファイルから抽出した 5 月 1 日の先頭行、 修正された合計値 (5 月 1 日の 3 項目 )、5 月 4 日のデータだけを示します。 1996 年 5 月当日までの 月間累計データ (mtd.dat) 96020500022478100 96020500022523142 96020500022931093 96020500055478182 96020500055523233 96020500055931303 96020500314478206 96020500314523176 96020500314931361 96020500319478256 96020500319523208 96020500319931168 修正した合計値 1996 年 5 月当日までの 月間累計データ A-14 Table Management Utility Reference Guide 1996 年 5 月 4 日の 日別データ (daily.dat) 96020501022478044 … 96020501314931265 96020501319478154 96020501319523060 … 96020504022478045 96020504022523036 96020504022931027 96020504055478058 96020504055523069 96020504055931091 96020504314478082 96020504314523073 96020504314931054 96020504319478054 96020504319523060 96020504319931080 結果 5 月 4 日の修正後の売上だけでなく、前日までの修正後の売上も反映した当日まで の四半期累計と当日までの年間累計は、以下のように変更されます。 5 月 3 日の集計 RISQL> select * from sales where perkey = '9602 '; PERKEY PROD MKTK DOLLARS 9602 022 478 91 9602 022 523 997 9602 022 931 104 9602 055 478 183 9602 055 523 925 9602 055 931 860 9602 314 478 213 9602 314 523 181 9602 314 931 158 9602 319 478 605 9602 319 523 620 9602 319 931 184 RISQL> select * from sales where perkey = '96 '; PERKEY PROD MKTK DOLLARS 96 022 478 466 96 022 523 1392 96 022 931 607 96 055 478 1038 96 055 523 1431 96 055 931 1406 96 314 478 1586 96 314 523 1962 96 314 931 2349 96 319 478 1424 96 319 523 1488 96 319 931 1172 5 月 4 日の集計 RISQL> select * from sales where perkey = '9602 '; PERKEY PROD MKTK DOLLARS 9602 022 478 136 9602 022 523 1033 9602 022 931 131 9602 055 478 241 9602 055 523 994 9602 055 931 951 9602 314 478 295 9602 314 523 254 9602 314 931 412 9602 319 478 768 9602 319 523 734 9602 319 931 264 RISQL> select * from sales where perkey = '96 '; PERKEY PROD MKTK DOLLARS 96 022 478 511 96 022 523 1428 96 022 931 634 96 055 478 1096 96 055 523 1500 96 055 931 1497 96 314 478 1668 96 314 523 2035 96 314 931 2603 96 319 478 1587 96 319 523 1602 96 319 931 1252 例 :AGGREGATE モードでの TMU の使用 A-15 付録 バックアップの ための格納域マネー ジャ構成 この付録では、XBSA 準拠の格納域管理システムに固有の構成要件に ついて説明します。XBSA インターフェイスを使用した TMU バック アップの実行の詳細については、8-18 ページを参照してください。 付録 A では、以下について説明します。 ■ ■ ■ ■ 一般的なガイドライン Informix 格納域マネージャ (ISM) Legato Networker (NSR) Tivoli Storage Manager (TSM) 一般的なガイドライン Red Brick データベースを XBSA 準拠の格納域管理システムにバック アップするには、まず適切な格納域マネージャ サーバと必要な接続用 ソフトウェアをインストールおよび構成する必要があります。一般的 には、「サーバ」パッケージ自身に加えて、「クライアント」パッケー ジと「Informix」アドオン モジュールまたは「XBSA」アドオン モ ジュールが必要です。詳細については、格納域マネージャのマニュア ルを参照してください。 BAR_SM_USER パラメータ 格納域マネージャに正しく接続するには、rbw.config ファイル内で BAR_SM_USER パラメータを正しく設定する必要があります。このパ ラメータは、XBSA 仕様の bsaObjectOwner 変数に対応するものです。 ただし、パラメータの値は使用する格納域マネージャによって異なり ます。有効なパラメータ値については、格納域マネージャのクライア ントまたは API のリファレンス マニュアルを参照してください。 以降の節では、いくつか例を挙げて説明します。 BAR_XBSA_LIB パラメータ BAR_XBSA_LIB パラメータ rbw.config ファイル内の BAR_XBSA_LIB エントリに、格納域マネージャのベンダに よって提供される XBSA ライブラリを指定する必要があります。以降の節で示すよ うに、ライブラリの名前、接尾辞、および場所がオペレーティング システムによっ て異なる場合があります。 Informix 格納域マネージャ (ISM) rb_tmu ユーザ ( バックアップを実行するユーザ ) に ISM 管理者 (-admin) のアクセス 権が割り当てられていることを確認します。 ISM 内で XBSA bsaObjectOwner 変数が INFORMIX としてハードコードされていま す。したがって、rbw.config ファイル内で BAR_SM_USER オプションに INFORMIX を設定する必要があります。libbsa.so ( または libbsa.sl または libbsa.so.1) ファイル は通常、UNIX プラットフォーム上の XBSA ライブラリです。BAR_XBSA_LIB オプ ションに適切なファイル名を設定します。 例を示します。 OPTION BAR_SM_USER INFORMIX OPTION BAR_XBSA_LIB /usr/informix/lib/libbsa.so B-2 Table Management Utility Reference Guide Legato Networker (NSR) Legato Networker (NSR) インストール手順の詳細については、Legato のインストール ガイドを参照してくだ さい。以下のパッケージをインストールする必要があります。 ■ ■ サーバ ソフトウェア :Legato Networker Server クライアント ソフトウエア (Red Brick サーバをインストールしたコン ピュータ上 ): ❑ Legato Networker Client ❑ Informix Networker モジュール (XBSA インターフェイス )。 rb_tmu ユーザ ( バックアップを実行するユーザ ) に管理者のアクセス権が割り当て られていることを確認します。 NSR 内で XBSA bsaObjectOwner 変数が INFORMIX としてハードコードされていま す。したがって、rbw.config ファイル内で BAR_SM_USER オプションに INFORMIX を設定する必要があります。Informix Networker モジュールから得られる libxnmi.so ( または libxnmi.sl または libxnmi.so.1) ファイルは通常、UNIX プラットフォーム上 の XBSA ライブラリです。Windows NT では、このファイルは %NSRDIR%¥bin¥libbsa.dll です。 例を示します。 OPTION BAR_SM_USER INFORMIX OPTION BAR_XBSA_LIB /usr/lib/libxnmi.so XBSA バックアップのための格納域マネージャ構成 B-3 Tivoli Storage Manager (TSM) Tivoli Storage Manager (TSM) インストール手順の詳細については、Tivoli のインストール ガイドを参照してくだ さい。以下のパッケージをインストールする必要があります。 ■ ■ サーバ ソフトウェア : ❑ Tivoli Storage Manager Server (「サーバ」パッケージ ) ❑ Tivoli Storage Manager Server (「デバイス」パッケージ ) クライアント ソフトウエア (Red Brick サーバをインストールしたコン ピュータ上 ): ❑ TSM Backup-Archive Client (「admin」、「api」、および「ba」の各パッ ケージ ) ❑ Tivoli Data Protection for Informix (TDPI)。詳細については、TDPI のマ ニュアルを参照してください。 TSM クライアント「ノード」の名前は、XBSA bsaObjectOwner 変数として、およ び BAR_SM_USER の値として使用されます。以下の例では、デフォルトの CLIENT ノードを使用しています。32 ビット プラットフォームでは、Informix XBSA ライブ ラリは以下のディレクトリの下にあります。 tivoli_client_dir/informix/bin 64 ビット プラットフォームの場合は以下のとおりです。 tivoli_client_dir/informix/bin64 TMU と Informix XBSA ライブラリはともに、32 ビットまたは 64 ビットのいずれか であることが必要です。 以下に、32 ビット Solaris 用の BAR_XBSA_LIB の設定例を示します。TSM では、 Windows NT XBSA ライブラリは提供されていません。しかし、Solaris rb_tmu およ び XBSA ライブラリを使用して Windows NT Tivoli サーバへのバックアップを実行で きます。 OPTION BAR_SM_USER CLIENT OPTION BAR_XBSA_LIB /opt/tivoli/tsm/client/informix/bin/libTDPinf.so AIX プラットフォーム上では、XBSA ライブラリ ファイルの名前は bsashr10.o で す。 B-4 Table Management Utility Reference Guide 特記事項 特記事項 本書に記載されている製品、サービス、または機能は、国によっては 提供されない場合があります。各地域で現在利用可能な IBM 製品およ びサービスについては、該当地域の担当者にお問い合わせください。 IBM 製品、プログラム、またはサービスのすべての記述箇所は、対象 の IBM 製品、プログラム、またはサービスのみが使用されることを明 示的または暗示的に示すものではありません。IBM の知的所有権を侵 害しない、同等の機能を有する製品、プログラム、またはサービスを 使用できる場合があります。ただし、IBM 以外の製品、プログラム、 またはサービスの操作に関する評価および確認は、お客様の責任の元 に行ってください。 本書に記載の各事項は、特許または特許出願により保護されている場 合があります。本書の提供は、これらの特許の使用許諾をお客様に付 与するものではありません。使用許諾に関する質問は、下記に書面に てお問い合わせください。 IBM Director of Licensing IBM Corporation North Castle Drive Armonk, NY 10504-1785 U.S.A. ダブル バイト (DBCS) に関する使用許諾については、各国 IBM の知的 財産部門にお問い合わせいただくか、下記まで書面にてお問い合わせ をご送付ください。 IBM World Trade Asia Corporation Licensing 〒 106 - 0032 東京都港区六本木 3 丁目 2 - 31 以下の段落の記述は、英国、または記述の内容が地域法に合致しない国には適用さ れません。International Business Machines Corporation は、本書を「現状のまま」提供 し、明示的または黙示的を問わずいかなる保証の責任も負わないものとし、第三者 の権利侵害のないことへの保証、商品性の保証、または特定目的への適合性の保証 などを含み、かつこれらに限定されない、いかなる黙示的な保証の責任も負わない ものとします。特定の取引における明示的または黙示的な保証の制限が国または地 域によって禁じられる場合、この記述は適用されないものとします。 この情報には、技術上不正確な点や誤植が含まれている可能性があります。本書の 情報は定期的に見直され、必要な変更は本書の改訂版に反映されます。IBM は本書 に記載されている製品またはプログラムに対して、随時、予告なしに変更または改 良を加えることがあります。 本書において参照されている IBM 以外の Web サイトは、単に便宜上の理由で記載 されているだけであり、それらのサイトに対する IBM の保証または支持を示すもの ではありません。それらの Web サイトで提供される内容は、本 IBM 製品には関係 ありません。これらの利用は、お客様の責任の元で行ってください。 お客様により提供された情報は、IBM が適切と判断するすべての方法で、使用また は頒布される場合があります。これにより、お客様に責任が発生することはありま せん。 本プログラムのライセンス保持者で、次の事項を可能にするための情報を希望する 方は、下記にお問い合わせください。(i) 独自に作成されたプログラムと、他のプロ グラム ( 本製品を含む ) との間の情報交換、(ii) 交換された情報の共用 IBM Corporation J46A/G4 555 Bailey Avenue San Jose, CA 95141-1003 U.S.A. 上記の情報は、適切な使用条件の元で利用可能ですが、有償の場合もあります。 本書で説明されるライセンス プログラムおよびこれに関して利用できるライセンス 資料は、IBM Customer Agreement、IBM International Program License Agreement、また はそれと同等の合意の各条項に基づいて、IBM より提供されます。 2 Table Management Utility Reference Guide この文書に含まれるすべての実行データは、管理環境下で決定されたものです。こ のため、操作環境によって実行結果が大きく変化する場合があります。開発レベル のシステムで測定が行われた可能性がありますが、その測定値が一般に利用可能な システムのものと同じである保証はありません。さらに、一部の測定値には推定値 が含まれている場合があります。このため、実際の結果とは異なる可能性がありま す。本書を利用されるお客様は、それぞれの特定の環境に適したデータを検証する 必要があります。 IBM 以外の製品に関する情報は、各製品の供給者、出版物、または公的に入手可能 な情報源から取得されたものです。IBM ではこれらの製品をテストしておらず、 IBM 以外の製品のパフォーマンス、互換性、またはその他の要件については確認し ていません。IBM 以外の製品の機能に関する質問については、各製品の供給者にお 問い合わせください。 特記事項 3 商標 AIX、DB2、DB2 Universal Database、Distributed Relational Database Architecture、NUMA-Q、OS/2、OS/390、および OS/400、IBM Informix、 C-ISAM、Foundation.2000TM、IBM Informix 4GL、IBM Informix DataBlade Module、Client SDKTM、CloudscapeTM、CloudsyncTM、 IBM Informix Connect、IBM Informix Driver for JDBC、Dynamic ConnectTM、IBM Informix Dynamic Scalable ArchitectureTM (DSA)、 IBM Informix Dynamic ServerTM、IBM Informix Enterprise Gateway Manager (Enterprise Gateway Manager)、IBM Informix Extended Parallel ServerTM、i.Financial ServicesTM、J/FoundationTM、MaxConnectTM、Object TranslatorTM、Red BrickTM、IBM Informix SE、IBM Informix SQL、InformiXMLTM、RedBack、SystemBuilderTM、U2TM、UniData、UniVerse、 wintegrate は、International Business Machines Corporation の商標または登録商標で す。 Java および Java ベースの商標およびロゴは、米国およびその他の国における Sun Microsystems, Inc の商標または登録商標です。 Windows、Windows NT、および Excel は、米国およびその他の国における Microsoft Corporation の商標または登録商標です。 UNIX は、米国およびその他の国における、X/Open Company Limited が独占的にラ イセンスしている登録商標です。 本書におけるその他の会社、製品およびサービスの名称は、それぞれ各社の商標ま たはサービス マークです。 4 Table Management Utility Reference Guide 記号 数字 A B C あ行 か行 さ行 D た行 E F な行 G H は行 I J ま行 K L や行 M N O ら行 P Q R S T U V W X Y Z わ行 索引 索引 記号 #PCDATA、XML ファイル 3-75 %、TMU NULL 標記文字 4-7, 4-21, 5-8 %、TMU ワイルドカード文字 3-93 .backup_dirty_psu ファイル 8-26 .dbinfo ファイル 8-26 .odbc.ini ファイル、DSN 2-13 _、TMU ワイルドカード文字 3-93 A ABORT キーワード、TMU REORG 6-15 ACCEPT キーワード、TMU 2-6, 3-91 ACCESS_ANY タスク権限 7-5 action_log ファイル 8-26 ADD 集約演算子、TMU 3-73 AGGREGATE モード、データの ロード 3-32 AGGREGATE 演算子、TMU 3-76 ALTER DATABASE コマンド CLEAN VERSION LOG 8-14, 8-15 CREATE BACKUP DATA 8-9 DROP BACKUP DATA 8-11 ALTER SEGMENT 操作、バック アップ セグメント 8-11 APPEND モード、データのロー ド 3-31 AS $<pseudocolumn>、TMU 3-67 Auto Aggregate 機能、TMU 説明 1-6 Auto Aggregate 機能、TMU 例 A-1 Automatic Row Generation、TMU 構文と使い方 3-43 説明 3-7, 3-16 ∼ 3-22 AUTOROWGEN パラメータ 「Automatic Row Generation」を参 照 B BACKUP_DATABASE 権限 2-45, 8-13 bar_metadata ディレクトリ 8-26 BAR_SM_USER パラメータ 8-19, B-1 BAR_UNIT_SIZE パラメータ 2-44 BAR_XBSA_LIB パラメータ 8-19, B-2 barxbsa ユーティリティ 8-19 C Capacity パラメータ、テープ バッ クアップ用 8-23 Capacity パラメータ、テープバック アップ 8-18 CDATA セクション、XML ファイ ル 3-75 CHARACTER フィールド型、 TMU 3-99 CHECK TABLE コマンドと CHECK INDEX コマンド 9-21 Comment 句、LOAD DATA 文 3-95 ∼ 3-96 CONSTANT フィールド、LOAD DATA 文 3-84 CREATE SEGMENT コマンド 8-9 記号 数字 A B C あ行 か行 さ行 D た行 E D DECIMAL フィールド型、 TMU 3-101, 3-104 DEFERRED INDEXES キーワード、 TMU REORG 6-13 DELETE ROW キーワード、TMU REORG 6-16 Discard ファイル、TMU タイプと用途 3-43 ロケール 3-42 DISCARDFILE キーワード REORG 6-16 TMU 3-46, 3-60 Discardfile 句、REORG 6-16 DISCARDS キーワード REORG 6-16 TMU 3-48 Discard 句 XML Discard の再ロード 3-44 データのロード 3-43 ∼ 3-57 Discard ファイル、TMU オプティマイズ ロード破棄 3-60 参照整合性による破棄 6-18 参照整合性の破棄 3-46 すべて破棄 3-46 複数 3-43 DOUBLE PRECISION フィールド 型、TMU 3-106 DST_DATABASES テーブル 8-9 ESCAPE キーワード G な行 CREATE TABLE コントロール ファ イル UNLOAD 文 4-10 Criteria 句、LOAD DATA 文 構文と使い方 3-90 比較、3 つの論理値 3-93 ロケールの使用 3-42 CURRENT_DATE キーワード、 TMU 3-107 CURRENT_TIMESTAMP キーワー ド、TMU 3-107 CURRENT_TIME キーワード、 TMU 3-107 E F H は行 I J ま行 K L や行 M N O ら行 P F FIXEDLEN キーワード、LOAD DATA 文 3-124 FLOAT EXTERNAL フィールド型、 TMU 3-103 FORCE INTACT コマンド、ALTER SEGMENT 8-11 FORCE オプション、復元操作 9-20 FORMAT キーワード、TMU XML 3-34 IBM SEPARATED by '<c>' フォー マット 3-34 SEPARATED by '<c>' フォーマッ ト 3-33 UNLOAD 3-34 Format 句、LOAD DATA 文 3-29 GENERATE 文 (TMU) LOAD DATA の構文と使用方 法 5-5 ∼ 5-7 rb_cm の使用例 7-14 例 5-7 GENERATE 文 (TMU) CREATE TABLE の構文と使用方 法 5-3 ∼ 5-5 I IBM 標準ラベル テープ 3-122 INCREMENT フィールド 3-87 Index name 句、TMU REORG 6-13 INDEX_TEMPSPACE_DUPLICATE SPILLPERCENT パラメータ 構文 2-29 使用上の注意 2-31 INDEX_TEMPSPACE パラメータ DIRECTORY 2-30 MAXSPILLSIZE 2-30, 2-31 THRESHOLD 2-30 2 Table Management Utility Reference Guide R S T U V W X Y わ行 UNLOAD 文 4-14 Criteria 句 3-93 EXTERNAL キーワード、TMU UNLOAD 文 4-9 G Q TMU コントロール 2-28 Input 句、LOAD DATA 文 3-24 ∼ 3-29 INSERT モード、データのロー ド 3-31 INTEGER フィールド型、 TMU 3-101, 3-105 INTO OFFLINE SEGMENT キー ワード、TMU 3-87 INVALIDATE INDEX キーワード、 TMU REORG 6-15 L LIKE、NOT LIKE、TMU ワイルド カード 3-93 LOAD DATA コントロール ファイ ル rb_cm ユーティリティの使 用 7-11 UNLOAD 文 4-10 LOAD DATA 文 ACCEPT 基準 2-6, 3-91 ADD 集約演算子 3-73 AGGREGATE モード 3-32 APPEND モード 3-31 AUTOROWGEN キーワード 3-49 CONSTANT フィールド 3-84 FIXEDLEN キーワード 3-124 GENERATE で作成 7-11 INCREMENT フィールド、入力 データ 3-87 INSERT モード 3-31 MAX 集約演算子 3-74 MIN 集約演算子 3-73 MODIFY モード 3-33 NLS_LOCALE キーワード 3-38 NULLIF キーワード 3-73 POSITION キーワード 3-72 rb_cm コントロール ファイ ル 7-10 rb_cm の例 7-14, 7-17 RECORDLEN キーワード 3-30, 3-123 REJECT 基準 3-91 REPLACE モード 3-31 RETAIN キーワード 3-67 Z 記号 数字 A B C あ行 か行 さ行 D た行 E F な行 SEQUENCE フィール ド 3-85 ∼ 3-86 SUBSTR キーワード 3-100 SUBTRACT 集約演算子 3-73 UPDATE モード 3-32 句、メイン Criteria 3-90 MMAP Index 3-63 Optimize 3-59 Row Messages 3-58 Table 3-65 ∼ 3-87 コメント 3-95 ∼ 3-96 セグメント 3-87 ∼ 3-89 入力 3-24 ∼ 3-29 破棄 3-43 ∼ 3-57 フォーマット 3-29, 3-38 ロケール 3-38 構文の要約 3-137 ∼ 3-146 シュード列 3-66, 3-83, 3-92 トリム オプション 3-73, 3-82 入力ファイル 3-25 フィールド型 3-97 ∼ 3-116 「データのロード」を参照。 Locale 句 XML エンコード 3-41 LOAD DATA 文 3-38 XML エンコード 3-40 LTRIM キーワード、TMU 3-73, 3-82 M M4DATE キーワード、TMU 3-108 MAXROWS PER SEGMENT パラ メータ STAR インデックスに対する影 響 6-4 重複レコード 3-61 MAXSPILLSIZE 値 2-30, 2-31 MAX 集約演算子、TMU 3-74 MIN 集約演算子、TMU 3-73 MMAP INDEX 句 LOAD DATA 文 3-63 REORG 文 6-14 MODIFY_ANY タスク権限 7-6 MODIFY モード ACCEPT/REJECT 句 3-92 データのロード 3-33 G H は行 I J ま行 K L や行 M N O ら行 P Q R S T U V W X Y Z わ行 N NLS_LOCALE キーワード、 TMU 3-38, 3-40 NO WAIT、ロック、TMU 2-26, 2-37 NULLIF キーワード、TMU GENERATE の例 5-8 LOAD DATA 文 3-73 rb_cm の例 7-15 UNLOAD の例 4-21 NULL 値 外部フォーマット データ 4-21, 5-8 数値列 3-134 入力データ、例 7-15 O ON DISCARD キーワード、TMU REORG 6-15 OPTIMIZE キーワード、TMU REORG 6-14 Optimize 句 LOAD DATA 文 3-59 OTHER キーワード、TMU REORG 6-18 P PARTIAL_AVAILABILITY パラ メータ 9-21 POSITION キーワード、TMU 3-72 PRECOMPUTED_VIEW_MAINTEN ANCE_ON_ERROR オプショ ン 2-36 PRECOMPUTED_VIEW_MAINTEN ANCE オプション 2-35 PTMU 3480/3490 複数テープ装置 2-53 LOAD 操作ステージ 3-10 TMU SERIAL MODE パラメー タ 2-49 エラー処理ステージ 3-11 機能、説明 1-5 効果的利用 2-51 ∼ 2-54 構文、rb_ptmu 2-5 最大破棄レコード数 2-52 自動行生成 2-52 終了状態コード 2-7 性能 3-9 入力ステージ 3-10 複数のテープ装置 2-53 並列処理パラメータ 2-47 ∼ 2-49 変換ステージ 3-11 メイン出力ステージおよびイン デックス ステージ 3-11 PSU、単独の復元 9-19 R rb_cm ユーティリティ 7-3 ∼ 7-18 LOAD コントロール ファイルの 例 7-14, 7-17 TMU コントロール ファイル、使 用 7-9 UNLOAD コントロール ファイル の例 7-14, 7-17 概要 7-3 ∼ 7-18 結果、検証 7-18 必要な許可 7-5 要件、実行 7-4 例 7-12 ∼ 7-18 RB_CONFIG 環境変数 2-8, 2-13 rb_ctmu 2-12 「クライアント TMU」を参照。 rb_drvtmu 2-12 RB_HOST 環境変数 2-8, 2-13 RB_NLS_LOCALE 環境変数 1-8, 3-40 「NLS_LOCALE キーワード」を 参照。 RB_PATH 環境変数 2-6, 2-8, 2-13 rb_ptmu ファイル、場所 2-5 「PTMU」を参照。 rb_tmu ファイル、場所 2-5 「TMU」を参照。 rbw.config ファイル バックアップ、外部 8-20 バックアップ対象外 8-14 RBW_LOADINFO_LIMIT パラメー タ、例 2-33 RBW_LOADINFO テーブル rb_cm の結果 7-18 データの抽出 3-96 rbw_media_history ファイル 8-26 索引 3 記号 数字 A B C あ行 か行 さ行 D た行 E F な行 RBW_SEGMENTS システム テーブ ル 8-12 REAL キーワード、TMU 3-106 RECALCULATE RANGES キーワー ド、TMU REORG 6-14 RECORDLEN キーワード 3-30, 3-123 redbrick ディレクトリ、定義 2-5 redbrick ユーザ ID、定義 2-4 REFERENCE CHECKING オプショ ン、REORG 6-14 REJECT キーワード、TMU 3-91 REMOTE_TMU_LISTENER パラ メータ 2-14 REORG Discard ファイルのフォーマッ ト 6-21 SET コマンド構文 2-46 インデックス作成ステージ 6-9 インデックスの一部分 オプション 6-5 制限 6-20 オンライン操作 / オフライン操 作 6-20 クリーンアップ ステージ 6-9 構文 6-11, 6-12 コーディネータ ステージ 6-8 事前計算ビュー 6-4 集約管理 6-4 使用 6-4 シリアル 6-6 タスク シーケンス 6-8 ディスク領域 6-21 入力ステージ 6-9 部分復元後 9-20 並列 6-6 変換ステージ 6-9 メモリマッピングするインデック ス 6-14 ロック動作 6-20 REPLACE モード、データのロー ド 3-31 RESET、TEMPSPACE パラメー タ 2-31 RESTORE...SHOW コマンド、 TMU 9-17 RESTORE_DATABASE 権限 2-45, 9-10 RETAIN キーワード、TMU 3-67 G H は行 I J ま行 K L や行 M N O ら行 RI_DISCARDFILE キーワード、 TMU 3-46 Row Messages 句、LOAD DATA 文 3-57 ∼ 3-58 RTRIM キーワード、TMU 3-73, 3-82 S Scale、フィールド型 3-104 Segment name 句、TMU REORG 6-12 Segment 句、LOAD DATA 文 3-87 ∼ 3-89 SEQUENCE フィールド、LOAD DATA 文 3-85 ∼ 3-86 SET オプション、コピー操作 7-12 SET コマンド、SQL PARTIAL AVAILABILITY 9-21 SET コマンド、TMU BAR_UNIT_SIZE 2-44 DATEFORMAT 2-32 FOREIGN FULL BACKUP 2-45, 8-20 FOREIGN FULL RESTORE 8-20, 9-11 INDEX TEMPSPACE 2-28 LOCK 2-25 LOCK WAIT 8-13 PRECOMPUTED VIEW MAINTENANCE 2-35 PRECOMPUTED VIEW MAINTENANCE ON ERROR 2-36 STATS 2-44 TEMPSPACE DUPLICATESPILLPERCENT 2-28 TMU BUFFERS 2-27 TMU COMMIT RECORD INTERVAL 2-39 TMU COMMIT TIME INTERVAL 2-40 TMU CONVERSION TASKS 2-47 TMU INDEX TASKS 2-46, 2-47 TMU INPUT TASKS 2-46 TMU MAX TASKS 2-46 TMU MMAP LIMIT 2-34 4 Table Management Utility Reference Guide P Q R S T U V W X Y わ行 TMU ROW MESSAGES 2-36 TMU SERIAL MODE 2-49 TMU VERSIONING 2-38 リスト 2-23 ∼ 2-25 SHOW コマンド、TMU RESTORE 9-17 simple フィールド XML パス 3-73 構文 3-70 SMALLINT フィールド型、 TMU 3-105 START/STOP RECORD キーワー ド、TMU 3-27 SUBSTR キーワード、LOAD DATA 文 3-100 SUBTRACT 集約演算子、 TMU 3-73 SYNCH 文 in rb_cm copy 操作 7-11 使用 3-119 T Table name 句、TMU REORG 6-12, 6-18 Table 句、LOAD DATA 文 3-65 ∼ 3-87 TAR テープ、入力データ 3-122, 3-131 TAR ファイル、POSIX の制限 4-12 TEMPSPACE_DUPLICATESPILLPE RCENT パラメータ、TMU コン トロール 2-28 TIMESTAMP フィールド型、 TMU 3-107 TIME フィールド型、TMU 3-107 TINYINT キーワード、TMU 3-105 TMU Auto Aggregate の例 A-1 LOAD DATA 文 3-23 ∼ 3-146 REORG 操作 6-3 SYNCH 文 3-119 USER 文 1-8 wait と no-wait コントロール 2-26, 2-37 インターバル オプション (-i) 2-6 構文、rb_tmu 2-5 コントロール ファイル 1-7 Z 記号 数字 A B C あ行 か行 さ行 D た行 E F な行 コントロール ファイルのコメン ト 1-8 コントロール ファイルの生成 GENERATE 5-3 ∼ 5-9 UNLOAD 4-10 集約管理、説明 1-6 終了状態コード 2-7 タイムスタンプ オプション (t) 2-6 データのアンロード 4-3 ∼ 4-19 データのロード 3-5 ∼ 3-146 データベース オプション (-d) 2-6 データベースのアップグレー ド 1-11 入力データ、圧縮解凍 2-10 入力データ フォーマット 3-122 入力ファイル ロケール 3-38 パイプ 2-9, 4-11 バックアップ 8-3 バッファ キャッシュ サイズ 2-27 ファイルのリダイレクト 2-9 復元操作 9-3 報告インターバル (-i オプション ) 2-6 メモリ マッピング インデック ス 3-63 ログイン 1-8 ロック操作 2-26, 2-37 TMU COMMIT RECORD INTERVAL 構文 2-39 使用上の注意 2-40 TMU COMMIT TIME INTERVAL 構文 2-40 使用上の注意 2-41 例 2-42 TMU ROW MESSAGES パラメー タ 2-36 TMU_BUFFERS パラメータ 2-27 TMU_CONVERSION_TASKS パラ メータ 2-47 構文 2-47 使用上の注意 2-49 TMU_INDEX_TASKS パラメー タ 2-47 構文 2-47 例 2-49 TMU_MMAP_LIMIT パラメー タ 3-63, 6-14 G H は行 I J ま行 K L や行 M N O ら行 P U UNDO LOAD キーワード、 TMU 3-121 UNIX のダンプおよび復元コマン ド 8-20 UNLOAD フォーマット、TMU 入 力データ 3-123 UNLOAD 文 (TMU) rb_cm、使用 7-9 rb_cm の例 7-14, 7-17 WHERE 句 4-13 可変長フォーマット 4-9 UPDATE モード、データのロー ド 3-32 UPGRADE 文 (TMU)、構文 1-11 USER 文 (TMU) 1-8 V VARIABLE フォーマット、 UNLOAD 文 4-9 VARLEN EXTERNAL フィールド 型、TMU 3-99 VARLEN フィールド型、 TMU 3-99 VERIFY コマンド、ALTER SEGMENT 8-11 W WAIT と NO WAIT、ロック 2-26 TMU 2-37 WORKING_SPACE キーワード、 TMU 3-89 XBSA バックアップ 8-18 構成 B-1 R S T U V W X Y Z わ行 TMU_ROW_MESSAGES、TUNE オ プション 2-36 TMU_SERIAL_MODE パラメー タ 2-49 TRIM キーワード、TMU 3-73, 3-82 X Q Xerces-C++ パーサ、XML のロー ド 3-34, 3-129 XML フォーマット Discard ファイル 3-44 LOAD DATA の構文 3-34 Locale 句 3-40, 3-41 XML パス 3-75, 3-129 XML ファイル #PCDATA 3-75 CDATA セクション 3-75 構造 3-129 ネスト構造 3-130 XML フォーマット LOAD DATA の構文 3-73, 3-75 説明 3-129 ロードのサンプル 3-78 あ 圧縮されたファイル TMU からの出力 4-11 入力、TMU 2-10 い イベントログ記録、バックアップ 操作 8-29 インクリメンタル バックアップ 構文 8-22 定義済み 8-4 インターバル オプション (-i)、 TMU 2-6 インデックス DEFERRED 6-3 REORG による再作成 6-3 デフォルト名 6-13 インデックス作成ステージ REORG 操作 6-9 データのロード 3-9 え エラー コード 2-7 エラー処理ステージ PTMU 3-11 データのロード 3-9 索引 5 記号 数字 A B C あ行 か行 さ行 D E た行 F な行 G H は行 I J ま行 K L や行 M N O ら行 お き オフライン ロード操作 構文 3-88 「セグメント」を参照。 概要 1-9 オペレーティング システムのアク セス 2-4 オンライン バックアップ 8-4 オンライン マニュアル 13 基数ポイント、TMU 指定 3-102 ロケールに優先 3-40 キャッシュ サイズ、バッファ (TMU) 2-27 構文 2-27 使用上の注意 2-28 行メッセージ、管理 2-36 か く 外部可変長データ フォーマット、 TMU 例 4-21 外部データ フォーマット、TMU rb_cm ユーティリティの使 用 7-11 アンロードされたデータ 4-5 変換規則 4-6 例 4-19, 5-7 外部バックアップ 2-45, 8-20 外部復元 2-45, 8-20, 9-11 外部フル バックアップ 8-4 各 COMMIT 間でロードするレコー ド 2-39 格納域マネージャ TMU バックアップ 8-18 構成 B-1 可変長フォーマット レコード、入 力データ 3-124 空の入力フィールド 3-134 環境変数 RB_CONFIG、TMU 2-8 RB_PATH、TMU 2-6 TMU での一般的な使用 1-8 USER 文 2-22 リモート TMU 構成 2-13 完全復元 外部 9-11 構文 9-13 定義済み 9-4 管理者ツール、使用、バックアッ プ セグメントの作成 8-9 空白、入力データ 3-134 区切り記号付きフォーマットのレ コード 3-33, 3-128 クライアント TMU 2-12 構成 2-13 構文 2-14 クリーンアップ ステージ 3-11 REORG 操作 6-9 け 検索条件 UNLOAD 文の WHERE 句 4-13 ワイルドカード文字 4-14 こ 構文 LOAD DATA 3-24, 3-137 rb_ctmu 2-14 rb_ptmu 2-5 rb_tmu 2-5 REORG 文 6-11, 6-12 構文ダイアグラム キーワード 9 表記規則 7 コーディネータ ステージ、REORG 操作 6-8 コールド復元操作 9-12 固定長フォーマット レコード、入 力データ 3-123 コピー管理。 「 rb_cm utility」を参 照 6 Table Management Utility Reference Guide P Q R S T U V W X Y わ行 コミットの前にデータをロードす るタイム インターバル 2-40 コメント、TMU コントロール ファ イル 1-8 コントロール ファイル、TMU 1-7 さ 参照整合性 AUTOROWGEN 構文 3-45 説明 3-16 ∼ 3-22 TMU REORG による維持 6-4 優先 6-19 し システム セグメント 9-11 システム要件 4 事前計算ビュー TMU REORG による維持 6-4 再作成 6-4 設定 2-35 保守 3-16, 3-49 自動集約機能、TMU 使用 3-76 シュード列、TMU ACCEPT/REJECT 3-92 concat フィールド 3-83 フィールド定義 3-66 集約管理 設定 2-35 説明 1-6 終了状態コード 2-7 順序 アンロードされたデータ 4-9 テーブルのロード順序 3-14 入力データ、TMU 3-15 シリアル (SERIAL) 型列 Segment 句、使用 3-87 アンロード 3-68 データ型、使用 3-101, 3-105 ロード 3-68 Z 記号 数字 A B C あ行 か行 さ行 D た行 E F な行 す スペース、オフライン ロードで使 用される作業スペース 3-89 せ 制限付き日付時間マスク 3-117 セグメント 作成、バックアップ 8-9 データのロード 3-87 テーブルを複数のセグメントに変 換 4-17 特定のアンロード 4-9 バックアップの変更 8-11 復元、単独 9-19 選択的アンロード、ワイルドカー ド文字 4-14 選択的列更新 3-69 ∼ 3-70 そ ソフトウェアの要件 4 ゾーン 10 進数日時型入 力 3-116 ∼ 3-119 た タイム インターバルのコミット、 設定 2-40 タイムスタンプ オプション (-t)、 TMU 2-6 他社製品ツール、ウェアハウス データのロード 4-18 タブ区切りデータ 3-33 ダンプおよび復元コマンド、 UNIX 8-20 ち チェックポイント バックアッ プ 8-4 逐次ローダ。「TMU」を参照。 注意事項 UNDO LOAD と REPLACE モー ド 3-121 エスケープ文字とロケール 3-93 G H は行 I J ま行 K L や行 M N O ら行 P Q R S T U V W X Y Z わ行 チューニング パラメータ、 TMU 2-27 重複レコード オプティマイズ モード 3-61 破棄 3-60 て ディスク ファイル フォーマット、 入力データ 3-123 ディスク スピル ファイル、INDEX TEMPSPACE パラメータ 2-28 ディレクトリ、バックアップ 8-22 データ EXTERNAL フォーマットへの変 換 4-6 アンロード 1-9, 4-3 ∼ 4-19 他社製品ツールへのロード 4-18 バックアップ 8-3 フォーマットのアンロード 4-4 復元 9-3 ロード 1-9, 3-5 ∼ 3-146 データ型変換、ロード処理 中 3-133 ∼ 3-136 データ処理 6-6 ∼ 6-10 データ ソース名、リモート TMU 構成 2-13 データのアンロード 4-3 ∼ 4-19 CREATE TABLE 文の生成 4-10 EXTERNAL へのデータ変換 4-6 LOAD DATA 文の生成 4-10 外部フォーマット 説明 4-5 手順 4-16 例 4-17 概要 1-9 行の順序 4-4, 4-9 シリアル (SERIAL) 型列 3-68 選択した行 4-19 内部フォーマット 説明 4-5 手順 4-14 例 4-15 必要なアクセス権 4-4 フォーマット、内部および外 部 4-5 データのロード 3-5 ∼ 3-146 Auto Aggregate の例 A-1 ∼ A-15 Discard ファイル 3-46, 3-60, 6-18 NOT NULL DEFAULT NULL によ る中止 3-67 RBW_LOADINFO システム テー ブル 3-95 インデックス ステージ 3-9 エラー処理とクリーンアップ ス テージ 3-9 オフライン ロード 3-87 概要 1-9 失敗または中断 3-27 処理フロー 3-8 シリアル (SERIAL) 型列 3-68 セグメント 3-87 データ型変換 3-133 ∼ 3-136 手順 3-12 ∼ 3-13 入力ステージ 3-8 入力と出力 3-6 破棄行 3-6, 3-60, 3-133 変換ステージ 3-8 未使用の入力フィールド 3-66 メイン出力ステージ 3-9 メモリ マッピング インデック ス 3-63 ロード情報 3-95 データベース 移動 4-18 新リリースへのアップグレー ド 1-11 データのロード 3-5 ∼ 3-146 バックアップ 8-3 復元 9-3 ロック、TMU 2-25 データベース ロケール 8-14 データベース オプション (-d)、 TMU 2-6 データベースのアクセス 2-5 データベースの移動 4-18 データベースの新リリースへの アップグレード 1-11 テープ テープ装置 3-122 入力データ ファイル フォーマッ ト 3-122 ∼ 3-133 入力データ レコード フォーマッ ト 3-122 ∼ 3-133 バックアップ 8-23 テーブル データのアンロード 4-3 ∼ 4-19 索引 7 記号 数字 A B C あ行 か行 さ行 D た行 E F な行 複数のセグメント、変換 4-17 ロード操作の順序 3-14 ロック、TMU 2-25 デモンストレーション データベー ス、インストールスクリプト 4 テンプレート、GENERATE CREATE TABLE 文、TMU 5-3 と ドライバ TMU 2-12 な 内部データ フォーマット、TMU rb_cm ユーティリティの使 用 7-10 アンロードされたデータ 4-5 に 日時型入力 制限付きフォーマット マス ク 3-116 日時型フィールド 3-107 ∼ 3-116 バイナリおよびパック / ゾーン 10 進数 3-116 ∼ 3-119 フォーマット マスク 3-109 入力ステージ PTMU 3-10 REORG 操作 6-9 データのロード 3-8 入力データ CONSTANT フィールド 3-84 INCREMENT フィールド 3-87 SEQUENCE フィール ド 3-85 ∼ 3-86 順序 3-15 ファイル フォーマット 3-122 フィールド型 3-97 ∼ 3-116 未使用のフィールド 3-66 レコード フォーマット 3-122 入力ファイル、LOAD DATA 文 3-25 入力ロケール、定義 3-39 G H は行 I J ま行 K L や行 M N O ら行 P R S T U V W X Y わ行 は バージョン ログ セグメント 自動復元 9-11 バックアップ対象外 8-14 バージョン管理されたデータベー ス バックアップ 8-14 ロード 2-38 バイナリ日時型入力 3-116 ∼ 3-119 パイプ TMU GENERATE 文 5-4 TMU 出力 4-11 TMU 入力 2-10 複数の TMU 入力 2-10 破棄された行、ロード中 3-133 パスワード、TMU コマンド ライ ン 2-6 破損しているセグメント バックアップ対象外 8-14 復元 9-19 パック 10 進数日時型入 力 3-116 ∼ 3-119 バックアップ操作 イベントログ記録 8-29 バックアップ セグメン ト 8-8 ∼ 8-12 格納領域の要件 8-10 管理者ツール、作成 8-9 サイズ調整 8-10 作成 8-9 自動復元 9-11 破損 8-11 ビットマップ情報 8-8 変更 8-11 バックアップ ログ ファイル 8-29 バックアップ操作 XBSA インターフェイス 8-18, B-1 一般的な手順 8-8, 8-13 オブジェクト、バックアップ対象 外 8-14 外部ツール 2-45, 8-20 格納域マネージャ 8-18 計画 8-6 構文ダイアグラム 8-22 構文例 8-24 準備、データベース 8-8 タスク権限 8-13 8 Table Management Utility Reference Guide Q テープ装置 8-17 バージョン管理されたデータベー ス 8-14 メタデータ 8-26 例 8-24 ロック 8-13 バッファ キャッシュ、TMU 2-27 ひ 比較、TMU LOAD DATA 文 3-90 日付、日付定数のロード 3-84, 3-109, 3-115 日付定数、ロード 3-84, 3-109, 3-115 ビットマップ情報、バックアップ セグメント 8-8 日別合計の修正値、Auto Aggregate A-2 表記規則 構文ダイアグラム 7 構文の表記規則 6 標準エラー、TMU からのリダイレ クト 2-9 標準出力、TMU 4-11 標準入力、TMU 2-10 標準ラベル テープ ANSI 3-132 バックアップ 8-17 ANSI 3-122 IBM 3-122 ふ ファイル フォーマット、入力デー タ XML 3-129 可変長レコード 3-124 区切り記号付きレコード 3-128 固定長レコード 3-123 ディスク ファイル 3-123 テープ ファイル 3-131 ファイル サイズ、TAR の制限 4-12 ファイルのリダイレクト、 TMU 2-9 フィールド型、TMU 入力レコー ド 3-97 ∼ 3-116 CHARACTER 3-99 Z 記号 数字 A B C あ行 か行 さ行 D た行 E F な行 CURRENT_DATE 3-107 CURRENT_TIME 3-107 CURRENT_TIMESTAMP 3-107 DECIMAL 3-101, 3-104 DOUBLE PRECISION 3-106 FLOAT EXTERNAL 3-103 INTEGER 3-101, 3-105 M4DATE 3-108 REAL 3-106 SMALLINT 3-105 TIME 3-107 TIMESTAMP 3-107 TINYINT 3-105 フィールドのスケール 3-104 ロード中の変換 3-133 ∼ 3-136 フォーマット マスク、日時 数値型フィールド 3-116 日時型フィールド 3-109 復元操作 イベントログ記録 8-29 FORCE オプション 9-20 SHOW オプション 9-17 一般的な手順 9-10 外部 9-11 構文ダイアグラム 9-13 構文例 9-15 コールド 9-12 説明 9-4 タスク権限 9-10 破損しているセグメント 9-19 復元、セグメント 9-19 部分 9-19 例 9-5 ロック 8-13 複数の Discard ファイル 3-43 部分的な利用、破損しているセグ メントを持つテーブル 9-21 部分復元操作 9-4, 9-19 プライマリ キー インデックス、メ モリ マッピング 3-63 フル バックアップ 外部 8-4, 8-20 構文 8-22 定義済み 8-4 へ 変換ステージ G H は行 I J ま行 K L M や行 N O ら行 P Q R S T U V W X Y Z わ行 PTMU 3-11 REORG 操作 6-9 データのロード 3-8 り マニュアル 一覧、IBM Red Brick Warehouse 11 オンライン 13 リモート TMU 2-12 REMOTE_TMU_LISTENER パラ メータ 2-14 構成 2-13 構文 2-14 操作の概要 2-18 例 2-19 「クライアント TMU」を参照。 む れ 無効な STAR インデックス、原 因 6-4 レコード インターバルのコミット、 設定 2-39 レジストリ、Windows 2-8, 7-7 ∼ 7-8 列、デフォルト値の決定 3-54 レベル 0、1、および 2 のバック アップ 8-4 ま め メイン出力ステージ PTMU 3-11 データのロード 3-9 メタデータ、TMU バックアッ プ 8-26 メッセージ バックアップ ログ ファイル 8-30 復元中に表示 9-16 ロケール 3-42 メモリ マップ限界 MMAP INDEX 句 3-63, 6-14 SET コマンド 2-34 ゆ ユーザ名、データベース TMU コマンド ライン 2-6 TMU コントロール ファイル 2-21 よ ろ ロードの中断 3-27 ログ記録、バックアップ操作およ び復元操作 8-29 ロケール TMU 入力ファイル 3-38 TMU による使用 1-8 UNLOAD 操作 4-5 デフォルト 3-41 バックアップされたデータベー ス 8-14 ロック REORG 操作中の動作 6-20 SET LOCK コマンド 2-25 TMU 2-25 待機動作、TMU 2-26, 2-37 バックアップ中 8-13 読み取り操作、バックアップ 中 8-13 わ ら ワイルドカード文字 UNLOAD 文 4-14 LOAD DATA 文 3-93 ラージ入出力ファイル 3-7 索引 9