ページの先頭行へ戻る
Symfoware Server V11.1.0 RDB運用ガイド
FUJITSU Software

4.1.2 初期創成のためのコマンド

表の創成やインデックスの創成は、rdbsloaderコマンドで行います。表の創成を行う場合は、表のDSIにインデックスが定義されていると、そのすべてのインデックスのDSIも同時に創成します。

注意

  • rdbsloaderコマンドによる創成後には、ディスク破壊などの異常時のリカバリに備えて、rdbdmpコマンドによるバックアップが必要です。詳細については、“4.4.8 DSIのバックアップ”を参照してください。

  • アーカイブログ運用を行っている場合、rdbsloaderコマンド実行中にシステムロググループまたはユーザロググループのアーカイブログファイルが満杯になると、rdbsloaderコマンドはアーカイブログが満杯の状態が解除されるまで処理待ちとなるため注意が必要です。処理待ちとなった場合、アーカイブログファイルをバックアップすることにより処理待ち状態を解除できます。

    rdbsloaderコマンド実行前にアーカイブログファイルの使用状況を把握し、必要に応じて強制切替えや、破棄またはバックアップのタイミングを調整してください。アーカイブログファイルの詳細については、“4.4 異常時に備えたデータのバックアップ”を参照してください。

ポイント

rdbsloaderコマンドは、分割格納が定義された表のDSIを処理するとき、入力ファイル内に分割値範囲外のデータが含まれている場合、該当データを処理対象とせずに処理を続行し、正常終了します。分割範囲外のデータをエラーとし、入力ファイルの作成ミスや指定ミスによるデータ抜けを検出するためには、Eオプションを使用します。

詳細は“表の創成(分割値範囲外データエラー指定)”を参照してください。

rdbsloaderコマンドの入力ファイルをテキスト形式で創成する場合について以下に説明します。

参照

rdbsloaderコマンドの指定方法の詳細については、“コマンドリファレンス”を参照してください。

参考

rdbsloaderコマンドは、以下のいずれかの条件を満たす場合、対象DSIの割付け領域のデータ内容が保証されないため、DSI割付け量に依存した処理時間になります。なお、条件に当てはまらない場合は、入力データ量に依存します。

  • 対象DSIの定義直後

  • 対象DSIがアクセス禁止状態

  • 格納構造が、以下のいずれかの場合

    • RANDOM構造の表

    • RANDOM構造の表のDSIに付加されたBTREE構造のインデックス

    • OBJECT構造の表

    • OBJECT構造の表のDSIに付加されたBTREE構造のインデックス

表の創成(すべての列にデータを挿入)

すべての列にデータを挿入する場合の機能概要と指定例を以下に示します。

$ rdbsloader -mi -i 在庫管理DB.在庫表DSI -f 20 -s /home/rdb1/work
             -t  -k  /home/rdb1/stock1.data
                             (1)

(1) 入力ファイル名

入力ファイル名

データの入力元の外部ファイル名を指定します。

表の創成(ある列にのみデータを挿入)

ある列にのみデータを挿入する場合の機能概要と指定例を以下に示します。

$ rdbsloader -mi -i 在庫管理DB.在庫表DSI -f 20 -s /home/rdb1/work
             -t  -c 倉庫番号,製品名  -k /home/rdb1/stock2.data
                         (1)

(1) 列指定

列指定

入力ファイルのデータの並びと対象DSIの属する表の列の並びが一致しておらず、それぞれを対応づける場合などに、入力ファイルの先頭から順に入っているデータを、表内のどの列に対応させるかを指定します。本オプションで指定した列名の数が表定義の列の数よりも少ない場合、指定されなかった列について、表定義でNULL値が許されていればNULL値が設定され、DEFAULT句が指定されていればDEFAULT句に指定した値が設定されます。NOT NULLが指定されていればエラーとなります。本オプションを省略すると、表定義と同じ列名が同じ順序で指定されたものとして処理します。ただし、対象DSIがOBJECT構造の場合は、列指定を指定することはできません。

表の創成(エラーデータの抽出)

