Symfoware Certified Professional データベース...

64
Symfoware Certified Professional データベース V9 2007 年 7 月 初版

Transcript of Symfoware Certified Professional データベース...

Page 1: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

Symfoware Certified Professional データベース V9

2007 年 7 月 初版

Page 2: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007

Page 3: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007

All Rights Reserved, Copyright © FUJITSU LIMITED 2007

Symfoware Certified Professional データベース V9

2007年7月 初版

富士通株式会社

Page 4: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007

Page 5: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Right Reserved, Copyright © FUJITSU LIMITED 2007 i

はじめに

本 書 は 、 富 士 通 ミ ド ル ウ ェ ア マ ス タ ー 「 Symfoware Certified Professional

データベース V9」試験対策のために作成されたテキストです。

● Symfoware は、富士通株式会社の登録商標です。

● Interstage は、富士通株式会社の登録商標です。

● Systemwalker は、富士通株式会社の登録商標です。

● Microsoft®、 Windows は、米国 Microsoft Corporation の米国およびそのほ

かの国における登録商標です。

● Linux は、 Linus Torvalds の米国およびそのほかの国における登録商標また

は商標です。

● UNIX は、米国およびそのほかの国におけるオープン・グループの登録商標で

す。

● IBM は、 IBM Corporation の米国およびその他の国における登録商標です。

● Sun、Sun Microsystems、Solaris およびすべての Solaris に関連する商標は、

米国およびそのほかの国における米国 Sun Microsystems, Inc.の商標または

登録商標であり、同社のライセンスを受けて使用しています。

● IBM は、 IBM Corporation の米国およびその他の国における登録商標です。

●その他一般に、会社名、製品名は各社の商標または登録商標です。

●本資料では、 Solaris(TM) Operating System を Solaris と表記しています。

●本資料に記載されているシステム名、製品名などには、必ずしも商標表示 (TM、

®)を付記しておりません。

●そのほか記載された会社名および製品名などは、該当する各社の商標または

登録商標です。

2007 年 7 月 初版

Page 6: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Right Reserved, Copyright © FUJITSU LIMITED 2007 ii

Page 7: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Right Reserved, Copyright © FUJITSU LIMITED 2007 iii

< 目次 >

第1章 Symfoware アーキテクチャ 1

1.1 データベースの構成・構造 2

1.1.1 ファイル構成 3

1.1.1.1 パラメタファイル 4

1.1.1.2 データベースファイル 5

1.1.1.3 制御ファイル 6

1.1.1.4 ログファイル 7

1.1.2 プロセス構成 8

1.1.3 メモリ構成 9

第2章 Symfoware データベース設計 11

2.1 データベース構造 12

2.2 論理構造 13

2.2.1 スキーマの設計 14

2.2.2 実表の設計 15

2.2.3 インデックスの設計 16

2.2.4 ビューの設計 17

2.3 格納構造 18

2.3.1 DSO/DSI 19

2.3.2 DSO と DSI の関係 20

2.3.3 格納構造の種類 21

2.3.3.1 実表の格納構造 22

2.3.3.2 インデックスの格納構造 23

2.4 物理構造 24

2.4.1 パーティショニング 25

2.4.2 マルチデータベーススペース 26

第3章 Symfoware データベース構築 27

3.1 実行環境の設定 28

3.1.1 Symfoware の動作環境 29

3.1.2 ディスク配置 30

3.2 システム環境の作成 31

3.2.1 カーネル編集 32

3.2.2 環境変数の設定 33

3.2.3 RDB 構成パラメタファイルの編集 34

3.2.4 動作環境ファイルの編集 35

3.2.5 ポート番号の定義 36

3.2.6 ログ環境の作成 37

3.2.7 RDB ディクショナリおよび RDB ディレクトリファイルの作成 38

3.2.8 GUI を使用したシステムファイルのセットアップ 39

3.3 データベースの作成 40

3.3.1 データベースの定義 41

Page 8: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Right Reserved, Copyright © FUJITSU LIMITED 2007 iv

3.3.2 データベースの創成 42

3.3.3 最適化情報の設定 43

3.3.4 データベース定義情報の保全 44

3.3.5 データベースのデータ退避 45

3.3.6 データベースの変更 46

3.3.7 データベースの削除 47

3.3.8 GUI を使用したデータベース操作 48

3.4 データベースのチューニング 49

3.4.1 共用バッファプール 50

3.4.1.1 共用バッファプールの開設 51

3.4.1.2 DSI と共用バッファプールの対応関係の登録 52

3.4.2 性能情報の採取方法 53

3.4.3 パフォーマンスモニタ 54

第4章 Symfoware 運用管理 55

4.1 ログ運用 56

4.1.1 アーカイブログ運用 57

4.1.1.1 アーカイブログをバックアップしない運用 58

4.1.1.2 アーカイブログをバックアップする運用 59

4.1.2 スケーラブルログ運用 60

4.1.3 スケーラブルディレクトリ運用 61

4.2 バックアップ運用 62

4.2.1 データベースのバックアップ運用 63

4.2.1.1 データベース (DSI)のバックアップ 64

4.2.1.2 RDB ディクショナリのバックアップ 65

4.2.1.3 アーカイブログのバックアップ 66

4.2.1.4 アーカイブログの破棄 67

4.2.2 Advanced Backup Controller でのバックアップ運用 68

4.2.3 データベースのアンロード 69

4.3 リカバリ 70

4.3.1 データベースのリカバリ 71

4.3.1.1 データベース (DSI)のリカバリ 72

4.3.1.2 RDB ディクショナリのリカバリ 73

4.3.1.3 RDB ディレクトリファイルのリカバリ 74

4.3.2 Advanced Backup Controller でのリカバリ 75

4.3.3 データベースのロード 76

4.4 保守・運用 77

4.4.1 運用中の定義変更 78

4.4.1.1 列の動的追加 79

4.4.1.2 DSI の動的追加 80

4.4.1.3 DSI の分割値の動的変更 81

4.4.2 データベースの再配置 82

4.4.3 データベースの容量拡張 83

4.4.4 監査ログ制御 84

4.4.4.1 監査ログの取得 85

Page 9: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Right Reserved, Copyright © FUJITSU LIMITED 2007 v

第5章 Symfoware 高可用性 87

5.1 高可用性 88

5.1.1 フェイルオーバ運用 89

5.1.1.1 フェイルオーバ運用の適用効果 90

5.1.2 ロードシェア運用 91

5.1.3 Connection Manager 92

5.1.3.1 ロードバランシング 93

5.1.3.2 コネクション自動切換え 94

5.1.3.3 コネクション自動削除 95

第6章 Symfoware ディザスタリカバリ 97

6.1 ディザスタリカバリ 98

6.1.1 Active DB Guard の特徴 99

6.1.2 Active DB Guard を支える技術 100

6.2 Active DB Guard の運用 101

6.2.1 災害対策運用 102

6.2.2 保守運用 103

6.2.3 待機センタでの参照系業務の運用 104

6.2.4 静態データベース運用 105

付録

付録 1 用語集 107

付録 2 模擬問題 133

付録 2-1 解答用紙 146

付録 2-2 出題範囲 147

付録 2-3 正解表 147

付録 2-4 模擬問題と解説 148

Page 10: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007

Page 11: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 1

All Rights Reserved, Copyright © FUJITSU LIMITED 2007

第1章Symfoware

アーキテクチャ

第1章Symfoware

アーキテクチャ

Page 12: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 2

All Rights Reserved, Copyright © FUJITSU LIMITED 2007

1.1 データベースの構成・構造1.1 データベースの構成・構造

プロセス構成

メモリ構成

ファイル構成

Symfowareのアーキテクチャについて、説明します。

Page 13: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 3

All Rights Reserved, Copyright © FUJITSU LIMITED 2007

1.1.1 ファイル構成1.1.1 ファイル構成

RDBディショナリ

テンポラリログファイル(AIログ域)

アーカイブログファイル

テンポラリログファイル(BIログ域)

ソート作業域

ユーザデータベース

RDB構成パラメ

タファイル

動作環境ファイル

制御ファイル制御ファイル

データベースファイルデータベースファイル

ログファイルログファイル

パラメタファイルパラメタファイル

監査ログデータベース

テンポラリログファイル(ログインデッ

クス域)

データベーススペース

•システム用•クライアント用•サーバ用

RDBディクショナリ用RDBディ

レクトリファイル

ユーザデータベース用RDBディレクト

リファイル

ロググループ管理

ファイル

ログ管理ファイル

ユーザロググループ用RDBディレクト

リファイル

■ ファイル構成

Symfowareは、データベースを制御および格納するファイルから構成されています。

Page 14: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 4

All Rights Reserved, Copyright © FUJITSU LIMITED 2007

1.1.1.1 パラメタファイル1.1.1.1 パラメタファイル

RDB構成パラメタファイル

システム用の動作環境ファイル

クライアント用の動作環境ファイル

パラメタファイルパラメタファイル

サーバ用の動作環境ファイル

・RDBディレクトリファイル

・ログ管理ファイル・システム用の動作環境ファイルなどの配置先を記載

パラメタファイルには以下のものがあります。

