hirdb version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop...

97
© Hitachi, Ltd. 2012. All rights reserved. HiRDB技術解説 株式会社 日立製作所 情報・通信システム社 ITプラットフォーム事業本部 開発統括本部 DB設計部 2012/09 HiRDB Version 9 09-03 新機能解説

Upload: others

Post on 16-Jun-2020

1 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

HiRDB技術解説

株式会社 日立製作所 情報・通信システム社

ITプラットフォーム事業本部 開発統括本部 DB設計部

2012/09

HiRDB Version 9 09-03

新機能解説

Page 2: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

HiRDB Version 9 では「ブレイクスルーへの挑戦」と「オペレーショナル・エクセレンスの追求」を

コンセプトとし、クラウド時代を支える「ワンランク上の」高性能・高信頼データベースとしての機能を強化しています。

2012年6月にリリースしたHiRDB Version 9 09-03では、主に次の内容を強化しました。

■「導入コストの削減」 データ圧縮機能のサポート

■「大規模DBのサイクリック運用への対応」 RDエリア分割運用の機能強化

■「開発および移行の容易性向上」 一時表のサポート

XML検索の性能向上

本資料では、上記の新機能を中心に、HiRDB Version 9 09-02~09-03で強化した機能の概要と使い方をご紹介します。

1

Page 3: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

Contents

© Hitachi, Ltd. 2012. All rights reserved.

1. はじめに

2. 導入コスト削減への対応

3. 大規模DBのサイクリック運用への対応

HiRDB Version 9 09-03 新機能解説

2

4. 開発および移行の容易性向上

5. その他強化ポイント

6. HiRDB関連製品のトピックス

7. おわりに

Page 4: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

1. はじめに

HiRDB Version 9 09-03 新機能解説

3

Page 5: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

1-1 信頼性を追求してきたデータベース

4

「止めない」設計思想を貫く 高信頼ノンストップデータベース

社会基盤を支えるために 日立が自社開発にこだわり続ける純国産RDBMS

ハイアールディービー

Highly Scalable Relational DataBase

今まで培った信頼性をベースに クラウド時代を支える「ワンランク上の」

高性能・高信頼データベースを目指します。

Page 6: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

1-2 ロードマップ

5

住民基本台帳カード

高度サポートが求められる社会基盤を支えるために、 今後も自製DBMSにこだわり続けます。

ノンストップデータベース

※本資料で紹介している内容は、2012年6月時点での計画であり、今後予告無く変更させていただく場合がございます。

1994年 V1 並列RDBMS

2001年 V6 24×7Day対応

2003年 V7 耐障害性の強化

2006年 V8 XML対応

2010年 V9 グリッドバッチ、仮想化対応

HiRDB V9.3 (2012年5月末)

●ORACLEからの移行性向上(一時表対応) ●コストの削減(データ圧縮対応) ●大規模DBのサイクリック運用への対応強化 ●性能向上、チューニング容易性向上、他

HiRDB V9.4(2013年1月予定) ●ORACLEからの移行性向上(SQL互換対応) ●セキュリティ(監査証跡)の強化 ●性能向上、構築・運用容易性向上、他

Page 7: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved. 6

HiRDB Version 9を使うことで

これまでの業務サービス

これからの業務サービス

新しい ビジネス価値の創出 ビジネス価値の向上

コンセプト

ブレイクスルーへの挑戦

オペレーショナル・エクセレンスの追求

現状打破して新しいビジネス価値を創出する

・大幅な性能向上でサービス稼働時間の延長!

競争優位性を維持するための継続的な改善をしてビジネス価値を向上する ・問題発見のリアルタイム化と適切な対処!

1-3 HiRDB Version 9 のコンセプト

Page 8: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

2. 導入コスト削減への対応

HiRDB Version 9 09-03 新機能解説

7

Page 9: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

2. 導入コスト削減への対応 2. 1 導入コスト削減機能一覧 2. 2 データ圧縮機能 2. 3 HDPによる初期導入コストの削減、

運用・管理負担の軽減への対応

HiRDB Version 9 09-03 新機能解説

8

Page 10: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

# サポート機能 サポートVR 概要

1 データ圧縮機能 で解説します。

2 HDPによる初期導入コストの削減、

運用・管理負担の軽減への対応 で解説します。

9

2.2節

2.3節 V9.2

V9.3

解説 導入コスト削減への対応機能として以下の機能サポートしました。

2-1-1 導入コスト削減機能一覧

Page 11: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

2. 導入コスト削減への対応 2. 1 導入コスト削減機能一覧 2. 2 データ圧縮機能 2. 3 HDPによる初期導入コストの削減、

運用・管理負担の軽減への対応

HiRDB Version 9 09-03 新機能解説

10

Page 12: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

BINARY型およびXML型の列データを圧縮して、データベースに格納できるようにしました。 これをデータ圧縮機能といいます。

長大データを圧縮してデータベースに格納することにより、データベース領域のサイズを 削減できます。また、領域サイズの削減により、I/O回数が削減できるため、データベース 検索時の性能向上が見込めます。

解説

画像、音声など、容量が大きい可変長バイナリデータを蓄積し、ディスクスペースを大量に 消費している。

有効な 場面

アプリケーション

DB

商品表

商品表のデータ

DB容量削減

※圧縮率に関しては後述。

圧 縮

商品ID 商品情報 (XML)

12345

型番 品名 価格 ・・・

商品情報

商品ID 商品情報

12345

商品表のデータ

商品ID 商品情報(XML)

12345

型番 品名 価格 ・・・

商品情報

注文ID ・・・ 伝票データ(Binary)

101301

・・・

受注表のデータ

注文ID ・・・ 伝票データ(Binary)

101301

・・・

受注表のデータ

注文ID ・・・ 伝票データ

101301

・・・

圧 縮

受注表

11

2-2-1 データ圧縮機能概要(1)

Page 13: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

非圧縮データ

非圧縮データ

INSERT

SELECT

アプリケーション サーバ処理

圧縮ライブラリ

圧縮データ

グローバルバッファ

圧縮データ

圧縮処理

伸張処理※2

非圧縮データ

圧縮データ

DB

データの圧縮は列単位に指定でき、圧縮する指定をした列を圧縮列といい、圧縮列がある表

を圧縮表といいます。以下にデータ圧縮の詳細を示します。 解説

図 データ圧縮の詳細

※2 伸張処理:圧縮したデータを元に戻す処理

zlib※1

製品側で自動的に圧縮/伸張を行うため、機能を適用しても、定義変更のみで実現可能で、APを改修する必要はありません。

2-2-2 データ圧縮機能概要(2)

12

※1 データ圧縮時に使用する圧縮ライブラリはzlibです。HiRDBは、zlibを使用して表定義時に 指定した圧縮分割サイズごとに圧縮します。このとき、圧縮前後のデータの情報を管理する ヘッダ領域(8バイト)を圧縮分割サイズごとに追加します(zlibが圧縮データに付与するヘッダ 領域とは別に追加します)。

ただし、圧縮前後のデータ長が同じまたは圧縮後のデータ長の方が長くなる場合、HiRDBは データを圧縮しないで格納します。このため、ヘッダ領域の付与によって、圧縮後のデータ サイズが圧縮前よりも大きくなることがあります。

Page 14: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

圧縮表定義方法

CREATE TABLE T1 (C1 INT,C2 BINARY(65536) COMPRESSED)

CREATE TABLE T1 (C1 INT,C2 XML COMPRESSED)

◆圧縮指定

◆データの圧縮効率の目安 圧縮前に比べてどれだけ格納領域を節約できるかは圧縮効率で示します。圧縮効率は以下の計算式で算出することができます。

また、圧縮率と圧縮効率は以下の関係で表されます。

圧縮効率の目安を次の表に示します。なお、データの圧縮率および圧縮効率は、圧縮対象となるデータの実態によって異なるため、ここで示す圧縮効率はあくまで目安値です。

データ種別 圧縮効率(単位:%)

全文字が同一のBINARYデータ 98.51

完全にランダムなBINARYデータ -0.36※ テキストデータ(.txt) 58.50 画像データ(.bmp) 75.42 音声データ(.wav) 9.46

◆圧縮指定の条件 (1)圧縮指定は列単位に指定します(表単位に指定することはできません)。 (2)圧縮指定できるのは、次のデータ型の列だけです。 ・定義長が256バイト以上のBINARY型 ・抽象データ型(XML型)

定義系SQLのCREATE TABLEの列定義で圧縮指定(COMPRESSED)をします。

必要に応じて、圧縮分割サイズも指定します。 解説

圧縮指定: COMPRESSED [BY 圧縮分割サイズ]

◆圧縮表定義例

※圧縮処理で付与されるヘッダ領域が増加したため、 圧縮効率がマイナスになります。 圧縮処理については、マニュアル「システム導入・ 設計ガイド」-「データ圧縮の仕組み」を参照してください。

2-2-3 圧縮表の定義方法(1)

13

圧縮率の測定方法については、

2-2-8節、2-2-9節で解説します。

{(圧縮前のデータ長 - 圧縮後のデータ長)/圧縮前のデータ長} × 100

(圧縮率)+(圧縮効率) = 100

値が大きいほうが、格納領域を節約できます。

値がマイナスになる(圧縮後のデータ長のほう

が長くなる)場合があります。

圧縮分割サイズ:<32000 ~ 2147483647>

圧縮処理や伸張処理のオーバヘッドを削減したい場合

または圧縮効率を向上させたい場合に指定します。

ただし、圧縮分割サイズを大きくすると、メモリ所要量が 増加します。詳細は、2-2-6を参照。

省略時:BINARY型 32000, XML型 1048576 (1M)

BINARY型 32000 ~ 2147483647

XML型 1048576~ 2147483647

Page 15: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

2-2-4 圧縮表の定義方法(2)

14

既存の表の列を圧縮列に変更する場合

定義系SQLのALTER TABLEの列属性変更定義(CHANGE 列名)で圧縮列に変更することはできません。 そのため、既存の表の列を圧縮列に変更する場合は、次の手順で行ってください。

1.既存の表のアンロード

2.既存の表の削除

3.表の再定義

4.表のリロード

1. 既存の表をアンロードします。

2. DROP TABLEで既存の表をいったん削除します。

3. CREATE TABLEで、圧縮列に変更する列に圧縮指定をして、

表を再定義します。圧縮指定以外は変更しないでください。

4. 3.で再定義した表に、1.でアンロードしたアンロードデータファイル

をリロードします。

既存の表の最後に新規の圧縮列を追加する場合

定義系SQLのALTER TABLEの列追加定義(ADD 列名)で圧縮指定をして圧縮列を追加します。その後、新たな行を追加した場合、圧縮列のデータが圧縮して格納されます。

Page 16: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

2-2-5 圧縮表の定義方法(3)

15

圧縮列の定義を変更(圧縮指定を解除)する方法

圧縮列の定義は、定義系SQLのALTER TABLEの列属性変更定義(CHANGE 列名)で変更できません。 圧縮指定を解除したり、圧縮分割サイズを変更するなど、圧縮列の定義を変更する場合、次の手順で変更してください。

1.圧縮表のアンロード

3.表の再定義

4.表のリロード

1. 定義を変更する圧縮表をアンロードします。

2. DROP TABLEで圧縮表をいったん削除します。

3. CREATE TABLEで圧縮指定を変更または解除した表を

再定義します。

4. 3.で定義した表に、1.でアンロードしたアンロードデータファイル

をリロードします。

2.圧縮表の削除

Page 17: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

2-2-6 圧縮表使用時の留意事項

16

圧縮表使用時の留意事項

