1.4.8 バージョンアップ時の留意事項
HiRDBのバージョンアップでディクショナリ表は最新になりますが,既存のリソースによってディクショナリ表の容量が増えるケースがあります。このような場合,ディクショナリ表はメンテナンスされません。しかし,ディクショナリ表をメンテナンスすると,性能向上するケースがあるため,次のケースに該当する場合は,後述するディクショナリ表メンテナンスの方法を参照し,実施してください。
-
インナレプリカ機能を使用している場合
インナレプリカ機能を使用し,かつRDエリアの数が多い環境で,次の表のどれかの操作を実施する場合に性能向上します。
表1‒5 メンテナンスが必要なケースとディクショナリの表メンテナンス内容 #
メンテナンスが必要なケース
ディクショナリ表のメンテナンスの内容
機能項目
表名
内容
1
次のどれかの定義系SQLを実施
-
CREATE TABLE
-
CREATE INDEX
-
ALTER TABLE
-
DROP TABLE
-
DROP INDEX
インデクスの追加
SQL_RDAREAS
次のインデクスを追加(インデクス名(種別))
-
SQLINDEXM106(151)
-
SQLINDEXS46(152)
2
データベース構成変更ユティリティ(pdmod)でRDエリアの再初期化(initialize rdarea文)を実施
3
次のどれかのコマンドを実施
-
pdorbegin
-
pdorchg
-
pdorend
-
pddbchg
-
- 〈この項の構成〉
(1) ディクショナリ表のメンテナンスの方法
HiRDBのバージョンアップ後に,データベース再編成ユティリティ(pdrorg)を実行することで,ディクショナリ表のメンテナンスを行います。運用手順の詳細は,マニュアル「HiRDB コマンドリファレンス」の「データベース再編成ユティリティ」の「ディクショナリ表のメンテナンス」を参照してください。
(2) ディクショナリ表のメンテナンスの前にすること
ディクショナリ表のメンテナンスをする前に,次に示す内容を必ず確認してください。
-
データディクショナリ用RDエリアの容量の確認
ディクショナリ表のメンテナンスでインデクスを追加することで,データディクショナリ用RDエリアの容量が増えます。表「メンテナンスが必要なケースとディクショナリの表メンテナンス内容」の該当するディクショナリ表について,「データディクショナリ用RDエリアの容量の見積もり」の「インデクスの格納ページ数の計算方法」を参照してください。
-
システムログファイルの容量の確認
ディクショナリ表のメンテナンスでインデクスを追加することで,システムログを出力します。システムログ量について,「ディクショナリ表のメンテナンス実行時に出力されるシステムログ量」を参照してください。
-
作業表用ファイルの容量の確認
ディクショナリ表のメンテナンスでインデクスを追加することで,シングルサーバ又はディクショナリサーバに,インデクスデータの一時的な情報を格納するための領域が必要となります。作業表用ファイルの容量について,「ディクショナリ表のメンテナンスが使用する作業表用ファイルの容量」を参照してください。
-
排他資源要求数の確認(システム定義pd_lck_pool_size及びpd_fes_lck_pool_sizeの値の確認)
ディクショナリ表のメンテナンスでインデクスを追加することで,シングルサーバ又はディクショナリサーバで,排他資源を使用します。排他資源要求数について,マニュアル「HiRDB システム定義」の「排他資源数の見積り」の「ディクショナリ表のメンテナンス(pdrorg -k maintenance -c dic)」を参照してください。
(3) ディクショナリ表のメンテナンス実行要否の確認方法
ディクショナリ表のメンテナンスの実行要否は,次に示す方法で確認してください。
- インデクスの有無の確認方法
-
DBA権限者が,ディクショナリ表SQL_INDEXESを,表「メンテナンスが必要なケースとディクショナリの表メンテナンス内容」の該当するインデクス名で検索して,情報の有無によって確認します。情報がある場合は,ディクショナリ表のメンテナンスを実行する必要はありません。
(例)インデクスSQLINDEXM106の有無を確認する
SELECT INDEX_NAME FROM MASTER.SQL_INDEXES WHERE INDEX_NAME = 'SQLINDEXM106'
(4) ディクショナリ表のメンテナンスの注意事項
- インデクスの削除について
-
ディクショナリ表のメンテナンスでインデクスを追加すると,追加したインデクスは削除できません。インデクスを追加する前の状態に戻すには,ディクショナリ表メンテナンス実行前に取得したバックアップを使用して回復してください。詳細はマニュアル「HiRDB コマンドリファレンス」の「データベース再編成ユティリティ」の「ディクショナリ表のメンテナンス」を参照してください。