■ RDB構成パラメタファイル

RDB構成パラメタファイルは、RDBディレクトリファイルの配置先など、Symfowareの動作を規定する各種情報が格納されたファイルです。このファイル内の情報は、管理者がSymfowareの動作環境を定義するときに編集され、RDBコマンドによるSymfowareの起動時に参照されます。

■ 動作環境ファイル

アプリケーションを実行するときの動作環境をチューニングするための情報が格納されたファイルです。

動作環境ファイルは、以下の3種類があります。

• システム用

Symfoware環境の標準となる動作環境を設定する場合に作成します。

Symfoware全体の動作環境のチューニングに使用します。

• クライアント用

アプリケーションごとに動作環境をチューニングする場合に利用します。リモートアクセスのための情報もこのファイルに設定するため、リモートのデータベースにアクセスする場合は、必ず作成します。ただし、ODBCやJDBCによりアクセスする場合はデータソース(※)等を利用します。

• サーバ用

アプリケーションの動作環境をコネクションごとにチューニングする場合に利用します。

※ctuneparamオプションやデータソース登録のオプション画面で設定します。

Page 15: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 5

All Rights Reserved, Copyright © FUJITSU LIMITED 2007

1.1.1.2 データベースファイル1.1.1.2 データベースファイル

RDBディクショナリ

ソート作業域

監査ログデータベース(監査ログ運用の場合)

データベースファイルデータベースファイル

RDBディクショナリの配置先

は、作成時に指定

データベーススペースの配置先は、作成時に指定

データベーススペース

データベースファイルには以下のものがあります。

■ RDBディクショナリ

RDBディクショナリには、利用者が作成したデータベースに関する以下の情報が格納されます。

• データベースの論理構造に関する情報(表名、列名、列のデータ型など)

• データベースの格納構造に関する情報(BTREEやSEQUENTIALといった構造情報、割り当てたデータ

ベーススペースの情報など)

• データベースの物理構造に関する情報(データベーススペースの獲得先ローデバイス名など)

■データベーススペース

データベーススペースには、利用者が作成するデータが格納されます。Symfowareにおけるデータベースは、論理構造、格納構造および物理構造の3つから構成されており、そのうち実際にデータを格納する物理構造としてデータベーススペースを定義します。データベーススペースを作成する場合には、磁気ディスクへのI/O負

荷のバランスが最適となるように配慮する必要があります。

■監査ログデータベース

監査ログデータベースには、管理者や利用者のデータベース処理を追跡するための情報が格納されます。

■ ソート作業域

データベースの作成、データベースの更新およびリカバリを行う場合などに、SQL文やRDBコマンドが作業用

として使う領域です。

Page 16: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 6

All Rights Reserved, Copyright © FUJITSU LIMITED 2007

1.1.1.3 制御ファイル1.1.1.3 制御ファイル

RDBディレクトリファイルログ管理ファイル

制御ファイル制御ファイル

ロググループ管理ファイル(ス

ケーラブルログ運用または監査ログ

運用の場合)

データベース管理用 RDBディクショナリ管理用

ユーザロググループ用の

RDBディレクトリファイル(スケー

ラブルディレクトリ運用の場合) 管理

制御ファイルには以下のものがあります。

■ RDBディレクトリファイル

RDBディレクトリファイルには、データベースをアクセスするための情報や、現在の運用情報などが記憶されます。RDBディレクトリファイルには、利用者のデータベースを管理するためのディレクトリファイルと、RDBディクショナリを管理するためのディレクトリファイルの2種類があります。RDBディレクトリファイルは、RDBコマンドにより作成されます。

■ ログ管理ファイル

テンポラリログファイルやアーカイブログファイルの配置位置や、現在使用中のアーカイブログファイルの情報を保持するためのファイルです。ログ管理ファイルは、RDBコマンドにより作成されます。

■ ユーザロググループ用のRDBディレクトリファイル

スケーラブルディレクトリ運用を行う場合は、ユーザロググループごとにRDBディレクトリファイルを作成します。

■ ロググループ管理ファイル

ログ管理ファイルの配置の情報を保持するためのファイルです。スケーラブルログ運用をする場合に必要となるファイルです。ロググループ管理ファイルは、RDBコマンドにより作成されます。

Page 17: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 7

All Rights Reserved, Copyright © FUJITSU LIMITED 2007

1.1.1.4 ログファイル1.1.1.4 ログファイル

アーカイブログファイル

テンポラリログファイル(BIログ域)

ログファイルログファイル

ROLLBACK処理に

使用

メディアリカバリに使用

テンポラリログファイル(AIログ域)

テンポラリログファイル

(ログインデックス域)

ダウンリカバリに使用

トランザクションのログを記録するためのログファイルには以下のものがあります。

■ テンポラリログファイル

テンポラリログファイルには、トランザクションの更新履歴が収集されます。更新履歴には、データの更新前の情報と更新後の情報があります。テンポラリログファイルは、rdblogコマンドにより作成されます。

• 更新前(BIログ域): トランザクションのロールバック時およびSymfowareのダウン後のダウンリカバ

リ処理に使用されます。

• 更新後(AIログ域): Symfowareのダウン後のダウンリカバリ処理に使用されます。

• ログインデックス域: ログの索引としての情報を管理します。

■ アーカイブログファイル

アーカイブログファイルは、メディアリカバリに備えて、トランザクションの更新履歴を保存するファイルです。アーカイブログファイルは複数用意し、循環して使用します。アーカイブログファイルは、rdblogコマンドにより作成されます。

<参考>

ダウンリカバリとは、データベース運用中にOSまたはSymfoware Serverがダウンした場合、ダウンしたシステム

で使用されていたデータベースをリカバリすることです。

また、メディアリカバリとは、データベース運用中にデータベース破壊などの障害が発生した場合、そのデータベースを障害が発生する前の状態にリカバリすることです。

Page 18: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 8

All Rights Reserved, Copyright © FUJITSU LIMITED 2007

Symfoware/RDBのプロセス(データベース用プロセス)Symfoware/RDBのプロセス(データベース用プロセス)

1.1.2 プロセス構成1.1.2 プロセス構成

監視用プロセス監視用プロセス

データベース共用バッファ共用バッファ

ソート作業域ソートメモリ

通信バッファ通信バッファ

テンポラリ

ログファイル

監視

ログバッファ(BI)

アーカイブ

ログファイル

ログバッファ(AI)

ワークメモリ

アプリケーション

(サーバ内)

アプリケーションアプリケーション

(サーバ内)(サーバ内)

アプリケーション

(リモート)

アプリケーションアプリケーション

(リモート)(リモート)

Symfowareのプロセス構成として以下があります。

■ Symfoware/RDBのプロセス(データベース用プロセス)データベース用プロセスは、Symfowareプロセスとして、サーバシステム上に存在しています。

代表的なメモリには以下があります。

• 共用バッファを利用して、データベースの入出力をします。

• ソートメモリ、ワークメモリは、SQLのソートおよび作業用のメモリです。

メモリに収まらない場合は、本メモリを通じてソート作業域の入出力をします。

• 更新前(BI)ログバッファ、更新後(AI)ログバッファによりログファイルの入出力をします。

• 通信バッファは、サーバ内のアプリケーション(アプリケーションプログラムやRDBコマンド)との間で通信をします。このバッファは共用メモリ上に獲得します。

サーバシステム上のアプリケーションやRDBコマンドで、共用メモリの通信バッファを利用しま

す。リモートのアプリケーションはネットワークプロトコルを通じて通信します。

Symfowareは、マルチスレッド構成ですべての処理をしています。Symfowareは、OSの64ビット論理空間および32ビット論理空間で動作可能です。また、クライアントアプリケーションも同様に、OSの64ビット論理空間および32ビット論理空間で動作可能です。

■ 監視用プロセス

監視用プロセスは以下の処理をしています。

• データベース用プロセスが停止していないか

• データベース用プロセスがループ処理など異常な状態になっていないか

Page 19: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 9

All Rights Reserved, Copyright © FUJITSU LIMITED 2007

ローカルメモリローカルメモリ

1.1.3 メモリ構成1.1.3 メモリ構成

共用バッファ

(RDB構成パラメタファイルまたはRDBコマンド)

RDBディクショナリのメモリ常駐

(RDB構成パラメタファイルまたはRDBコマンド)

その他

・アプリケーションの使用メモリ

・データベースアクセスの使用メモリなど

DSIのメモリ常駐

(RDBコマンド)

DSIDSI DSIDSI

ログバッファ

(RDB構成パラメタファイル)

AIAI BIBI

ソート・ワーク域

(動作環境ファイル)

共用メモリ(RDB構成パラメタファイル)

通信バッファ

(システム用の動作環境ファイル)

接続単位のバッファ

接続単位のバッファ

Symfowareのメモリ構成として以下のものがあります。

■ 共用メモリ

Symfowareが、プロセス外との情報交換のために使用する共用メモリです。RDB構成パラメタファイルでサ

イズを指定します。

•通信バッファ

Symfowareのプロセスとローカルに接続するアプリケーションやRDBコマンドの間での情報交換をする