圧縮列のデータをSQLやユティリティで操作する場合、圧縮処理や伸張処理のオーバヘッドが掛かります。BINARY型のデータの圧縮処理や伸張処理に掛かった時間は、統計解析ユティリティ(pdstedit)のUAPに関する統計情報で確認できます。なお、抽象データ型(XML型)の処理時間については確認できません。

圧縮対象となるデータの実態によって異なりますが、圧縮分割サイズが大きいほどデータの圧縮効率は上がります。ただし、圧縮分割サイズを大きくすると、圧縮列に対するデータの格納および抽出が発生するSQLを実行する場合にSQL実行時に確保するプロセス固有領域が増加します。メモリ不足を防ぐため、圧縮分割サイズはシステム内の空きメモリ、pd_max_access_tablesオペランドの指定値や圧縮表への同時アクセス数を考慮した値を指定してください。

共有モードで圧縮表のリバランスを実行する場合、データの伸張および圧縮を行うため、圧縮列がない場合に比べてリバランス処理に掛かる時間が長くなることがあります。実行時間を短縮したい場合は、占有モードで実行してください。

Page 18: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

2-2-7 データ圧縮機能の適用判断

17

データを圧縮・格納する前の測定方法

データの圧縮率は、圧縮対象となるデータの実態によって大きく異なります。正確な圧縮率は実際にデータを 圧縮・格納した後でないと測定できませんが、gzip※1を使用して算出した圧縮後のデータ長の概算値を用いる ことで、圧縮率の概算値を計算できます。計算式を次に示します。

計算式

※1 HiRDBが圧縮に使用するアルゴリズム(Deflate)と同等の圧縮アルゴリズムを使用しています。

※2 zlibとgzipでは、圧縮時に付与される圧縮情報を管理するヘッダの形式が異なるため、圧縮後のデータサイズに5%の余裕値を加 えます。

圧縮率(%)=

{(gzipによる圧縮後のデータ長×1.05※2)÷圧縮前のデータ長}×100

実際にデータを圧縮・格納する前に、どれくらい圧縮されるのか測定して、データ圧縮機能を

適用するかどうか見極めることができます。

測定方法を以下に示します。 解説

圧縮前のデータ長の

何%になるかなので、

値が小さいほうが、

圧縮効果があります。

Page 19: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

2-2-8 データ圧縮効果の確認

18

データを圧縮・格納した後の測定方法

実際にデータを圧縮・格納した後で圧縮率の概算値を算出する計算式を次に示します。 計算式

※1 算出手順を次に示します。

※2 圧縮前のデータ長は、非圧縮列のデータ長の算出方法(注※1の3.を参照)と同じSQLを実行して算出します。

※3 1.0以上の場合、圧縮によってデータ長が増加したまたは圧縮の効果が小さいことを示します。この場合は、圧縮列の定義を 変更して、圧縮指定を解除することをお勧めします。

圧縮率(%)= (圧縮後のデータ長※1の合計÷圧縮前のデータ長※2の合計)※3×100

1. -dオプション指定で、RDエリア単位または表単位にデータベース状態解析ユティリティ(pddbst)を 実行します。

2. 出力結果の<BINARY segment>の情報から、次の計算式で圧縮後のデータ長を求めます。

ni:バイナリ専用セグメントのUsed Page Ratio(使用中ページの比率別ページ数)が示す各比率の最大値 (例えば、Used Page Ratioが1~10%の場合は10%で0.1、11~20%の場合は20%で0.2となります) a:niに対応したPageの値 b:バイナリ専用セグメントのページサイズ

3. 1.で対象としたRDエリアまたは表にBINARY型の圧縮列と非圧縮列が混在している場合、 2.の算出結果から非圧縮列のデータ長を減算します。非圧縮列のデータ長は次のSQLを実行 して算出します。 合計長が2GBを超える場合は、以下のSQLを使用してください。

10 Σ ni×a×b i=1

SELECT SUM(LENGTH(非圧縮列名)) FROM 表識別子 〔IN RDエリア名〕

圧縮・格納後の効果を確認することができます。測定方法を以下に示します。

ただし、抽象データ型(XML型)の列の場合、pddbstで確認できないため、測定はできません。 解説

SELECT SUM(FLOAT(LENGTH(非圧縮列名))) FROM 表識別子 〔IN RDエリア名〕

Page 20: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

2. 導入コスト削減への対応 2. 1 導入コスト削減機能一覧 2. 2 データ圧縮機能 2. 3 HDPによる初期導入コストの削減、

運用・管理負担の軽減への対応

HiRDB Version 9 09-03 新機能解説

19

Page 21: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

日立ディスクアレイシステムに搭載されるボリューム容量の仮想化機能「Hitachi Dynamic Provisioning(HDP)」に対応しました。 ディスクアレイの容量に依存せずにサイズの大きな仮想容量を定義できるため、初期導入 コスト、複雑な容量設計や管理のコストを大幅に軽減できます。

ディスク装置の初期導入コストの軽減とディスク容量の設計・管理にかかる負荷を軽減したい。 有効な 場面

ストレージプール

HDD

仮想Vol(ディスク)

2月:RD2

■従来の運用 ■ボリューム容量仮想化機能(HDP)と連携した運用

業務

データ挿入

1月:RD1

業務 業務

3月:RD3

業務

2月:RD2 1月:RD1 3月:RD3

業務 業務

ストレージシステム

解説

ストレージプールを活用した資源共有により設計・運用のコストを軽減 ・データ増加の予測見積もり

・データ拡張・運用設計の立案。

・DBエリアのパンク回避のため

の余裕値設計。

監視、運用が大変

・個々のDBエリアの監視。

・仮想ディスクに最大サイズでDBエリアを

確保でき、DB容量設計が容易。

・DBエリアを自動拡張することで、

オンデマンドでストレージを割り当てられる。

・ストレージプール全体で枯渇監視でき、

監視、拡張運用が容易。

見積もり、設計が大変

New

格納に必要な最低限

のディスクで小さく

始められ、初期導入コストを抑えることができます。

将来想定される 必要最大容量の 仮想ボリュームを 設定できます。

2-3-1 HDP(ボリューム容量の仮想化機能)対応概要(1)

20

Page 22: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

データ一括削除などによって生じたHiRDBファイルシステム領域内の使用済み領域を

ゼロデータで初期化(pdfzeroinit)し、HDPのオプション機能である「ゼロデータ削除機能」で

ストレージプールへ返却して領域を再利用することで、資産を有効活用できます。

ディスク装置を有効活用したい。 有効な 場面

解説

RD2

2月分データ

・・・

RD1

1月分データ

RDエリア

ストレージプール

月次データのサイクリック運用などで、不要になった領域を

オンデマンドで解放

※解放したい単位にHiRDBファイル

システム領域を分ける必要が

あります。

解放された領域は別用途に利用可能

2-3-2 HDP(ボリューム容量の仮想化機能)対応概要(2)

21

Page 23: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

3. 大規模DBのサイクリック運用への対応

HiRDB Version 9 09-03 新機能解説

22

Page 24: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

3. 大規模DBのサイクリック運用への対応

3. 1 大規模DBのサイクリック運用への対応機能一覧 3. 2 年月日単位でのRDエリア サイクリック運用

HiRDB Version 9 09-03 新機能解説

23

Page 25: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

# サポート機能 サポートVR 概要

1 年月日単位でのRDエリア サイクリック運用 で解説します。

2 RDエリア分割数の上限拡大(1024→4096) で解説します。

24

大規模DBのサイクリック運用への対応機能として以下の機能サポートしました。 解説

3-2-1~3-2-10項

3-2-1項 V9.3

V9.3

3-1-1 大規模DBのサイクリック運用への対応機能一覧

Page 26: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

3. 大規模DBのサイクリック運用への対応

3. 1 大規模DBのサイクリック運用への対応機能一覧 3. 2 年月日単位でのRDエリア サイクリック運用

HiRDB Version 9 09-03 新機能解説

25

Page 27: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

大量のトランザクションで、日単位で大量データを処理する業務が多い。 有効な 場面

日次処理を行い、古いデータは上書きするサイクリック運用をするシステムに適した表分割 ができるようにしました。 分割列中の年月日の値を使用してハッシングするハッシュ関数を使用することで、データを 格納するRDエリアを年月日単位で循環させて割り当てるハッシュ分割表を定義できます。

解説

◆月次処理システム (HASH0を使用した年月単位の分割)

日付 社員番号 ・・

2012-01-01 11120476

・・

2012-01-31 11136912

2012-02-01 11159240

・・

2012-03-01 11130711

・・

2012-03-31 11190173

2012-04-01 11175003

・・

2012-04-03 11135499

勤休管理表

◆日次処理システム (HASHZを使用した年月日単位の分割)

2012年2月

2012年3月

2012/1/1

2012/4/2

・・・

集計・分析

2012/1/2

New

2012/2/1

・・・

・・・

2012/3/1

分割キー

容量が大きすぎる! データが集中する!

循環利用

受注管理表

分割キー

ハッシュ 関数

HASH0

注文日 注文コード ・・

2012-01-01 1201010001

・・

2012-01-02 1201020007

・・ 2012-02-01 1202010003

・・

2012-03-01 1203010001

・・

2012-04-02 1204010004

・・

2012-04-03 1204030001

ハッシュ 関数

HASHZ

2012年1月 バックアップ 2012年1月

2012年2月 バックアップ

2012年3月 バックアップ

2012年4月

2012/1/1 バックアップ

2012/1/2 バックアップ

2012/2/1 バックアップ

2012/3/1 バックアップ

2012/4/2 バックアップ

集計・分析

2012/4/3

扱う単位が小さくなるため、 容量も小さくなり、循環利用 をきめ細かくできる!

負荷も分散できる!

循環利用

3-2-1 年月日単位でのRDエリア サイクリック運用概要

扱う単位が小さくなるため、表を分割するときのRDエリア数の上限を、1,024から4,096に拡大しました。

RDエリア数の上限拡大に伴い、1表あたりのDB容量の上限を、1024TBから4096TBへ拡大しました。 26

Page 28: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

RDエリアを年月日単位に循環させて割り当てる場合

ハッシュ関数HASHZを使用して、KESSAI表に2011年7月31日~9月1日の1か月+2日分のデータを保持している状態で、最も古い2011年7月31日のデータをRDエリア単位に削除し、新しい2011年9月2日のデータを格納する例を説明します。

RDエリアを年月日単位に循環させて割り当てる

1.削除対象の2011年7月31日の データが格納されている RDエリア名を特定する

2. pdholdコマンドでアンロード 対象RDエリアを閉塞する

3. pdrorgコマンドでKESSAI表の RDA1のデータをアンロードする※

4. pdloadコマンドでRDA1に対して 0件のデータロードをする

5. pdrelsコマンドでRDエリアの 閉塞を解除する

2011年 7月31日 のデータ

2011年 8月1日 のデータ

2011年 8月2日 のデータ

2011年 9月1日 のデータ

2011年 9月2日 のデータ

格納

削除

RDA1(1) RDA3(3) RDA2(2) RDA33(33)

KESSAI表の定義

CREATE TABLE KESSAI

(DNO CHAR(6), TCODE CHAR(5), SCODE CHAR(3), JDATE DATE NOT NULL)

FIX HASH HASHZ BY JDATE IN

(RDA1,RDA2,RDA3,RDA4,RDA5,RDA6,RDA7,RDA8,RDA9,RDA10 ,

~省略~

RDA31,RDA32,RDA33);

1ヵ月+2日分のデータを保持

KESSAI表

27

3-2-2 運用方法(1)

注)RDエリア名の(m)は、分割条件指定順序を示しています。

