レベル: 初級 高橋 弘一 (takahak@jp.ibm.com), 大和ソフトウェア開発研究所 IM開発&サービス, 日本アイ・ビー・エム株式会社
2009年 4月 20日 この記事では、IBM Optim for z/OS V6.1のData Growth Solutionの機能であるデータベースのアーカイブ方法について説明します。
はじめに
Data Growth Solutionは、データベース上の古いデータをアーカイブ・
ファイルに書き出し、データベース上から削除するというものです。
これにより、
-
データベースのパフォーマンス向上をはかります
-
アーカイブ・ファイルをコストの安いメディアに保管することにより、コストの
削減を行います
また、
Optimはアーカイブ・ファイルに対し、検索、ブラウズの機能を提供しているので、
アーカイブ後も必要であればその内容を確認できます。
シナリオについて
今回のシナリオでは、顧客情報(CUSTOMERS)、受注情報(ORDERS)、商品情報
(ITEMS)の3つの表を用います(図1)。
スキーマ名(OptimではCreator IDと呼びます)
はすべてJDEMOです。
受注情報表は、顧客情報表の顧客ID、商品情報表の商品IDを
外部キーとしてもっています。
そして、
受注情報のうち2007年以前に出荷した情報については、アクセス頻度が少ないので、
アーカイブ・ファイルに書き出して表から削除します。
このとき、アーカイブする受注情報に対応する顧客情報、商品情報も一緒にアーカイブします。
最後に、アーカイブ・ファイル内のデータを検索、ブラウズ
します。
図1. 表構成
アーカイブの起動
Optimのメイン・メニューは図2のようになっています。
図2. Optimメイン・メニュー
図2の画面で9 ARCHIVEを、その次の画面で1 ARCHIVEを選択
すると図3のアーカイブの画面になります。
図3. アーカイブ・メニュー
表の指定
まずアーカイブする表の指定を行うため、アクセス定義を定義します。
図3の画面で適当なアクセス定義名を設定して1 TABLES
を選択すると、図4のような画面になります
(図3では、アクセス定義名としてJDEMO.TAKAHAK.ORDERSを設定
しています)。
図4. 表の指定
図4の画面での定義は以下のようになります。
- アーカイブの開始表の名前JDEMO.ORDERSを入力し、ENTERを押す (a)
- ORSERSがリストに追加される (b)
- CommandにGET TABLES RELATED ALLと入力し、ENTERを押す (c)
- 開始表に関連する表CUSTOMERS、ITEMS
が自動的に取得されてリストに追加される (d)
- ORSERS表に対してのみDAA=Yを設定する (e)
DAAはDelete After Archiveの略で、アーカイブ時にアーカイブした
レコードを表から削除するかどうかを指定します。
今回のシナリオでは、ORDERS表のみが削除の対象となります。
以上で、表の定義は終了です。
レコードの指定
次にアーカイブするレコードの指定を行います。
ORDERS表の2008年1月1日より以前に出荷されたレコードを
アーカイブするように指定します。
その方法は以下のようになります。
- 図4のORDERS表のCmdに、ARCと入力しENTERを押すと、
図5のような画面になる
この時点でDATE_CRITERIAは設定されていません。
この画面はORDERS表の列名を表示しています。SHIP_DATEが
出荷日の列名です。
- 図5のSHIP_DATEのCmdにDC(Date Criteria)と
入力し、ENTERを押す
- アーカイブするレコードの出荷日の基準値を設定するポップアップ画面が
表示されるので、2008-01-01と入力し(図6)、F3で終了する
- 図5のようにSHIP_DATEの基準値が設定される
以上で、アーカイブするレコードの条件指定は終了です。F3で
図3のアーカイブ・メニューまで戻ります。
図5. レコードの指定
図6. 出荷日の基準値の指定
Traversal Pathの指定
次にTraversal Pathの指定を行います。これは、ある表のあるレコードが
選択されたとき、それに関連する表の関連するレコードを選択するか
どうかの指定です。
図3のアーカイブ・メニューで、2 PATHを選択すると
図7のような画面になります。
この画面のQ1、Q2の値を指定します。
Q1は、子表のレコードが選択されたとき、親表の該当する
レコードを選択するかどうかを指定します。
Q2は、Q1によって親表のレコードが選択された
とき、再度それに該当する子表のレコードを選択するかどうかを指定します
(図8)。
なので、このシナリオでは、CUSTOMERS-ORSERS、ITEMS-ORDERSの関係とも、
Q1=Y、Q2=Nを指定します。
図7. Traversal Pathの指定
図8. Q1, Q2の説明
アーカイブの実行
以上で、アーカイブのための準備は終了しました。
アーカイブを実行します。
図3のアーカイブ・メニューにおいて4 PERFORMを
選択すると、図9のような画面になります。
図9. アーカイブ・パラメータの指定
Archive File DSN、Control File DSNにそれぞれ、
アーカイブ・ファイルの順次データセットの名前、制御ファイルの順次データセットの名前
を入力します。制御ファイルのデータセットにはアーカイブ・プロセスの結果などが書き込まれます。
これらのデータセットが新規の場合は、この後の実行時にアロケーションの画面が表示
されます。
Defer Delete After Archive=Yを指定すると、アーカイブ時に表内のレコードの削除
を行わず、後でユーザーがDELETEプロセスを起動することになります。
Run Archive in Batch or Onlineで、アーカイブを
Onlineモード、Batchモードのどちらで行うかを指定します。
Batchモードを選択した場合、JCLが生成されるのでそれを保存しておけば、その後、Optimの画面
を経由せずJCLからアーカイブを実行できます。
Onlineモードの場合、パラメータの指定後ENTERを押すとアーカイブが実行され、
最後に図10のようなプロセス・レポートが出力されます。
図10. プロセス・レポート
これで、ORDERS表の2008年1月1日より以前に出荷されたレコードと、
それに関連するCUSTOMERS表、ITEMS表のレコードが順次データセット
JDEMO.ARCHIVE.ORDERS1に書き込まれました。
またDefer Delete After Archive=Nの場合は、ORDERS表のアーカイブされたレコードは、
表から削除されています。
アーカイブ・ファイルのブラウズ
Optimは表を検索、ブラウズする機能を提供していますが
(図2の1 BROWSE TABLE)、
それと同様のインターフェースでアーカイブ・ファイルの内容を検索、ブラウズする
機能も提供しています。その方法について説明します。
図3のアーカイブ・メニューでB BROWSE ARCHIVE FILE
を選択すると、図11の
ような画面になります。
図11. ブラウズ・パラメータの指定
DSNにアーカイブ・ファイルのデータセット名を指定します。
Browse Modeには表の中身をブラウズするのでTを指定します。
Begin withには、D(Data)
、S(Selection Criteria)、Q(SQL)を指定できます。
Dを選択するとアーカイブ・ファイル内のすべてのレコードが表示されます。
Sを選択すると、Selection Criteriaの画面が表示され、そこで表示するレコードの
条件を指定します。Qを選択すると、SQLのWHERE句を記述する
画面が表示されるので、そこで表示するレコードの検索条件を指定します。
Begin with=Sを選択しENTERを押すと、図12のような画面が表示されます。
図11においてTable Nameに表名を指定していないので、開始表である
ORDERS表の列情報が表示されます。
図12. アーカイブ・ファイルのブラウズ条件の指定
この画面では、ブラウズするレコードの条件として、ITEM_ID=T0009を指定
しています。条件の入力後F3で終了すると、図13のようにアーカイブ
ファイル内のITEM_ID=T0009のレコードのみが表示されます。
図13. アーカイブ・ファイルのブラウズ
また、アーカイブ・ファイルの作成時のレコード条件として、出荷日が2008年1月1日より前を
指定したので、ここに表示されているレコードのSHIP_DATE(出荷日)は、当然
その条件にマッチしたものとなっています。
ところで、このままでは「これらの注文をしたのが誰なのか(CUST_ID)?」、
「注文された商品は何なのか(ITEM_ID)?」は、ひと目ではわかりません。
しかし、今回のアーカイブでは顧客情報表、商品情報表のレコード情報も
一緒にアーカイブしています。そこで、たとえばORDER_ID=R0005のCmdにJ
(Joinコマンド)と入力しENTERを押し、表示されるポップアップで
CUSTOMERS表をSで選択します。
すると、図14のようにORDER_ID=R0005の注文者であるCUST_ID=C0003の顧客情報が一緒に
表示されます。この画面で表示されているORDERS表のレコードをF7、F8で
前後に移動すると、CUSTOMERSの内容もそれに対応した顧客情報に変更されます。
同様にJOINコマンドで、ITEMS表を選択すると、ORDERS表とその注文
商品の情報が一緒に表示されます。
図14. アーカイブ・ファイルでのJOIN
まとめ
この記事ではOptim Data Growth Solutionのアーカイブ機能をついて、以下のことを簡単に
説明しました。
- DB2表のアーカイブ方法
- アーカイブ・ファイル内のデータの検索、ブラウズ方法
今回は説明しませんでしたが、そのほかにRESTOREという
機能があり、
アーカイブ・ファイルを表に戻すことができます。
その手順は次回説明する、EXTRACTファイルをテスト環境の表にINSERTする
手順と同じですので、そちらを参照して下さい。
著者について  | |  | 筆者 高橋弘一は、大和ソフトウェア開発研究所 IM開発&サービスのS/Wエンジニアです。
現在はOptimを担当しています。 |
記事の評価
|