ためのメモリです。システム用の動作環境ファイルで指定します。

■ローカルメモリ

Symfoware が、1つのプロセスのみで使用するメモリ領域です。

•共用バッファ

共用バッファは、複数のアプリケーションでデータを共用するためのバッファです。

共用バッファに存在するデータは、ディスクへのI/Oが行われないため、処理性能が向上します。

•RDBディクショナリのメモリ常駐(Symfoware Server Enterprise Extended Edition のみ)

RDBディクショナリをメモリに常駐させる場合に使用するメモリ領域です。

RDB構成パラメタファイルで指定する方法とRDBコマンドにより指定する方法があります。

•DSIのメモリ常駐(Symfoware Server Enterprise Extended Edition のみ)

DSIをメモリに常駐させる場合に、使用するメモリ領域です。RDBコマンドにより指定されます。

•ログバッファ

テンポラリログファイルの構成ファイルであるAIログ域およびBIログ域にログデータを書き出すためのバッファです。

RDB構成パラメタファイルで指定します。

•ソート・ワーク域

ソートメモリおよびワークメモリ領域です。

•その他

アプリケーションで使用するメモリやデータベースアクセスの際に使用するメモリ領域です。

Page 20: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 10

MEMO

Page 21: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 11

Copyright 2007 FUJITSU LIMITED

第2章Symfoware

データベース設計

第2章Symfoware

データベース設計

Page 22: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 12

All Rights Reserved, Copyright @ FUJITSU LIMITED2007

2.1 データベース構造2.1 データベース構造

データベースデータベース

インデックスDSI

インデックスDSO表DSI

表DSO

実データ

実表 ビュー

実データ

物理構造物理構造

格納構造格納構造

論理構造論理構造

スキーマ

データベーススペース

以下にSymfowareのデータベースの構成要素について説明します。

■ 論理構造

データベース構造を論理的に定義した構造です。スキーマ、実表およびビューなどから構成されます。

論理構造で定義したスキーマ、実表およびビューは、SQL文を使用してアプリケーションから操作できます。

■ 格納構造

データベースを論理的に複数の運用単位に分割して運用するための構造です。

つまり、論理構造で定義した実表やインデックスのデータを、物理構造で定義したデータベーススペースに格納する構造について定義する構造です。

格納構造はDSOとDSIで構成されます。DSOは、論理構造で定義した実表に対するデータの格納構造の種類を定義します。DSIは、実表およびインデックスと格納先のデータベーススペースとの対応づけを定義します

格納構造を設計することで、実表やインデックスを複数のデータベーススペース上に分割配置することが可能となるため、運用単位に独立して、かつ並行してデータベースの保全・保守運用ができます。

■ 物理構造

データを実際に格納する領域をデータベーススペースといいます。物理構造ではデータベーススペースを定義します、一つのデータベーススペースは一つのローデバイスまたはファイルで構成されます。

Page 23: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 13

All Rights Reserved, Copyright @ FUJITSU LIMITED2007

2.2 論理構造2.2 論理構造

スキーマの設計

実表の設計

インデックスの設計

ビューの設計

論理構造は、データベース構造を論理的に定義した構造です。

Page 24: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 14

All Rights Reserved, Copyright @ FUJITSU LIMITED2007

2.2.1 スキーマの設計2.2.1 スキーマの設計

ST.在庫表ST.在庫表

ST.発注表ST.発注表

STINF.倉庫表STINF.倉庫表

STINF.商品表STINF.商品表

スキーマ:ST スキーマ:STINF

ST.会社表ST.会社表

ST.日別発注表ST.日別発注表

ST.倉庫表ST.倉庫表

STINF.販売表STINF.販売表

ST.高額発注表ST.高額発注表STINF.売上表(ビュー)STINF.売上表(ビュー)

ST.製品リスト(一時表)ST.製品リスト(一時表)

ST.PLST(ストアドプロシジャ)

ST.発注トリガ

スキーマは、表のデータおよび表の定義データから構成されます。

スキーマは、スキーマ名により管理され、1つのデータベースに対して複数個作成できます。スキーマをどのよ

うな実表で構成するかについては、データベースを使用する業務の内容、処理するデータの内容およびデータの処理方法を考慮して決める必要があります。スキーマの構成は、スキーマ定義(CREATE SCHEMA文)で定義します。

■ スキーマ名

スキーマには名前を付けます。これをスキーマ名と呼びます。

スキーマ名はSQL文において実表やビューなどスキーマの構成要素を修飾する名前として使用します。

Page 25: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 15

All Rights Reserved, Copyright @ FUJITSU LIMITED2007

2.2.2 実表の設計2.2.2 実表の設計

販売日 販売店 製品番号 個数 売上金額

20060515 ロンドン 0291 7 630,000

20060517 東京 0730 18 5,400,000

20060601 シドニー 0189 3 600,000

販売表販売表

表名 列名

実表は列と行から構成されます。1行のデータはいくつかの列から構成され、列がデータ項目に該当します。実表をどういうデータ項目から構成するかは、表定義(CREATE TABLE文)で定義します。

■ 表名(実表名)表名(実表名)は、データ操作の対象とする実表を指定する場合に使用します。

■ 列定義

実表を構成する列については、以下の定義があります。

• 列名

データ操作で処理の対象とする列を指定する場合に列名を使用します。

• 列のデータ型

各列のデータには、文字列型、数値型などの型があります。

• 列の既定値(任意)列のデータが省略された場合に設定される値を定義します。

• 列の制約定義(任意)列の制約条件を定義します。

NOT NULL制約や一意性制約定義(PRIMARY KEY、UNIQUE)があります。

Page 26: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 16

All Rights Reserved, Copyright @ FUJITSU LIMITED2007

2.2.3 インデックスの設計2.2.3 インデックスの設計

インデックスの仕組み

製品番号 ポインタ110111

19

123 6: :

在庫数量 製品名 製品番号 倉庫番号8515751200

テレビ冷蔵庫洗濯機DVDデッキMDラジカセ

110227124140212

21122

60 冷蔵庫 123 1: : : :

製品番号“123”を検索

在庫表インデックス在庫表インデックス

在庫表在庫表

ポインタ“6”をもとに6行目に製品番号が”123”のデータが存

在することがわかる

123456:

■ インデックスの構造

インデックスは、インデックスを付加する列(キーと呼びます。上図では、製品番号)の値を昇順にソートして並べておき、この値に対応した表の行の行識別子(ポインタ)をペアで作成したものです。

インデックスのキーの値(例 製品番号=123)またはキーの値の範囲(例:製品番号 BETWEEN 100 AND 200)に対応する行の識別子からダイレクトに表の行を取出すことができます。この仕組みにより、効率的な検索

が可能です。

データを操作する場合、一般に、表の列データを検索キーとしたデータ検索を伴います。したがって、データ検索効率がデータ操作効率を決める重要な要素となります。インデックスは、表の列ごとに指定できます。また、複数の列を結合して1つのインデックスとして指定することもできます。

インデックスを作成していない列の条件検索は、表の全件検索となります。そのため、データ検索のキーとなる列には、インデックスを作成する必要があります。ただし、インデックスを作成するとその分だけデータベース容量が余分に必要になります。そのため、データベーススペースの大きさを決める場合には、インデックスに必要なデータベース容量も考慮する必要があります。

インデックス定義は、格納構造定義文で定義します。格納構造はBTREEです。

インデックスは実表の列に対して定義します。ビューに対しては定義できません。

通常、インデックス定義は、スキーマ定義以降、データベースにデータを格納する前にします。しかし、データベース創成またはデータ操作によってデータベースにデータを格納した後に、インデックスを定義することも可能です。

■ インデックスの個数

インデックスを作成した方が、データの検索処理性能は向上しますが、逆にインデックスを構成する列の更新または行の追加によって、インデックスのデータを更新する必要があります。この結果、インデックスの増加に伴いインデックスの更新処理が性能に影響を与えます。

インデックスは、条件を限定する列や結合カラムの条件に利用する列等必要最小限の列に付加することが重要です。

Page 27: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 17

All Rights Reserved, Copyright @ FUJITSU LIMITED2007

2.2.4 ビューの設計2.2.4 ビューの設計

複数の表を関連づけたビューの例

販売日 販売店 商品ID 個数 売上金額20061209 ロンドン 0H05 7 400,00020060916 東京 0C05 12 200,00020061201 シドニー 0B30 3 600,000

販売日 販売店 商品ID 商品名 売単価 個数 売上金額20061209 シドニー 0B30 液晶テレビ 3 600,00020060916 ロンドン 0H05 洗濯機 70,000 7 400,00020061201 東京 0C05 ファンヒータ 20,000 12 200,000

販売表と商品表を結合して売上表というビューを作る販売表と商品表を結合して売上表というビューを作る

販売表(実表)販売表(実表) 商品表(実表)商品表(実表)

売上表(ビュー)売上表(ビュー)