※アンロードは、データを保存する必要がある 場合に実行してください。

Page 29: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

RDエリアを年月日単位に循環させて割り当てる場合

1.削除対象の2011年7月31日の データが格納されている RDエリア名を特定する

2. pdholdコマンドでアンロード 対象RDエリアを閉塞する

3. pdrorgコマンドでKESSAI表の RDA1のデータをアンロードする

4. pdloadコマンドでRDA1に対して 0件のデータロードをする

1. 次のどちらかの方法でRDエリア名を特定します。

(a)表分割ハッシュ関数p_rdb_dbhashを使用する方法 (i)表分割ハッシュ関数の実行 HiRDBが提供する表分割ハッシュ関数を使用して、削除対象の 2011年7月31日のデータが格納されているRDエリア名を特定し ます。 表分割ハッシュ関数については、マニュアル「UAP開発ガイド」を 参照してください。 表分割ハッシュ関数を実行すると、分割条件指定順序として rdno=1が返ってきます。

(ii) SQLの実行 表分割ハッシュ関数の結果を基に次のSQLを実行し、データが どこのRDエリアに入っているのかを検索します。

SELECT RDAREA_NAME FROM MASTER.SQL_DIV_TABLE WHERE TABLE_SCHEMA='USER1' /*ユーザ名*/ AND TABLE_NAME='KESSAI' /*ハッシュ分割表名*/ AND DIV_NO=1 /*分割条件指定順序*/

上記のSQLを実行すると、削除対象のRDエリア名としてRDA1 が返ってきます。

5. pdrelsコマンドでRDエリアの 閉塞を解除する

続く

28

RDエリアを年月日単位に循環させて割り当てる

3-2-3 運用方法(2)

Page 30: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

RDエリアを年月日単位に循環させて割り当てる場合

1.削除対象の2011年7月31日の データが格納されている RDエリア名を特定する

2. pdholdコマンドでアンロード 対象RDエリアを閉塞する

3. pdrorgコマンドでKESSAI表の RDA1のデータをアンロードする

4. pdloadコマンドでRDA1に対して 0件のデータロードをする

(b)CREATE PUBLIC FUNCTIONを定義しておく方法 (i) CREATE PUBLIC FUNCTIONの定義 ハッシュ関数HASHZの場合、次のSQLをあらかじめ定義して おくことでRDエリアを特定できます。

CREATE PUBLIC FUNCTION HASHZ (IDATE VARCHAR(10)※, /* 'YYYY-MM-DD' */ NDIV INT) /* 分割列数 */ RETURNS INT BEGIN RETURN MOD(DAYS(DATE(IDATE,'yyyy-mm-dd')),NDIV)+1; /* HASHZによる戻り値 */ END END_FUNC;

注※ 日付を文字列表現にする場合は、VARCHAR(10)にして ください。

(ii) SQLの実行 次のSQLで、2011年7月31日のデータがどこのRDエリアに入って いるのかを検索します。

SELECT RDAREA_NAME FROM MASTER.SQL_DIV_TABLE WHERE TABLE_SCHEMA='USER1' /*ユーザ名*/ AND TABLE_NAME='KESSAI' /*ハッシュ分割表名*/ AND DIV_NO=HASHZ('2011-07-31',33); /*RDエリア定義順序*/

上記のSQLを実行すると、削除対象のRDエリア名としてRDA1 が返ってきます。

5. pdrelsコマンドでRDエリアの 閉塞を解除する

29

RDエリアを年月日単位に循環させて割り当てる

3-2-4 運用方法(3)

Page 31: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

RDエリアを年月日単位に循環させて割り当てる場合

1.削除対象の2011年7月31日の データが格納されている RDエリア名を特定する

2. pdholdコマンドでアンロード 対象RDエリアを閉塞する

3. pdrorgコマンドでKESSAI表の RDA1のデータをアンロードする

4. pdloadコマンドでRDA1に対して 0件のデータロードをする

2. pdhold -r RDA1

3. pdrorg -k unld -t KESSAI -r RDA1 unload_control_file unload_control_file:pdrorgコマンドの制御情報ファイル名を指定しま す。制御情報ファイルの内容を次に示します。 unload bes1:/pdrorg/unload_file /* bes1:アンロードデータファイルがあるサーバの名称 */ /* /pdrorg/unload_file:アンロードデータファイルの名称 */

4.最も古い2011年7月31日のデータ(RDA1のデータ)を削除するため、 0件のデータロードを実行します。 pdload -d KESSAI load_control_file load_control_file:pdloadコマンドの制御情報ファイル名を指定します。 制御情報ファイルの内容を次に示します。 source RDA1 bes1:/pdload/load_file /* RDA1:0件のデータをデータロードするRDエリアの名称 */ /* bes1:ロードする0件データファイルがあるサーバの名称 */ /* /pdload/load_file:ロードする0件データファイルの名称 */ 分割表に、分割していない非分割インデクスを定義している場合、 pdloadコマンド実行後に非分割インデクスを一括作成してください。

5. pdrels -r RDA1 コマンドの実行後、UAPなどで2011年9月2日のデータを挿入すると、 RDA1にデータが格納されます。

5. pdrelsコマンドでRDエリアの 閉塞を解除する

アンロードをするためunldを指定します。

アンロードする表の名称を指定します。

特定のRDエリアだけアンロードするため、 対象となるRDエリア名を指定します。

既存のデータを削除してからデータロードをするために指定します。

データロードする表の名称を指定します。

30

RDエリアを年月日単位に循環させて割り当てる

3-2-5 運用方法(4)

Page 32: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

RDエリアを年月日単位に循環させて割り当てる場合(マトリクス分割の場合)

ハッシュ関数HASHZを使用した、マトリクス分割表を定義して、KESSAI表に2011年7月31日~9月1日の1か月+ 2日分のデータを保持している状態で、最も古い2011年7月31日のデータをRDエリア単位に削除し、新しい2011年9月2日のデータを格納する例を説明します。

1.削除対象の2011年7月31日の データが格納されている RDエリア名を特定する

2. pdholdコマンドでアンロード 対象RDエリアを閉塞する

3. pdrorgコマンドでKESSAI表の RDA1、RDA34およびRDA67の データをアンロードする※

4. pdloadコマンドでRDA1、RDA34 およびRDA67に対して 0件のデータロードをする

5. pdrelsコマンドでRDエリアの 閉塞を解除する

なお、ここでのマトリクス分割表は、次のように分割しているものとします。 第1次元は、SCODE列でキーレンジ分割する。第1次元の分割数は3とし、境界値 として100および200を指定する。

第2次元は、JDATE列でハッシュ分割する。第2次元の分割数は33とし、ハッシュ 関数としてHASHZを指定する。

JDATE列のデータ型はDATEで、年月日をYYYY-MM-DDの形式で格納する。

KESSAI表の定義

CREATE TABLE KESSAI

(DNO CHAR(6), TCODE CHAR(5), SCODE CHAR(3) NOT NULL,

JDATE DATE NOT NULL)

PARTITIONED BY MULTIDIM

(SCODE(('100'),('200')),

FIX HASH HASHZ BY JDATE) IN

((RDA1,RDA2,RDA3,RDA4,RDA5,RDA6,RDA7,RDA8,RDA9,RDA10,

~省略~

RDA31,RDA32,RDA33),(RDA34,RDA35,RDA36,RDA37,RDA38,RDA39,RDA40,

~省略~

RDA61,RDA62,RDA63,RDA64,RDA65,RDA66),(RDA67,RDA68,RDA69,RDA70,

~省略~

RDA91,RDA92,RDA93,RDA94,RDA95,RDA96,RDA97,RDA98,RDA99));

続く 31

RDエリアを年月日単位に循環させて割り当てる

3-2-6 運用方法 マトリクス分割の場合(1)

※アンロードは、データを保存する必要がある 場合に実行してください。

Page 33: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

2011年 7月31日 のデータ

2011年 8月1日 のデータ

2011年 8月2日 のデータ

2011年 9月1日 のデータ

2011年 9月2日 のデータ

SCODEが100以下のデータを格納 削除

RDA1(1) RDA3(3) RDA2(2) RDA33(33)

1ヵ月+2日分のデータを保持

2011年 7月31日 のデータ

2011年 8月1日 のデータ

2011年 8月2日 のデータ

2011年 9月1日 のデータ

2011年 9月2日 のデータ

削除

RDA34(34) RDA36(36) RDA35(35) RDA66(66)

2011年 7月31日 のデータ

2011年 8月1日 のデータ

2011年 8月2日 のデータ

2011年 9月1日 のデータ

2011年 9月2日 のデータ

削除

RDA67(67) RDA69(69) RDA68(68) RDA99(99)

SCODEが101以上200以下のデータを格納

SCODEが201以上のデータを格納

KESSAI表

KESSAI表

KESSAI表

RDエリアを年月日単位に循環させて割り当てる場合(マトリクス分割の場合)

1.削除対象の2011年7月31日の データが格納されている RDエリア名を特定する

2. pdholdコマンドでアンロード 対象RDエリアを閉塞する

3. pdrorgコマンドでKESSAI表の RDA1、RDA34およびRDA67の データをアンロードする

4. pdloadコマンドでRDA1、RDA34 およびRDA67に対して 0件のデータロードをする

5. pdrelsコマンドでRDエリアの 閉塞を解除する

RDエリアを年月日単位に循環させて割り当てる

3-2-7 運用方法 マトリクス分割の場合(2)

注)RDエリア名の(m)は、分割条件指定順序を示しています。 32

Page 34: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

RDエリアを年月日単位に循環させて割り当てる場合(マトリクス分割の場合)

1. 次のどちらかの方法でRDエリア名を特定します。

(a)表分割ハッシュ関数p_rdb_dbhashを使用する方法 (i)表分割ハッシュ関数の実行 マトリクス分割で無い場合と同じ。3-2-3参照。

(ii) SQLの実行 表分割ハッシュ関数の結果を基に、次のSQLを実行し、RDエリア 名を特定します。

SELECT RDAREA_NAME,DCVALUES FROM MASTER.SQL_DIV_TABLE WHERE TABLE_SCHEMA='USER1' AND TABLE_NAME='KESSAI' AND MOD(DIV_NO-1,33)+1=1 上記のSQLを実行すると、削除対象のRDエリア名としてRDA1、 RDA34およびRDA67が返ってきます。

(b)CREATE PUBLIC FUNCTIONを定義しておく方法 (i) CREATE PUBLIC FUNCTIONの定義 マトリクス分割で無い場合と同じ。3-2-4参照。

(ii) SQLの実行 次のSQLで、2011年7月31日のデータがどこに入っているのかを 検索します。

SELECT RDAREA_NAME,DCVALUES FROM MASTER.SQL_DIV_TABLE WHERE TABLE_SCHEMA='USER1' AND TABLE_NAME='KESSAI' AND MOD(DIV_NO-1,33)+1=HASHZ('2011-07-31',33);

上記のSQLを実行すると、削除対象のRDエリア名としてRDA1、 RDA34およびRDA67が返ってきます。

1.削除対象の2011年7月31日の データが格納されている RDエリア名を特定する

2. pdholdコマンドでアンロード 対象RDエリアを閉塞する

3. pdrorgコマンドでKESSAI表の RDA1、RDA34およびRDA67の データをアンロードする

4. pdloadコマンドでRDA1、RDA34 およびRDA67に対して 0件のデータロードをする

5. pdrelsコマンドでRDエリアの 閉塞を解除する

ユーザ名

ハッシュ分割表名

RDエリア定義順序

ユーザ名

ハッシュ分割表名

RDエリア定義順序

33

RDエリアを年月日単位に循環させて割り当てる