正常なレコードのみを挿入し、属性エラーを検出した誤りのレコードを、指定されたファイルに出力する場合の機能概要と指定例を以下に示します。

$ rdbsloader -mi -i 在庫管理DB.在庫表DSI -f 20 -s /home/rdb1/work
             -t  -k  -r 10,/home/rdb1/err.data /home/rdb1/stock3.data
                                (1)

(1) エラーデータ指定

エラーデータ指定

表のDSIの創成中に属性エラーが発生した場合、コマンド処理を中断するまでの発生エラー件数の限界値とエラーデータの出力ファイル名を指定します。

エラー件数は、1以上の数値、またはレコードの件数に関係なく、すべてのエラーデータを出力するALLを指定します。

エラーデータの出力ファイル名は、絶対パス名で指定します。エラーデータの出力ファイルには、属性エラーを検出した誤りのレコードが、入力ファイルに指定した内容で出力されます。

本オプションを省略すると、入力ファイル中に1件でも属性エラーを含む誤りのレコードを検出した時点で処理を中断します。

表の創成(複数DSIの一括挿入)

複数のDSIに一括してデータを挿入する場合の機能概要と指定例を以下に示します。

$ rdbsloader -mi  -v /home/rdb1/list.data  -f 20  -s /home/rdb1/work -t
                             (1)
             -k  /home/rdb1/all.data

(1) 複数DSI指定

複数DSI指定

1つの入力ファイルのデータを、複数のDSIに一度に挿入する場合、同時に創成する表のDSI名を記述したファイルを指定します。表のDSIは、同一の表に対するDSIであることが必要です。

表の創成(インデックスの並列創成)

表のDSIにインデックスが定義されている場合、インデックスを並列創成することにより、DSIの創成を高速に処理することができます。

インデックスの並列創成を伴う表の創成をする場合の指定例を以下に示します。

$ rdbsloader -mi -i 在庫管理DB.在庫表DSI  -h  -f 20
                                               (1)
             -s 製品名IXDSI1,/home/rdb1/work2
             -s 製品名IXDSI2,/home/rdb1/work3
             -t /home/rdb1/stock4.data

(1) インデックス並列創成指定

インデックス並列創成指定

表のDSIにインデックスが定義されていて、DSIの創成を高速に処理したい場合に指定します。本オプションを指定した場合は、本オプションの省略時よりも作業用領域を必要としますので、注意が必要です。

参照

rdbsloaderコマンドで使用する作業用領域の見積りについては、“コマンドリファレンス”を参照してください。

表の創成(分割値範囲外データエラー指定)

入力ファイルに含まれる分割値範囲外のデータを、エラーとする場合の指定例を以下に示します。

$ rdbsloader -mi -i 在庫管理DB.在庫表DSI -E OUTER_SPLIT_VALUE  -f 20
                                                   (1)
             -t /home/rdb1/stock5.data

(1) 分割値範囲外データエラー指定

分割値範囲外データエラー指定

分割格納が定義された表のDSIを処理するとき、入力ファイルにDSIの分割値の範囲外であるデータが存在した場合、異常データとして扱います。

本指定を省略すると、入力ファイル中に分割値範囲外データが含まれている場合、該当データを処理の対象外として処理を続行し、正常終了します。

本機能はコマンド実行時の環境変数としての指定もできます。

シェルスクリプトに記載された複数のrdbsloaderコマンドにまとめて本機能を有効としたい場合などに使用してください。

環境変数名

設定値

RDB_CHECK_LOADDATA

OUTER_SPLIT_VALUE

以下に環境変数の指定例を示します。

例1

bashの場合

$ RDB_CHECK_LOADDATA=OUTER_SPLIT_VALUE; export RDB_CHECK_LOADDATA
例2

TCシェルの場合

% setenv RDB_CHECK_LOADDATA OUTER_SPLIT_VALUE

インデックスの創成

インデックスのDSIにデータを挿入する場合の指定例を以下に示します。

$ rdbsloader  -x  -i 在庫管理DB.製品名IXDSI  -f 20
              (1)
              -s /home/rdb1/work

(1) インデックスの創成指定

インデックスの創成指定

インデックスのDSIを創成する場合に指定します。