商品ID 商品名 売単価 売上数 在庫数 倉庫ID 入荷日0G04 冷蔵庫 200,000 9 6 001 200610310803 乾電池 100 50 30 003 200606080A91 プラズマテレビ 10 2 004 200611010B30 液晶テレビ 4 15 001 200612020H05 洗濯機 70,000 120 23 003 200609010V89 パソコン 200,000 82 40 002 200610010Y05 マウス 3,000 60 200 005 200604010C05 ファンヒータ 20,000 13 65 005 200611210J06 クーラー 4 5 002 200609210K03 扇風機 10,000 2 2 004 20060921

■ ビュー

SELECT文を実行する場合、多くの条件を組み合わせたり複数の表を結合して検索することにより、SELECT文が長く複雑になります。このような場合に、共通的な条件や結合の指定をビューに記述しておき、SQL文には追加の条件のみを記述することによってSQL文の記述を簡略化できます。

また、セキュリティの観点から、表の一部の列を隠蔽したいが、その一部の列以外の列は、公開したいという場合があります。このような場合、ビューを使用すると、目的にあった検索ができます。

ビューはデータ操作のための仮想的な表であり、データの実体は存在しません。ビュー作成しておいても、データ検索速度は速くなりません。

ビューを削除(DROP)した場合、元の表に影響はありません。ビューはSQL文のCREATE VIEW文で定義しま

す。

■ 表名(ビュー名)

ビューの名前を定義します。

■ 列名

ビューの列の名前を定義します。

■ ビューの列および行の定義

実表またはビューのどの部分をビューとするかを定義します。

■ 注意点

ビューは簡易的な利用ができ便利な反面、下記の注意点が必要です。

• ビューは、実体をもちません。SQLの実行ごとに動的にビューが元の表より導出されます。

このためビューを表から取出す処理時間がビューに対するSQL文での操作ごとに必要になります。

• ビューに対してインデックスは作成できません。

• ビューを作成しておいても、データ検索速度は速くなりません。

• 以下の条件で作成されたビューは、ビューからデータの更新はできません。

- GROUP BY句を使用している。

- DISTINCTを使用している。

- 合計または、平均値を算出する関数を使用している。

- 複数表を関連付ける条件を指定している。

Page 28: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 18

All Rights Reserved, Copyright @ FUJITSU LIMITED2007

2.3 格納構造2.3 格納構造

DSO/DSI

DSOとDSIの関係

格納構造の種類

格納構造は、データベースを論理的に複数の運用単位に分割して運用するための構造です。格納構造には以下の項目があります。

■格納構造

データベースを論理的に複数の運用単位に分割して運用するための構造です。

つまり、論理構造で定義した実表やインデックスのデータを、物理構造で定義したデータベーススペースに格納する構造について定義する構造です。

格納構造はDSOとDSIで構成されます。DSOは、論理構造で定義した実表に対するデータの格納構造の種類を定義します。DSIは、実表およびインデックスと格納先のデータベーススペースとの対応づけを定義します

格納構造を設計することで、実表やインデックスを複数のデータベーススペース上に分割配置することが可能となるため、運用単位に独立して、かつ並行してデータベースの保全・保守運用ができます。

■DSO ( Date Structure Organization )■DSI ( Data Structure Instance )

格納構造の2つの要素とその対応関係について、以降で説明します。

Page 29: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 19

All Rights Reserved, Copyright @ FUJITSU LIMITED2007

2.3.1 DSO/DSI2.3.1 DSO/DSI

格納構造は、以下の2つにより構成されます。

■DSO

DSOは、論理構造で定義した実表に対するデータの格納構造を定義します。

■DSI

DSIは、実表のデータを格納する領域を、データベーススペースに割り付けるために定義します。

DSOは、論理構造で定義した実表に対するデータの格納構造を定義します。DSOには、以下があります。

■ 表のDSO表のDSOは、データを格納するための格納構造の種類や、データを分割して格納する場合の分割方法を定

義します。

■ インデックスのDSOインデックスのDSOは、表に対してどのような列にインデックスを作成するのかを定義します。

DSIは、実表のデータを格納する領域を、データベーススペースに割り付けるための記憶ファイルを定義します。DSIには、以下があります。

• 表のDSI表のDSIは、データを格納する領域を、データベーススペースに割り付けるために定義します。

• インデックスのDSIインデックスのDSIは、表に付加するインデックスのデータを格納する領域を、データベーススペースに

割り付けるために定義します。

Page 30: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 20

All Rights Reserved, Copyright @ FUJITSU LIMITED2007

2.3.2 DSOとDSIの関係2.3.2 DSOとDSIの関係

DSO DSI実表

DSO

DSI

DSI実表

DSO

DSI

DSI

DSOインデックス

実表

表DSIに対応するインデックスDSIが必ず存在する

DSO:DSI=1:nの場合DSO:DSI=1:1の場合

DSI

DSI

表のデータを分割して格納しない場合、DSOとDSIの関係は1:1になります。

表のデータを分割して格納する場合、DSOとDSIの関係は1:nになります。

インデックスのDSIは、表のDSIに対して定義します。表のデータを分割して格納する場合には、それぞれの表のDSIに対して、インデックスのDSIを定義する必要があります。

Page 31: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 21

All Rights Reserved, Copyright @ FUJITSU LIMITED2007

2.3.3 格納構造の種類2.3.3 格納構造の種類

実表の格納構造

インデックスの格納構造

格納構造には、SEQUENTIAL構造、RANDOM構造、OBJECT構造およびBTREE構造があります。SEQUENTIAL構造、RANDOM構造およびOBJECT構造は、表に対する格納構造として定義します。

BTREE構造は、インデックスに対する格納構造として定義します。

インデックスは、実表の格納構造の種類とは関係なく設定することができ、データの検索条件に応じて、1つの実表に複数設定できます。

Page 32: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 22

All Rights Reserved, Copyright @ FUJITSU LIMITED2007

2.3.3.1 実表の格納構造2.3.3.1 実表の格納構造

A B C

A B C A

BC

A B C

ハッシュ関数

バイナリデータバイナリデータ

♪ ☆ ◆

♪ ☆ ◆

SEQUENTIAL構造 RANDOM構造 OBJECT構造

実表の格納構造はデータベース内のデータの特性などから、以下の格納構造のうちどれか1つを選択できま

す。

■ SEQUENTIAL構造

SEQUENTIAL構造は、データを順次格納する構造です。

バイナリデータを格納できます。

■ RANDOM構造

RANDOM構造は、データに対して、そのキーとなる列の組の値から格納するページ(これをバケットと呼

びます)を計算し、格納する構造です。

■ OBJECT構造

OBJECT構造は、XMLデータおよび写真などのバイナリデータを格納する専用の構造です。OBJECT構造はアーカイブログの適用ができません。

現在では、バイナリデータをSEQUENTIAL構造で扱えるため、OBJECT構造は過去バージョンとの互換

のために存在しています。

Page 33: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 23

All Rights Reserved, Copyright @ FUJITSU LIMITED2007

2.3.3.2 インデックスの格納構造2.3.3.2 インデックスの格納構造

研究部に所属する従業員の氏名を知りたい

6500101 山田 一郎 開発部 650401 60

6500102 森田 太郎 経理部 650401 48

7202555 川上 五郎 研究部 750401 39

8904123 高山 二郎 人事部 890401 23

SELECT 氏名

FROM 従業員表

WHERE 所属 = ’ 研究部 ’

従業員番号 氏名 所属 入社日付 年齢

検索対象列

検索対象の表

探索条件

表名表名 :: 従業員表従業員表

インデックス

Symfowareは、インデックスをBTREE構造の索引手法で実現します。インデックスは、実表の格納構造の種類とは関係なく、設定することができ、データの検索条件に応じて、1つの実表に複数設定できます。

(インデックスの仕組みについては、“2.2.3 インデックスの設計”を参照)

Page 34: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 24

All Rights Reserved, Copyright @ FUJITSU LIMITED2007

2.4 物理構造2.4 物理構造

マルチデータベーススペース

パーティショニング

物理構造は、データベースのデータを格納するデータベーススペースの構造です。

データベーススペースは、データベースのための磁気ディスク内の領域で、ローデバイス、ローカルファイルおよびネットワークファイル上に定義します。また、データベースは、1個のスキーマの実表データまたはイン

デックスデータを複数個のデータベーススペースに分けて格納できます。

データベーススペースは、データベーススペース定義文(CREATE DBSPACE文)で定義します。

Symfowareでは、処理効率、格納効率および運用を考慮した構造になっています。主に以下の2つの機能を

利用できます。

■パーティショニング

■マルチデータベーススペース

パーティショニング、マルチデータベーススペースについては、次ページから説明します。

Page 35: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 25

All Rights Reserved, Copyright @ FUJITSU LIMITED2007

2.4.1 パーティショニング2.4.1 パーティショニング

営業店 担当 顧客コード

新宿店新宿店

:渋谷店渋谷店

:銀座店銀座店

01010103

02010202

05010502

1001212110022344

2002567020041341

5000567850021332

論理構造 格納構造 物理構造

データベーススペース1

データベーススペース2

データベーススペース3

DSO DSI

DSI

DSI

■ パーティショニング

規則に基づいて、 1つの表を複数に分割することにより、分割単位ごとの独立運用が可能となります。