3-2-8 運用方法 マトリクス分割の場合(3)

Page 35: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

RDエリアを年月日単位に循環させて割り当てる場合(マトリクス分割の場合)

2. pdhold -r RDA1 pdhold -r RDA34 pdhold -r RDA67

3. pdrorg -k unld -t KESSAI -r RDA1 unload_control_file1 pdrorg -k unld -t KESSAI -r RDA1 unload_control_file34 pdrorg -k unld -t KESSAI -r RDA1 unload_control_file67

説明は、マトリクス分割で無い場合と同じ。3-2-5参照。

4.最も古い2011年7月31日のデータ(RDA1のデータ)を削除するため、 0件のデータロードを実行します。 pdload -d KESSAI load_control_file1 pdload -d KESSAI load_control_file34 pdload -d KESSAI load_control_file67

説明は、マトリクス分割で無い場合と同じ。3-2-5参照。

5. pdrels -r RDA1 pdrels -r RDA34 pdrels -r RDA67

コマンドの実行後、UAPなどで2011年9月2日のデータを挿入すると、 RDA1、RDA34、RDA67にデータが格納されます。

1.削除対象の2011年7月31日の データが格納されている RDエリア名を特定する

2. pdholdコマンドでアンロード 対象RDエリアを閉塞する

3. pdrorgコマンドでKESSAI表の RDA1、RDA34およびRDA67の データをアンロードする

4. pdloadコマンドでRDA1、RDA34 およびRDA67に対して 0件のデータロードをする

5. pdrelsコマンドでRDエリアの 閉塞を解除する

34

3-2-9 運用方法 マトリクス分割の場合(4) RDエリアを年月日単位に循環させて割り当てる

Page 36: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

3-2-10 運用での注意事項

35

RDエリアを年月日単位に循環させて割り当てる運用での注意事項

HASHZを使用した年月日単位の分割をした表に対して、操作系SQLが全RDエリアをアクセスせずに、特定のRD エリアのみアクセスするために日付の範囲条件を指定するときは、開始点と終了点(両端)を指定してください。

RDエリアの自動拡張を使用する場合は、0件のデータロードでは領域サイズが元に戻らないので、RDエリアの 再初期化が必要ですが、RDエリアの再初期化では、表にEXの排他をかけるので、業務停止時間が必要になり ます。

RDエリアを年月日単位に循環させて割り当てる

Page 37: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

4. 開発および移行の容易性向上

HiRDB Version 9 09-03 新機能解説

36

Page 38: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

4. 開発および移行の容易性向上 4. 1 開発および移行の容易性向上機能一覧 4. 2 一時表による開発容易性向上と 他社DBMSからの移行性向上 4. 3 FIX表の列追加

4. 4 アプリ性能向上のための機能

HiRDB Version 9 09-03 新機能解説

37

Page 39: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

# サポート機能 サポートVR 概要

1 一時表による開発容易性向上と

他社DBMSからの移行性向上 で解説します。

2 FIX表の列追加 で解説します。

3 XMLの部分更新 で解説します

4 パラメタを含むXMLEXISTS述語に

対する部分構造インデクスの有効化 で解説します。

5 ホールダブルカーソルの

プラグイン対応強化

ホールダブルカーソル(COMMIT文を実行しても閉じないカーソル)で、プラグインを使った全文検索やXML型の検索を実行できるようにしました。※

6 引用符で囲まないPUBLICによる

修飾子サポート

パブリックビューまたはパブリックルーチンをアクセスするための修飾子として、引用符で囲まないPUBLICを使用できるようにしました。

例えば、EXCELのSQL自動生成機能を使用してDBにアクセスするケースでは、本機能により構文エラーなく利用することができます。

38

開発および移行の容易性向上機能として以下の機能サポートしました。 解説

V9.3

V9.3

V9.3

V9.2

V9.3

4.2節

4.3節

4.4節

4.4節

V9.2

※ HiRDB Text Search Plug-in 09-02(以降)またはHiRDB XML Extension 09-02(以降)が必要です。

4-1-1 開発および移行の容易性向上機能一覧(1)

Page 40: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

# サポート機能 サポートVR 概要

7 Type4 JDBCドライバでのJDBC 3.0機能

およびJDBC 4.0機能のサポート

Type4 JDBCドライバで、JDBC 3.0およびJDBC

4.0で追加された以下の機能をサポートしました。

・Blobインタフェースのfreeメソッド

・ConnectionインタフェースのisValidメソッド

・DatabaseMetaDataインタフェースの関数情報

を取得するメソッド

・ParameterMetaDataインタフェース

・ResultSetインタフェースのgetHoldability

メソッドおよびisClosedメソッド

・StatementインタフェースのisClosedメソッド

・Wrapperインタフェース

・java.sql.Driverの自動ローディング

8 Type4 JDBCドライバでの定期的に

パケットを送信する機能のサポート

Type4 JDBCドライバからHiRDBサーバへ、

定期的にパケットを送信する機能をサポートしました。

これによって、Type4 JDBCドライバを使用したアプリケーション実行時に、ルータやファイアウォールなどの無通信時間監視機能で、コネクションが自動的に切断されることを防止できます。

39

V9.3

V9.2

4-1-2 開発および移行の容易性向上機能一覧(2)

Page 41: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

# サポート機能 サポートVR 概要

9

64ビットモードのWindows環境における

32ビット版HiRDB.NETデータプロバイダ

のサポート

64ビットモードのWindows環境で、32ビット版

HiRDB.NETデータプロバイダを使用できるようにしました。これによって、32ビットモードのWindows

環境で動作している既存の.NETアプリケーションを、そのまま64ビットモードのWindows環境で実行できるようになります。

10 Visual Studio 2008/2010用

クライアントライブラリのサポート

Visual Studio 2008およびVisual Studio 2010専用のクライアントライブラリを追加しました。これによって、Visual Studio 2008またはVisual Studio

2010でアプリケーションを作成できるようになります。

11 HiRDBクライアントの文字コード変換での

変換対象文字の追加

HiRDBクライアントの文字コードがUTF-16、HiRDBサーバの文字コードがEUC日本語漢字コードで設定されている場合に、JIS-X0213:2004

で追加された文字をコード変換して入出力できるようにしました。

40

V9.2

V9.2

V9.2

4-1-3 開発および移行の容易性向上機能一覧(3)

Page 42: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

4. 開発および移行の容易性向上 4. 1 開発および移行の容易性向上機能一覧 4. 2 一時表による開発容易性向上と 他社DBMSからの移行性向上 4. 3 FIX表の列追加

4. 4 アプリ性能向上のための機能

HiRDB Version 9 09-03 新機能解説

41

Page 43: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved. 42

複雑なデータベース操作を行うアプリケーションなどで、中間処理結果を一時的に保持

したり、更に加工したり、何度も参照したりするための作業用の表として利用できる一時表を

サポートしました。 解説

顧客名 … … … … … …

A

A

A

B

B

B

USER-X.注文履歴表

注文履歴表からUSER-Aに関する情報を抜き出した注文履歴の一時表を作成し、

操作する。

USER-B

USER-Aの 注文履歴一時表

顧客名 … … …

B

B

B

USER-Bの 注文履歴一時表

顧客名 … …

A

A

A

USER-A

注文履歴表からUSER-Bに関する情報を抜き出した注文履歴の一時表を作成し、

操作する。

一時表

4-2-1 一時表概要(1)

データ件数の多い表に頻繁にアクセスする業務がある。

業務側で、中間処理結果を一時的に保存する業務がある。 有効な 場面

一時表

・接続ごとに異なるデータを格納することができるため、複数ユーザで同時に実行しても他ユーザの影響を受けま

せん。

・データ件数が多い表の一部のデータを、1トランザクション中もしくは1接続中に頻繁にアクセスする場合、該当

データを一時表に格納することで、I/O回数を削減でき、性能向上が見込まれます。

・一時表のデータは自動的に削除されるため、アプリケーションによる削除処理が不要です。

・他社DBMSからHiRDBへ移行する際も、一時表を利用したアプリケーションの移行が容易になります。

Page 44: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved. 43

commit/

disconnect

USER-Aの 注文履歴一時表

USER-Bの 注文履歴一時表

顧客名 … …

A

A

A

USER-A

4-2-2 一時表概要(2)

一時表は、表定義時点では作成されません。一時表に対して、

最初にINSERT文が 実行されたときに表が作成されます。

このことを、一時表の実体化といいます。

顧客名 … …

A

A

A

一時表の特徴について解説します。 解説

insert

USER-A

一時表は、トランザクション

またはSQLセッションの

期間中だけ存在する実表

です。

一時表の実体は、表定義時の指定によってトランザクション終了時

またはSQLセッション終了時に自動的に削除されます。

USER-B

顧客名 … … …

B

B

B

insert

一時表は、一つの表定義に対して

接続ごとに異なる実体が作成されます。

顧客名 … … … … … …

A

A

A

B

B

B

USER-X.注文履歴表 …

Page 45: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

一時表の種類 開始となるタイミング 終了となるタイミミング

トランザクション固有一時表

トランザクション中で、一時表に対して最初にINSERT文が実行されたとき

トランザクションが決着したとき

SQLセッション固有一時表

SQLセッション中で、一時表に対して最初にINSERT文が実行されたとき

・SQLセッションが終了したとき

・一時表を実体化したバックエンドサーバが終了したとき

・一時表を実体化したバックエンドサーバがあるユニット

が終了したとき

・一時表を実体化したバックエンドサーバまたはその

バックエンドサーバがあるユニットに対して系切り替え

が発生したとき

44

一時表のデータ有効期間(実体が存在する期間)について解説します。 解説

4-2-3 一時表のデータ有効期間

実体化された一時表のデータ有効期間(実体が存在する期間)は、その一時表がトランザクション固有一時表か、SQLセッション固有一時表かによって異なります。

一時表のデータ有効期間の開始および終了タイミングを次の表に示します。

Page 46: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

SQLセッション 一時表 保存されているデータ

SQLセッション1 TMP1 4.で挿入したデータ。

TMP2 1.および3.で挿入したデータ。

SQLセッション2 TMP1 この時点では、データはありません。

TMP2 1.および3.で挿入したデータ。

45

データ有効期間とある時点で保持されているデータの例を以下に示します。 解説

CONNECT INSERT INTO TMP2 …1 INSERT INTO TMP1 …2 COMMIT INSERT INTO TMP2 …3 INSERT INTO TMP1 …4 DISCONNECT

4-2-4 一時表のデータ有効期間(2)

TMP1

TMP1

TMP2

データ有効期間 CONNECT INSERT INTO TMP2 …1 INSERT INTO TMP1 …2 COMMIT INSERT INTO TMP2 …3 INSERT INTO TMP1 …4 DISCONNECT

TMP1

TMP1

TMP2

データ有効期間

時間の流れ

時刻

T

SQLセッション1(ユーザA) SQLセッション2(ユーザB)

◆トランザクション固有一時表TMP1およびSQLセッション固有一時表TMP2に対する操作の場合

時刻T時点で保存されているデータ

Page 47: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

時刻 SQLセッション 保存されているデータ

T1 SQLセッション1

2.で表のデータを削除しているため、この時点では、データはありません。ただし、TMP2の実体は存在します。

SQLセッション2 1.で挿入したデータ。

T2

SQLセッション1 3.および4.で挿入したデータ。

SQLセッション2 この時点では、データはありません。TMP2を実体化する前の同期点までロールバックしているため、TMP2の実体は存在しません。

46

CONNECT INSERT INTO TMP2 …1 PURGE TABLE TMP2 …2 INSERT INTO TMP2 …3 INSERT INTO TMP2 …4 DISCONNECT