したがって、大容量データベースのバッチ、バックアップおよびデータベースの再配置を、分割したグループ単位で、独立に、かつ並行に行うことができます。

上記、スライドは店の情報を3つのDSIに分割(パーティショニング)しています。

営業店単位にDSI分割されていると仮定(新宿店のDSI、渋谷店のDSI、銀座店のDSI)すると、新宿店のデータをバックアップを行う時には、渋谷店、銀座店のDSIに影響されずに運用が可能となります。

Page 36: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 26

All Rights Reserved, Copyright @ FUJITSU LIMITED2007

2.4.2 マルチデータベーススペース2.4.2 マルチデータベーススペース

データベーススペース データベーススペース データベーススペース

DSI (データ格納領域)

実表

DSO

■ マルチデータベーススペース

1つの実表やインデックスを複数のデータベーススペースに割りつけることができます。複数のデータベーススペースに割りつけることにより、1つのデータベーススペースの容量を超える実表やインデックスに対応できます。

これをマルチデータベーススペースと呼びます。

Page 37: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 27

All Rights Reserved, Copyright © FUJITSU LIMITED 2007

第3章Symfoware

データベース構築

第3章Symfoware

データベース構築

Page 38: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 28

Copyright 2007 FUJITSU LIMITED

3.1 実行環境の設定3.1 実行環境の設定

Symfowareの動作環境

ファイルのディスク配置

Symfowareを動作させるために、動作環境およびディスクの配置を決定する必要があります。

■ Symfowareの動作環境

■ ディスク配置

Page 39: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 29

Copyright 2007 FUJITSU LIMITED

カーネル資源カーネル資源 Symfoware資源Symfoware資源

RDBディク

ショナリ用RDBディレク

トリファイル

ログ管理ファイル

テンポラリログファイル

退避ディスク

アーカイブログファイル

データベーススペース

共用メモリ

セマフォ

システム用

メッセージキュー

クライアント用

データベースデータベース ログファイルログファイル

動作環境ファイル動作環境ファイル

サーバ用

RDB構成パラ

メタファイル

ユーザデータベース用

RDBディレク

トリファイル

RDBディク

ショナリ

RDBディク

ショナリ

3.1.1 Symfowareの動作環境3.1.1 Symfowareの動作環境

■ マルチRDB運用

Symfowareでは、動作環境に8バイト以内の先頭が英字の英数字の名前をつけて運用します。動作環境に名

前をつけることによって、それぞれの環境を区別することができ、サーバ上に、複数の動作環境を作成して運用できます。動作環境を区別するためにつけた名前を、RDBシステム名といいます。この運用を、マルチRDB運

用といいます。

■ シングルRDB運用

動作環境に名前をつけなくても運用できます。この運用を、シングルRDB運用といいます。

Page 40: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 30

Copyright 2007 FUJITSU LIMITED

物理ディスク1物理ディスク1 物理ディスク2物理ディスク2

物理ディスク3物理ディスク3 物理ディスク4物理ディスク4

RDBディレク

トリファイル2RDBディク

ショナリ

RDBディレクト

リファイル1

データベーススペース

ログ管理ファイル

テンポラリログファイル(AIログ域)

バックアップ

アーカイブログファイル

テンポラリログファイル(BIログ域)

作業域ファイル

バックアップ

テンポラリログファイル(ログインデックス域)

データベーススペース

3.1.2 ディスク配置3.1.2 ディスク配置

Symfoware資源のディスク配置の考え方

■ 危険分散

復旧の対象となるファイルと、復旧するために使用する資源は別の物理ディスクに配置する必要があります。

■ 負荷分散Symfoware資源の配置は、危険分散と負荷分散を考慮する必要があります。

同時に物理ディスクへのI/Oが発生する可能性がある資源は、同じ物理ディスク上に配置すると、競合による

性能の劣化が発生するため、分散して配置する必要があります。

負荷分散の観点から見た、Symfoware資源の物理ディスク配置の注意点は以下のとおりです。• RDBディレクトリファイル、テンポラリログファイルと同じ物理ディスクに配置するデータベースは、アクセ

ス負荷の低いものとします。• データベースを配置する各物理ディスクへのアクセス量が均等になるように表・インデックスを配置しま

す。• 表とインデックスは、別々の物理ディスクに配置することを推奨します。

危険分散の観点から見た、Symfoware資源の物理ディスク配置の注意点は以下のとおりです。

• アーカイブログファイルと同じ物理ディスクにはデータベースを配置しない。配置する場合は、次のデータベースとします。

-データを退避した時点に復旧できればよいデータベース-一時的なデータベース(異常時はデータが失われてもよいデータベース)-インデックスだけを配置したデータベース(インデックスは表から復旧できるため)

Page 41: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 31

Copyright 2007 FUJITSU LIMITED

3.2 システム環境の作成3.2 システム環境の作成

RDB構成パラメタファイルの編集

動作環境ファイルの編集

ログ環境の作成

RDBディクショナリ、およびRDBディ

レクトリファイルの作成

カーネル編集

環境変数の設定

ポート番号の定義

■ システム環境の設定

Symfowareを動作させるため、上記の環境設定および作成をします。

本項では、WebAdminを使用したSymfoware/RDBのGUIによるセットアップ方法ではなく、Symfowareのコマンドを用いたSymfoware/RDBのセットアップ方法について記述します。また、OSの具体的パラメタ例としては、Solarisの場合を説明しています。

WebAdminについては、「3.2.8 GUIを使用したシステムファイルセットアップ」に概要を記述します。

Page 42: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 32

Copyright 2007 FUJITSU LIMITED

3.2.1 カーネル編集3.2.1 カーネル編集

Symfowareを動作させるために設定が必要なカーネルの資源には、以下の

ものがあります。

共用メモリ

■ セマフォ資源

■ メッセージキュー

Symfowareプロセスは外部との情報交換に使用します。カーネル資源の設定は、カーネル構成ファイル(/etc/systemファイル)に設定します。

【注意】

Windows版では、本作業は必要ありません。

Page 43: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 33

Copyright 2007 FUJITSU LIMITED

3.2.2 環境変数の設定3.2.2 環境変数の設定

RDBコマンドおよびmanコマンドを使用するのに必要な以下の環境変数を設

定します。

■ LANG■ PATH■ LD_LIBRARY_PATH■ LD_LIBRARY_PATH64■ RDBNAME■ MANPATH

環境変数LANGには、Symfowareのインストール時に指定したSymfowareのロケールを設定します。異なるロケールをLANGに指定した場合、RDBコマンドはエラーになります。なお、インストール時にSymfowareのロケールに“ja”で始まる日本語ロケールを指定した後、運用によってメッセージを英語で出力したい場合、環境変数LANGにCを指定して英語メッセージを出力することが可能です。

■環境変数LANG• 日本語EUCコードのS90コード:

ja、japanese • 日本語EUCコードのU90コード:

ja_JP.U90(日本語拡張表示オプションが別途必要) • シフトJISコード:

ja_JP.PCK • UNICODE:

ja_JP.UTF-8 • その他:

C、海外で使用されているロケールなど

■その他の環境変数

• 環境変数PATHに/opt/FSUNrdb2b/binを追加します。

• Symfoware Server Enterprise Extended Editionを利用する場合は、環境変数LD_LIBRARY_PATH_64に/opt/FSUNrdb2b/libを追加します。

• 環境変数LD_LIBRARY_PATHに/opt/FSUNrdb2b/libと/etc/opt/FSUNiconv/libを追加します。

• 環境変数RDBNAMEにRDBシステム名を設定します。ただし、RDBシステム名をつけない運用の場合

は不要です。

• 環境変数MANPATHに/opt/FSUNrdb2b/manを設定します。

※)上記は、Solarisを使用した場合の説明です。

Page 44: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 34

Copyright 2007 FUJITSU LIMITED

RDBディレクト

リファイル2

RDBディクショナリ

RDBディレクト

リファイル1ログ管理ファイル

アーカイブログファイル

テンポラリログファイル

ソート作業域

データベーススペース

共用メモリ

Symfowareプロセス

WORK_PATHWORK_PATH

システム用動作環境ファイル

RDBEXTMEMRDBEXTMEM RDBLOGMANAGERDBLOGMANAGE RDBDIRSPACE1RDBDIRSPACE1 RDBDIRSPACE2RDBDIRSPACE2 RDBSQLENVRDBSQLENV

3.2.3 RDB構成パラメタファイルの編集3.2.3 RDB構成パラメタファイルの編集

RDB構成パラメタファイル

RDB構成パラメタファイルは、Symfowareを起動(rdbstartコマンドを実行)するときに最初に読み込まれ、基本

的な動作環境を決定するファイルです。

Symfowareを運用するには、利用者がRDB構成パラメタファイルに動作環境を定義します。

■ RDBシステム名をつける運用(マルチRDB運用)の場合

Symfoware Server をインストールしたディレクトリの配下に、RDB構成パラメタファイルの雛型(RDBSYS.cfg)を複写して、作成したテキストファイルを編集します。ファイル名は、RDBシステム名.cfgとします。RDBシステム名は、環境変数のRDBNAMEで設定するRDBシステム名と対応づけられます。

■ RDBシステム名をつけない運用(シングルRDB運用)の場合

Symfoware Server をインストールしたディレクトリの配下にあるrdbsysconfigを直接編集します。

Page 45: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 35

Copyright 2007 FUJITSU LIMITED

3.2.4 動作環境ファイルの編集3.2.4 動作環境ファイルの編集

システム用の動作環境ファイル

クライアント用の動作環境ファイル

環境変数

RDB構成パラメタファイル

SQLRTENVSQLRTENV

SERVER_ENV_FILESERVER_ENV_FILE

RDBSQLENVRDBSQLENV

Symfowareサーバ

Symfowareサーバ

クライアントクライアント

サーバ用の動作環境ファイル

動作環境ファイルは、Symfowareが、応用プログラムとの連携をする場合に動作環境を規定するためのファイルです。

動作環境ファイルには、以下があります。

■ システム用の動作環境ファイル

システム用の動作環境ファイルは、/opt/FSUNrdb2b/etc/fssqlenvを複写し、任意のファイル名として作成します。作成したファイル名を、RDB構成パラメタファイルのRDBSQLENVで指定します。

■ クライアント用の動作環境ファイル

クライアント用の動作環境ファイルは、動作環境ファイルの雛形(/opt/FSUNrdb2b/demo/fssqlenvc)を応用プログラム実行時のカレントディレクトリに複写することで有効になります。任意のファイル名または他のディレクトリに格納した動作環境ファイルを使用する場合は、環境変数“SQLRTENV”にファイル名を指定します。

■ サーバ用の動作環境ファイル

サーバ用の動作環境ファイルを定義して、応用プログラム中のコネクション単位に動作環境を設定できます。クライアント用の動作環境ファイルのSERVER_ENV_FILEパラメタで、サーバ用の動作環境ファイル名を指定します。

■ ポイント

各動作環境ファイルに重複したパラメタが指定されている場合は、サーバ用の動作環境ファイル、クライアント用の動作環境ファイル、システム用の動作環境ファイルの順に有効となります。アプリケーションの動作環境のチューニングは、主に動作環境ファイルで行いますが、一部の環境については、環境変数で指定することもできます。環境変数による指定と動作環境ファイルによる指定が重複する場合は、環境変数による指定が優先されます。

※)上記のファイル名の説明は、Solarisを使用した場合の説明です。

Page 46: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 36

Copyright 2007 FUJITSU LIMITED

3.2.5 ポート番号の定義3.2.5 ポート番号の定義

TCP/IP通信

SERVER_SPEC=(RDB2_TCP, ・・・, ポート番号)

SERVER_SPEC=(RDB2_TCP, ・・・, ポート番号)

サービス名 ポート番号/tcpサービス名 ポート番号/tcpクライアント用の動作環境ファイル

servicesファイル

Symfowareデータベース

MAX_CONNECT_TCP = (15)MAX_CONNECT_TCP = (15)

システム用の動作環境ファイル

クライアントがリモートからSymfowareにアクセスするためには、SymfowareのサーバのOSのファイル(servicesファイル)にポート番号を定義する必要があります。また、定義したポート番号をクライアント用の動作環境ファイ

ルに指定する必要があります。

■ 指定形式

サービス名 ポート番号/プロトコル

• サービス名

サービス名は、RDBシステム名を指定します。 RDBシステム名をつけない運用の場合は、RDBIIを指定します。

• ポート番号

ポート番号は、2050~2099の値を指定します。ただし、2050~2099のポート番号をすでに使用して

いる場合は、使用していないポート番号を指定します。

• プロトコル

プロトコルはtcpを指定します。

Page 47: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 37

Copyright 2007 FUJITSU LIMITED

3.2.6 ログ環境の作成3.2.6 ログ環境の作成

$ rdblog -G -t -c 10M /dev/rdsk/c1t0d0s1 -in -in 512M 512M 1200

$ rdblog -G -a /dev/rdsk/c1t1d0s1 2048M

$ rdblog -I

$ rdblog -U -a /dev/rdsk/c1t1d0s3$ rdblog -U -a /dev/rdsk/c1t1d0s4

■ログ管理ファイルの作成

■テンポラリログファイルの作成

■アーカイブログファイルの作成

■アーカイブログファイルの追加 Point !Point !

Symfowareを運用するためには、以下のログ環境を作成します。

ログ環境を作成するには、まずログ管理ファイルを作成しなければなりません。

次にテンポラリログファイルを作成します。

アーカイブログファイルはアーカイブログ運用を選択した時に作成する必要があります。

■ ログ管理ファイル

ログ管理ファイルの作成は、rdblogコマンドのIオプションを使用します。ログ管理ファイルは、RDB構成パラメタファイル内のRDBLOGMANAGEで指定したローデバイスまたはディレクトリに作成されます。

■ テンポラリログファイル

テンポラリログファイルの作成は、rdblogコマンドのG およびt オプションを使用します。

■ アーカイブログファイルの初期作成

アーカイブログファイルの初期作成は、rdblogコマンドのGオプションおよびaオプションを使用します。

■ アーカイブログファイルの追加作成

アーカイブログの適用による復旧をする場合には、アーカイブログファイルを通常3個以上(最低2個)作成します。アーカイブログファイルの追加作成は、rdblogコマンドのUオプションおよびaオプションで追加し

ます。このとき、追加するアーカイブログファイルの大きさは指定できません。指定したファイルまたはローデバイスの大きさに関係なく、初期作成時の値が使用されます。

Page 48: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 38

Copyright 2007 FUJITSU LIMITED

3.2.7 RDBディクショナリおよびRDBディレクトリファイルの作成

3.2.7 RDBディクショナリおよびRDBディレクトリファイルの作成

rdbcrdic -r /dev/rdsk/c1t2d0s1 -a 60M -du 5MRDB構成パ

ラメタファイル

RDBDIRSPACE1RDBDIRSPACE1

RDBDIRSPACE2RDBDIRSPACE2

RDBディク

ショナリ

RDBディレク

トリファイル2

RDBディレク

トリファイル1

ログ環境を作成した後、RDBディクショナリとRDBディレクトリファイルを作成します。

システム表を格納するためのデータベースであるRDBディクショナリとデータベースに高速にアクセスするための基本情報や、データベースの運用情報を格納するための制御ファイルであるRDBディレクトリファイルを作

成します。

RDBディクショナリおよびRDBディレクトリファイルの作成は、rdbcrdicコマンドを使用します。

RDBディレクトリファイルは、RDB構成パラメタファイルで指定したディレクトリに、DIR_FILE1、DIR_FILE2とい

うファイル名で自動的に作成されます。

Page 49: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 39

Copyright 2007 FUJITSU LIMITED

3.2.8 GUIを使用したシステムファイルのセットアップ3.2.8 GUIを使用したシステムファイルのセットアップ

Symfowareは、Webブラウザを使用してSymfowareの動作環境を作成する機能を提供しています。

Symfowareの動作環境を作成する機能として“WebAdmin”があります。

■ WebAdminとは

Symfowareが動作するために必要な以下のファイルを作成できます。

•ロググループ管理ファイル

•ログ管理ファイル

•テンポラリログファイル

•RDBディレクトリファイル

•RDBディクショナリ

•監査ログ用のログ管理ファイル

•監査ログ用のテンポラリログファイル

•監査ログデータベース

•アーカイブログファイル

•パフォーマンスデータ格納ファイル

•自動起動停止スクリプト

また、Symfowareを運用するために必要な以下のファイルに値を設定できます。

• RDB構成パラメタファイル

• システム用の動作環境ファイル

• デフォルトの共用バッファ定義ファイル

• SERVICESファイル(ポート番号の一覧を示したファイル)

Page 50: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 40

Copyright 2007 FUJITSU LIMITED

データベースの定義

最適化情報の設定

データベースの創成

データベース定義情報の保全

データベースのデータ退避

データベースの変更

データベースの削除

3.3 データベースの作成3.3 データベースの作成

データベースの作成手順について説明します。

本項では、WebDBtoolsを使用したSymfoware/RDBのGUIによるデータベースの作成ではなく、Symfowareのコマンドを用いたSymfoware/RDBのセットアップ方法について記述します。

WebDBtoolsについては、「3.3.8 GUIを使用したデータベース操作」に概要を記述します。

Page 51: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 41

Copyright 2007 FUJITSU LIMITED

データベースデータベース

データベーススペース

スキーマ

DSI

DSO

DSI

DSO

実データ

実表 (インデックス)

実データ

物理構造物理構造

格納構造格納構造

論理構造論理構造

2.rdbddlex [-d データベース名] 定義ファイル名

定義ファイル定義ファイル

3.CREATE SCHEMA XXX

;

4.CREATE TABLE XXX.YY~

1.rdbstart

Symfoware

1.CREATE DATABASE ~ ;

6.CREATE DSI ~

5.CREATE DSO ~

3.3.1データベースの定義3.3.1データベースの定義

2.CREATE DBSPACE ~ ;

■ データベースの定義方法

Symfowareのデータベースを作成するには、rdbstartコマンドでSymfowareを正常に起動した後、rdbddlexコマ