4-2-5 一時表のデータ有効期間(3)

TMP2

データ有効期間

CONNECT INSERT INTO TMP2 …1 INSERT INTO TMP1 …2 ROLLBACK INSERT INTO TMP2 …3 DISCONNECT

TMP2

データ有効期間

時間の流れ

時刻

T1

SQLセッション1(ユーザA) SQLセッション2(ユーザB)

◆SQLセッション固有一時表TMP2に対する操作の場合

時刻

T2

時刻T1、T2時点で保存されているデータ

Page 48: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

一時表および一時インデクスの定義方法について解説します。 解説

4-2-6 一時表および一時インデクスの定義方法

一時表および一時インデクスの定義方法

◆一時インデクス定義 一時表にインデクスを定義でき(一時インデクス)、一時インデクスの定義のみに必要な指定はありません。

◆一時表定義 定義系SQLのCREATE TABLEでGLOBAL TEMPORARYを指定します。トランザクション固有一時表を定義する場合はON COMMIT DELETE ROWSを、SQLセッション固有一時表を定義する場合はON COMMIT PRESERVE ROWSを指定します。 SQL構文

CREATE GLOBAL TEMPORARY TABLE 〔認可識別子.〕表識別子 ({列定義|表制約定義}〔、{列定義|表制約定義}〕…) 〔表オプション〕… {〔表制約定義〕…| [ ON COMMIT {DELETE |PRESERVE} ROWS ] } 〔WITH PROGRAM〕

47

◆一時表定義例 トランザクション固有一時表の場合 SQLセッション固有一時表の場合

CREATE GLOBAL TEMPORARY TABLE TMP1(C1 INT、 C2 VARCHAR(10)) ON COMMIT DELETE ROWS

CREATE GLOBAL TEMPORARY TABLE TMP2 (C1 INT、 C2 VARCHAR(10)) ON COMMIT PRESERVE ROWS

一時表定義、一時インデクス定義ともにRDエリアの指定はできません。

一時表で使用するRDエリアは、クライアント環境定義 PDTMPTBLRDAREA(後述)で指定します。

Page 49: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

一時表のサポートに伴い、新たに追加したシステム定義のオペランドについて解説します。 解説

4-2-7 システム定義

システム定義

一時表のサポートに伴い、以下のオペランドをシステム定義に追加しました。

48

オペランド名 各定義の指定可否 変更可否

システム共通定義

ユニット 制御情報

定義

サーバ 共通定義

FES定義

BES定義

DS 定義

SDS定義

再開始時 変更可否

計画停止後変更可否

pd_max_tmp_table_rdarea_no ○ × × × × × × 可 可

pd_max_temporary_object_no ○ × ○ × ○ × ○ 可 可

pd_tmp_table_initialize_timing ○ × × × × × × 可 可

(1)pd_max_tmp_table_rdarea_no = 一時表用RDエリアの最大数 ~<符号なし整数>((0~131088))《0》 一時表用RDエリアの最大数を指定します。一時表用RDエリアの合計数がこのオペランドの値を超えている 場合、HiRDBを開始できません。 (2)pd_max_temporary_object_no = ある一時点で使用する一時表と一時インデクスの最大数 ~<符号なし整数>((0~131072))《0》 サーバごとに、ある一時点で使用する一時表と一時インデクスの最大数を指定します。 (3)pd_tmp_table_initialize_timing = STARTING | ACCESS 一時表用RDエリアは、通常、HiRDB開始時に初期化されます。このオペランドは、一時表用RDエリアの初期 化をHiRDB開始時ではない時に変更する場合に指定します。 STARTING : HiRDB開始時に、前回稼働中に使用したすべての一時表用RDエリアを初期化します。 ACCESS : 一時表に最初にINSERT文が実行された時に、格納先候補となった一時表用RDエリアを初期化し ます。 一時表に対する初回INSERTの実行性能を落とさないよう、デフォルト値のSTARTINGをお勧めします。 ただし、一時表に対する初回INSERTの実行性能を多少落としてでも、系切り替え時間を短縮する必要がある 場合は、ACCESSを指定してください。

Page 50: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

一時表用RDエリアは、一時表を使用する場合に必要です。一時表用RDエリアについて

解説します。 解説

4-2-8 一時表用RDエリア(1)

一時表用RDエリア

◆一時表用RDエリアの作成方法 データベース初期設定ユティリティ(pdinit)またはデータベース構成変更ユティリティ(pdmod)のcreate rdarea文に次の二つのオペランドを指定して、作成します。 ・for user used by PUBLICを指定します。 一時表用RDエリアとして使用するには、公用RDエリアである必要があります。

・temporary table useを指定します。 SQLセッション間共有属性の場合はtemporary table use sharedを、特定SQLセッション占有属性の場合は temporary table use occupiedを指定します。

◆一時表用RDエリアの属性 ・SQLセッション間共有属性の一時表用RDエリア すべてのSQLセッションで使用できる一時表用RDエリアです。SQLセッション間で共有させることで一時表用RDエリアの個数を 少なくする場合に使用します。 ・特定SQLセッション占有属性の一時表用RDエリア 特定のSQLセッション(クライアント環境定義PDTMPTBLRDAREA(後述)に使用する一時表用RDエリアを指定している SQLセッション)だけが使用する一時表用RDエリアです。特定のユーザが膨大なデータを扱い、ほかのユーザが使用する一時表 用RDエリアを圧迫する場合、それを避けるときに使用します。

49

create rdarea RDTMP01 globalbuffer tmpbuf01 for user used by PUBLIC server name BES1 open attribute INITIAL page 4096 characters storage control segment 100 pages temporary table use shared file name "/hirdb/db/rdtmp01_f01" initial 500 segments ;

◆一時表用RDエリアの作成例 HiRDB/パラレルサーバのBES1に、SQLセッション間共有属性の一時表用RDエリア(RDTMP01)を作成する場合のデータベース 構成変更ユティリティ(pdmod)の制御文の例を次に示します。

一時表用RDエリア名を指定

公用RDエリアの指定

SQLセッション間共有属性を指定

Page 51: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

4-2-9 一時表用RDエリア(2)

一時表用RDエリア

◆作成時の注意事項 (1)使用できる一時表用RDエリアが複数ある場合、使用する一時表用RDエリアはHiRDBが自動的に決定します。 そのため、一つのUAPが使用できる一時表用RDエリアは、RDエリアの容量、セグメントサイズおよびページ サイズを同じにすることをお勧めします。 RDエリアの容量、セグメントサイズおよびページサイズを統一していないと、次の現象が発生します。

・一時表への、初回のINSERT文の実行によって実体化するごとに、ページサイズが異なるRDエリアを格納先 として決定する可能性があります。この場合、同じ挿入データであっても、挿入データの行長と格納先RD エリアのページサイズの大小関係によって、初回のINSERT文の実行可否が変わります。

・格納先RDエリアは空きセグメント数が多いRDエリアを優先的に選択しますが、格納先RDエリアの候補とな るRDエリアのページサイズやセグメントサイズが異なると、空き容量の小さいRDエリアを格納先RDエリア として選択することがあります。

(2)一時表用RDエリアはHiRDB開始時または一時表への最初のINSERT文実行時に初期化されるため、容量が 大き過ぎると初期化のオーバヘッドが大きくなります。

◆クライアント環境定義 PDTMPTBLRDAREA

PDTMPTBLRDAREA=RDエリア名[,RDエリア名…] 使用する一時表および一時インデクスを格納する一時表用RDエリア名の候補を指定します。 一時表のデータ有効期間外にINSERT文を実行した場合、この環境変数に指定したRDエリアの中からデータ 格納先の一時表用RDエリアを決定します。この環境変数を省略した場合、HiRDBが自動的にデータ格納先の 一時表用RDエリアを決定します。一時表の格納先RDエリアの決定規則については、マニュアル「システム導入・ 設計ガイド」を参照してください。

50

Page 52: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

4. 開発および移行の容易性向上 4. 1 開発および移行の容易性向上機能一覧 4. 2 一時表による開発容易性向上と 他社DBMSからの移行性向上 4. 3 FIX表の列追加

4. 4 アプリ性能向上のための機能

HiRDB Version 9 09-03 新機能解説

51

Page 53: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

時間

サービス停止期間 ◆FIX表への

列追加手順

(従来) 列1 列2 列3

100 'aaa' 1

200 'bbb' 2

・ ・

アンロードファイル

列1 列2 列3

(1)データをアンロード (2)データ削除 (3)列追加 (4)データロード

列1 列2 列3 列4

100 'aaa' 1 0

200 'bbb' 2 0

・ ・

0件 0件

列1 列2 列3 列4

◆予備列を利用した

FIX表への列追加手順

(1)あらかじめ予備列を定義

列1 列2 列3 予備列

100 'aaa' 1 0x00・・・00

200 'bbb' 2 0x00・・・00

・ ・

(2)列追加

列1 列2 列3 列4 予備列

100 'aaa' 1 0 0x00・・0

200 'bbb' 2 0 0x00・・0

・ ・

追加する列を

予備列から切り出す

ALTER TABLE 表1

ADD 列4 INTO 予備列

データを格納した状態

では行長が変更になる列追加ができない

FIX表に対する排他待ち期間(サービス停止不要)

表1 表1 表1 表1

表1 表1

FIX表に列を追加する機能をサポートしました。FIX表を定義する際、あらかじめ予備領域の

予備列を定義し、その予備列から新たに列を切り出すことで、データを格納した状態でも列を

追加できるようになります。これによって、サービスを停止して行っていたデータのアンロード、

表定義変更およびデータロードの作業を削減でき、FIX表の定義を柔軟に変更できるように

なります。

FIX表に列を追加したいが、サービスは停止したくない。 有効な 場面

解説

New

4-3-1 FIX表の列追加概要

52

Page 54: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

4. 開発および移行の容易性向上 4. 1 開発および移行の容易性向上機能一覧 4. 2 一時表による開発容易性向上と 他社DBMSからの移行性向上 4. 3 FIX表の列追加

4. 4 アプリ性能向上のための機能

HiRDB Version 9 09-03 新機能解説

53

Page 55: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved. 54

XMLデータ中の一部の要素や属性などを更新できる機能をサポートしました。 これによって、XMLデータ中の一部を更新する場合、アプリケーション中にXMLデータを 取り出し、更新後のXMLデータを組み立ててから更新する必要がなくなり、XMLデータの 部分更新が容易にできるようになります。また、アプリケーション側のメモリ使用量削減の 効果もあります。

解説

◆XMLデータ全更新(従来)

アプリケーション

DB

商品ID 商品情報

12345 型番 品名 価格 ・・・

商品情報

商品情報

型番 品名 価格 ・・・ セール 価格

①SELECT

③UPDATE

◆XMLデータ部分更新

アプリケーション

DB

商品ID 商品情報

12345 ①UPDATE 要素追加

商品情報

セール 価格

②更新後データ の組み立て

追加する要素

追加する要素の 情報のみ指定

New

※ バージョン09-03以降のHiRDB XML Extensionが必要です。 HiRDB XML Extension は、HiRDB Server Version 9 09-03 に対応しました。

4-4-1 XMLの部分更新概要

①XML文書の取り出し

select xmlserialize(商品情報 as varchar(32000) including xmldeclaration)

from t1 where 商品ID = 12345

②XML文書の変更

③XML文書の更新

update t1 set 商品情報

= xmlparse(document 変更後データ as varchar(32000))

where 商品ID = 12345

①XML文書の部分更新

update t1 set 商品情報 = xmlquery(

'copy $new := . modify insert node element セール価格 { "1000" }

into $new/商品情報 return $new'

passing by value 商品情報 empty on empty)

where 商品ID = 12345

Page 56: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved. 55

4-4-2 部分構造インデクスの有効化概要

パラメタを含むXMLEXISTS述語に対する

書籍管理表

… …

書籍情報 書籍ID

<書籍情報 書籍ID=“452469630”> <カテゴリ>データベース</カテゴリ> <タイトル>リレーショナルデータベース概説</タイトル> <説明> リレーショナルモデルの概念から、それに基づく RDBMSの仕組みを解説している。 </説明> <価格>2800</価格> </書籍情報>

452469630

?パラメタ、埋込み変数、SQL変数またはSQLパラメタを含むXMLEXISTS述語に対して、 部分構造インデクスを利用できるようにしました。 解説

SELECT 書籍ID FROM 書籍管理表

WHERE XMLEXISTS('/書籍情報[価格>=$PRICE]'

PASSING BY VALUE 書籍情報,

CAST(? AS VARCHAR(6)) AS PRICE)

アプリケーション

DB

SELECT 書籍ID FROM 書籍管理表

WHERE XMLEXISTS('/書籍情報[価格>=$PRICE]'

PASSING BY VALUE 書籍情報,

CAST(? AS VARCHAR(6)) AS PRICE)

アプリケーション

◆XMLデータ検索 パラメタを含むXMLEXISTS述語

XQuery式を評価

結果が存在すると真

New

インデクスを使用せず、テーブルスキャンとなる。

インデクスを使用し、

データにピンポイントで

アクセスする。

■従来 ■

CASTを用いると

部分構造インデクス

を使用する

部分構造インデクス (B-treeインデクス)

Page 57: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

5. その他強化ポイント

HiRDB Version 9 09-03 新機能解説

56

Page 58: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

5. その他強化ポイント 5. 1 その他強化ポイントの機能一覧 5. 2 排他制御処理の性能改善と 排他制御用プールのチューニング容易化

HiRDB Version 9 09-03 新機能解説

57

Page 59: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

# カテゴリ サブカテゴリ サポート機能 サポートVR 概要

1

ノンストップ

データベース

の実現

クラスタ構成

Linux(R)環境のクラスタソフトウェア追加(LifeKeeper)

Linux環境のクラスタソフトウェアとしてLifeKeeperをサポートしました。

2 災害対策

(ディザスタ

リカバリ)

ディザスタリカバリ強化 Universal

Replicator対応および稼働プラットフォーム追加

ディザスタリカバリシステムで、日立ディスクアレイシステム(Hitachi VSP、 USP

V/VMシリーズ)に搭載される

非同期リモートコピー機能「Universal

Replicator」に対応しました。また、稼働プラットフォームにLinux 5(AMD/Intel 64)を追加しました。

3

障害時に

早く復旧するための機能

強化

自動ログアンロード機能の再開始

ディスクの一時的な障害によって自動ログアンロード機能が停止しても、

ユーザ操作なしに自動ログアンロード機能が再開始するように、自動ログアンロード機能のデフォルト動作を変更しました。これによって、自動ログアンロード機能の可用性が向上し、システムログファイルの空き容量不足の発生を防止することができます。

58

その他強化ポイントの機能として以下の機能サポートしました。 解説

V9.2

V9.2

V9.3

5-1-1 その他強化ポイントの機能一覧(1)

Page 60: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

# カテゴリ サブカテゴリ サポート機能 サポートVR 概要

4

ノンストップ

データベース

の実現

障害時に

早く復旧するための機能

強化

物理エラー検知時の業務回復の

迅速化

ディスク装置の物理エラーを検出した時に、RDエリアを障害閉塞せずユニットダウンする機能をサポートしました。ディスク装置の一時的な問題が原因で発生する入出力エラーやオープンエラーなど、ディスク装置の問題が回復すれば、バックアップファイルからの回復が不要となるケースでは、本機能により一旦ユニットダウンさせ、問題が回復した時点で、バックアップファイルを使わずHiRDBを再開始させることで、業務の回復を迅速にできます。

5

マスタディレクトリ用RDエリアを含む全RDエリアを最新の同期点に回復する手順の簡略化

システムログを使用してデータベースを全面回復する際の手順を簡略化しました。これによって、マスタディレクトリ用RDエリアとそれ以外のRDエリアの回復のためにHiRDBを2回起動し、データベース回復ユティリティを2回実行していた手順が、1回のHiRDBの起動と、1回のデータベース回復ユティリティの実行で回復できるようになります。なお、リスト用RDエリア、オブジェクト格納用のデータディクショナリLOB

用RDエリアおよび一時表用RDエリアはデータ

ベース回復ユティリティで回復できないため、別途回復作業を行う必要があります。

59

V9.2

V9.3

5-1-2 その他強化ポイントの機能一覧(2)

Page 61: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

# カテゴリ サブカテゴリ サポート機能 サポートVR 概要

6 ノンストップ

データベース

の実現

設定変更時の手順簡易化

HiRDBのホスト名変更の手順簡易化

稼動中のHiRDBのホスト名(コンピュータ名)を変更する際、手順を簡易化し、システムの停止時間を短縮しました。従来の手順として、HiRDBのホスト名変更後、HiRDBを再起動する前にシステムファイルの初期化が必要でしたが、本機能によりシステムファイルの初期化が不要になり、HiRDBのホスト名を変更し、HiRDBを再起動するだけで名称変更できるようになります。

方法の詳細は、 で解説します。

7 性能向上 ー

排他制御処理の

性能改善と

排他制御用プールのチューニング

容易化

で解説します。

8 トラブルシュート情報の強化

シンクポイントダンプのスキップ要因となるトランザクション情報の表示

未決着トランザクションの情報をメッセージで出力するようにしました。これによって、シンクポイントダンプの有効化のスキップ要因となっているトランザクションを容易に特定できるため、必要に応じてトランザクションをキャンセルできるようになります。

メッセージについては、 で解説します。

60

5.2節

V9.2

V9.3

V9.3

付録B-1

付録A-1

5-1-3 その他強化ポイントの機能一覧(3)

Page 62: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

# カテゴリ サポート機能 サポートVR 概要

9

トラブルシュート情報の強化

ロールバック時の

システムログの

読み込み状況の

表示

HiRDB再開始時にロールバック中のシステムログの読み込み状況をメッセージおよびコマンドで確認できるようにしました。これによって、ロールバックが長時間に及んでいる場合、障害により滞っているのかまたはシステムログの読み込みに時間が掛かっているのかを判断できるようになります。

ロールバック処理が進行中であることを確認する方法については、 で解説します。

10 統計情報の拡充

新たにスレッド間ロックに関する統計情報を取得するようにしました。これによって、スレッド間ロックに起因するボトルネックの特定や、レスポンスに占めるスレッド間ロックの割合などが判断しやすくなります。 スレッド間ロックに関する統計情報の取得方法については、 で解説します。

61

V9.3

V9.3

付録B-2

付録B-3

5-1-4 その他強化ポイントの機能一覧(4)

Page 63: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

5. その他強化ポイント 5. 1 その他強化ポイントの機能一覧 5. 2 排他制御処理の性能改善と 排他制御用プールのチューニング容易化

HiRDB Version 9 09-03 新機能解説

62

Page 64: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

5-2-1 排他制御処理の性能改善概要

63

解説 HiRDBでは、安定した性能を確保するため、常に基本処理性能の改善に努めています。

HiRDB 09-03では、サーバ内の同時実行性を向上するため、排他制御処理の性能改善に取り組みました。

・・・

・・・

◆サーバ内の同時実行性向上

参照業務 参照業務 参照業務 参照業務

RDエリア

DBバッファ

データ操作 データ操作

データ操作 参照トランザクション

HiRDB09-03では、排他制御用プール分割数を既定値の1から2以上へ設定変更することで、

参照系トランザクションの性能が向上します。

排他制御用

プール

排他制御用

プール

排他制御用

プール

強化

Page 65: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

5-2-2 排他制御用プールのチューニング容易化概要

64

排他資源A

分割した排他制御用プール(排他制御用プールパーティション)ごとの使用率や偏りなど、

排他制御に関する統計情報を表示できるようにしました。 解説

排他制御用プールの分割要否、分割数などを判断できるため、より的確なチューニングが

できます。 利点

排他操作

HOSTNAME : aa...a(bbccdd) SVID : nn...n RANGE : eeee/ff/gg hh:ii:jj - kkkk/ll/mm bb:cc:dd TABLE-NAME TABLE-KIND RATE-T L-CNT T-CNT W-RATE Q-LEN W-TIME W-TIME-T oo...o pp...p qqq% rr...r ss...s ttt.t% uuuu vvvv.v wwww.w : : : : : : : : : SVID : nn...n RANGE : eeee/ff/gg hh:ii:jj - kkkk/ll/mm bb:cc:dd TABLE-NAME TABLE-KIND RATE-T L-CNT T-CNT W-RATE Q-LEN W-TIME W-TIME-T oo...o pp...p qqq% rr...r ss...s ttt.t% uuuu vvvv.v wwww.w : : : : : : : : :

排他制御終了

排他資源B

排他操作

排他制御終了

排他資源C

排他操作 排他制御用プール

排他制御用プールパーティションの統計情報

pdls -d lck -T -R

New

排他制御用プールパーティションの統計情報を表示したい場合に指定します。

排他制御用プールパーティションの統計情報の詳細については、付録C-1で解説します。

本情報を使用した、排他制御用プールのチューニングについては、付録C-2~C-3で解説します。

排他制御終了

Page 66: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

6. HiRDB関連製品のトピックス

HiRDB Version 9 09-03 新機能解説

65

Page 67: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

6. HiRDB関連製品のトピックス

6. 1 HiRDB SQL Executer 6. 2 HiRDB Control Manager 6. 3 HiRDB Configuration Assistant

HiRDB Version 9 09-03 新機能解説

66

Page 68: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved. 67

HiRDB SQL Executer Version 9 09-02で、以下の機能をサポートしました。 解説

# サポート機能 概要

1 SQL実行中キャンセル対応 で解説します。

2 例外制御指定のサポート で解説します。

3 改行文字の扱い変更 以下に示す変更を行いました。

(a)既定の動作として、改行文字を取り除かずにSQL文、pdsqlコマンドを

実行します。

(b)SET REMOVE LINEFEED CHARACTER(改行文字の削除) コマンドをサポートしました。

SQL文、pdsqlコマンドの文字列中に、改行文字コード(0x0A,0x0D)が

存在するときに、該当する文字を取り除きます。

ON : 改行文字を取り除きます。

OFF : 改行文字を取り除きません。

OFFの場合SQLを複数行に分けて書いたとき、改行が区切り文字となるため、先頭に空白を入れなくてもエラーとならなくなりました。

create table t1(c1 int,c2 char(5)) in RDDATA10;

6-1-2項

6-1-1 機能追加・変更一覧

HiRDB SQL Executerの

6-1-3項

改行

Page 69: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

解説 GUI版HiRDB SQL Executerにて、実行中のSQLを中断できるようにしました。 これにより、長時間掛かっているSQLや多量にヒットするSQLを即終了できます。

HiRDB SQL Executer

HiRDB SQL Executer

①SQL

②結果

③キャンセル

②’実行中のまま 結果が返ってこない。

③’キャンセルを メッセージ表示します。 ②このような結果が出力され

ることを期待していたが・・・

68

③ SQL実行中にESCキーを 押すとSQLの実行がキャンセル されます。

6-1-2 SQL実行中キャンセル対応

Page 70: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

解説 SQL終了を、SET WHENEVER(例外制御指定)で指定可能、さらにSQLCODEをリターン