ンドを使用します。

データベースを定義するSQL(DDL文)を記載した定義ファイルを用意し、rdbddlexコマンドを実行することに

よって、データベースが定義されます。

Page 52: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 42

Copyright 2007 FUJITSU LIMITED

3.3.2 データベースの創成3.3.2 データベースの創成

DSIDSI

入力ファイル

データのロード

アプリケーションアプリケーション

INSERT INTO ・・・ rdbsloader ・・・

SQL

rdbfmt -mi -i データベース名.DSI名

1. 2.

作成した表に対して、初めて実データを投入することをデータベースの創成と呼びます。データベースの創成は、物理構造、論理構造、格納構造の定義が完了してから実行します。

データベースの創成方法として、以下の2つがあります。

1. 創成用のアプリケーションを作成してINSERT文を使用する方法(DSI初期化必要)2. 外部ファイルを使用したrdbsloaderコマンドによる方法(DSI初期化不要)

DSI初期化: rdbfmt コマンド(インデックスを含むすべてのDSIに対して実行します)

データのロード:rdbsloader コマンド(表のDSIだけに実行します)

Page 53: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 43

Copyright 2007 FUJITSU LIMITED

3.3.3 最適化情報の設定3.3.3 最適化情報の設定

データの状況に応じてできるだけ効率のよい検索処理をするための情報です。最適化情報をどのように設定するかは、以下をポイントに判断します。

最適化情報

の設定方法選択指針

SET STATISTICS文 データベースに格納するレコード件数、異なるキー値数などが見積り可能

rdbupsコマンド データベースに格納するレコード件数、異なるキー値数などが見積り困難(実際にデータを格納しないとわからない)

最適化情報は、最大3回前までリカバリすることが可能Point !Point !

Symfowareでは、SQL文の指令と結びつく表を調べて、探索条件に見合った処理手順を決めます。この働き

のことを最適化処理(または、オプティマイザ)と呼び、その処理の結果として決定される処理手順をアクセスプランと呼びます。Symfowareは、データ量や格納状況の情報に基づいた最適化処理を実現しています。この情

報を最適化情報と呼びます。

最適化情報には、実表のデータ量(行数)、インデックスの階層数および異なるキー値の数などがあります。最適化情報の収集は、RDBコマンドを使用します。結果はRDBディクショナリに格納されます。

最適化情報を設定するには、以下の2つの方法があります。

■rdbupsコマンドを実行して設定する方法

■ rdbddlexコマンドを使用して、SET STATISTICSで設定する方法

「備考」

rdbupsコマンドによって更新された最適化情報は、最大3回前までリカバリすることが可能です。

■注意

最適化情報をリカバリすると、リカバリ前の最適化情報には戻すことができないので注意してください。

Page 54: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 44

Copyright 2007 FUJITSU LIMITED

3.3.4 データベース定義情報の保全3.3.4 データベース定義情報の保全

rdbdmpdic -f dicback@/backup/rdb

RDBディクショナリ

システム表

RDBディクショナリの

バックアップファイル

退避データ

データベースの定義情報はRDBディクショナリに格納されています。

データベースの定義をした段階でデータベース定義情報の保全のためにRDBディクショナリのデータを退避

(バックアップ)しておきます。

RDBディクショナリのバックアップは、rdbdmpdicコマンドを使用します。

Page 55: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 45

Copyright 2007 FUJITSU LIMITED

3.3.5 データベースのデータ退避3.3.5 データベースのデータ退避

rdbdmp -i RDBDB.在庫表DSI -f stock.dmp@/backup/data -e -y

データベース

表DSI

表DSIのバックアップファイル

データベースの創成完了後、データベースの運用を開始する前に、データベースを退避(バックアップ)します。

データベースのバックアップは、rdbdmpコマンドを使用します。

rdbdmpコマンドを使用する場合、表のDSI単位にバックアップします。

rdbdmpコマンドの他に、Advanced Backup Controllerというオプション製品の高速バックアップ機能を利用す

る方法もあります。

Page 56: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 46

Copyright 2007 FUJITSU LIMITED

3.3.6 データベースの変更3.3.6 データベースの変更

データベースデータベース

データベーススペース

スキーマ

DSI

DSO

DSI

DSO

実データ

実表 (インデックス)

実データ

物理構造物理構造

格納構造格納構造

論理構造論理構造

rdbddlex [-d データベース名] 定義変更ファイル名

定義変更ファイル定義変更ファイル

ALTER TABLE・・・;

データベースの運用開始後に、データベースの定義を変更できます。

■ 論理構造定義の変更(ALTER TABLE文)表の定義の変更は、ALTER TABLE文を使用します。ALTER TABLE文で以下の変更ができます。

• 列定義の追加

• 列定義の削除

• 表および列の注釈定義の変更

■ポイント

一意性制約を指定した列の定義変更はできません。

NOT NULL制約を指定した場合、DEFAULT句にNULL以外を指定することが必要です。

DEFAULT句を指定していない場合の列の値は、NULLになります。

Page 57: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 47

Copyright 2007 FUJITSU LIMITED

データベースデータベース

データベーススペース

スキーマ

DSI

DSO

DSI

DSO

実データ

実表 (インデックス)

実データ

物理構造物理構造

格納構造格納構造

論理構造論理構造

3.DROP DATABASE ~

2.DROP DBSPACE ~

rdbddlex [-d データベース名] 定義削除ファイル名

定義削除ファイル定義削除ファイル

1.DROP SCHEMAXXX CASCADE

3.3.7 データベースの削除3.3.7 データベースの削除

Point !Point !

構築したデータベースを削除する場合は、関連資源の削除を前提としているものがあります。そのため、データベースの構築手順の逆順に削除します。ただし、関連する資源を一括削除(CASCADE指定)できます。

■データベースの削除手順

下位資源が存在する場合(例:表が定義されているスキーマなど)は、デフォルトでは削除はできません。そのような場合、定義削除のSQL文にCASCADEを指定することにより、下位資源を含めて削除できます。なお、CASCADEを指定して削除される資源は各DDL文で異なります。

■データベースの削除時の注意事項

データベースを削除した場合、格納されているデータは失われます。

Page 58: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 48

Copyright 2007 FUJITSU LIMITED

3.3.8 GUIを使用したデータベース操作3.3.8 GUIを使用したデータベース操作

Symfowareは、Webブラウザを使用してデータベースを操作するツールを提供しています。

データベースを操作するツールとして“WebDBtools”があります。

■WebDBtoolsとは

データベースの定義とデータの操作をするために必要な以下の操作ができます。

• 定義表示(データベースオブジェクトの定義情報の参照)• 定義操作(データベースオブジェクトの定義または削除)• データ操作(データの検索、検索データの更新および削除、データの挿入)

Page 59: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 49

Copyright 2007 FUJITSU LIMITED

3.4 データベースのチューニング3.4 データベースのチューニング

共用バッファプール

性能情報の取得

データベースの性能を十分に発揮するためには、運用環境に合わせた調整(チューニング)が必要です。

ここでは、Symfowareの基本的なチューニング方法について説明します。

■ 共用バッファプール

• DSIと個別で開設する共用バッファプールの対応関係の登録

• DSIと個別で開設する共用バッファプールの表示

• DSIと個別で開設する共用バッファプールの対応関係の解除

• DSIと個別で開設する共用バッファプールの閉鎖

■ 性能情報の取得

• 性能情報取得コマンド

• SQL処理情報

• SQL処理情報

Page 60: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 50

Copyright 2007 FUJITSU LIMITED

3.4.1 共用バッファプール3.4.1 共用バッファプール

メモリ

ページ

DSI

2K2K1K1K 4K4K4K4K 16K16K

8K8K 16K16K 32K32K

デフォルトの共用バッファ

利用者が定義した共用バッファ

共用バッファは、データベースにアクセスする際のバッファ(キャッシュ)として利用されます。このバッファは、複数のアプリケーションで共有されます。データベースをアクセスするとき、アプリケーションが要求するデータ(行)が共用バッファ上に存在すれば、ディスクへのI/Oを行わずにデータが利用できます。

共用バッファをチューニングすると、アプリケーションのレスポンス改善、単位時間当たりのトランザクション実行数(tpm)が向上します。

■ デフォルトの共用バッファプールSymfowareの起動時に自動的に開設される共用バッファをデフォルトの共用バッファプールと呼びます。デ

フォルトの共用バッファプールを使用すると、資源(DSI)とバッファの対応を管理しなくてもよいため運用が簡易

となります。反面、以下の弱点があります。• 1つのバッファプールを複数のDSIが共有することから、異なる資源にアクセスするアプリケーション間で

のバッファの競合が発生し易い。• 複数のDSIが同一バッファプールを使用するため、特定DSIに最適なバッファ量を指定できない。

• 危険値、安全値を変更できない。• デフォルトの共用バッファを利用するアプリケーションやコマンドのプロセスがすべて終了すると、自動的

にバッファ内容はディスクに書き出されメモリから消滅します。

デフォルトの共用バッファプールの大きさは、RDB構成パラメタファイルのRDBSYSBUFで指定したディレクトリのrdbbufファイルを編集し調整できます。