コードに反映できるようにしました。これにより、エラー時のトランザクション制御やプログラム制御ができ、エラー状況に応じたより適切な制御が可能です。

HiRDB SQL Executer

HiRDB SQL

Executer

SET ECHOBACK ON; SET WHENEVER SQLERROR EXIT SQLCODE; LOCK TABLE GOODS IN EXCLUSIVE MODE; GETFILE FROM D:¥~TEMP¥GOODS.CSV INSERT INTO GOODS VALUES( ?,?,?,?,?);

sql.txt エラー発生時、戻り値をSQLCODEにして終了します。

ECHO OFF PDSQL.EXE < sql.txt > sql.log SET RC=%ERRORLEVEL% IF not errorlevel 0 ( ECHO ERRORLEVEL RESULT: %RC% ECHO 処理を中断しました。 IF "%RC%"=="-770" ( ECHO 表goods を占有できませんでした ) ECHO sql.log を確認してください。 GOTO :EOF ) REM SQLログを消去 DEL sql.log :EOF

エラー (入力値不正など)

バッチジョブ(sql_exec.bat)

実行結果がエラーの場合の処理を書いておきます。

さらに、想定されるエラーコードに対する処理を組み込むことができます。

エラー発生時、 SQLファイル中の途中で中断(無駄な処理を抑止)します。

69

6-1-3 例外制御指定のサポート

Page 71: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

6. HiRDB関連製品のトピックス

6. 1 HiRDB SQL Executer 6. 2 HiRDB Control Manager 6. 3 HiRDB Configuration Assistant

HiRDB Version 9 09-03 新機能解説

70

Page 72: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved. 71

6-2-1 HiRDB Contorl ManagerのWeb Console機能

UNIX(R) オペレーションシステムあるいはWindowsオペレーションシステム上で動作するHiRDBの運用

を、WebブラウザからのGUI操作で行うことができる「HiRDB Control Manager のWeb Console機能※」 に管理対象のHiRDBシステムの状態、リソース警告情報、メッセージ監視情報、スケジュール情報、

カタログ実行結果といった重要な情報を一度に確認できるダッシュボードをサポートしました。

解説

New

※ Web Console機能を使用するには、別途uCosminexus Application ServerまたはTomcatが必要です。

Page 73: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved. 72

6-2-2 ダッシュボード(1)

Web Consoleにログインすると次のダッシュボード画面が表示されます。

ダッシュボード画面に表示する項目について、説明します。 解説

■全HiRDBシステム更新ボタン 管理しているすべてのHiRDBシステムに おける、ダッシュボードに表示している情報を最新の情報に更新します。

■HiRDBシステム状態一覧 管理しているHiRDBシステムの状態および各種情報(リソース警告情報、メッセージ監視情報、今日のスケジュール情報、カタログ実行結果情報)の有無を表示します。

■選択HiRDBシステム情報 HiRDBシステム状態一覧で選択されているHiRDBシステムの情報を表示します。

■リソース警告情報 HiRDBリソース警告表示機能において、設定したしきい値を超える「注意」および「警告」状態のリソースの一覧を表示します。

HiRDB Contorl ManagerのWeb Console機能

Page 74: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved. 73

■カタログ実行結果 過去7日分のカタログ実行結果一覧を表示します。

■メッセージ監視情報 HiRDBメッセージ監視機能において検出したHiRDBメッセージの一覧を表示します。

■今日のスケジュール ダッシュボードを表示した日における、その時点でまだ実行が完了していないスケジュールの一覧を表示します。

6-2-3 ダッシュボード(2) HiRDB Contorl ManagerのWeb Console機能

Page 75: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

6. HiRDB関連製品のトピックス

6. 1 HiRDB SQL Executer 6. 2 HiRDB Control Manager 6. 3 HiRDB Configuration Assistant

HiRDB Version 9 09-03 新機能解説

74

Page 76: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved. 75

環境構築、GUI操作で簡単・早い!

定義ファイル

既設HiRDB システムからの 定義インポート

定義の生成

構成情報の定義

保守作業も 効率化!

設計 ドキュメント出力

構成図(画像ファイル)

定義書(CSVファイル)

POINT1

Configuration Assistant

略称はCA

3つの特徴的な機能 があります。

定義ファイル

バッチファイル

POINT2

POINT3

解説 HiRDB Configuration Assistant は、HiRDB環境の構築、保守作業を支援するGUI製品です。 GUI上でHiRDBの構成を設定でき、定義ファイルやスクリプトも生成できるので、環境構築を行う 作業負担が軽減します。

09-03の HiRDBサーバから 標準付属!

6-3-1 HiRDB Configuration Assistantとは?

Page 77: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved. 76

(1) 既設環境の構成を取込んでテンプレート化。

DB構成パターン テンプレート化

新たな環境構築

既設環境

新規環境

ホスト名など修正が必要な情報を変更。 パス名は、文字列置換で一括して変換。

環境取込

環境構築

出力

入力

6-3-2 構築作業を効率化

既設環境を元に作成したテンプレートを使って

解説 既設環境を元に作成したテンプレートを使って構築作業を効率化できます。

(2) テンプレートの構成を元にホスト名やパス名などを変更し、新たな環境を構築。

Page 78: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

7. おわりに

HiRDB Version 9 09-03 新機能解説

77

Page 79: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

7. おわりに 7. 1 HiRDBの情報公開について

7. 2 まとめ

HiRDB Version 9 09-03 新機能解説

78

Page 80: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved. 79

7-1-1 デモンストレーションのご案内

・ハーモニアスコンピテンスセンタ : http://www.hitachi.co.jp/products/harmonious/center/main/information/access/ ・SANテクノロジーセンタ : http://www.hitachi.co.jp/products/it/storage-solutions/pressroom/center/hsantech.html

■各デモ実施場所のURL

ハーモニアスコンピテンスセンタ 、SANテクノロジーセンタに常設デモを用意

●HiRDB&日立ディスクアレイシステムで実現する ディザスタリカバリシステム

●仮想化技術とデータベースのインメモリ化技術で実現する

バッチ処理高速化ソリューション ●「n-gram方式」で実現する

全文検索ソリューション

特長 実機によるデモンストレーションを体感できます。BladeSymphonyや日立ディスクアレイ システムなどの連携により日立独自のソリューションをPRしております。

Page 81: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved. 80

7-1-2 販促ツールのご紹介

◆HiRDB技術資料

HiRDB稼働監視のポイント

特長 HiRDBにアクセスするJava™アプリケーションプログラムの開発からSQLのチューニングまでを

体験していただくHiRDBアプリケーション開発ガイドをはじめ、HiRDBに関する情報をまとめた

販促ツールをHiRDBホームページで公開しています。

分 類 内 容 備考

カタログ ・HiRDB Version 9

・EP8000×HiRDB 高信頼DBサーバ

・BladeSymphony&Hitachi Open Middleware

・日立高速全文検索シリーズ

・日立オープンミドルウェア認定資格制度のご案内

リーフレット ・HiRDB Configuration Assistantのご紹介 など

開発者向けガイドブック

・HiRDBアプリケーション開発ガイド HiRDBホームページよりダウンロードできます

体験版 ・HiRDB Version 9 体験版 HiRDBホームページよりダウンロード(32ビット版 V8もダウンロードできます)

ホワイトペーパー

・問題の早期発見に役立つリアルタイムSQL稼動

分析のご紹介

HiRDBホームページ

よりダウンロード

技術資料 ・HiRDB稼働監視のポイント

・HiRDB設計と構築のポイント

・HiRDBバックアップリカバリ解説

・HiRDBデータベース再編成 運用方法の解説

・GUIによるHiRDBシステム開発方法の解説と演習

その他充実中

HiRDBホームページ

よりダウンロード

HiRDBホームページのURLは下記のとおりです。是非ご利用ください! http://www.hitachi.co.jp/hirdb/

Page 82: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

7. おわりに 7. 1 HiRDBの情報公開について

7. 2 まとめ

HiRDB Version 9 09-03 新機能解説

81

Page 83: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved. 82

これからもHiRDBに ご期待ください!

7-2-1 まとめ

Page 84: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

付録A ノンストップデータベースの 実現機能の詳細

HiRDB Version 9 09-03 新機能解説

83

Page 85: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved. 84

HiRDBの稼働中にホスト名(コンピュータ名)を変更する方法について解説します。 解説

開始

pdstopコマンドを実行して、HiRDBを正常終了または計画停止します。

ホスト名の変更を行うために OSの再起動が必要ですか?

システム共通定義の pd_mode_confオペランドの指定値が

AUTOですか?

pd_mode_confオペランドの指定値をMANUAL2に変更します。

OSのマニュアルに従ってホスト名を変更します。

HiRDBシステム定義のホスト名を変更します。

手順2で pd_mode_confオペランドの指定値を

MANUAL2に変更しましたか?

pd_mode_confオペランドの指定値をMANUAL2からAUTOに戻します。

pdconfchkコマンドを実行して、HiRDBシステム定義の内容が正しいことを確認します。

終了

NO

NO

NO

YES

YES

YES

pdstartコマンド(オプションなし)を実行して、HiRDBを開始します。

従来は、 HiRDBを再起動する前にシステムファイルの初期化が必要でした。

従来は、 ホスト名変更前に

システムログのアンロード、

ホスト名変更後にサーバマシンの再起動が必要でした。

付録A-1 HiRDBの稼働中にホスト名を変更する方法

Page 86: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

付録B トラブルシュート情報の 強化機能の詳細

HiRDB Version 9 09-03 新機能解説

85

Page 87: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved. 86

KFPS04374-I

Syncpoint skip inf. SERVER=aa....aa,TRNCNT=bb....bb,TGID=cc....ccdd....dd,TBID=cc....ccee....ee,PID=ff....ff, C-PID=gg....gg(hh....hh),TIME=ii....ii,PROGRAM=jj....jj

未決着トランザクションの情報は、以下のメッセージに出力します。出力情報からシンクポイントダンプの有効化のスキップ要因となっているトランザクションを特定します。

解説

前回のシンクポイントダンプ取得時に未決着状態だったトランザクションがまだ決着していないため、シンクポイントダンプの 有効化処理が完了しないことで、シンクポイントダンプ取得契機を無視したときの保守情報です。 aa....aa:サーバ名 bb....bb:未決着状態のトランザクション数 cc....cc:HiRDBシステムの識別子およびユニット識別子 dd....dd:グローバルトランザクション番号 ee....ee:トランザクションブランチ番号 ff....ff:UAPまたはユティリティの処理の延長で、トランザクションを処理していたHiRDBサーバのプロセスID gg....gg:HiRDBサーバのプロセスと接続していたクライアント(UAPまたはユティリティ)のプロセスID hh....hh:HiRDBサーバのプロセスと接続していたクライアント(UAPまたはユティリティ)のIPアドレス ii....ii:トランザクションが最初にデータベースを更新した日時(yyyy/mm/dd hh:mm:ss) jj....jj:UAPの識別情報

KFPS04375-I

Syncpoint skip inf2. SERVER=aa....aa,TMID=bbbb,XID=cc....cc,dd....dd,ENVGRP=eeee

HiRDBサーバと接続しているクライアント(UAP)がX/Openに従ったアプリケーションの場合、KFPS04374-Iメッセージに続いて 出力されるメッセージです。 aa....aa:サーバ名 bbbb:接続しているOLTPのOLTP識別子(クライアント環境定義のHiRDB_PDTMIDまたはPDTMID) cc....cc,dd....dd: OLTPから与えられたトランザクション識別子 eeee:OLTPから与えられた環境変数グループ識別子

付録B-1 未決着トランザクション情報出力メッセージ

Page 88: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved. 87

ロールバックしているトランザクションがある場合、次の情報を基にロールバック処理が

進行中であることを確認できます。

pdls -d trn -aコマンドの実行結果

KFPS02235-Iメッセージ

解説

pdls -d trn –a コマンド実行(1回目)

pdls -d trn –a コマンド実行(1回目)

pdls -d trn –a コマンド実行(1回目)

ロールバック開始 ロールバック完了

KFPS02235-I メッセージ出力

(1回目)

ロールバック開始 ロールバック完了

KFPS02235-I メッセージ出力

(3回目)

KFPS02235-I メッセージ出力

(4回目)

KFPS02235-I メッセージ出力

(2回目)

◆ロールバック処理が進行中の例(pdls -d trn -aコマンドの場合) pdls -d trn -aコマンドの実行結果に表示される入力中のシステムログのブロック番号を確認します。

pdls -d trn -aコマンドを時間をおいて複数回実行し、実行結果に表示されている入力中のシステムログのブロック番号が

前回の番号と異なっていればロールバック処理は進行中です。

◆ロールバック処理が進行中の例(KFPS02235-Iメッセージの場合) KFPS02235-Iメッセージに表示される入力中のシステムログのブロック番号を確認します。

KFPS02235-Iメッセージは、pd_trn_rollback_msg_intervalオペランドに指定した値の間隔で出力されます。メッセージに

表示されている入力中のシステムログのブロック番号が、前回の番号と異なっていればロールバック処理は進行中です。

付録B-2 ロールバック処理が進行中であることを確認する方法

Page 89: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved. 88

pdstbeginコマンドの実行

システム稼働

統計ログファイル

生成先:$PDDIR/spool/

ファイル名:pdstj1,pdstj2

統計情報の取得・分析

統計ログの収集・ファイル

への出力 シンクポイントを発生させる(pdlogsyncコマンド※)

pdsteditコマンドの実行

pdstendコマンドの実行

シンクポイントを発生させる(pdlogsyncコマンド※)

標準出力

統計情報の取得・分析

統計ログの取得

統計情報にスレッド間ロック待ち時間の情報を取得する方法について解説します。 解説

※グローバルバッファ(buf)の場合に必要

◆統計情報をファイルに出力する手順

pdstbegin –k sys,buf,uap –m 1 –w

pdstend

pdstedit –k sys,svr,buf[,uap] –m1

– i $PDDIR/spool/pdstj1

–o /tmp/statisticsu –b > pdstj1.out

注) pdstj2を編集する前に、 /tmp/statisticsu に出力されたDAT形式

ファイルをリネームしてください。同じ名前で上書きされます。

統計情報にスレッド間ロック

待ち時間の情報を取得する

場合に指定します。

スレッド間ロック待ち時間の情報は、システムの稼働に関する統計情報(sys)、UAPに関

する統計情報(uap)、グローバルバッファプールに関する統計情報(buf) で取得できます。

– kオプションを省略する場合は、

– wオプションの指定も不要

付録B-3 スレッド間ロックに関する統計情報の取得方法

Page 90: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

付録C 性能向上機能の詳細

HiRDB Version 9 09-03 新機能解説

89

Page 91: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved. 90

HOSTNAME : aa...a(bbccdd) SVID : nn...n RANGE : eeee/ff/gg hh:ii:jj - kkkk/ll/mm bb:cc:dd TABLE-NAME TABLE-KIND RATE-T L-CNT T-CNT W-RATE Q-LEN W-TIME W-TIME-T oo...o pp...p qqq% rr...r ss...s ttt.t% uuuu vvvv.v wwww.w : : : : : : : : : SVID : nn...n RANGE : eeee/ff/gg hh:ii:jj - kkkk/ll/mm bb:cc:dd TABLE-NAME TABLE-KIND RATE-T L-CNT T-CNT W-RATE Q-LEN W-TIME W-TIME-T oo...o pp...p qqq% rr...r ss...s ttt.t% uuuu vvvv.v wwww.w : : : : : : : : :

タイトル 変数 意味

HOSTNAME aa...a ホスト名(32文字以内)

bbccdd pdlsコマンドを実行した時刻(時分秒)

RANGE eeee/ff/gg hh:ii:jj

前回pdls -d lck -T -Rコマンドを実行した日付と時刻(年月日時分秒) HiRDBを開始してから最初にこのコマンドを実行する場合、HiRDBを開始した日付と時刻。

kkkk/ll/mm bb:cc:dd pdls -d lck -T -Rコマンドを実行した日付と時刻(年月日時分秒)

SVID nn...n サーバ名(8文字以内)

TABLE-NAME oo...o HiRDBが独自に生成した、排他制御用プールパーティション名称(16文字以内)

TABLE-KIND pp...p テーブル種別(8文字以内) RESOURCE : 排他資源を管理する排他資源管理テーブル

RATE-T qqq 排他資源使用率の最高値(小数点以下は切り捨て)

L-CNT rr...r 排他要求回数(符号なし整数16けた以内)

T-CNT ss...s 排他制御用プールパーティションのスレッド間ロック要求回数(符号なし整数16けた以内)

W-RATE ttt.t 排他制御用プールパーティションのスレッド間ロック要求回数のうち、スレッド間ロック待ちが発生した回数の割合(小数点2位以下は切り捨て)

Q-LEN uuuu

排他制御用プールパーティションのスレッド間ロック待ち数の平均値

システムの稼働に関する統計情報の排他制御用プールパーティションのスレッド間ロック待ち数を排他制御用プールパーティションごとに集計した値(小数点以下は切り捨て)。

W-TIME vvvv.v スレッド間ロック待ちが発生したときのスレッド間ロック待ち時間の平均値(単位:ミリ秒)

W-TIME-T wwww.w スレッド間ロック待ちが発生したときのスレッド間ロック待ち時間の最大値(単位:ミリ秒)

付録C-1 排他制御用プールパーティションの統計情報詳細

Page 92: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

pd_lck_pool_partitionオペランドの指定値を決定する手順

91

pd_lck_pool_partitionオペランド(フロントエンドサーバの場合はpd_fes_lck_pool_partitionオペランド)に排他制御用プールの分割数を指定します。これによって、排他制御処理を分散させることができます。

解説

開始

排他制御プールパーティション数に2を指定する。

業務テストを実施して、チューニング情報を取得する。

排他制御プールパーティションの スレッド間ロック待ち数がトランザクションの

多重実行数に近い値である。

終了

NO

YES

排他制御用プールパーティション数を徐々に増加して、

SQL実行時間を改善する。

使用する排他制御プール パーティションに偏りがある。

使用する排他制御用プールパーティションの偏りをなくす。

NO

YES

初期構築時(a) 排他制御用プールパーティション数に2を指定します。

また、初期構築以降にチューニングした場合、共用メモリの

使用量が変わります。そのため、チューニングする可能性

がある場合は、事前に共用メモリの使用量を計算して必要

な物理メモリの確保およびOSパラメタの設定をすることを

推奨します。

業務テスト時

(チューニング)(b) ⇒次ページで解説します。

付録C-2 排他制御用プールを分割する方法(1)

Page 93: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

業務テスト時(チューニング)(b)

排他制御用プールパーティション数をチューニングする場合は、次の情報が必要になります。

SQL実行時間(SQLトレースに出力されます)

サーバごとの排他制御用プールパーティションのスレッド間ロック待ち数(システムの稼働に関する統計情報に出力されます)

排他制御用プールパーティションごとの排他制御用プールパーティションのスレッド間ロック待ち数

(pdls -d lck -Tコマンドで表示されます)

実際に業務内容を想定した多重実行数と稼働率でアプリケーションを実行し、チューニング情報を取得してください。取得したチューニング情報を基に排他制御用プールパーティション数を徐々に増加しながら、業務アプリケーション全体でSQL実行時間の合計が最も短くなる排他制御用プールパーティション数を設定してください。

ただし、次に示す場合は排他制御用プールパーティション数をチューニング前の値に戻して、ほかの方法で性能向上を図ってください。

排他制御用プールパーティション数を増やしたが、排他制御用プールパーティションのスレッド間ロック待ち数が減少しない場合

排他制御用プールパーティション数を増やしたことによって排他制御用プールパーティションのスレッド間ロック待ち数が減少した

が、SQLの実行時間が短くならない場合

なお、排他制御処理を分散させた場合、ハッシュ分割によって排他資源ごとに使用する排他制御用プールパーティションを決定します。そのため、対象となる排他資源によっては、使用する排他制御用プールパーティションに偏りが発生することがあります。使用する排他制御用プールパーティションが偏ると、次の現象が発生するおそれがあります。

排他制御の性能が改善しない pdls -d lck -Tコマンドを実行し、排他制御用プールパーティションごとのスレッド間ロック待ち数の平均値に偏りがあるかどうか確

認してください。 偏りがある場合は、pd_lck_pool_partitionオペランド(フロントエンドサーバの場合はpd_fes_lck_pool_partition

オペランド)の値を、現在の指定値より大きい素数に変更してください。これによって、ハッシュ分割の偏りを解消します。

排他制御用プールパーティションのサイズ不足

pdls -d lck -p -eコマンドを実行し、排他制御用プールパーティションごとに使用した排他資源の使用率の最高値が、パーティションごとに大きく異なるかどうか確認してください。大きく異なっている場合は、pd_lck_pool_partitionオペランド(フロントエンドサーバの場合はpd_fes_lck_pool_partitionオペランド)の値を、現在の指定値より大きい素数に変更してください。これによって、ハッシュ分割の偏りを解消します。または、pd_lck_pool_sizeオペランド(フロントエンドサーバの場合はpd_fes_lck_pool_sizeオペランド)の値を増やしてください。これによって、排他資源管理テーブルの容量を増やします。

92

New

New

付録C-3 排他制御用プールを分割する方法(2)

Page 94: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

他社所有名称に対する表示

93

・ AIXは,米国およびその他の国におけるInternational Business Machines Corporationの商標です。 ・ gzipは,米国FSF(Free Software Foundation)が配布しているソフトウェアです。 ・ HP-UXは,Hewlett-Packard Development Company, L.P.のオペレーティングシステムの名称です。 ・ OracleとJavaは,Oracle Corporation 及びその子会社,関連会社の米国及びその他の国における登録商標です。 ・ LifeKeeperは,SIOS Technology Corp.の登録商標です。 ・ Linuxは,Linus Torvalds氏の日本およびその他の国における登録商標または商標です。 ・ Microsoft,SQL ServerおよびVisual Studioは,米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。 ・ Microsoft Excelは,米国Microsoft Corporationの商品名称です。 ・ SI Object Browser,SI Object Browser ERは,株式会社システムインテグレータの登録商標です。 ・ SQLWaysは,Ispirer Systems Ltd.の商標または登録商標です。 ・ UNIXは,The Open Groupの米国ならびに他の国における登録商標です。 ・ Windows Serverは,米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。 ・ Windows Vistaは,米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。 ・ Windowsは,米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。 ・ その他記載の会社名,製品名は,それぞれの会社の商標もしくは登録商標です。

Page 95: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、

© Hitachi, Ltd. 2012. All rights reserved.

株式会社 日立製作所 情報・通信システム社

ITプラットフォーム事業本部 開発統括本部 DB設計部

HiRDB Version 9 09-03 新機能解説

2012/09

END

94

Page 96: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、
Page 97: HiRDB Version 9 09-03 新機能解説€¦ · 1. 既存の表をアンロードします。 2. drop tableで既存の表をいったん削除します。 3. create tableで、縮列に変更する列に縮指定をして、