RDBディクショナリのアクセスは、デフォルトの共用バッファを利用します。

■ 個別で開設する共用バッファプール個別にバッファプールを開設すると、特定DSIをバッファプールに対応づけ、デフォルトの共用バッファプール

の弱点を解消できます。この共用バッファプールを個別で開設する共用バッファプールと呼びます。以降の文中で、単に共用バッファプールと表現した場合は個別で開設する共用バッファプールを指します。

Page 61: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 51

Copyright 2007 FUJITSU LIMITED

3.4.1.1 共用バッファプールの開設3.4.1.1 共用バッファプールの開設

POOL1POOL1

利用者が定義した共用バッファプールの例

rdbcrbf -a 70 -s 50 POOL1 1K 54

54枚(100%)54枚(100%)

27枚(50%)27枚(50%)

38枚(70%)38枚(70%)

危険値 安全値

ページ長1K

共用バッファ識別子

ページ長 ページ数

Point !Point !

共用バッファプールの定義例を上記に示します。共用バッファプールのページ長とページ数は、SQL文でアクセスするDSIのページ長とページ数に依存します。

共用バッファプールを開設する方法には、以下の2つの方法があります。

■ 1つずつ共用バッファプールを開設する方法

rdbcrbf [ -a 危険値] [ -s 安全値] 共用バッファ識別子 ページ長 ページ数

■ 複数の共用バッファプールを一括して開設する方法

rdbcrbf -f { ファイル名 | - }

「-」を指定すると、標準入力からの読込みとなります 。

指定するファイル内には、次の記述形式で各共用バッファプールの情報を定義します。

共用バッファ識別子 ページ長 ページ数 [危険値 | - ] [安全値 | - ]

危険値を「-」にすると、70が指定されたものとします。

安全値を「-」にすると、50が指定されたものとします。

■危険値

共用バッファプール内での使用中ページの割合(%)を指定します。共用バッファプール内の使用中バッファ量が、この危険値を超えると、使用中ページを再使用可能な状態に変換し、空きページを確保し始めます。

本指定の省略時は、Symfowareが最適と思われる値(70%)を自動的に設定します。

■安全値

共用バッファプール内での使用中ページの割合(%)を指定します。空きページの確保は、この安全値を満たすまで実行されます。

本指定の省略時は、Symfowareが最適と思われる値(50%)を自動的に設定します。

Page 62: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 52

Copyright 2007 FUJITSU LIMITED

3.4.1.2 DSIと共用バッファプールの対応関係の登録3.4.1.2 DSIと共用バッファプールの対応関係の登録

POOL1POOL1

DSIと共用バッファプールとの対応関係の

登録例

POOL2POOL2

ページ長8K

ページ長2K

ページ長4K

rdbconbf -i STOCK.EMP_DSI POOL1

rdbconbf -i STOCK.EMP_IXDSI POOL2 POOL2

SEQUENTIAL構造のDSI BTREE構造のDSI

共用バッファ識別子1

共用バッファ識別子1

共用バッファ識別子2

運用に必要となるDSIと共用バッファプールの対応関係をrdbconbfコマンドにより登録します。対応関係の登録が必要なすべての共用バッファプールに対して、共用バッファプールの対応関係の登録処理をしてください。登録処理をしないとその共用バッファプールは使用されません。

共用バッファプールの対応関係を登録する方法には、以下の2つの方法があります。

■ 1つずつ共用バッファプールの対応関係を登録する方法

rdbconbf –i データベース名.DSI名 共用バッファ識別子-1 [ 共用バッファ識別子-2 ]

■ 複数の共用バッファプールの対応関係を一括して登録する方法

rdbconbf –f ファイル名

指定するファイル内には、次の記述形式で各対応関係の情報を定義します。

データベース名.DSI名 共用バッファ識別子-1 [ 共用バッファ識別子-2 ]

• データベース名.DSI名対応関係を登録するDSIを指定します。指定は、データベース名とDSI名を“.”で連結して指定します。

• 共用バッファ識別子-1[共用バッファ識別子-2]

DSIが使用する共用バッファプールの識別子を指定します。

両方の識別子を指定した場合、RANDOM構造のプライム部、BTREE構造のインデックス部が共用バッファ識別子-1の共用バッファプールと対応づけられ、RANDOM構造のオーバフロー部、BTREE構造のデータ部が共用バッファ識別子-2の共用バッファプールと対応づけられます。共用バッファ識別子-2の省略時は、格納構造のすべての要素は、共用バッファ識別子-1と対応づけられます。SEQUENTIAL構造またはOBJECT構造のデータ部は、共用バッファ識別子-1のみの指定となります。

■注意

共用バッファプールは、Symfowareが起動している期間中のみ有効です。Symfowareを停止すると、共用バッファプールは自動的に閉鎖し、DSIとの対応関係も解除されます。

Page 63: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 53

Copyright 2007 FUJITSU LIMITED

3.4.2 性能情報の採取方法3.4.2 性能情報の採取方法

性能情報の取得方法

Symfowareでは、データベースの負荷状況を収集できるようにしています。このデー

タベース資源の負荷情報は、データベースを最適にチューニングするための基礎デ

ータとなります。

アクセスプランSQL文のアクセス手順の確認

SQL_TRACESQL処理内容の確認

SQL_SNAPSQL処理手順の確認

rdblkinfコマンド資源の占有状況の監視

rdbsarコマンドシステム資源の使用状況の監視

rdbpsコマンドアプリケーションの動作状況の監視

取得コマンド取得内容

rdbpmsqllistコマンドおよびrdbpmreportコマンド

パフォーマンスモニタ

■ 性能情報取得コマンド

性能情報は、以下のRDBコマンドを使用して取得します。

• rdbpsコマンド

応用プログラムやRDBコマンドの動作状況の情報を収集します。

• rdbsarコマンド

データベース資源(メモリ、共用バッファ、データベーススペース、テンポラリログファイル、アーカイブログファイルなど)の負荷情報を収集します。

• rdblkinfコマンド

応用プログラムによって獲得される資源の占有(ロック)情報を収集します。

■ SQL処理情報

動作環境ファイルに、以下のパラメタをセットすることによって、SQL処理シーケンスや処理状況をトレースします。

• SQL_SNAPアプリケーションが実行したSQL文の情報を、ファイルに出力します。このファイルをスナップファイルと

いいます。アプリケーションのデバッグ時に、SQL文が正しく発行されているかどうかを確認できます。

• SQL_TRACESQLが動作するために扱ったデータ量および使用した資源量をファイルに出力します。この情報により、

どのアプリケーションの実行で資源を多く利用しているか、または、どの動作に時間がかかっているかを確認できます。

• アクセスプラン

SQL文を実行するときのデータベースへのアクセス手順をファイルに出力します。この情報により、意図したインデックスが使用されているかを確認できます。

■パフォーマンスモニタ

パフォーマンスモニタは、処理が遅いSQL文を特定し、性能問題の解決に役立つ情報を提供します。

Page 64: Symfoware Certified Professional データベース V9koitto.cocolog-nifty.com/blog/files/symfo-database-v9-1.pdf · 4.3.3 データベースのロード 76 4.4 保守・運用 77

All Rights Reserved, Copyright © FUJITSU LIMITED 2007All Rights Reserved, Copyright © FUJITSU LIMITED 2007 54

Copyright 2007 FUJITSU LIMITED

3.4.3 パフォーマンスモニタ3.4.3 パフォーマンスモニタ

性能情報性能情報

Symfoware Serverパフォーマンスデータ格納ファイル

格納

アプリケーションSQL

専用コマンドで取り出し

アプリケーションの動作状況やシステム資源の使用状況などが参照可能

処理時間の長いSQL文の特定が可能

SQL文を依頼したクライアント情報の特定が可能

パフォーマンスモニタは、処理が遅いSQL文を特定し、性能問題の解決に役立つ情報を提供します。

パフォーマンスモニタは、SQL文の処理時間の監視を行い、処理に時間がかかっているSQL文を検出すると、そのSQL文に関する情報を収集し、パフォーマンスデータ格納ファイルに蓄積します。処理に時間がかかっているSQL文に関する情報以外にも、アプリケーションの動作状況、システム資源の使用情報、アプリケーション

によって獲得される資源の占有情報の定常的な採取をし、同様にパフォーマンスデータ格納ファイルに蓄積します。

パフォーマンスデータ格納ファイルに蓄積されているデータは、rdbpmsqllistコマンドおよびrdbpmreportコマン

ドを用いて取り出せます。rdbpmsqllistコマンドでは、処理に時間がかかっているSQL文の一覧を表示し、さらに、そのSQL文を依頼したク

ライアントの情報、アクセスプランの情報を調べることができます。rdbpmreportコマンドでは、アプリケーションの動作状況、システム資源の使用情報、アプリケーションによって獲

得される資源の占有情報に関して、情報が保存されている任意の時間の情報を取り出して表示できます。

これらの情報を活用して、処理が遅くなっているSQL文を特定することができ、アクセスプランやシステム資源

の状態を用いて、処理が遅くなっている原因の調査と、対策の検討ができます。