インナレプリカ機能　HiRDB Staticizer Option Version 10

解説・手引書

3020-6-563-40

前書き

対象製品

●適用OS：AIX V7.1，AIX V7.2

P-1M62-35A1 HiRDB Server Version 10 10-06

P-F1M62-11A13 HiRDB Staticizer Option Version 10 10-00

●適用OS：Red Hat Enterprise Linux 7 (64-bit x86_64)，Red Hat Enterprise Linux 8 (64-bit x86_64)

P-8462-35A1 HiRDB Server Version 10 10-06

P-F8462-11A13 HiRDB Staticizer Option Version 10 10-00

これらのプログラムプロダクトのほかにもこのマニュアルをご利用になれる場合があります。詳細は「リリースノート」でご確認ください。

輸出時の注意

本製品を輸出される場合には、外国為替及び外国貿易法の規制並びに米国輸出管理規則など外国の輸出関連法規をご確認の上、必要な手続きをお取りください。

なお、不明な場合は、弊社担当営業にお問い合わせください。

商標類

HITACHI，HiRDB，Cosminexus，HAモニタ，JP1，OpenTP1，TPBroker，uCosminexus，VOS3/LS，VOS3/US，VOS3/XS，XDMは，株式会社 日立製作所の商標または登録商標です。

Amazon Web Services，AWS，Powered by AWSロゴ，Amazon EC2，Amazon Route 53は，Amazon.com, Inc.またはその関連会社の商標です。

AMDは，Advanced Micro Devices, Inc.の商標です。

Ansible is a registered trademark of Red Hat, Inc. in the United States and other countries.

Ansibleは，米国およびその他の国におけるRed Hat, Inc.の登録商標です。

Hibernate is a registered trademark of Red Hat, Inc. in the United States and other countries.

Hibernateは，米国およびその他の国におけるRed Hat, Inc.の登録商標です。

IBM，AIX，DataStageおよびPowerHAは，世界の多くの国で登録されたInternational Business Machines Corporationの商標です。

Jboss is a registered trademark of Red Hat, Inc. in the United States and other countries.

Jbossは，米国およびその他の国におけるRed Hat, Inc.の登録商標です。

Linuxは，Linus Torvalds氏の日本およびその他の国における登録商標または商標です。

Microsoft, Access, ActiveX, Azure, Excel, Visual Basic, Visual C++, Visual Studio, Windows, Windows Serverは，マイクロソフト 企業グループの商標です。

OracleおよびJavaは、オラクルおよびその関連会社の登録商標です。

Red Hat is a registered trademark of Red Hat, Inc. in the United States and other countries.

Red Hatは，米国およびその他の国におけるRed Hat, Inc.の登録商標です。

Red Hat Enterprise Linux is a registered trademark of Red Hat, Inc. in the United States and other countries.

Red Hat Enterprise Linuxは，米国およびその他の国におけるRed Hat, Inc.の登録商標です。

UNIXは，The Open Groupの商標です。

VeritasおよびVeritasロゴは、米国およびその他の国におけるVeritas Technologies LLCまたはその関連会社の商標または登録商標です。

その他記載の会社名，製品名などは，それぞれの会社の商標もしくは登録商標です。

発行

2022年10月　3020-6-563-40

著作権

All Rights Reserved. Copyright (C) 2018, 2022, Hitachi, Ltd.

変更内容

変更内容(3020-6-563-40)　HiRDB Version 10 10-06，HiRDB Staticizer Option Version 10 10-00

追加・変更内容

変更個所

インナレプリカグループ内のRDエリアに対して，構成情報の整合性をチェックする機能をサポートしました。

これによって，pdmodコマンドを使用して構成変更をした場合，構成情報の整合性をチェックし，必要に応じて構成情報複写を実行することで，構成情報複写漏れによるRDエリアの障害閉塞を回避できます。

3.6.3(1)

HP-UXに関する説明を削除しました。

−

単なる誤字・脱字などはお断りなく訂正しました。

変更内容(3020-6-563-30)　HiRDB Version 10 10-05，HiRDB Staticizer Option Version 10 10-00

追加・変更内容

インナレプリカグループ内のRDエリアに対しpdmodコマンドを使用して構成変更をした場合に，インナレプリカグループ内のすべてのRDエリアへの構成情報複写をする必要がある旨のメッセージを出力する機能をサポートしました。

メッセージ出力に応じて構成情報複写を実行することで，構成情報複写漏れによるRDエリアの障害閉塞を回避できるようになります。

変更内容(3020-6-563-20)　HiRDB Version 10 10-04，HiRDB Staticizer Option Version 10 10-00

追加・変更内容

リリースノートのマニュアル訂正を反映しました。

変更内容(3020-6-563-10)　HiRDB Version 10 10-01，HiRDB Staticizer Option Version 10 10-00

追加・変更内容

ディスク容量の見積もりの，表の格納ページ数の計算式を変更しました。

はじめに

このマニュアルは，プログラムプロダクトHiRDB Staticizer Option Version 10の機能と使い方について説明したものです。このマニュアルでは，特にバージョンを意識する必要がない場合，HiRDB Staticizer Option Version 10をHiRDB Staticizer Optionと表記します。なお，ここに記載されていない前提情報については，マニュアル「HiRDB Version 10 解説」を参照してください。

対象読者

HiRDBの複製データ（レプリカ）を元のデータベースとは異なる別のデータベースとして扱いたい方を対象としています。なお，次の製品または機能についての基本的な知識を持っていることを前提としています。

HiRDB

ミラーリング機能（ディスクアレイシステムなどのディスク管理機能として使用できるミラーリング機能，またはOSのLV（Logical Volume）管理などのミラーファイル管理ソフトウェアで実現するミラーリング機能のこと）

図中で使用する記号

このマニュアルの図中で使用する記号を，次のように定義します。

このマニュアルで使用する計算式の記号

計算式で使用する記号の意味を次に示します。

記号

意味

↑↑

計算結果の値を小数点以下で切り上げることを示します。

（例）↑34÷3↑の計算結果は12となります。

↓↓

計算結果の値を小数点以下で切り下げることを示します。

（例）↓34÷3↓の計算結果は11となります。

MAX

計算結果の最も大きい値を選ぶことを示します。

（例）MAX（３×６ ，４＋７）の計算結果は18となります。

1　HiRDB Staticizer Optionの概要

HiRDB Staticizer Optionは，HiRDB環境に追加して使用する製品であり，オンライン業務を停止することなくデータベースを運用するための製品です。

この章では，HiRDB Staticizer Optionが必要になる理由，提案する形態，規則（特徴），適用例，および注意が必要な運用について説明します。

1.1　ノンストップサービスに対応したデータベース

ネットビジネスが盛んになり，24時間365日ノンストップでオンライン業務を提供したいというニーズが増えています。HiRDB Staticizer Optionは，オンライン業務を停止することなくデータベースを運用するための製品です。日立ディスクアレイシステムやそのほかのソフトウェアによるミラーリング機能で複製したデータ（レプリカ）を利用することで実現します。

従来のデータベースシステムでは，次のような処理がノンストップサービスを妨げる大きな要因となっていました。

データベースのメンテナンス（データベースの再編成，追加・更新データの一括ロード，インデクスの一括作成など）

データベースのバックアップの取得

データの集計，分析などのバッチ処理

これらの処理は，データベースの運用上，ノンストップサービスでも不要になることはありません。

HiRDB Staticizer Optionのインナレプリカ機能を利用すると，上記の処理を，オンライン業務を続行しながら実現できます。さらに，業務の運用中に，アプリケーションの開発ができるようになります。

インナレプリカ機能は，複製したデータ（レプリカ）を元のデータベースとは異なる別のデータベースとして扱うための機能です。レプリカは，データベースの静止化とミラーリング機能で作成します。データベースの静止化とは，任意の時点でのバッファの更新情報を，整合性を確保するようにデータベースへ書き込む機能です。この静止化によって，整合性が確保された状態のデータベースの複製を作成できます。ミラーリング機能とは，データの安全性を確保するためにディスク上のデータを二重化（ミラーリング）して持つ機能のことです。この機能は，一部のディスクアレイシステムやそのほかのソフトウェアによって提供されます。ミラーリング機能を提供するディスクアレイシステムには，例えば，日立ディスクアレイシステムがあります。

HiRDB Staticizer Optionを利用することで，レプリカのデータベースを，オンライン業務と並行してさまざまな目的に利用できるようになり，HiRDBの運用の幅が広がります。

1.2　HiRDB Staticizer Optionが提案するシステム

HiRDB Staticizer Optionは，複製したデータ（レプリカ）を，元のデータベースとは別のデータベースとして扱うための機能（インナレプリカ機能）を提供します。これによって，アプリケーションやユティリティからレプリカのデータベースへアクセスできるようになります。元のデータベースへアクセスするか，レプリカのデータベースへアクセスするかは，運用コマンドやHiRDBクライアント環境定義で選択できます。それぞれ物理実体が異なるため，データへのアクセスが競合せず，並行して使用しても処理性能の低下を最小限にできます。

レプリカのデータベースは，元のデータベースと同じ表定義を持ちます。また，一つのデータベースに対して，複数のレプリカを作成できます。レプリカを使用した業務の例を次の図に示します。

図1‒1　レプリカを使用した業務の例

1.3　インナレプリカとRDエリア

HiRDB Staticizer Optionで扱うレプリカには次に示す規則があります。

1.3.1　レプリカの作成対象はユーザデータ格納用RDエリア

HiRDB Staticizer Optionでは，次に示すユーザデータ格納用RDエリアの複製をレプリカとして扱います。

ユーザ用RDエリア（ただし，一時表用RDエリアは除きます）

ユーザLOB用RDエリア

表の横分割のように，表が複数のRDエリアにわたっている場合は，それらを一まとまりとして扱い，データの整合性を保持した状態でレプリカを作成する必要があります。

このマニュアルでは，レプリカを作成するときにレプリカの基となるRDエリアを「オリジナルRDエリア」と呼びます。作成したレプリカを，「レプリカRDエリア」と呼びます。オリジナルRDエリアとレプリカRDエリアの関係を次の図に示します。

図1‒2　オリジナルとレプリカのRDエリアの関係

オリジナルRDエリアとは，レプリカとその基になるRDエリアを区別するために呼ぶ名称です。レプリカを持たないRDエリア（レプリカを定義していない，またはレプリカをすべて削除したRDエリア）をオリジナルRDエリアと呼びません。

1.3.2　レプリカの物理的な最小単位はHiRDBファイルシステム領域

HiRDB Staticizer Optionでは，ミラーリング機能によってコピーされたHiRDBファイルシステム領域の中にあるRDエリアを，コピー元の領域内にあるRDエリア（オリジナルRDエリア）とは別のRDエリアとして定義します。このRDエリアがレプリカRDエリアです。レプリカRDエリアを，オリジナルRDエリアの定義内容を基に定義します。このとき，HiRDBファイルシステム領域内のすべてのRDエリアをレプリカRDエリアとして定義することになります。

HiRDBファイルシステム領域のコピーは，複数作成できます。HiRDB Staticizer Optionでは，オリジナルと複数のコピーを「世代番号」を使って識別します。次の図に示すように，オリジナルの領域は世代番号を0とし，レプリカは1〜10の任意の数字を使って管理します。

図1‒3　HiRDBファイルシステム領域と世代番号

ユーザデータ格納用RDエリアが複数のHiRDBファイルで構成され，HiRDBファイルが複数のHiRDBファイルシステム領域に格納されている場合は，関係するHiRDBファイルシステム領域すべてを一まとまりとして扱い，データの整合性を保持した状態でレプリカを作成する必要があります。

1.3.3　一つのRDエリアに対して複数のレプリカの作成が可能

HiRDB Staticizer Optionは，一つのRDエリア（オリジナルRDエリア）に対して複数のレプリカRDエリアを定義，作成できます。それぞれのレプリカRDエリアには，オリジナルRDエリアと同名の表・インデクスが存在することになります。同名の表・インデクスが存在する，このオリジナルとレプリカのRDエリアのまとまりを「インナレプリカグループ」と呼びます。一つのRDエリアに対して，10個までレプリカRDエリアを定義できます。インナレプリカグループは，システム共通定義で指定する数まで作成できます。インナレプリカグループのイメージを次の図に示します。

図1‒4　インナレプリカグループ

前述の図に示すように，レプリカRDエリアには，HiRDBファイルシステム領域に割り当てた世代番号（「レプリカの物理的な最小単位はHiRDBファイルシステム領域」参照）を割り当てる必要があります。

1.3.4　アクセスするRDエリアの選択が容易

HiRDBクライアント環境定義（PDDBACCS），UAP環境定義（PDDBACCS），または運用コマンド（pddbchg）でアクセスしたいRDエリアを選択できます。これらで選択しない場合は，デフォルトのRDエリアへのアクセスとなります。ここでは，HiRDBクライアント環境定義，UAP環境定義，または運用コマンドで選択する場合と選択しない場合に分けて説明します。

(1)　HiRDBクライアント環境定義，UAP環境定義，または運用コマンドで選択

HiRDBクライアント環境定義，UAP環境定義，または運用コマンドでアクセスしたいRDエリアを選択できます。世代番号を指定することで選択できます。この指定のない場合は，カレントRDエリアへアクセスします。カレントRDエリアについては，「特別な指定のないときは決まったRDエリアへアクセス」を参照してください。ただし，指定された世代番号のRDエリアが存在しない場合は，カレントRDエリアへアクセスします。このように，HiRDB Staticizer Optionでは，クライアント側でアクセスするRDエリアを容易に選択できます。

(2)　特別な指定のないときは決まったRDエリアへアクセス

HiRDBクライアント環境定義，UAP環境定義，または運用コマンドで指定がないときには，決まったRDエリア（デフォルトのRDエリア）へアクセスします。このRDエリアを「カレントRDエリア」と呼びます。通常，カレントRDエリアは，オリジナルRDエリアになっています。レプリカRDエリアをカレントRDエリアに変更することもできます。なお，カレントRDエリアではない，インナレプリカグループ内のほかのRDエリアのことは「サブRDエリア」と呼びます。

1.4　インナレプリカの適用例

HiRDB Staticizer Optionを利用することによって，例えば，次のことができます。

オンライン業務中にデータベースの再編成を実行

オンライン業務中にデータ・インデクスの一括作成を実行

オンライン業務と分析業務を同時に実行

オンライン業務とアプリケーション開発を同時に実行

レプリカを利用したデータベースの回復

ここでは，これらの適用例について説明します。なお，これらの適用例については，OSやディスクアレイシステムなどの制限によって適用できない場合があります。実際に運用を検討されるときは，事前に「ミラーリング方式の違いによる注意事項」でご確認ください。

1.4.1　オンラインでのデータベース再編成

オンライン業務で使用しているデータベースのレプリカを利用して，オンライン業務の運用中に，データベースを再編成できます。オンラインでのデータベース再編成には，次の2種類があります。業務特性に合わせて利用してください。

種類

説明

オンライン再編成

データベースの再編成中は，データベースの参照だけできます。更新はできません。

運用の設定が，更新可能なオンライン再編成に比べて簡単です。

データベースの更新処理が頻繁に発生しない業務に適しています。

更新可能なオンライン再編成

データベースの再編成中に，データベースの参照および更新ができます。

データベースの更新処理が頻繁に発生する業務，およびデータベースの再編成に長時間掛かる業務に適しています。

(1)　オンライン再編成

オンライン業務の運用中にレプリカを作成して，オンライン業務で使用するデータベースをレプリカに切り替えます。その間にマスタのデータベースの再編成を実施して，使用するデータベースをマスタに戻します（切り替えます）。こうすることで，オンライン業務を停止することなくデータベースのメンテナンスができます。通常は，再編成中や切り替え中に業務を停止しなければなりませんが，オンライン再編成では，そのような間でも参照業務を続行できます。このとき，再編成を業務とは別のデータベース（レプリカ）で実行することによって，業務の性能への影響を最小限にできます。

オンライン再編成のイメージを次の図に示します。

図1‒5　オンライン再編成

レプリカを作成するときはマスタのデータベースを静止化（バックアップ閉塞）し，静止化直前までのトランザクションを完結させ，この状態のコピーをレプリカとして作成します。静止化によって，整合性を確保した状態のレプリカを作成できます。静止化されたデータベースへは参照目的のアクセスだけができます。

(2)　更新可能なオンライン再編成

更新可能なオンライン再編成とは，オンライン再編成を高機能にしたものです。

オンライン再編成では，データベース再編成中はオンライン業務では参照処理しかできません。更新可能なオンライン再編成では，データベース再編成中に更新処理を実行できます。

更新処理が多く発生する業務，またはデータベースの再編成に時間が掛かる業務で利用すると便利です。

更新可能なオンライン再編成のイメージを次の図に示します。

図1‒6　更新可能なオンライン再編成

データベースの再編成を行う前に，データベース静止化およびカレントデータベースの切り替えを行います。この間はデータベースを参照・更新することはできません。データベース切り替えの間に発生した参照・更新要求はデータベースの切り替えが完了するまで待ち状態になります。

カレントデータベースを切り替えたあと，マスタのデータベースにはデータベース再編成ユティリティ（pdrorg）を実行します。一方，レプリカのデータベースはオンライン業務に使います。

データベース再編成ユティリティ（pdrorg）の実行が終わったあと，レプリカのデータベースのシステムログを基に，ユティリティ実行中に行われた更新処理の反映を行います（追い付き反映）。

これによって，データベースの再編成を実行したマスタのデータベースに最新の情報を反映できます。

追い付き反映が終了すると，自動的にカレントデータベースがマスタのデータベースに戻ります。この切り替えの間に発生した参照・更新要求は，データベースの切り替えが完了するまで待ち状態になります。

表によっては，更新可能なオンライン再編成を実行できない場合があります。詳細については，「更新可能なオンライン再編成の運用方法」を参照してください。

1.4.2　オンラインでのデータ・インデクスの一括作成

オンライン業務で使用しているデータベースのレプリカを利用して，オンライン業務の運用中に，追加・変更データの一括ロード，インデクスの一括作成ができます。オンラインでのデータ・インデクスの一括作成を次の図に示します。

図1‒7　オンラインでのデータ・インデクスの一括作成

前述の図で示すように，レプリカをカレントデータベースとしてオンライン業務の運用している間に，マスタにデータ・インデクスの一括登録を実施し，カレントデータベースをマスタに戻すことで，オンライン業務を停止することなく，データベースのメンテナンスが実施できます。この間，オンライン業務は参照業務だけ実行できます。これらの仕組みは，「オンライン再編成」と同様です。また，「更新可能なオンライン再編成」と同様の方式でオンラインの更新業務を停止することなく，データベースのメンテナンスを実施できます。

1.4.3　オンライン業務と分析業務の同時実行

オンライン業務で使用しているデータベースのレプリカを作成しておくと，オンライン業務の運用と同時に分析業務も実行できます。オンライン業務と分析業務の同時実行を次の図に示します。

図1‒8　オンライン業務と分析業務の同時実行

前述の図に示すように，レプリカをデータマートとして利用することができます。これによって，オンライン業務の運用中に，データの集計，分析ができます。

また，オンライン業務中にレプリカを使ってデータマートを作成することもできます。通常，多彩な視点からの分析をするときには，データマートのデータ量が増加し，作成に時間が掛かります。レプリカを利用すると，時間，オンライン業務への負荷などを意識することなく作成できます。

1.4.4　オンライン業務とアプリケーション開発の同時実行

オンライン業務で使用しているデータベースのレプリカを作成しておくと，オンライン業務の運用中にデータベースへアクセスするアプリケーションの開発，テストができます。オンライン業務とアプリケーション開発の同時実行を次の図に示します。

図1‒9　オンライン業務とアプリケーション開発の同時実行

前述の図に示すように，オンライン業務の運用中に，レプリカを使って，レプリカのデータベースへアクセスするアプリケーションを開発できます。レプリカを使ってアプリケーションの実行テストも行えます。レプリカでのテストが完了すると，開発したアプリケーションは，そのままマスタのデータベースへアクセスするアプリケーションとして利用できます。

1.4.5　レプリカを利用したデータベースの回復

オンライン業務で使用しているデータベースのレプリカを作成しておくと，レプリカ側で取得したバックアップファイルを使って，マスタ側を回復できます。レプリカを利用したデータベースの回復を次の図に示します。

図1‒10　レプリカを利用したデータベースの回復

前述の図に示すように，オンライン業務の運用中に，レプリカを使って障害回復時に使用するバックアップファイルを作成できます。更新WAITモードを使用することで，オンライン業務を停止しないで，トランザクションの整合性がとれたバックアップを取得できます。

1.5　インナレプリカ環境で注意が必要な運用

インナレプリカ環境で注意が必要な運用を次の表に示します。運用開始前に手順の確認，検討をしてください。

表1‒1　インナレプリカ環境で注意が必要な運用

運用種別

注意が必要な運用

注意事項

注意事項の関連個所

環境構築

系切り替え環境の構築

実行系でRDエリアの閉塞解除（pdrelsまたはpdorchgコマンド）を実行する前に，実行系と待機系の両系で副ボリュームをアクセスできるようにVG情報などを反映してください。

「日立ディスクアレイシステム使用時の注意事項および操作手順」

更新可能なオンライン再編成運用時のシステムログファイルの容量見積もり

更新可能なオンライン再編成を実行中（pdorbeginコマンド実行からpdorendコマンド完了まで）は，システムログファイルは上書き禁止状態になります。更新可能なオンライン再編成が終了するまでに十分なシステムログファイルの容量が必要です。

また，オンライン再編成の追い付き反映（pdorendコマンド）を実行する場合は，追い付き反映処理でもログを取得するため，2倍の容量のシステムログファイルが必要です。

「システムログファイルの容量の見積もり」

「システムログとオペランドの設定」

RDエリア切り替えコマンド（pddbchgまたはpdorchg）のRDエリア指定数

処理対象のRDエリア数が多い場合，短期間に多数のメッセージが出力されるため，ネットワークやディスクに負担が掛かります。RDエリアの切り替え時間を短くしたい場合，1度に処理できるメッセージの上限数（900）を考慮し，処理対象のRDエリア数を800以下にしてください。

注　表名指定で更新可能なオンライン再編成を行う場合も，表が格納されているRDエリアだけでなく，表に関連するRDエリアの数がカレントRDエリア切り替え時間に影響します。

表に関連するRDエリアについて

「RDエリアの管理と再編成のタイミング」

運用中

RDエリアの状態表示（pddbls -r all -aコマンド）

レプリカの実体作成（ペアボリュームの分離）前にpddblsコマンドなどでレプリカRDエリアを参照するとエラーになります。エラーを回避するためには，pddblsコマンドを実行する前にレプリカRDエリアをコマンド閉塞およびクローズ状態にしてください。

−

運用開始後の業務変更

更新可能なオンライン再編成対象RDエリアへの表，インデクス追加

インデクス追加時

更新可能なオンライン再編成が終了した状態（ボリュームがペア状態）でインデクスを追加してください。

表追加時

更新可能なオンライン再編成が終了した状態（ボリュームがペア状態）で表を追加してください。

ユニークインデクスの定義が必要です。ユニークインデクスを構成する列には，非ナル値制約を付けてください。

表，インデクス追加後

表，インデクスの追加後は，pdorcheckコマンドで更新可能なオンライン再編成の適用条件を満たしているかを確認してください。次のメッセージが出力されていれば，適用条件が満たされています。

KFPT02022-I Pdorcheck:all resources conformed to Online DB Reorganization

表，インデクス追加時

「インナレプリカ機能使用時の定義系SQL」

表追加時

「更新可能なオンライン再編成を実施できない表」

RDエリアの拡張

RDエリア拡張前

HiRDBファイルを追加するために，pdfmkfsコマンドで新たなHiRDBファイルシステム領域を作成した場合，HiRDBファイルシステム領域のレプリカ用領域の世代番号を割り当ててください。

物理ディスクを追加した場合は，日立ディスクアレイシステムのMRCF（Multiple RAID Coupling Feature）機能，またはShadowImage機能の再設定をしてください。

RDエリア拡張時

RDエリアの拡張はボリュームがペア状態で行ってください。

RDエリア拡張後

RDエリアの構成情報の複写を行ってください。pdmodコマンドのdefine copy rdarea文を実行し，次のメッセージを確認します。

KFPX14250-I Processing of define copy rdarea statement ended return code=0

「インナレプリカグループ内のRDエリアの構成変更と構成情報の複写」

2　システム構築

この章では，HiRDB Staticizer Optionを利用したシステムを構築する前に知っておくこととして，HiRDB Staticizer Optionを利用できるシステムの構成，インストールとアンインストール方法，リソース容量の見積もりについて説明します。

2.1　システムの前提

HiRDB Staticizer Optionを利用するための前提製品とシステム構成について説明します。

前提製品

ミラーリング機能を実現するディスクアレイシステムまたはソフトウェア

例えば，MRCF（Multiple RAID Coupling Feature）機能，またはShadowImage機能を備えた日立ディスクアレイシステムやOSのLV（Logical Volume）管理などのミラーファイル管理ソフトウェアなどがあります。代表的な製品については，「インナレプリカ機能に使用できる代表的なミラーリング機能」を参照してください。

システム構成

HiRDB Staticizer Optionを組み込むことによって，ミラーリング機能で複製したデータベース（レプリカ）をマスタのデータベースと同時に利用できるようになります。HiRDB Staticizer OptionをHiRDBサーバに配置したシステム構成例を次の図に示します。ミラーリング機能をディスクアレイシステムで実現する場合とソフトウェアで実現する場合に分けて示します。

図2‒1　HiRDB Staticizer Optionを利用したシステムの構成例

2.2　インストールとアンインストール

2.2.1　インストールとセットアップ

HiRDB Staticizer Optionのインストールとセットアップ手順を次の図に示します。

図2‒2　HiRDBとHiRDB Staticizer Optionのインストールとセットアップ手順

注※1

ソフトウェアのミラーリング機能を使用するときに必要な操作です。

注※2

詳細は，「インストール」を参照してください。

注※3

詳細は，「セットアップ」を参照してください。

ここでは，HiRDB Staticizer Optionのインストールおよびセットアップについて説明します。

(1)　インストール

前提製品のインストールおよび環境設定の終了後，HiRDB Staticizer Optionをインストールします。複数のサーバマシンでHiRDBシステムを構築する場合は，そのすべてのマシンにHiRDB Staticizer Optionをインストールする必要があります。インストールは，スーパーユーザで日立PPインストーラを使用して実行します。

(2)　セットアップ

HiRDB Staticizer Optionを利用するためには，インストール後にHiRDBのpdopsetupコマンドを使用してHiRDB Staticizer Optionのインストール情報をHiRDB環境に登録（セットアップ）する必要があります。pdopsetupコマンドは，スーパーユーザが，HiRDBの停止中に実行します。複数のサーバマシンでHiRDBシステムを構成している場合は，すべてのHiRDBサーバマシンで，HiRDB Staticizer Optionのインストール情報をHiRDB環境へ登録してください。

コマンド形式

pdopsetup -k sti $PDDIR

$PDDIRは，HiRDB運用ディレクトリを指しています。HiRDB運用ディレクトリについては，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。pdopsetupコマンドについては，マニュアル「HiRDB コマンドリファレンス」を参照してください。

2.2.2　アンインストール

HiRDBサーバに組み込んだHiRDB Staticizer Optionをアンインストールするには，作成したレプリカRDエリアをオリジナルRDエリアに統合し，レプリカRDエリアの実体を削除しておく必要があります。次の手順でアンインストールを実行してください。

レプリカRDエリアをオリジナルRDエリアへ統合する

統合方法については，「インナレプリカグループの統合」を参照してください。

HiRDB Staticizer Optionのセットアップを解除する

アンインストールを実行する

ここでは，手順2と3について説明します。

(1)　セットアップの解除

pdopsetupコマンドを使用してHiRDB Staticizer Optionのインストール情報のHiRDB環境への登録を解除（セットアップの解除）する必要があります。pdopsetupコマンドは，スーパーユーザが，HiRDBの停止中に実行します。複数のサーバマシンでHiRDBシステムを構成している場合は，すべてのHiRDBサーバマシンで，HiRDB Staticizer Optionのインストール情報の登録を解除してください。

コマンド形式

pdopsetup -d -k sti $PDDIR

$PDDIRは，HiRDB運用ディレクトリを指しています。HiRDB運用ディレクトリについては，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。pdopsetupコマンドについては，マニュアル「HiRDB コマンドリファレンス」を参照してください。

(2)　アンインストール

セットアップの解除後，アンインストールします。アンインストールは，スーパーユーザで日立PPインストーラを使用して実行します。

2.3　リソースの見積もり

レプリカを作成する前に，ディスク容量，共用メモリのサイズを見積もる必要があります。ここでは，それぞれの見積もり方法について説明します。

2.3.1　ディスク容量の見積もり

インナレプリカ機能を使用する場合，次の三つの領域（RDエリア）の見積もりが必要です。

レプリカRDエリアの格納領域

オリジナルとレプリカのRDエリアについての情報を登録するための領域（マスタディレクトリ用RDエリア）

ユーザ表の定義情報を登録するための領域（データディクショナリ用RDエリア）

更新可能なオンライン再編成に必要な領域（追い付き状態管理表を格納するユーザ用RDエリア）

(1)　レプリカRDエリアの格納領域

レプリカの作成時には，レプリカ作成対象のユーザ用RDエリアまたはユーザLOB用RDエリアと同じだけの容量が，レプリカの数だけ必要になります。作成するレプリカの数を考慮した容量を確保してください。また，レプリカ作成対象となるユーザ用RDエリアまたはユーザLOB用RDエリアを新規に作成する場合は，作成するレプリカRDエリアの数を考慮して，ユーザ用RDエリアまたはユーザLOB用RDエリアの容量を見積もってください。ユーザ用RDエリアまたはユーザLOB用RDエリアの容量計算には，マニュアル「HiRDB システム導入・設計ガイド」に記載されている見積もり式を使います。

(2)　オリジナルとレプリカのRDエリアに関する定義情報を登録するための領域

レプリカを作成すると，オリジナルとレプリカのRDエリアの情報，レプリカの世代番号などがマスタディレクトリ用RDエリアへ登録されます。このため，作成するレプリカRDエリアの数などを考慮し，このRDエリアに必要な容量を見積もる必要があります。容量計算には，マニュアル「HiRDB システム導入・設計ガイド」に記載されている見積もり式を使用してください。

(3)　ユーザ表の定義情報を登録するための領域

レプリカを作成すると，レプリカRDエリア内のユーザ表の定義情報が，オリジナルRDエリア内のユーザ表と同様に，データディクショナリ用RDエリアへ登録されます。このため，作成するレプリカRDエリアの数などを考慮し，このRDエリアに必要な容量を見積もる必要があります。容量計算には，マニュアル「HiRDB システム導入・設計ガイド」に記載されている見積もり式を使用してください。

(4)　更新可能なオンライン再編成に必要な領域（追い付き状態管理表を格納するユーザ用RDエリア）

ユーザ用RDエリアには，追い付き状態管理表，およびその表に定義するインデクスを格納します。したがって，ディスク所要量は，表の格納ページ数とインデクスの格納ページ数のそれぞれで必要となるセグメント数の和（2セグメント以上）となります。

表の格納ページ数：

次の値を基に，表の格納ページ数の計算方法（FIX指定のある表）から求めます。表の格納ページ数の計算方法（FIX指定のある表）については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

表に格納する行の総数(a)：該当するRDエリアに格納する，更新可能なオンライン再編成の対象となるサーバの数※1×多重度数※2

ユーザ用RDエリアのページ長(b)：RDエリア作成時に指定した値（単位：バイト）

CREATE TABLEで指定する未使用領域の比率(c)：30（単位：％）

各列のデータ長(Σdi)：70（単位：バイト）

表を格納するRDエリアのセグメントサイズ(g)：RDエリア作成時に指定した値（単位：ページ）

CREATE TABLEで指定するセグメント内の空きページ比率(h)：10（単位：％）

注※1

-rオプションに指定するRDエリアの見積もりをする場合，1となります。

-oオプションに指定するRDエリアの見積もりをする場合，（HiRDBのすべてのバックエンドサーバの数）−（-rオプションで指定するRDエリア数）となります。

注※2

システム定義のpd_max_reflect_process_countオペランドの指定値です。

インデクスの格納ページ数：

次の値を基に，インデクスの格納ページ数の計算方法から求めます。インデクスの格納ページ数の計算方法については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

ユーザ用RDエリアのページ長(a)：RDエリア作成時に指定した値（単位：バイト）

CREATE INDEXで指定する未使用領域の比率(b)：30（単位：％）

キー値の重複が200以下のキーの種類の個数(c)：該当するRDエリアに格納する更新可能なオンライン再編成の対象となるサーバの数※1×多重度数※2

キー値の重複が200以下のキーの重複数の平均値(d)：1

キー値の重複が201以上のキーの種類の個数(e)：0

キー値の重複が201以上のキーの重複数の平均値(f)：0

DB格納キー長(g)：12（単位：バイト）

ナル値以外のキーの種類の個数(h)：

UNIQUE指定のインデクスの場合，該当するRDエリアに格納する更新可能なオンライン再編成の対象となるサーバの数×多重度数

UNIQUE指定でないインデクスの場合，24

注※1

-rオプションに指定するRDエリアの見積もりをする場合，1となります。

-oオプションに指定するRDエリアの見積もりをする場合，（HiRDBのすべてのバックエンドサーバの数）−（-rオプションで指定するRDエリア数）となります。

注※2

システム定義のpd_max_ferlect_process_countオペランドの指定値です。

2.3.2　共用メモリサイズの見積もり

レプリカを作成する場合

レプリカを作成する場合，バックエンドサーバまたはシングルサーバの排他制御で使用する（同時実行トランザクション数の排他資源として使用する）共用メモリサイズの見直しが必要です。共用メモリサイズは，HiRDB/シングルサーバの場合は最大同時接続数を考慮して見積もります。HiRDB/パラレルサーバの場合はサーバごとにバックエンドサーバ当たりの最大起動プロセス数を考慮して見積もります。共用メモリサイズの計算には，マニュアル「HiRDB システム定義」に記載されている見積もり式を使用します。ここで見直した値は，シングルサーバ定義またはバックエンドサーバ定義のpd_lck_pool_sizeオペランドに指定します。シングルサーバの最大同時接続数は，システム共通定義（pdsys）のpd_max_usersオペランドを参照してください。バックエンドサーバ当たりの最大起動プロセス数は，バックエンドサーバ定義のpd_max_bes_processオペランドを参照してください。

レプリカRDエリアのオープン属性を「SCHEDULE」で運用する場合

レプリカRDエリアのオープン属性を「SCHEDULE」にするため，pd_lv_mirror_use = Yにします。このオペランドにYを指定すると，シングルサーバまたはバックエンドサーバが使用する共用メモリが増えます。シングルサーバが使用する共用メモリ，およびバックエンドサーバが使用する共用メモリについては，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

更新可能なオンライン再編成を行う場合

更新可能なオンライン再編成では，専用のメモリが必要になります。見積もり時に十分に検討してください。見積もり方法については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。また，pd_max_reflect_process_countオペランドの指定は，共用メモリの容量に影響を与えます。詳細については，「pd_max_reflect_process_countオペランドの留意事項と見積もり」を参照してください。

2.3.3　システムログファイルの容量の見積もり

インナレプリカ機能を使用する場合，ログに拡張情報が付加されます。さらに，更新可能なオンライン再編成を行う場合，データベースの静止化から追い付き反映処理の完了までは，追い付き反映用のログが出力されるため，2倍のログが出力されます。そのため，インナレプリカ機能を使用する場合のシステムログファイルの総容量は，使用しない場合より多く準備する必要があります。

システムログファイルの容量の見積もりについては，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

3　インナレプリカの運用方法

この章では，HiRDB Staticizer Optionを利用してレプリカRDエリアを定義・作成する方法，作成後の運用方法について説明します。

3.1　運用前に考慮すること

レプリカを作成する前に，作成上のガイドライン，HiRDBで作成できるRDエリアの数などの管理の仕組みを理解しておく必要があります。

3.1.1　レプリカ作成ガイドライン

レプリカは，次に示す内容を考慮して作成します。

レプリカの作成単位

レプリカの作成対象になれるRDエリアおよびHiRDBファイルシステム領域

レプリカを作成するときのまとまり

レプリカRDエリアの定義と実体の作成時の注意

どのRDエリアへアクセスするかを考慮した世代番号の検討

インナレプリカグループ内データの整合性の保持の検討

レプリカRDエリアのオープン属性について

HiRDB Datareplicatorを使用している場合の注意

順序数生成子を使用している場合の注意

ディクショナリ表のメンテナンスについて

ここでは，それぞれについて説明します。

(1)　レプリカの作成単位

HiRDB Staticizer Optionがレプリカとして扱うRDエリア（レプリカRDエリア）は，次に示す単位で作成されます。

ユーザデータ格納用RDエリアのレプリカを作成

HiRDBファイルシステム領域ごとに作成

オリジナルRDエリアと同じサーバ内に作成

ここでは，それぞれについて説明します。また，基になるRDエリアに対して作成できるレプリカRDエリアの数についても説明します。

(a)　ユーザデータ格納用RDエリアのレプリカを作成

レプリカRDエリアを作成できるのは，ユーザのデータを格納する次のRDエリアだけです。

ユーザ用RDエリア

ユーザLOB用RDエリア

(b)　オリジナルRDエリアと同じサーバ内に作成

レプリカRDエリアは，オリジナルRDエリアと同じバックエンドサーバまたはシングルサーバ内に作成されます。オリジナルRDエリアと異なるサーバへは定義・作成できません。

(c)　HiRDBファイルシステム領域ごとにミラーリング

ミラーリング機能では，HiRDBファイルシステム領域のコピーを作成します。したがって，レプリカの物理的な最小単位は，HiRDBファイルシステム領域です。

(d)　1RDエリアにつき10個のレプリカRDエリアを作成可能

一つのRDエリアにつき，レプリカRDエリアを10個まで作成できます。オリジナルRDエリアとn個のレプリカRDエリアのまとまりをインナレプリカグループと呼びます。インナレプリカグループ内のRDエリアの識別には，それぞれに付与されている世代番号を使用します。世代番号の付け方の検討については，「どのRDエリアへアクセスするかを考慮した世代番号の検討」を参照してください。

(2)　レプリカの作成対象になれるRDエリアおよびHiRDBファイルシステム領域

レプリカRDエリアは，インナレプリカ機能を使用するRDエリアのHiRDBファイルだけを集めたHiRDBファイルシステム領域に作成できます。

インナレプリカ機能を使用するRDエリアのHiRDBファイルだけを集めたHiRDBファイルシステム領域

HiRDB Staticizer Optionでは，レプリカをHiRDBファイルシステム領域ごとに定義，作成します。一つのHiRDBファイルシステム領域内に，インナレプリカ機能を使用するRDエリアのHiRDBファイルと使用しないRDエリアのHiRDBファイルが混在していると，運用上，問題が発生するおそれがあります。必ず，インナレプリカ機能を使用するRDエリアのHiRDBファイルだけが集まっているHiRDBファイルシステム領域をレプリカ作成対象としてください。

(3)　レプリカを作成するときのまとまり

レプリカRDエリアを作成するときには，システム上または運用上，関連のあるデータをすべて一組としてまとめて扱って作成する必要があります。例えば，表に関連するデータ（インデクス，BLOB列，抽象データ型の列，プラグインインデクス）は，一組として扱います。一組として扱うときには，常に，まとまり内のデータの整合性を意識しながら，同期を取ってレプリカを作成するようにしてください。

レプリカRDエリアを作成するまとまり

RDエリアが複数のHiRDBファイルから構成され，複数のHiRDBファイルシステム領域にわたっている場合の，それらすべてのHiRDBファイルシステム領域

表が複数のRDエリアに分割している場合（分割表の場合）の，すべてのRDエリア

表に関連するデータ（インデクス，BLOB列，抽象データ型の列，プラグインインデクス）がある場合の，それらを格納したRDエリアを含めたすべてのRDエリア

運用上，関連のあるすべての表

(4)　レプリカRDエリアの定義と実体の作成時の注意

レプリカRDエリアの定義は実体の情報と矛盾のないようにする必要があります。

レプリカRDエリアの構成ファイルシステム情報は，実体の情報との整合性を確保する

レプリカRDエリアを定義すると，HiRDBはレプリカRDエリアの構成ファイル情報をシステムへ登録しますが，実体は作成しません。レプリカRDエリアの実体は，ミラーリング機能を使って作成します。このとき，定義情報は実体の作成に反映されません。このため，オリジナルRDエリアの構成を構成変更ユティリティで変更した場合，そのままオリジナルRDエリアの実体をレプリカRDエリアへコピーすると，レプリカRDエリアの定義情報と実体が矛盾し，アクセスできなくなります。したがって，構成変更ユティリティのRDエリアの構成情報複写を使用し，オリジナルRDエリアの定義情報をレプリカRDエリアにコピーして，定義情報と実体に矛盾がないようにする必要があります。

レプリカRDエリアの構成情報を変更し，レプリカRDエリアの実体をオリジナルRDエリアへコピーする場合，RDエリアの構成情報複写でレプリカRDエリアの定義情報をオリジナルRDエリアへコピーします。

(5)　どのRDエリアへアクセスするかを考慮した世代番号の検討

アプリケーションやユティリティから複数のRDエリアへアクセスする場合，すべてのRDエリアの世代番号を同じにする必要があります。例えば，次の図に示す例の場合，アプリケーション側で世代番号3を指定しても，オリジナルRDエリアCの世代番号3がないために，カレントRDエリアであるオリジナルRDエリアCへアクセスすることになり，意図しない結果を招き，オリジナルRDエリアの破壊につながるおそれがあります。

図3‒1　アクセス対象RDエリアの世代番号が統一されていなかった場合の例

前述の図の場合には，世代番号3を割り当てたレプリカRDエリアC-3を用意すれば問題は解決します。このとき，世代番号2に相当するレプリカRDエリアC-2を飛ばしてすぐに世代番号3を割り当てたレプリカRDエリアC-3を用意できます。前述の図のような問題を避けるため，レプリカRDエリアは，アプリケーションやユティリティがアクセスするRDエリアの世代がすべて同じになるように定義・作成してください。また，「レプリカを作成するときのまとまり」で考慮したまとまりのレプリカは，常に，世代をそろえて定義・作成してください。

(6)　インナレプリカグループ内データの整合性の保持の検討

インナレプリカグループ内のデータの整合性はユーザが任意の方法で保持する必要があります。

インナレプリカグループ内のデータの整合性は任意の方法で保持

HiRDB Staticizer Optionでは，オリジナルRDエリアとレプリカRDエリア間や，複数のレプリカRDエリア間などの，インナレプリカグループ内のデータの整合性を管理することはできません。オリジナルRDエリア内の表に対して更新処理を実行する場合，更新データをレプリカRDエリアへ，適宜ミラーリング機能を実現するディスクアレイシステム（MRCF機能）やソフトウェア（MirrorDisk/UXなど）で反映させる必要があります。このため，データの整合性を管理する方法を検討する必要があります。

(7)　レプリカRDエリアのオープン属性について

レプリカRDエリアのオープン属性は，DEFERにすることを推奨します。

更新可能なオンライン再編成では，レプリカRDエリアはオープン属性にかかわらずカレントデータベース切り替え時に自動的にオープンになります（pdopenコマンドを実行した状態と同じ）。

レプリカRDエリアのオープン属性に関する注意事項を次の表に示します。

表3‒1　レプリカRDエリアのオープン属性に関する注意事項

オープン属性

注意事項

備考

INITIAL

HiRDB起動時にレプリカRDエリアをオープンします。ペアボリュームがペア状態で，レプリカRDエリアの実体へアクセスできない場合は，レプリカRDエリアは障害閉塞します。

レプリカ使用時は，RDエリアをアクセス可能状態にし，pdrels -oで閉塞を解除しオープンしてください。

INITIALまたは

DEFER

HiRDB稼働中（オンライン中）にペアボリュームの統合・分割を繰り返し実行するためには，RDエリアをコマンド閉塞かつクローズ状態にしたあとでpdpfreshコマンドを実行する必要があります。

HiRDBが一度アクセスしたRDエリアをHiRDBから完全に切り離すためには，アクセスしたプロセスがすべて終了している必要があります。

SCHEDULE

pdpfreshコマンドを実行しなくても，HiRDB稼働中（オンライン中）にペアボリュームの統合・分割を繰り返し実行できます。システム共通定義(pdsys)に「pd_lv_mirror_use = Y」を指定すると，すべてのレプリカRDエリアのオープン属性を自動的に「SCHEDULE」属性にできます。ただし，プロセスの開始時と終了時に，RDエリアのオープン・クローズ処理が毎回実行されます。レプリカRDエリアの閉塞解除時，オープン指定（pdrels -o）をするか，または閉塞なしのクローズ状態の場合はオープンコマンド(pdopen)を実行することで，オーバヘッドを削減できます。

RDエリアをコマンド閉塞かつクローズ状態にすることで，HiRDBから完全に切り離せます。

(8)　HiRDB Datareplicatorを使用している場合の注意

HiRDB Datareplicatorを使用してデータ連動している表のレプリカを作成する場合，連動先へ不当なデータが送られないように注意する必要があります。ここでは，レプリカ運用時の更新データ抽出要求のパターンと，パターンごとの抽出対象データについて説明します。

レプリカ運用時の更新データ抽出要求には，次の四つのパターンがあります。

更新にカレントRDエリアの表を使用し，検索にカレント以外のRDエリア（サブRDエリア）の表を使用する。

→ つまり，更新したカレントRDエリアのデータを抽出すればよい場合

更新にカレントRDエリアの表とサブRDエリアの表の両方を使用する。ただし，連動の対象となるのは常にカレントRDエリアの表だけである。サブRDエリアの更新はテストとして扱う。

→ つまり，常にカレントRDエリアの更新データを抽出すればよい場合

カレントRDエリアを検索に使用し，その間，並行して，サブRDエリアの表を更新する（バッチ処理）。そのあと，更新が完了したサブRDエリアのデータをカレントRDエリアに反映する。

→ つまり，カレントRDエリアの更新データとバッチ処理で更新したサブRDエリアのデータの両方を抽出すればよい場合

インナレプリカ機能によって，2.と3.の両方を実行する。

→ つまり，カレントRDエリアの更新データと任意のサブRDエリアのデータを選択して抽出すればよい場合

HiRDB Datareplicatorとの組み合わせでは，1.〜3.のパターンに対応できます。4.のパターンには対応できません。

また，HiRDB DatareplicatorのバージョンがHiRDB Staticizer Optionに対応しているかどうかによって，HiRDB Datareplicatorが抽出できるデータの内容が異なります。以降，その違いについて説明します。詳細，およびHiRDB Staticizer Option未対応バージョンについては，マニュアル「HiRDB データ連動機能　HiRDB Datareplicator」を参照してください。

(a)　HiRDB Staticizer Option未対応バージョンのHiRDB Datareplicatorを使用している場合

HiRDB Staticizer Option（インナレプリカ機能）に対応していないバージョンのHiRDB Datareplicatorを使用している場合，世代番号を意識した抽出はできません。インナレプリカグループ内のRDエリアにある表に対して更新があったとき，HiRDB Datareplicatorを使用して抽出されるのは，オリジナルRDエリア，レプリカRDエリアを問わず，グループ内のRDエリアのすべての更新データです。これによって，前述の1.と3.の運用パターンに対応できます。

したがって，HiRDB未対応バージョンのHiRDB Datareplicatorを使用する場合は，インナレプリカグループ内の複数のRDエリアを業務で使用するデータ以外で更新しないようにしてください。

(b)　HiRDB Staticizer Option対応バージョンのHiRDB Datareplicatorを使用している場合

インナレプリカグループ内のRDエリアにある表に対して更新があったとき，HiRDB Datareplicatorを使用して抽出されるのは，カレントRDエリアとして設定されているRDエリアの更新データです。通常，カレントRDエリアは，オリジナルRDエリアに設定されています。これによって，前述の1.と2.の運用パターンに対応できます。また，カレントRDエリアに対する更新だけを抽出するか，すべての更新を抽出するかを指定することができます。すべての更新を抽出する場合，前述の1.と3.の運用パターンに対応できます。詳細はマニュアル「HiRDB データ連動機能　HiRDB Datareplicator」を参照してください。

HiRDB Datareplicatorでは，カレントRDエリア以外の特定の世代番号のRDエリア内の更新データを抽出することはできません。インナレプリカグループ内の複数のRDエリアを業務で使用するデータ以外で更新する場合は，必ず，HiRDB Staticizer Option（インナレプリカ機能）に対応しているバージョンのHiRDB Datareplicatorを使用してください。

HiRDB Datareplicatorの抽出可能データの一覧を次の表に示します。

表3‒2　HiRDB Datareplicatorの抽出可能データの一覧

項番

抽出対象データと抽出方法

HiRDB Datareplicatorのバージョン

インナレプリカ機能未対応バージョン

インナレプリカ機能

対応バージョン

全データ抽出指定

カレントRDエリアのデータの抽出指定

1

インナレプリカグループ内のすべての更新データを抽出する

○

○

×

2

カレントRDエリアの更新データだけを選択して抽出する

×

×

○

3

カレントRDエリアの更新データと任意のサブRDエリアの更新データを選択して抽出する

×

×

×

（凡例）○：抽出できます。　　×：抽出できません。

(9)　順序数生成子を使用している場合の注意

順序数生成子格納RDエリアに対しては，インナレプリカ機能を適用できません。

(10)　ディクショナリ表のメンテナンスについて

マニュアル「HiRDB システム導入・設計ガイド」の「HiRDBのバージョンアップ」の「バージョンアップ時の留意事項」を参照し，必要に応じてディクショナリ表のメンテナンスをしてください。

3.1.2　インナレプリカ機能を使用する場合のRDエリア数の管理の仕組み

HiRDBでは，一つのHiRDBシステム内で使用できるRDエリア数，HiRDBファイル数，およびインナレプリカグループ数を，システム共通定義（pdsys）で管理します。インナレプリカ機能を使用する場合のHiRDBシステム内のRDエリア数の管理例を次の図に示します。

図3‒2　HiRDBシステム内のRDエリア数の管理例

前述の図に示すように，RDエリア数やHiRDBファイル数には，ユーザデータの格納用RDエリア（ユーザ用RDエリアおよびユーザLOB用RDエリア）のほかに，システムとして必要なRDエリア（マスタディレクトリ用RDエリアなど）の数およびレプリカRDエリアの数も含めます。運用中のHiRDBシステムにHiRDB Staticizer Optionを組み込む場合は，RDエリア数およびHiRDBファイル数の設定値の見直しが必要になります。

3.1.3　レプリカの実体作成前のRDエリアの状態表示

レプリカ運用を開始後，ペアボリュームの分離前はレプリカRDエリアには実体がないため，pddblsコマンドなどでレプリカRDエリアを参照するとエラーになります。エラーを回避するためには，pddblsコマンドを実行する前に，レプリカRDエリアをコマンド閉塞およびクローズ状態にしてください。

3.2　運用の手順

ここでは，運用の手順と3.3節以降で説明する手順の内容の前提について説明します。

3.2.1　手順

レプリカは，次の図に示す手順で作成し，運用します。

図3‒3　レプリカの作成手順

注※1

詳細は，「システム共通定義およびサーバ定義の変更」を参照してください。

注※2

詳細は，「HiRDBファイルシステム領域の世代番号の登録」を参照してください。

注※3

詳細は，「レプリカRDエリアの定義」を参照してください。

注※4

詳細は，「オリジナルRDエリアの静止化（バックアップ閉塞化）」を参照してください。

注※5

詳細は，「ミラーリング機能によるレプリカ実体の作成（ペアボリュームの分離）」を参照してください。

注※6

詳細は，「オリジナルRDエリアの閉塞解除およびレプリカRDエリアのオープン」を参照してください。

注※7

詳細は，「バックアップファイルの取得」を参照してください。

注※8

詳細は，「レプリカRDエリアへのアクセス」を参照してください。

注※9

詳細は，「オンラインでのデータベースの再編成（オンライン再編成）」を参照してください。

注※10

詳細は，「オンラインでのデータ・インデクスの一括作成」を参照してください。

3.2.2　マニュアルの説明に用いる例

このマニュアルの3.3〜3.5節では，次の図に示す例を使ったレプリカの作成の手順を説明します。

図3‒4　レプリカの定義・作成例

HiRDB管理者とは，HiRDBのディレクトリおよびファイルの所有者で，HiRDBの運用コマンドの実行権限を持っています。また，DBA権限を持つユーザをDBA権限保持者といいます。DBA権限保持者ができる操作については，マニュアル「HiRDB システム運用ガイド」を参照してください。

3.3　レプリカの定義

レプリカを定義する前に，オリジナルとレプリカの格納領域を割り当てるボリュームを，ミラーリング機能を使って二重化しておきます（ペアボリュームの生成）。ボリュームの二重化によって，オリジナルとレプリカの内容の矛盾を防ぎます。ハードウェアのミラーリング機能を使用する場合はディスク管理機能で，ソフトウェアのミラーリング機能を使用する場合はミラーファイル管理ソフトウェアで，二重化します。二重化（ペアボリュームの生成）については，使用するミラーリング機能のマニュアルを参照してください。なお，日立ディスクアレイシステムを使用している場合は，まず「日立ディスクアレイシステム使用時の注意事項および操作手順」を参照してください。

ペアボリュームが生成されたあと，次の手順でレプリカの定義を実施します。

システム共通定義およびサーバ定義の変更

HiRDBファイルシステム領域の世代番号の登録

レプリカRDエリアの定義

この節では，これらの定義方法について説明します。

3.3.1　システム共通定義およびサーバ定義の変更

(1)　システム共通定義（pdsys）の変更

システム共通定義（pdsys）の変更は，HiRDB管理者が，HiRDBを正常終了させたあとに実施します。複数のサーバマシンでHiRDBシステムを構成している場合は，すべてのHiRDBサーバマシンでシステム共通定義を変更します。オペランドの詳細については，マニュアル「HiRDB システム定義」を参照してください。

(a)　インナレプリカ関連の定義

インナレプリカ関連の定義として，オペランドの追加とオペランドの指定値の見直しをします。

オペランドの追加

HiRDBのシステム共通定義（pdsys）ファイルに，次のオペランドを追加します。

pd_inner_replica_control

システム内でインナレプリカグループを最大で幾つまで定義・作成できるようにするかを定義します。このオペランドを追加することによって，インナレプリカ機能を使用する宣言となります。

pd_lv_mirror_use

レプリカRDエリアのオープン属性を「SCHEDULE」にするかどうかを指定します。

オペランド指定値の見直し（変更）

システム内で作成できるRDエリア数，HiRDBファイル数を指定する次のオペランドの値を見直す必要があります。

pd_max_rdarea_no

pd_max_file_no

これらのオペランドの指定値を，レプリカRDエリア数を考慮して見直す必要があります。システム用のRDエリアの数，HiRDBファイル数も含めた値を指定します。

次に，これらのオペランドの指定例を示します。

追加・変更するオペランドの指定例

pd_inner_replica_control = 10
pd_lv_mirror_use = N
：
pd_max_rdarea_no = 50
pd_max_file_no = 100
：
pd_indexlock_mode = NONE

なお，オペランド「pd_inner_replica_control」を追加すると，自動的に，排他制御にインデクスキー値を使用するかどうかを設定するオペランド「pd_indexlock_mode」は，インデクスキー値で排他をしない（NONE）設定になります。オペランド「pd_indexlock_mode」の指定値にかかわらず設定されます。

(b)　グローバルバッファの割り当て

定義・作成するレプリカRDエリアへ，グローバルバッファを割り当てる必要があります。グローバルバッファの割り当ては，HiRDBのシステム共通定義（pdsys）ファイル内に，オペランド「pdbuffer」で指定します。次に，このオペランドの指定例を示します。

オペランドの指定例

pdbuffer -a gbufrp01 -r RD01_GN1 -n 50
pdbuffer -a gbufrp02 -r RD02_GN1 -n 100

レプリカRDエリア：RD01_GN1にグローバルバッファ：gbufrp01を，レプリカRDエリア：RD02_GN1にグローバルバッファ：gbufrp02を割り当てます。

(2)　サーバ定義の変更

バックエンドサーバまたはシングルサーバの排他制御で使用する（同時実行トランザクション数の排他資源として使用する）共用メモリサイズ（単位：キロバイト）を見直す必要があります。HiRDB/パラレルサーバの場合は，サーバごとに共用メモリサイズを見直します。「共用メモリサイズの見積もり」で見直した値を，シングルサーバ定義またはバックエンドサーバ定義内のオペランド「pd_lck_pool_size」に指定してください。

変更するオペランドの指定例

pd_lck_pool_size = 2048

シングルサーバ定義またはバックエンドサーバ定義の変更は，HiRDB管理者が，HiRDBを正常終了させたあとに実施します。複数のサーバマシンでHiRDBシステムを構成している場合は，すべてのHiRDBサーバマシンでバックエンドサーバ定義を変更します。オペランドの詳細については，マニュアル「HiRDB システム定義」を参照してください。

3.3.2　HiRDBファイルシステム領域の世代番号の登録

HiRDBのpdmodコマンドでcreate generation文を実行して，HiRDBファイルシステム領域のコピーに対して付ける世代番号をHiRDB（データディクショナリ用RDエリア）へ登録します。世代番号には，1〜10の任意の数字を指定できます。次に，create generation文の指定例およびpdmodコマンドの実行例を示します。

create generation文の指定例（create generation文のファイル名：/usr/crgen01）

// レプリカRDエリアRD01_GN1およびRD02_GN1用領域の世代番号の指定
create generation for HiRDB file system area "/HiRDB_P/area01_GN1"
              // HiRDBファイルシステム領域のコピー先の領域名を指定
   server name bes1               // 対象とするサーバ名を指定
   generation number 1            // 割り当てる世代番号：1を指定
   reproduce "/HiRDB_P/area01";
              // コピー元のHiRDBファイルシステム領域名を指定

pdmodコマンドの実行例

pdmod -a /usr/crgen01

/usr/crgen01ファイルに記述された上記に示すcreate generation文を実行します。

pdmodコマンドは，HiRDB管理者が，HiRDBの稼働中に実行します。複数のサーバマシンでHiRDBシステムを構成している場合，システムマネジャがあるサーバマシンで実行します。pdmodコマンドについては，マニュアル「HiRDB コマンドリファレンス」を参照してください。

3.3.3　レプリカRDエリアの定義

HiRDBのpdmodコマンドでreplicate rdarea文を実行して，レプリカRDエリアを定義します。定義内容は，HiRDB（マスタディレクトリ用RDエリア，データディクショナリ用RDエリア）へ登録されます。ここでは，主に次の内容を定義します。

レプリカRDエリアの名称

レプリカ作成元になるオリジナルRDエリアの名称

レプリカRDエリアに割り当てる世代番号

レプリカRDエリアに割り当てる世代番号には，「HiRDBファイルシステム領域の世代番号の登録」で登録した番号を指定します。レプリカRDエリアにグローバルバッファを割り当てるときには，「グローバルバッファの割り当て」で定義した値を指定します。次に，replicate rdarea文の指定例およびpdmodコマンドの実行例を示します。

replicate rdarea文の指定例（replicate rdarea文のファイル名：/usr/rep01）

// レプリカRDエリアRD01_GN1用の指定
replicate rdarea RD01_GN1 globalbuffer gbufrp01
                      // レプリカRDエリア名をRD01_GN1とし，
                      // それに対してグローバルバッファgbufrp01
                      // （「グローバルバッファの割り当て」で指定した値）を割り当てる指定
                      // globalbufferオペランドには，
                      // 存在するグローバルバッファを指定する
                      // globalbufferオペランドを省略した場合は，
                      // オリジナルRDエリアに割り当てられている
                      // グローバルバッファが割り当てられる
   reproduce RD01
                      // オリジナルRDエリアRD01を指定
   generation number 1;
                      // レプリカRDエリアRD01_GN1に割り当てる
                      // 世代番号：1（「HiRDBファイルシステム領域の世代番号の登録」で指定した値）を指定

// レプリカRDエリアRD02_GN1用の指定
replicate rdarea RD02_GN1 globalbuffer gbufrp02
   reproduce RD02
   generation number 1;

pdmodコマンドの実行例

pdmod -a /usr/rep01

/usr/rep01ファイルに記述された上記に示すreplicate rdarea文を実行します。

pdmodコマンドは，HiRDB管理者が，HiRDBの稼働中に実行します。複数のサーバマシンでHiRDBシステムを構成している場合，システムマネジャがあるサーバマシンで実行します。pdmodコマンドについては，マニュアル「HiRDB コマンドリファレンス」を参照してください。

3.4　レプリカの実体の作成（ペアボリュームの分離）

「レプリカの定義」の操作の完了後，レプリカの実体を作成し，物理的にレプリカRDエリアへアクセスできるようにします。レプリカの実体の作成とは，あらかじめディスク管理機能やOSのLV（Logical Volume）管理機能を使用して二重化（ペアボリューム化）したボリュームを分離することを指しています。ペアボリュームを分離することによって，レプリカRDエリアが格納されているボリュームへ物理的にアクセスできるようになります。

レプリカの実体は，レプリカRDエリアを利用する直前に作成します。レプリカの実体を作成するには，次の操作を実行します。

オリジナルRDエリアの静止化（バックアップ閉塞化）

ミラーリング機能によるレプリカ実体の作成

オリジナルRDエリアの閉塞解除およびレプリカRDエリアのオープン

バックアップファイルの取得

この節では，これらの操作方法について説明します。

3.4.1　オリジナルRDエリアの静止化（バックアップ閉塞化）

ミラーリング機能を使用する前には，複製元のオリジナルRDエリアをバックアップ閉塞状態にする必要があります。閉塞状態にすることで，閉塞状態に入る直前のトランザクションの完結を保証し，整合性を確保した状態でレプリカを作成することができます。バックアップ閉塞化は，HiRDBのpdholdコマンドを使用して設定します。pdholdコマンドは，HiRDB管理者が，HiRDBの稼働中に実行します。複数のサーバマシンでHiRDBシステムを構成している場合，システムマネジャがあるサーバマシンで実行します。pdholdコマンドについては，マニュアル「HiRDB コマンドリファレンス」を参照してください。次に，pdholdコマンド実行例を示します。

pdholdコマンドの実行例

pdhold -r RD01,RD02 -b または pdhold -r RD01,RD02 -q 0 -b

-bオプションを指定し，オリジナルRDエリアRD01とRD02のトランザクションを完結させ，更新不可・参照だけができる状態（参照可能バックアップ閉塞状態）に設定します。

pdholdコマンドでRDエリア名を指定するとき，-qオプションを使って指定する方法もあります。-rオプションにオリジナルRDエリア名を指定し，-qオプションに世代番号を指定すると，インナレプリカグループ内の特定の世代番号のRDエリアを対象にすることができます。

3.4.2　ミラーリング機能によるレプリカ実体の作成（ペアボリュームの分離）

レプリカRDエリアの実体は，ミラーリング機能を実現するハードウェアまたはソフトウェアを使って作成（ペアボリュームを分離）します。

(1)　ハードウェアを使用する場合

ディスク管理機能によって，二重化されたボリューム（ペアボリューム）を分離します。ミラーリング機能を実現するハードウェアには，例えば，日立ディスクアレイシステムがあります。日立ディスクアレイシステムを使用する場合は，日立ディスクアレイシステムのMRCF（Multiple RAID Coupling Feature）機能，またはShadowImage機能で作成した二重化ディスクの片系を切り離します。二重化ディスクの切り離し（ペアボリュームの分離）については，使用するミラーリング機能のマニュアルを参照してください。なお，日立ディスクアレイシステムを使用している場合は，まず「日立ディスクアレイシステム使用時の注意事項および操作手順」を参照してください。

(2)　ソフトウェアを使用する場合

OSのLV（Logical Volume）管理を使用したミラーファイル管理ソフトウェアで二重化したファイル（ペアボリュームのファイル）の片系を分離します。二重化したファイルの切り離し（ペアボリュームの分離）については，使用するミラーリング機能のマニュアルを参照してください。

(3)　RDエリアのオープン属性について

RDエリアのオープン後にファイルの実体をOSから切り離すためには，RDエリアを運用コマンドでコマンド閉塞かつクローズにします。また，RDエリアのオープン属性がSCHEDULE以外の場合，pdpfreshコマンドでサーバプロセスのリフレッシュもする必要があります。HiRDBの起動中にペアボリュームやミラーファイルを再統合する場合には，次のどれかの運用をしてください。

インナレプリカグループ内のすべてのRDエリアのオープン属性を「SCHEDULE」にする

この場合，トランザクションの開始および終了のタイミングでRDエリアのオープン・クローズを実行するため，システムの負荷が大きくなることに注意する必要があります。

インナレプリカグループ内のレプリカRDエリアのオープン属性を「SCHEDULE」にする

レプリカRDエリアのオープン・クローズが，トランザクションの開始および終了のタイミングで実行されるため，システムの負荷が大きくなりますが，オリジナルRDエリアの処理性能には影響しません。ただし，レプリカRDエリアのファイル実体（副ボリューム）を，オリジナルRDエリアのファイル実体（正ボリューム）にコピーするときには，オリジナルRDエリアのファイル実体をOSから切り離す必要があります。オリジナルRDエリアのファイル実体をOSから切り離すには，pdpfreshコマンドを使用してください。

pdpfreshコマンドを使用する

pdpfreshコマンドの使用上の注意に関しては，マニュアル「HiRDB コマンドリファレンス」を参照してください。

以降，RDエリアのオープン属性に関する設定，属性値の変更方法，および属性値のパターンについて説明します。

(a)　RDエリアのオープン属性に関する設定

システム共通定義（pdsys）ファイルに指定する次の二つのオペランドの追加または見直しが必要です。

pd_lv_mirror_use

レプリカRDエリアのオープン属性を「SCHEDULE」にする場合，pd_lv_mirror_use = Yにします（「インナレプリカ関連の定義」を参照してください）。

これを指定すると，ほかのオペランドの指定値に関係なく，レプリカRDエリアのオープン属性は「SCHEDULE」になります。

pd_rdarea_open_attribute_use

RDエリアのオープン属性のDEFER属性またはSCHEDULE属性を使用するかどうかを指定します。オペランド「pd_lv_mirror_use」の指定値との組み合わせによって，実際に設定される属性値が異なります。「RDエリアのオープン属性のパターン」を参照して検討してください。

(b)　RDエリアのオープン属性の変更方法

RDエリアのオープン属性は，次のどちらかの方法で変更できます。変更した属性が有効になるのは，次回のHiRDB起動時からです。オープン属性は，「RDエリアのオープン属性のパターン」で示すパターンを参考に検討してください。

HiRDBのpdmodコマンドでalter rdarea文を実行

RDエリアのオープン属性は，HiRDBのpdmodコマンドでalter rdarea文を実行すると変更できます。ただし，define copy文で構成情報を複写した場合，複写元RDエリアと同じオープン属性になるため，必要に応じてalter rdarea文を再実行してください。

オペランド「pd_rdarea_open_attribute」にオープン属性を指定

システム共通定義（pdsys）ファイルに，オペランド「pd_rdarea_open_attribute」を指定します。オペランドには，「SCHEDULE」などのオープン属性を指定します。この指定は，オープン属性が定義されていないRDエリアに対して適用されます。

(c)　RDエリアのオープン属性のパターン

RDエリアに実際に設定されるオープン属性は，次のオペランドや制御文の指定値の組み合わせによって異なります。

pd_rdarea_open_attribute_use

pd_lv_mirror_use

alter rdarea文またはpd_rdarea_open_attribute

オペランドや制御文の指定値の組み合わせと，RDエリアに設定されるオープン属性のパターンを次の表に示します。例えば，pd_rdarea_open_attribute_use=Y，pd_lv_mirror_use=Y，alter rdarea文またはpd_rdarea_open_attributeでINITIALを指定すると，オリジナルRDエリアはINITIALのオープン属性になり，レプリカRDエリアはSCHEDULEになります。alter rdarea文またはpd_rdarea_open_attributeでINITIALを指定したにもかかわらず，SCHEDULEになります。このように，指定した値と実際に設定される値は，オペランドや制御文の指定値の組み合わせによって異なります。

表3‒3　オペランドや制御文の指定値の組み合わせによるオープン属性のパターン

pd

_rdarea

_open

_attribute

_useの

指定値

pd_lv

_mirror

_useの

指定値

RDエリアの種類

alter rdarea文または

pd_rdarea_open_attributeでの

オープン属性の指定値

INITIAL

または

指定なし

DEFER

SCHEDULE

Y

Y

通常のRDエリアまたはオリジナルRDエリア

INITIAL

DEFER※

SCHEDULE※

レプリカRDエリア

SCHEDULE

SCHEDULE

SCHEDULE

N

通常のRDエリアまたは

オリジナルRDエリア

INITIAL

DEFER※

SCHEDULE※

レプリカRDエリア

INITIAL

DEFER※

SCHEDULE※

N

Y

通常のRDエリアまたは

オリジナルRDエリア

INITIAL

INITIAL

INITIAL

レプリカRDエリア

SCHEDULE

SCHEDULE

SCHEDULE

N

通常のRDエリアまたは

オリジナルRDエリア

INITIAL

INITIAL

INITIAL

レプリカRDエリア

INITIAL

INITIAL

INITIAL

注※　RDエリア追加直後のRDエリアのオープン属性は「INITIAL」となります。指定したオープン属性値は，次回のHiRDB起動後から有効になります。

3.4.3　オリジナルRDエリアの閉塞解除およびレプリカRDエリアのオープン

作成したレプリカを運用する前に，「オリジナルRDエリアの静止化（バックアップ閉塞化）」で設定した閉塞状態を解除する必要があります。また，作成したレプリカRDエリアをオープン状態にし，運用できるように設定する必要があります。閉塞解除およびオープン化は，pdrelsコマンドを使用して設定します。pdrelsコマンドは，HiRDB管理者が，HiRDBの稼働中に実行します。複数のサーバマシンでHiRDBシステムを構成している場合，システムマネジャがあるサーバマシンで実行します。pdrelsコマンドについては，マニュアル「HiRDB コマンドリファレンス」を参照してください。次に，pdrelsコマンドの実行例を示します。

pdrelsコマンドの実行例

pdrels -r RD01,RD02,RD01_GN1,RD02_GN1 -o

オリジナルRDエリアRD01とRD02，レプリカRDエリアRD01_GN1とRD02_GN1の閉塞を解除します。また，-oオプションを指定することで，閉塞解除したRDエリアをオープン状態にします。

3.4.4　バックアップファイルの取得

「オリジナルRDエリアの閉塞解除およびレプリカRDエリアのオープン」でレプリカRDエリアの作成は完了しましたが，運用に入る前にレプリカRDエリアのバックアップファイルを取得しておくことをお勧めします。バックアップファイルは，pdcopyコマンドを使って取得します。レプリカRDエリアを定義・作成すると，マスタディレクトリ用RDエリアとデータディクショナリ用RDエリアの内容も更新されるため，ここでは，マスタディレクトリ用RDエリアとデータディクショナリ用RDエリアのバックアップファイルも取得します。次に，pdcopyコマンド実行例を示します。

pdcopyコマンドの実行例

pdcopy -m /hirdb/rdarea/rdmast/rdmast01
       -M r
       -b /usr/hirdb/pdcopy/backup01
       -ｒ RDMSTR01,RDDIC01,RD01,RD02
       -q 1
       -p /usr/hirdb/pdcopy/list01

-mオプションには，マスタディレクトリ用RDエリアの先頭のHiRDBファイル名を指定しています。-Mオプションには，バックアップ取得モードとして，「バックアップ取得時にバックアップ取得対象のRDエリアを参照できるが，更新はできないモード（ｒ）」を指定します。

-rオプションには，バックアップ対象のRDエリア名を指定します。ここでは，マスタディレクトリ用RDエリア，データディクショナリ用RDエリアおよびレプリカRDエリアのバックアップの取得を指定します。レプリカRDエリアの指定には，-rオプションと-qオプションを使用します。-rオプションにはオリジナルRDエリア名RD01，RD02を指定し，-qオプションで取得対象の世代番号1を指定します。

バックアップ先のファイル名は，-bオプションに指定します。-pオプションには，pdcopyコマンドの処理結果リストの出力先を指定しています。

pdcopyコマンドは，HiRDB管理者が，HiRDBの稼働中に実行します。複数のサーバマシンでHiRDBシステムを構成している場合，システムマネジャがあるサーバマシンで実行します。pdcopyコマンドについては，マニュアル「HiRDB コマンドリファレンス」を参照してください。

バックアップの取得方法については，マニュアル「HiRDB システム運用ガイド」を参照してください。

また，pdcopyコマンドの実行前に，pdlogswap -d sys -wコマンドを実行してシステムログファイルをスワップしてください。

3.5　適用目的ごとの運用方法

ここでは，レプリカRDエリアへのアクセス方法や運用例，運用で使用するデータベースの閉塞モードについて説明します。

3.5.1　レプリカRDエリアへのアクセス

3.3節および3.4節の操作の完了後，レプリカRDエリアの運用を開始できます。このとき，カレントRDエリアはオリジナルRDエリアです。HiRDBクライアント環境定義，UAP環境定義，または運用コマンドで，アクセスしたいRDエリアを指定しなければ，アプリケーションや運用コマンドはカレントであるオリジナルRDエリアへアクセスします。カレントRDエリアではない，特定のRDエリアへアクセスする場合は，HiRDBクライアント環境定義，UAP環境定義，または運用コマンドでアクセスするRDエリアを指定する必要があります。ここでは，指定方法について説明します。

(1)　アプリケーションからのアクセス

アプリケーションから，インナレプリカグループ内の特定のRDエリアへアクセスする場合は，アプリケーション動作環境にHiRDBクライアント環境定義またはUAP環境定義の「PDDBACCS」を追加する必要があります。PDDBACCSにはアクセスするRDエリアの世代番号を指定します。

アクセスするRDエリアの指定（「PDDBACCS」の設定）

PDDBACCSは，ログインシェル環境に合わせて次のどちらかのファイルに設定します。

Bourneシェル環境のとき：$HOME/.profile

Cシェル環境のとき：$HOME/.cshrcまたは$HOME/.login

設定例

PDDBACCS = 3           //アクセスする世代番号を指定

ここでは，世代番号：3のレプリカRDエリアへアクセスする指定をしています。

設定時の注意

具体的な設定方法については，マニュアル「HiRDB システム定義」または「HiRDB UAP開発ガイド」を参照してください。ここでは，設定前に知っておくべきことについて説明します。

PDDBACCSに世代番号の指定がある場合には，指定された世代番号のRDエリアへアクセスします。

PDDBACCSの指定がない場合は，カレントRDエリアへアクセスします。

指定された世代番号のRDエリアが存在しない場合は，カレントRDエリアへアクセスします。

アクセス対象の表に関連するすべてのRDエリアの，世代番号が同じである必要があります。世代番号が一致しない場合は，HiRDBクライアントから発行したSQLの実行エラーになります。ただし，表が複数のRDエリアに分割している場合は，それぞれの世代番号をチェックできません。したがって，分割しているそれぞれのRDエリアの世代番号が一致していなくてもSQLの実行は成功してしまいますが，意図しない世代番号のRDエリアを更新することにならないように，世代番号はそろえておいてください。

アクセス対象の表に関連するすべてのRDエリアとは，「レプリカを作成するときのまとまり」で示すまとまりのことを指します。

HiRDBクライアント環境定義またはUAP環境定義に「PDDBACCS」の指定を追加しない場合，アプリケーションはカレントRDエリアへアクセスします。通常，カレントRDエリアはオリジナルRDエリアに設定されています。この設定は，変更できます。カレント設定の変更方法については，「カレントRDエリアの変更」を参照してください。

(2)　HiRDBの運用コマンドからのアクセス

HiRDBの運用コマンド（ユティリティ）をインナレプリカグループ内のカレント以外の特定のRDエリアに対して実行する場合，-qオプションにアクセスするRDエリアの世代番号を指定してユティリティを実行します。-qオプションを指定することによって，カレント以外の特定のRDエリアを対象にした処理ができます。-qオプションの使い方や-qオプションが使えるコマンドについては，「インナレプリカグループ内のRDエリアに対して実行できるコマンドの一覧」を参照してください。

3.5.2　オンラインでのデータベースの再編成（オンライン再編成）

オンライン再編成の例を示します。オンライン再編成では，データベースを再編成している間，オンラインで参照業務ができます。更新業務はできません。再編成の間に更新業務もできる更新可能なオンライン再編成については，「更新可能なオンライン再編成の運用方法」を参照してください。

ここでは，カレントRDエリアをレプリカRDエリアに変更したあと，オリジナルRDエリアを使ったデータベースを再編成します。例では，オリジナルRDエリアをオンライン業務に使用し，再編成実行前のカレントRDエリアがオリジナルRDエリアであることを想定しています。この状態のときに，RD01のRDエリアに格納されている表TAB1を再編成します。

再編成を実施するには，レプリカを定義したあと，次の図に示す操作を実行します。レプリカの定義方法については，「レプリカの定義」を参照してください。

図3‒5　オンラインでのデータベースの再編成（オリジナルRDエリア内の表を再編成する場合）の手順

注※1

詳細は，「レプリカの作成（レプリカRDエリアへアクセスするためのペアボリュームの分離）」を参照してください。

注※2

詳細は，「カレントRDエリアをレプリカRDエリアに変更」を参照してください。

注※3

詳細は，「データベースの再編成」を参照してください。

注※4

詳細は，「カレントRDエリアをオリジナルRDエリアに変更」を参照してください。

手順1では，「レプリカの実体の作成（ペアボリュームの分離）」で示す操作とほとんど同じですが，閉塞，オープンする対象のRDエリアが「レプリカの実体の作成（ペアボリュームの分離）」と異なります。ここでは，「レプリカの作成（レプリカRDエリアへアクセスするためのペアボリュームの分離）」で示す手順を実施します。

以降，各操作について説明します。なお，各操作の終了後，実行結果が正しいかどうかを確認することをお勧めします。各操作で使用するコマンドの実行結果の確認方法については，マニュアル「HiRDB コマンドリファレンス」を参照してください。

(1)　レプリカの作成（レプリカRDエリアへアクセスするためのペアボリュームの分離）

ここでは，表の再編成を実行するレプリカRDエリアへ物理的にアクセスできるようにするため，ペアボリュームを分離します。

(a)　オリジナルRDエリアの静止化（バックアップ閉塞化）

レプリカの実体を作成するために，HiRDBのpdholdコマンドでオリジナルRDエリアをバックアップ閉塞にします。pdholdコマンドは，HiRDB管理者が，HiRDBの稼働中に実行します。複数のサーバマシンでHiRDBシステムを構成している場合，システムマネジャがあるサーバマシンで実行します。pdholdコマンドについては，マニュアル「HiRDB コマンドリファレンス」を参照してください。

pdholdコマンドの実行例

pdhold -ｒ RD01,RD02 -q 0 -bまたは pdhold -r RD01,RD02 -b

オリジナルRDエリアRD01とRD02を，-bオプションで指定する「トランザクションを完結させ，更新不可かつ参照だけができる状態（参照可能バックアップ閉塞状態）」かつ「更新トランザクションをエラーにする状態」に設定します。pdholdコマンドでは，RDエリア名の指定に-qオプションを使用する場合としない場合のどちらもできます。

(b)　ミラーリング機能によるレプリカ実体の作成（ペアボリュームの分離）

二重化されていたレプリカRDエリアとオリジナルRDエリアのボリューム（ペアボリューム）を分離し，レプリカRDエリアへ物理的にアクセスできるようにします。分離には，ハードウェアまたはソフトウェアのミラーリング機能を使用します。注意事項などについては，「ミラーリング機能によるレプリカ実体の作成（ペアボリュームの分離）」を参照してください。

(c)　レプリカRDエリアの閉塞解除およびオープン

この例では，再編成を実施するレプリカRDエリアだけを閉塞解除し，オープンします。オリジナルRDエリアの閉塞解除は，カレントRDエリアをレプリカRDエリアに変更したあとに実施します。

閉塞解除およびオープンには，HiRDBのpdrelsコマンドを使用します。pdrelsコマンドは，HiRDB管理者が，HiRDBの稼働中に実行します。複数のサーバマシンでHiRDBシステムを構成している場合，システムマネジャがあるサーバマシンで実行します。pdrelsコマンドについては，マニュアル「HiRDB コマンドリファレンス」を参照してください。次に，pdrelsコマンド実行例を示します。

pdrelsコマンドの実行例

pdrels -r RD01,RD02 -q 1 -o

レプリカRDエリアRD01_GN1とRD02_GN2の閉塞状態を解除し，オープンします。ここでは，レプリカRDエリアRD01_GN1とRD02_GN2の指定に-qオプションを使用しています。-rオプションにオリジナルRDエリア名を，-qオプションに世代番号1を指定することで，レプリカRDエリアRD01_GN1とRD02_GN2をpdrelsコマンドの処理対象にすることができます。

(2)　カレントRDエリアをレプリカRDエリアに変更

図「オンラインでのデータベースの再編成（オリジナルRDエリア内の表を再編成する場合）の手順」の手順3で示す再編成を実行する前に，カレントRDエリアをレプリカRDエリアに変更します。

(a)　レプリカRDエリアの参照許可閉塞

カレントRDエリアをレプリカRDエリアに変更して運用するために，レプリカRDエリアに対して参照だけができる閉塞状態（参照許可閉塞）を設定します。再編成中に更新が発生しないように，参照許可閉塞状態にしておきます。参照許可閉塞は，HiRDBのpdholdコマンドで設定します。pdholdコマンドは，HiRDB管理者が，HiRDBの稼働中に実行します。複数のサーバマシンでHiRDBシステムを構築している場合，システムマネジャがあるサーバマシンで実行します。pdholdコマンドについては，マニュアル「HiRDB コマンドリファレンス」を参照してください。

pdholdコマンドの実行例

pdhold -r RD01,RD02 -q 1 -i

参照許可閉塞は，-iオプションで指定しています。

(b)　カレントRDエリアの変更

カレントRDエリアをレプリカRDエリアに変更します。カレントRDエリアの変更には，HiRDBのpddbchgコマンドを使用します。

pddbchgコマンドの実行例

pddbchg -r RD01,RD02 -q 1

カレントRDエリアを世代番号1のレプリカRDエリアに変更するために，-rオプションにオリジナルRDエリア名RD01，RD02を指定し，-qオプションに新しくカレントとなるRDエリアの世代番号1を指定します。

(c)　オリジナルRDエリアの閉塞解除

図「オンラインでのデータベースの再編成（オリジナルRDエリア内の表を再編成する場合）の手順」の手順1で実行したオリジナルRDエリアの静止化（バックアップ閉塞）をpdrelsコマンドで解除します。

pdrelsコマンドの実行例

pdrels -r RD01,RD02 -q 0

-rオプションに閉塞を解除するオリジナルRDエリアの名称RD01，RD02を指定し，-qオプションにオリジナルRDエリアの世代番号0を指定します。

(3)　データベースの再編成

(a)　オリジナルRDエリア内の表の再編成

HiRDBのpdrorgコマンドでunload文を実行して，オリジナルRDエリア内のデータをアンロードします。ここでは，indexおよびsort文を実行して，レプリカRDエリア内のインデクス情報も出力します。次に，unload，indexおよびsort文の指定例，pdrorgコマンドの実行例を示します。

unload，indexおよびsort文の指定例

unload，indexおよびsort文の制御ファイル名：/usr/rorg01の内容を次に示します。

・HiRDB/パラレルサーバの場合

unload bes1:/tmp/unldfile2
index IDX1 RD02 /tmp/index_inf2
sort bes1 /tmp/sortwork/,512

・HiRDB/シングルサーバの場合

unload /tmp/unldfile2
index IDX1 RD02 /tmp/index_inf2
sort /tmp/sortwork/,512

unload文に，アンロード先のファイル名/tmp/unldfile2を指定します。index文には，インデクス識別子IDX1，それを格納しているRDエリアRD02およびインデクス情報ファイル名/tmp/index_inf2を指定します。ここでは，RDエリア名には，オリジナルRDエリア名を指定します。sort文には，ソート用ワークディレクトリ名/tmp/sortwork/とソート用バッファサイズ512を指定します。

HiRDB/パラレルサーバの場合には，インデクスが格納されているサーバ名bes1をunload文およびsort文に指定します。

pdrorgコマンドの実行例

pdrorg -k rorg -t TAB1 -r RD01 -q 0 -l n /usr/rorg01

RDエリアRD01に格納されている表TAB1を再編成します。ここでは，オリジナルRDエリア（RD01）に格納されているTAB1に対して，/usr/rorg01ファイルに記述された上記に示すunload，indexおよびsort文を実行し，再編成します。世代番号は-qオプションに指定されています。-lオプションでは，ログレス実行モード（n）を指定しています。

pdrorgコマンドでの表の再編成は，DBA権限保持者または表の所有者がHiRDBの稼働中に実行します。複数のサーバマシンでHiRDBシステムを構成している場合，システムマネジャがあるサーバマシンで実行します。pdrorgコマンドについては，マニュアル「HiRDB コマンドリファレンス」を参照してください。

(b)　バックアップファイルの取得

再編成を実施したオリジナルRDエリアのバックアップファイルを取得します。バックアップファイルは，pdcopyコマンドで取得します。

pdcopyコマンドの実行例

pdcopy -m /hirdb/rdarea/rdmast/rdmast01
       -M r
       -b /usr/hirdb/pdcopy/backup02
       -r RD01,RD02
       -q 0
       -p /usr/hirdb/pdcopy/list02

-mオプションには，マスタディレクトリ用RDエリアの先頭のHiRDBファイル名を指定しています。-Mオプションには，バックアップ取得モードとして，「バックアップ取得時にバックアップ取得対象のRDエリアを参照できるが，更新はできないモード（ｒ）」を指定します。

-rオプションには，バックアップ対象のRDエリア名を指定します。ここでは，再編成を実施したレプリカRDエリアのバックアップの取得を指定します。レプリカRDエリアの指定には，-rオプションと-qオプションを使用します。-rオプションにはオリジナルRDエリア名RD01，RD02を指定し，-qオプションに取得対象の世代番号0を指定します。

バックアップ先のファイル名は，-bオプションに指定します。-pオプションには，pdcopyコマンドの処理結果リストの出力先を指定しています。

pdcopyコマンドは，HiRDB管理者が，HiRDBの稼働中に実行します。複数のサーバマシンでHiRDBシステムを構成している場合，システムマネジャがあるサーバマシンで実行します。pdcopyコマンドについては，マニュアル「HiRDB コマンドリファレンス」を参照してください。

バックアップの取得方法については，マニュアル「HiRDB システム運用ガイド」を参照してください。

また，pdcopyコマンドの実行前に，pdlogswap -d sys -wコマンドを実行してシステムログファイルをスワップしてください。

(4)　カレントRDエリアをオリジナルRDエリアに変更

再編成が完了したオリジナルRDエリアを，カレントRDエリアに戻して運用を再開します。

(a)　カレントRDエリアの変更

カレントRDエリアをオリジナルRDエリアに戻します。カレントRDエリアの変更には，HiRDBのpddbchgコマンドを使用します。

pddbchgコマンドの実行例

pddbchg -r RD01,RD02 -q 0

-rオプションにオリジナルRDエリア名RD01，RD02を指定し，-qオプションに新しくカレントとなるRDエリアの世代番号0を指定します。

(b)　レプリカRDエリアの閉塞かつクローズ化

オリジナルRDエリアで運用を再開するため，運用に必要のないレプリカRDエリアを閉塞かつクローズ状態にします。閉塞かつクローズ状態には，HiRDBのpdholdコマンドで設定します。

pdholdコマンドの実行例

pdhold -r RD01,RD02 -q 1 -c

-rオプションで閉塞するRDエリアのオリジナル名称RD01，RD02を指定し，-qオプションで閉塞するRDエリアの世代番号 1を指定します。

(5)　ペアボリュームの生成

再編成後のオリジナルRDエリアで運用が再開できたら，オリジナルRDエリアを正ファイルとしてレプリカRDエリアとのペアボリュームを生成しておきます。ペアボリュームの生成は，ミラーリング機能を使って実現します。

3.5.3　オンラインでのデータ・インデクスの一括作成

オンライン業務中にデータ・インデクスを一括作成する方法は，「オンラインでのデータベースの再編成（オンライン再編成）」で示す手順とほとんど同じです。再編成を実行する手順のところをデータ・インデクスを一括作成する手順に入れ替えるだけです。ここでは，オリジナルRDエリアでデータ・インデクスの一括作成する操作について説明します。

(1)　オリジナルRDエリアでのデータ・インデクスの一括作成

HiRDBのpdloadコマンドで，RDエリアに対してデータ・インデクスを一括作成し，RDエリア内の既存のデータ・インデクスを更新することができます。データ・インデクスを一括作成するときのコマンド実行例を次に示します。

source，index文の指定例（source，index文の制御ファイル名：/usr/load01）

source RD01 /tmp/ldfile1
index RD01 IDX1 /tmp/index_inf3

source文に，入力データファイル名として/tmp/ldfile1を指定します。index文には，インデクス識別子IDX1とインデクス情報ファイル名/tmp/index_inf3を指定します。

pdloadコマンドの実行例

pdload -q 0 TAB1 /usr/load01

TAB1に対して，/usr/load01ファイルに記述された上記に示すsourceおよびindex文を実行し，データとインデクスを一括作成し，既存のデータに追加します。

処理対象のRDエリアをオリジナルRDエリアにするために，pdloadコマンドのオプションに"-q 0"を指定します。

pdloadコマンドは，表の所有者がHiRDBの稼働中に実行します。複数のサーバマシンでHiRDBシステムを構成している場合，システムマネジャがあるサーバマシンで実行します。pdloadコマンドについては，マニュアル「HiRDB コマンドリファレンス」を参照してください。

3.5.4　適用目的とRDエリアの閉塞状態の種類

RDエリアのメンテナンス（再編成やデータ，インデクスの一括作成など）やバックアップ，障害回復などの理由のために，運用中のRDエリアへのアクセスを制限する必要があるときには，RDエリアを閉塞状態に設定します。インナレプリカ機能を使用するときには，主に，次の表に示す閉塞状態を目的に応じて使用します。

表3‒4　インナレプリカ機能を使用する場合に主に使用する閉塞状態の種類

項番

閉塞状態の種類

設定するコマンド

閉塞モードを指定する

オプション

1

静止化（バックアップ閉塞）

pdhold

-b

2

同期化閉塞

pdhold

-s

3

閉塞かつクローズ

pdhold

-c

ここでは，それぞれの閉塞状態の違いについて説明します。

(1)　静止化（バックアップ閉塞）−pdholdコマンドの-bオプション

静止化直前までに蓄積されたバッファ（メモリ）内の更新情報を強制的にRDエリアへ書き込み，静止化直前のトランザクションを完結させ，整合性を確保する機能です。静止化中は，参照目的のアクセスだけができるなど，アクセスに制限ができます。この機能は，主に，次の場合に使用します。

使用目的：

レプリカの実体の作成（ペアボリュームの分離）のとき

この機能を使うことで，オンライン業務を運用中でも，レプリカの作成，レプリカを使った再編成やバックアップの取得ができます。

(2)　同期化閉塞−pdholdコマンドの-sオプション

対象RDエリアを操作するトランザクションの終了を待ち，対象RDエリアのバッファ情報を破棄して閉塞解除コマンドまで後続トランザクションを待たせます。静止化（バックアップ閉塞）と違い，同期化閉塞中には，RDエリアへのアクセスを許可し，待ち状態とすることができます。待たされていたアクセスは，閉塞が解除されるとすぐに処理されます。この機能は，主に，次の場合に使用します。

使用目的：

データベースの再編成，データ・インデクスの一括作成などを実施したRDエリアのデータを，オンラインサービスに使うRDエリアへコピー（ペアボリュームの生成）するとき

この機能を使うことで，コピー先となるRDエリアの業務を停止する必要がありません。

ただし，同期化閉塞を設定する時間が長くなると，それだけアクセス待ちのタイムアウトが頻繁に発生するおそれがあります。このことを考慮して適用する必要があります。

また，同期化閉塞の解除後すぐに処理が開始されるため，解除後のデータも整合性を確保するためには，同期化閉塞を設定するRDエリアにかかわるすべてのRDエリアにも同時に同期化閉塞を設定する必要があります。一度のpdholdコマンドですべてのRDエリアに設定する必要があります。

pdhold -sオプションを使用すると，対象RDエリアの更新バッファがデータベースに書き込まれないで破棄されるため，同期化閉塞後はRDエリアの内容は不整合になります。RDエリア内には障害閉塞履歴情報を設定します。このため，閉塞解除前に整合性のあるデータでRDエリアの内容を書き換えなければなりません。

(3)　閉塞かつクローズ−pdholdコマンドの-cオプション

一切のアクセスを制限するために，RDエリアを閉塞し，かつ，クローズ状態にする機能です。

使用目的：

参照，更新などの一切のアクセスができない状態に設定するとき

この機能を使うことで，ボリューム操作（pairresyncなど）によって，RDエリアにアクセスできないようになります。

3.6　インナレプリカグループ内のRDエリアの運用

ここでは，インナレプリカ機能を使用したRDエリアの状態表示やRDエリアの構成変更などの運用について説明します。

3.6.1　データベースの状態表示

次の表に示すHiRDBのコマンドでレプリカRDエリアを含めたHiRDBの状態が確認できます。

表3‒5　データベースの状態を表示するコマンド

項番

コマンド名

機能

1

pddbls

RDエリアの状態を確認する

2

pddbst

データベースの状態解析をする

(1)　RDエリアの状態表示

pddblsコマンドに-oオプションを指定すると，指定されたRDエリアのインナレプリカグループ内の状態を表示できます。pddblsコマンドは，HiRDB管理者が，HiRDBの稼働中に実行します。複数のサーバマシンでHiRDBシステムを構成している場合，システムマネジャがあるサーバマシンで実行します。pddblsコマンドについては，マニュアル「HiRDB コマンドリファレンス」を参照してください。

pddblsコマンドの実行例

pddbls -r RD01,RD02 -o

オリジナルRDエリアRD01とRD02を含むインナレプリカグループ内のRDエリアの状態を表示します。表示結果の例を次に示します。

pddblsコマンドの実行結果の例

(2)　データベースの状態解析

pddbstコマンドでは，RDエリアの格納状態を物理的および論理的に解析できます。インナレプリカ機能を使用しているRDエリアを解析した場合には，オリジナルRDエリア名，解析対象RDエリアの世代番号，インナレプリカグループ内のレプリカRDエリア数が表示されます。pddbstコマンドは，HiRDB管理者が，HiRDBの稼働中に実行します。複数のサーバマシンでHiRDBシステムを構成している場合，システムマネジャがあるサーバマシンで実行します。pddbstコマンドについては，マニュアル「HiRDB コマンドリファレンス」を参照してください。

pddbstコマンドの実行例

pddbst -r RD01 -q 1

レプリカRDエリアRD01_GN1の状態を表示します。表示結果の例を次に示します。

pddbstコマンドの実行結果の例（RDエリア物理的解析結果の例）

3.6.2　カレントRDエリアの変更

初期設定時のカレントRDエリアは，オリジナルRDエリアになっていますが，カレントRDエリアをインナレプリカグループ内の任意のRDエリアへ変更することができます。カレントRDエリアの変更には，HiRDBのpddbchgコマンドを使用します。カレントRDエリアの変更前および変更後には，「データベースの状態表示」で示す方法でRDエリアの状態，世代番号およびカレントRDエリアを確認してください。なお，pddbchgコマンドは，HiRDB管理者が，HiRDBの稼働中に実行します。複数のサーバマシンでHiRDBシステムを構成している場合，システムマネジャがあるサーバマシンで実行します。pddbchgコマンドについては，マニュアル「HiRDB コマンドリファレンス」を参照してください。

pddbchgコマンドの実行例

pddbchg -r RD01,RD02 -q 1

カレントRDエリアを世代番号1のレプリカRDエリアへ変更します。

カレントRDエリア変更時の注意

カレントRDエリアの変更コマンド（pddbchgコマンド）の実行中は，対象RDエリアのインナレプリカグループへはアクセスできません。複数のRDエリアの状態を変更する場合，RDエリアの排他処理のため，業務プログラムとのデッドロックが発生するおそれがあります。このため，カレントRDエリアの切り替えは，業務のトラフィックが低い時間帯に実行してください。

カレントRDエリアの世代番号がインナレプリカグループによって異なることのないようにしてください。したがって，横分割で影響するRDエリアや，インデクス，BLOB列，抽象データ型の列，プラグインインデクスなどが格納されているRDエリアなどがある場合には，関連するすべてのRDエリアの世代番号をそろえ，すべてのRDエリアを1回のpddbchgコマンドの実行によってカレントRDエリアに設定してください。

カレントRDエリアを変更すると，マスタディレクトリ用RDエリアおよびデータディクショナリ用RDエリアの内容が更新されます。このため，カレントRDエリアの変更コマンド実行後に，マスタディレクトリ用RDエリアおよびデータディクショナリ用RDエリアのバックアップを取得することをお勧めします。

マスタディレクトリ用RDエリアおよびデータディクショナリ用RDエリアを，カレントRDエリアの変更直前に取得したバックアップの状態に戻した場合，カレントRDエリアの状態はバックアップ取得時の状態に戻ります。マスタディレクトリ回復後にこの状態でHiRDBを正常開始すると，カレントRDエリアの設定はマスタディレクトリの設定に従います。業務で使用するカレントRDエリアの設定を，マスタディレクトリを回復する前の設定に戻す場合，HiRDB起動後，業務を受け付ける前にカレントRDエリアの設定を変更してください。

3.6.3　インナレプリカグループ内のRDエリアの構成変更と構成情報の複写

ここでは，インナレプリカグループ内のRDエリアの構成変更と構成情報の複写について説明します。また，(3)では構成変更の例として，インナレプリカグループ内のRDエリアを拡張する手順について説明します。

(1)　インナレプリカグループ内のRDエリアの構成変更

インナレプリカグループ内のRDエリアに対して，通常のRDエリア（インナレプリカ機能を使っていないRDエリア）と同様に，次の操作ができます。

RDエリアの拡張

RDエリアの再初期化

RDエリアの属性変更

このような操作を実行すると，処理対象となったRDエリアの構成情報（定義情報）が変更されます。インナレプリカグループ内のRDエリアでの，構成情報を変更する条件を，次の表に示します。

表3‒6　インナレプリカグループ内のRDエリアでの構成情報を変更する条件

データベース構成変更ユティリティのオペランド指定

RDエリアの構成情報変更有無

RDエリアの拡張（expand rdarea文）

〇

RDエリアの再初期化 （initialize rdarea文）

RDエリア名

×

with reconstruction

〇

open attribute {INITIAL|DEFER|SCHEDULE}

×

page ページ長 characters

〇※

storage conrol segment セグメントサイズ pages

〇※

max entries 最大リスト登録数

×

extension {use 増分セグメント数 segments|nouse}

〇※

without lock table

×

file name “HiRDBファイルシステム領域名/HiRDBファイル名”

〇※

initial HiRDBファイル内セグメント数 segments

〇※

RDエリアの属性変更 （alter rdarea文）

RDエリア名

×

rename rdarea to 変更後のRDエリア名

×

open attribute {INITIAL|DEFER|SCHEDULE}

×

extension {use 増分セグメント数 segments|nouse}

〇※

（凡例）

○：構成情報を変更します。

×：構成情報を変更しません。

注※

このオペランドを指定した場合，変更前後の値にかかわらず，KFPX24282-Iメッセージを表示します。変更前後の値変更がない場合，KFPX24282-Iメッセージが表示されても，pdrdconstckコマンドを実行した際の整合性チェックは正常終了します。

インナレプリカグループ内のRDエリアに構成情報の差異がある状態でHiRDBを運用することは，障害が発生する原因となります（例:RDエリアの切り替え時に矛盾を検知し，RDエリアが障害閉塞する）。このため，構成情報を変更した場合には，変更内容をインナレプリカグループ内のすべてのRDエリアへコピーする必要があります。

インナレプリカグループ内のRDエリアの構成情報を変更した場合，KFPX24282-Iメッセージを表示します。このメッセージが表示された場合，インナレプリカグループ内のすべてのRDエリアに対して，RDエリアの構成情報をコピーしてください。構成情報のコピーについては，「インナレプリカグループ内のRDエリアの構成情報の複写」で説明します。また，pdrdconstckコマンドを実行することで，インナレプリカグループ内のRDエリアの整合性をチェックし，RDエリアの構成情報に差異があるかどうかを確認できます。pdrdconstckコマンドについては，マニュアル「HiRDB コマンドリファレンス」を参照してください。

(2)　インナレプリカグループ内のRDエリアの構成情報の複写

インナレプリカグループ内のRDエリアの拡張や再初期化，属性変更などによってRDエリアの構成情報に変更があった場合，そのRDエリアのデータベース実体をインナレプリカ内の別のRDエリアへコピーして運用するとき，構成定義の変更を別のRDエリアへも矛盾なくコピーする必要があります。HiRDBのpdmodコマンドでdefine copy rdarea文を実行すると，RDエリアの構成情報を矛盾なくコピーできます。

RDエリアの構成変更実行時にペアボリュームが分離状態であれば，そのあと，分離していたボリュームをペアボリュームに戻すと，実体も矛盾なくコピーできます。ただし，構成変更実行時には，ペアボリュームはベア状態(PAIR)にしておくことを推奨します。ペア状態であれば，実体は矛盾なくコピーされます。

ペアボリュームが分離状態でRDエリアの構成変更を実行する例を次に示します。

オリジナルRDエリアの容量を拡張した場合，レプリカRDエリアが独立して運用している間は，そのまま運用を続行できます。再度，オリジナルRDエリアのデータをレプリカRDエリアへコピーして運用する場合，運用する前に構成情報の変更を，レプリカRDエリアへコピーします。次の図に示す例では，オリジナルRDエリアがカレント状態で，現在運用中のRDエリアはオリジナルRDエリアだけです（レプリカRDエリアは閉塞かつクローズ状態）。ここでは，すべてのレプリカRDエリアへ構成情報をコピーします。

図3‒6　インナレプリカグループ内のRDエリアの構成情報と実体の複写

前述の図に示す例の場合は次の手順で，構成情報と実体をコピーします。

オリジナルRDエリア構成情報のインナレプリカグループ内への複写

オリジナルRDエリアの実体のインナレプリカグループ内への複写（ペアボリュームの生成）

なお，インナレプリカグループ内のRDエリアの拡張については，「インナレプリカグループ内のRDエリアの拡張」で説明します。

(a)　オリジナルRDエリア構成情報のインナレプリカグループ内への複写

図「インナレプリカグループ内のRDエリアの構成情報と実体の複写」のように，オリジナルRDエリアの拡張のためにHiRDBファイルを追加した場合，define copy rdarea文をpdmodコマンドで実行し，二つのレプリカRDエリアへ，拡張したオリジナルRDエリアの構成情報をコピーします。

次に，図「インナレプリカグループ内のRDエリアの構成情報と実体の複写」の場合のdefine copy rdarea文の指定例とpdmodコマンドの実行例を示します。

define copy rdarea文の指定例（define copy rdarea文のファイル名：/usr/dfcpy01）

// オリジナルRDエリアの構成情報をレプリカRDエリア1へコピー
define copy rdarea RD01_GN1
                 // コピー先のレプリカRDエリアを指定
   reproduce RD01;
                 // コピー元のオリジナルRDエリアを指定

// オリジナルRDエリアの構成情報をレプリカRDエリア2へコピー
define copy rdarea RD01_GN2
                 // コピー先のもう一つのレプリカRDエリアを指定
   reproduce RD01;
                 // コピー元のオリジナルRDエリアを指定

pdmodコマンドの実行例

pdmod -a /usr/dfcpy01

/usr/dfcpy01ファイルに記述された上記に示すdefine copy rdarea文を実行します。pdmodコマンドは，HiRDB管理者が，HiRDBの稼働中に実行します。複数のサーバマシンでHiRDBシステムを構成している場合，システムマネジャがあるサーバマシンで実行します。pdmodコマンドについては，マニュアル「HiRDB コマンドリファレンス」を参照してください。

(b)　オリジナルRDエリアの実体のインナレプリカグループ内への複写（ペアボリュームの生成）

図「インナレプリカグループ内のRDエリアの構成情報と実体の複写」の例の場合，構成情報だけではなく，HiRDBファイルの実体を二つのレプリカRDエリアへコピーする必要があります。これは，分離していたボリュームをペアボリュームに戻すことでできます。

(3)　インナレプリカグループ内のRDエリアの拡張

ここでは，インナレプリカグループ内のRDエリアの構成変更例として，オリジナルRDエリアの拡張を取り上げます。オリジナルRDエリアRD01を拡張する例を使って，拡張の手順について説明します。この例では，新たな領域（HiRDBファイルシステム領域）を作成し，そこにHiRDBファイルを追加することでオリジナルRDエリアを拡張します。新たに設ける領域は，ミラーリング機能を使って二重化したボリューム（ペアボリューム）へ割り当てます。ペアボリュームを用意することで，レプリカRDエリアも拡張します。オリジナルRDエリアの拡張は，次の手順で実施します。

1.拡張用の新たな領域の作成

新たなHiRDBファイルシステム領域への世代番号の割り当て

新たなHiRDBファイルシステム領域を割り当てるボリュームの用意（ペアボリュームの生成）

新たなHiRDBファイルシステム領域の作成

2.オリジナルRDエリアの拡張

3.バックアップファイルの取得

4.レプリカRDエリア構成情報と実体のインナレプリカグループ内への複写

レプリカRDエリア構成情報のインナレプリカグループ内への複写

レプリカRDエリアの実体のインナレプリカグループ内への複写（ペアボリュームの分離）

以降，各操作内容について説明します。なお，各操作の終了後，実行結果が正しいかどうかを確認することをお勧めします。各操作で使用するコマンドの実行結果の確認方法については，マニュアル「HiRDB コマンドリファレンス」を参照してください。

(a)　拡張用の新たな領域の作成

1.新たなHiRDBファイルシステム領域への世代番号の割り当て

「HiRDBファイルシステム領域の世代番号の登録」で示すように，HiRDBのpdmodコマンドでcreate generation文を実行して，新たに設けるHiRDBファイルシステム領域の世代番号をHiRDB（データディクショナリ用RDエリア）へ登録します。世代番号には，拡張対象のRDエリアの世代番号を指定します。ここでは，RDエリアRD01_GN1は世代番号1であるため，新たに用意する領域に対しても世代番号1を割り当てます。RDエリアRD01_GN2は世代番号2であるため，新たに用意する領域に対しても世代番号2を割り当てます。次に，create generation文の指定例およびpdmodコマンドの実行例を示します。

create generation文の指定例

（create generation文のファイル名：/usr/exgen01）

// 新たに設けるHiRDBファイルシステム領域の世代番号の登録
create generation for HiRDB file system area "/HiRDB_P/area09_GN1"
            // 新たに設けるレプリカRDエリア用の
            // HiRDBファイルシステム領域HiRDB_P/area09_GN1を指定
   server name bes1               // 対象とするサーバ名を指定
   generation number 1            // 割り当てる世代番号：1を指定
   reproduce "/HiRDB_P/area09";
            // 新たに設けるオリジナルRDエリア用の
            // HiRDBファイルシステム領域/HiRDB_P/area09を指定

// 新たに設けるHiRDBファイルシステム領域の世代番号の登録
create generation for HiRDB file system area "/HiRDB_P/area09_GN2"
            // 新たに設けるレプリカRDエリア用の
            // HiRDBファイルシステム領域HiRDB_P/area09_GN2を指定
   server name bes1               // 対象とするサーバ名を指定
   generation number 2            // 割り当てる世代番号：2を指定
   reproduce "/HiRDB_P/area09";
            // 新たに設けるオリジナルRDエリア用の
            // HiRDBファイルシステム領域/HiRDB_P/area09を指定

pdmodコマンドの実行例

pdmod -a /usr/exgen01

/usr/exgen01ファイルに記述された上記に示すcreate generation文を実行します。

pdmodコマンドは，HiRDB管理者が，HiRDBの稼働中に実行します。複数のサーバマシンでHiRDBシステムを構成している場合，システムマネジャがあるサーバマシンで実行します。pdmodコマンドについては，マニュアル「HiRDB コマンドリファレンス」を参照してください。

2.新たなHiRDBファイルシステム領域を割り当てるボリュームの用意（ペアボリュームの生成）

オリジナルRDエリア用のHiRDBファイルシステム領域を割り当てるボリュームを用意します。このボリュームは，レプリカRDエリアにも対応し，オリジナルとレプリカの間で矛盾がないようにするために，ペアボリュームにしておきます。ペアボリュームは，ハードウェアまたはミラーファイル管理ソフトウェアのミラーリング機能を使って生成します。

3.新たなHiRDBファイルシステム領域の作成

オリジナルRDエリア用のHiRDBファイルシステム領域を作成します。HiRDBのpdfmkfsコマンドを実行して，HiRDBファイルシステム領域（/HiRDB_P/area09）を作成します。pdfmkfsコマンドは，HiRDB管理者が，HiRDBの稼働中または停止中に実行します。複数のサーバマシンでHiRDBシステムを構成している場合，領域を作成するサーバマシンごとに実行します。pdfmkfsコマンドについては，マニュアル「HiRDB コマンドリファレンス」を参照してください。

pdfmkfsコマンドの実行例

pdfmkfs -n 10 -l 10 -k DB -e 20 -i /HiRDB_P/area09

-nオプションに新たに作成するHiRDBファイルシステム領域の大きさをメガバイト単位で指定します。-lオプションにHiRDBファイルシステム領域に作成するHiRDBファイル数の最大値を指定します。-kオプションにRDエリア用のHiRDBファイルシステム領域を作成するモード（DB）を指定します。-eオプションには，HiRDBファイルシステム領域内のHiRDBファイルの増分回数の上限値を指定します。-iオプションにHiRDBファイルシステム領域内を初期化することを指定します。/HiRDB_P/area09は，オリジナルRDエリア用に作成するHiRDBファイルシステム領域名です。

(b)　オリジナルRDエリアの拡張

HiRDBのpdmodコマンドでexpand rdarea文を実行して，オリジナルRDエリアを拡張します。次に，expand rdarea文の指定例およびpdmodコマンドの実行例を示します。

expand rdarea文の指定例（expand rdarea文のファイル名：/usr/expnd01）

// オリジナルRDエリアRD01の拡張指定
expand rdarea RD01
            // 拡張するオリジナルRDエリアRD01を指定
   file name "/HiRDB_P/area09/file09"
            // 追加するHiRDBファイル名を指定
   initial 10000 segments;
            // HiRDBファイルのセグメント数を指定

pdmodコマンドの実行例

pdmod -a /usr/expnd01

/usr/expnd01ファイルに記述された上記に示すexpand rdarea文を実行します。

pdmodコマンドは，HiRDB管理者が，HiRDBの稼働中に実行します。複数のサーバマシンでHiRDBシステムを構成している場合，システムマネジャがあるサーバマシンで実行します。pdmodコマンドについては，マニュアル「HiRDB コマンドリファレンス」を参照してください。

(c)　バックアップファイルの取得

拡張したオリジナルRDエリアのバックアップファイルを取得します。拡張によってRDエリアの構成が変更されたため，マスタディレクトリ用RDエリアおよびデータディクショナリ用RDエリアのバックアップファイルも取得します。バックアップファイルは，HiRDBのpdcopyコマンドで取得します。

pdcopyコマンドの実行例

pdcopy -m /hirdb/rdarea/rdmast/rdmast01
       -M r
       -b /usr/hirdb/pdcopy/backup05
       -r RDMSTR01,RDDIC01,RD01
       -q 0
       -p /usr/hirdb/pdcopy/list05

-mオプションには，マスタディレクトリ用RDエリアの先頭のHiRDBファイル名を指定しています。-Mオプションには，バックアップ取得モードとして，「バックアップ取得時にバックアップ取得対象のRDエリアを参照できるが，更新はできないモード（ｒ）」を指定します。

-rオプションには，バックアップ対象のRDエリア名を指定します。ここでは，マスタディレクトリ用RDエリア（RDMSTR01），データディクショナリ用RDエリア（RDDIC01）および拡張したレプリカRDエリアのバックアップの取得を指定します。レプリカRDエリアの指定には，-rオプションと-qオプションを使用します。-rオプションにはオリジナルRDエリア名RD01を指定し，-qオプションで取得対象の世代番号1を指定します。

バックアップ先のファイル名は，-bオプションに指定します。-pオプションには，pdcopyコマンドの処理結果リストの出力先を指定しています。

pdcopyコマンドは，HiRDB管理者が，HiRDBの稼働中に実行します。複数のサーバマシンでHiRDBシステムを構成している場合，システムマネジャがあるサーバマシンで実行します。pdcopyコマンドについては，マニュアル「HiRDB コマンドリファレンス」を参照してください。

バックアップの取得方法については，マニュアル「HiRDB システム運用ガイド」を参照してください。

また，pdcopyコマンドの実行前に，pdlogswap -d sys -wコマンドを実行してシステムログファイルをスワップしてください。

(d)　レプリカRDエリア構成情報と実体のインナレプリカグループ内への複写

RDエリアの拡張によってオリジナルRDエリアの構成情報に変更があった場合，拡張されたデータをインナレプリカグループ内のレプリカRDエリアとして使用するとき，この変更内容をレプリカRDエリアへ複写する必要があります。構成情報の複写方法については，「インナレプリカグループ内のRDエリアの構成情報の複写」を参照してください。また，構成情報の変更に伴い，変更のあったRDエリアのデータもインナレプリカグループ内のオリジナルRDエリアを含むほかのRDエリアへ複写し，構成情報と矛盾しないようにします。レプリカRDエリア用の追加HiRDBファイルは(a)で生成したペアボリュームを分離することで作成できますが，構成情報はRDエリア内にも保持しているため，再度，拡張部分でない領域も含めてすべてペアボリュームをペア化し，レプリカRDエリア全体をコピーし直す必要があります。

3.6.4　インナレプリカグループの統合

オンライン業務中，レプリカデータベースを使った運用の必要がなくなり，現在のレプリカRDエリアのデータで業務を運用する場合，RDエリアを統合できます。統合とは，レプリカRDエリアとオリジナルRDエリアのうち，残すRDエリアへ削除するRDエリアの構成情報（定義）をコピーし，不要になったRDエリアの定義，世代番号などを削除し，インナレプリカグループ内のRDエリアを一つにまとめることを指します。統合によって，インナレプリカグループは解消され，インナレプリカ機能を使用する前の通常のRDエリアの状態に戻ります。統合後のRDエリア名は，オリジナルRDエリアの名称に戻ります。

インナレプリカグループの統合は，インナレプリカグループ内にレプリカRDエリアが一つだけの状態のときに実行できます。複数のレプリカRDエリアが存在するインナレプリカグループを統合する場合には，不要なレプリカRDエリアを削除し，残すレプリカRDエリアを一つだけにした状態で，インナレプリカグループの統合をします。

次の図に示す，二つのレプリカRDエリアが存在するオリジナルRDエリアRD01とRD02のインナレプリカグループを世代番号2のレプリカRDエリアに統合する例の場合，まず，不要な世代番号1のレプリカRDエリアを削除し，世代番号2のレプリカRDエリアを残した状態にしてからインナレプリカグループを統合します。統合すると，統合後のRDエリア名は，オリジナルRDエリアのRD01とRD02になります。

図3‒7　インナレプリカグループの統合例

前述の図に示すインナレプリカグループの統合は，次の手順で実施します。

1.ボリュームの二重化の解除

2.統合するインナレプリカグループ内のすべてのRDエリアの閉塞かつクローズ

3.不要な世代のレプリカRDエリアの定義の削除

4.インナレプリカグループの統合

5.不要なHiRDBファイルシステム領域の世代番号の削除

オリジナルRDエリアの閉塞解除およびオープン

HiRDBファイルシステム領域の世代番号の削除

6.バックアップファイルの取得

7.統合先RDエリアへのグローバルバッファの割り当て

以降，各操作について説明します。なお，各操作の終了後，実行結果が正しいかどうかを確認することをお勧めします。各操作で使用するコマンドの実行結果の確認方法については，マニュアル「HiRDB コマンドリファレンス」を参照してください。

(1)　ボリュームの二重化の解除

解除方法については，ご使用のミラーリング機能のマニュアル，または取扱説明書を参照してください。

日立ディスクアレイシステムの場合はペアを解除して（pairsplit -S），ボリュームをシンプレックス（SMPL）にしてください。

(2)　統合するインナレプリカグループ内のすべてのRDエリアの閉塞かつクローズ

インナレプリカグループ内のすべてのRDエリアをpdholdコマンドで閉塞かつクローズ状態にします。pdholdコマンドは，HiRDB管理者が，HiRDBの稼働中に実行します。複数のサーバマシンでHiRDBシステムを構成している場合，システムマネジャがあるサーバマシンで実行します。pdholdコマンドについては，マニュアル「HiRDB コマンドリファレンス」を参照してください。図「インナレプリカグループの統合例」のpdholdコマンドの実行例を，次に示します。

pdholdコマンドの実行例

pdhold -r RD01,RD01_GN1,RD01_GN2,RD02,RD02_GN1,RD02_GN2 -c

閉塞かつクローズ状態にする，RD01とRD02のインナレプリカグループ内のすべてのRDエリア名を-rオプションに指定します。閉塞かつクローズ状態にするモードは，-cオプションで指定しています。

(3)　不要な世代のレプリカRDエリアの定義の削除

HiRDBのpdmodコマンドでremove rdarea文を実行して，不要な世代のレプリカRDエリアを削除します。図「インナレプリカグループの統合例」の例では，世代番号1のレプリカRDエリアの定義を削除します。図「インナレプリカグループの統合例」のremove rdarea文の指定例，およびpdmodコマンドの実行例を，次に示します。

remove rdarea文の指定例（remove rdarea文のファイル名：/usr/rm01）

// レプリカRDエリアRD01_GN1の削除指定
remove rdarea RD01_GN1;
                 // 削除するRDエリア名（レプリカRDエリア）の指定

// レプリカRDエリアRD02_GN1の削除指定
remove rdarea RD02_GN1;

pdmodコマンドの実行例

pdmod -a /usr/rm01

/usr/rm01ファイルに記述された上記に示すremove rdarea文を実行します。

注意

remove rdarea文は，ペアボリュームの状態でも，ペアボリュームが分離していても実行できます。

ペアボリュームが分離されている状態のときに，remove rdarea文を実行すると，RDエリアの構成情報（定義）が削除され，削除するRDエリアのHiRDBファイルも削除されます。ペアボリュームの状態のときにremove rdarea文を実行すると，RDエリアの構成情報（定義）だけを削除します。

pdmodコマンドは，HiRDB管理者が，HiRDBの稼働中に実行します。複数のサーバマシンでHiRDBシステムを構成している場合，システムマネジャがあるサーバマシンで実行します。pdmodコマンドについては，マニュアル「HiRDB コマンドリファレンス」を参照してください。

(4)　インナレプリカグループの統合

HiRDBのpdmodコマンドでrecast rdarea文を実行して，インナレプリカグループを統合します。図「インナレプリカグループの統合例」の例の場合，世代番号1のレプリカRDエリアが「不要な世代のレプリカRDエリアの定義の削除」で示す操作によって削除され，レプリカRDエリアは世代番号2だけが残った状態でインナレプリカグループを統合することになります。図「インナレプリカグループの統合例」のrecast rdarea文の指定例，およびpdmodコマンドの実行例を，次に示します。

recast rdarea文の指定例（recast rdarea文のファイル名：/usr/recast01）

// RD01のインナレプリカグループ内の統合指定
recast rdarea RD01 globalbuffer gbufrp01;
       // 統合するインナレプリカグループのオリジナルRDエリア名と
       // 割り当てられていたグローバルバッファ名の指定

// RD02のインナレプリカグループ内の統合指定
recast rdarea RD02 globalbuffer gbufrp02;

pdmodコマンドの実行例

pdmod -a /usr/recast01

/usr/recast01ファイルに記述された上記に示すrecast rdarea文を実行します。

注意

recast rdarea文は，ペアボリュームの状態でも，ペアボリュームが分離していても実行できます。

ペアボリュームが分離されている状態のときに，recast rdarea文を実行すると，RDエリアの構成情報（定義）が削除され，削除するRDエリアのHiRDBファイルも削除されます。ペアボリュームの状態のときにrecast rdarea文を実行すると，RDエリアの構成情報（定義）だけを削除します。

次回以降のHiRDB開始時には，統合後のRDエリアRD01，RD02に対してrecast rdarea文に指定したグローバルバッファを割り当てられません。そのため，HiRDBの終了後，統合後のRDエリアRD01，RD02にシステム共通定義のpdbufferオペランドでrecast rdarea文に指定したグローバルバッファを割り当ててください（「統合先RDエリアへのグローバルバッファの割り当て」参照）。

pdmodコマンドは，HiRDB管理者が，HiRDBの稼働中に実行します。複数のサーバマシンでHiRDBシステムを構成している場合，システムマネジャがあるサーバマシンで実行します。pdmodコマンドについては，マニュアル「HiRDB コマンドリファレンス」を参照してください。

(5)　不要なHiRDBファイルシステム領域の世代番号の削除

統合するインナレプリカグループ内のすべてのレプリカRDエリアに対する世代番号を削除します。図「インナレプリカグループの統合例」の場合は，世代番号1と2を削除します。

(a)　オリジナルRDエリアの閉塞解除およびオープン

統合して残ったオリジナルRDエリアの運用を再開するために，オリジナルRDエリアの閉塞状態を解除し，オープン状態に設定します。閉塞解除およびオープン設定には，HiRDBのpdrelsコマンドを使用します。pdrelsコマンドは，HiRDB管理者が，HiRDBの稼働中に実行します。複数のサーバマシンでHiRDBシステムを構成している場合，システムマネジャがあるサーバマシンで実行します。pdrelsコマンドについては，マニュアル「HiRDB コマンドリファレンス」を参照してください。図「インナレプリカグループの統合例」の場合，世代番号1を削除するために，オリジナルRDエリアの閉塞状態を解除し，オープン状態にします。次に，pdrelsコマンド実行例を示します。

pdrelsコマンドの実行例

pdrels -r RD01,RD02 -o

閉塞状態を解除し，オープンするオリジナルRDエリア名を指定しています。-oオプションを指定することで，閉塞解除したRDエリアをオープン状態にします。

(b)　HiRDBファイルシステム領域の世代番号の削除

HiRDBのpdmodコマンドでremove generation文を実行して，不要なHiRDBファイルシステム領域の世代番号を削除します。図「インナレプリカグループの統合例」の場合は，世代番号1と2を削除します。図「インナレプリカグループの統合例」のremove generation文の指定例，およびpdmodコマンドの実行例を，次に示します。

remove generation文の指定例（remove generation文のファイル名：/usr/rmg01）

// レプリカ用の領域/HiRDB_P/area01_GN1の世代番号1削除指定
remove generation for HiRDB file system area "/HiRDB_P/area01_GN1";
     // 削除する世代番号1のHiRDBファイルシステム領域
     // /HiRDB_P/area01_GN1を指定

// レプリカ用の領域/HiRDB_P/area01_GN2の世代番号2の削除指定
remove generation for HiRDB file system area "/HiRDB_P/area01_GN2";
     // 削除する世代番号2のHiRDBファイルシステム領域
     // /HiRDB_P/area01_GN2を指定

pdmodコマンドの実行例

pdmod -a /usr/rmg01

/usr/rmg01ファイルに記述された上記に示すremove generation文を実行します。

(6)　バックアップファイルの取得

統合して残ったオリジナルRDエリアのバックアップファイルを取得します。統合によってRDエリアの構成が変更されたため，マスタディレクトリ用RDエリアおよびデータディクショナリ用RDエリアのバックアップファイルも取得します。バックアップファイルは，HiRDBのpdcopyコマンドで取得します。次に，図「インナレプリカグループの統合例」のpdcopyコマンドの実行例を示します。

pdcopyコマンドの実行例

pdcopy -m /hirdb/rdarea/rdmast/rdmast01
       -M r
       -b /usr/hirdb/pdcopy/backup06
       -r RDMSTR01,RDDIC01,RD01,RD02
       -p /usr/hirdb/pdcopy/list06

-mオプションには，マスタディレクトリ用RDエリアの先頭のHiRDBファイル名を指定しています。-Mオプションには，バックアップ取得モードとして，「バックアップ取得時にバックアップ取得対象のRDエリアを参照できるが，更新はできないモード（ｒ）」を指定します。

-rオプションには，バックアップ対象のRDエリア名を指定します。ここでは，マスタディレクトリ用RDエリア，データディクショナリ用RDエリアおよび統合されて残ったオリジナルRDエリアのバックアップの取得を指定します。

バックアップ先のファイル名は，-bオプションに指定します。-pオプションには，pdcopyコマンドの処理結果リストの出力先を指定しています。

pdcopyコマンドは，HiRDB管理者が，HiRDBの稼働中に実行します。複数のサーバマシンでHiRDBシステムを構成している場合，システムマネジャがあるサーバマシンで実行します。pdcopyコマンドについては，マニュアル「HiRDB コマンドリファレンス」を参照してください。

バックアップの取得方法については，マニュアル「HiRDB システム運用ガイド」を参照してください。

また，pdcopyコマンドの実行前に，pdlogswap -d sys -wコマンドを実行してシステムログファイルをスワップしてください。

(7)　統合先RDエリアへのグローバルバッファの割り当て

統合したRDエリアには，再起動時，統合前のオリジナルRDエリアで使用されていたグローバルバッファが割り当てられます。統合先のレプリカRDエリアのページサイズが統合元オリジナルRDエリアより大きい場合は，グローバルバッファのサイズを見直す必要があります。これをしないと，次回のHiRDB開始以降，統合したRDエリアには統合前のグローバルバッファが割り当てられてしまいます。グローバルバッファの割り当ては，HiRDBのシステム共通定義（pdsys）ファイル内に，オペランド「pdbuffer」で指定します。システム共通定義（pdsys）の変更は，HiRDB管理者が，HiRDBの停止中に実施します。次に，図「インナレプリカグループの統合例」のオペランドの指定例を示します。

変更するオペランドの指定例

pdbuffer -a gbufrp01 -r RD01 -n 50
pdbuffer -a gbufrp02 -r RD02 -n 100

統合先のRDエリアRD01にグローバルバッファgbufrp01を，統合先のRDエリアRD02にグローバルバッファgbufrp02を割り当てます。

(8)　統合後の注意事項

統合前にレプリカRDエリアのバックアップファイルを取得していた場合，そのバックアップファイルは，統合されたRDエリア（オリジナルRDエリア）の回復には使用できません。

3.6.5　不要なレプリカRDエリアの削除

不要なレプリカRDエリア（レプリカRDエリアの定義）は，HiRDBのpdmodコマンドでremove rdarea文を実行して削除します。削除方法については，「不要な世代のレプリカRDエリアの定義の削除」を参照してください。

レプリカRDエリアの削除前には，削除対象のレプリカRDエリアのバックアップを取得しておきます。また，レプリカRDエリアの削除によって，インナレプリカグループの構成情報が変更になり，マスタディレクトリ用RDエリアとデータディクショナリ用RDエリアが更新されるため，レプリカRDエリアの削除前には，マスタディレクトリ用RDエリアとデータディクショナリ用RDエリアのバックアップも取得しておきます。バックアップは，-qオプションを指定してpdcopyコマンドを実行して取得します。

なお，レプリカRDエリアの削除後には，削除されたレプリカRDエリアのバックアップファイルを使って，インナレプリカグループ内のほかの世代のRDエリアの回復はできません。

バックアップの取得方法については，マニュアル「HiRDB システム運用ガイド」を参照してください。

また，pdcopyコマンドの実行前に，pdlogswap -d sys -wコマンドを実行してシステムログファイルをスワップしてください。

3.6.6　HiRDBファイルシステム領域の世代番号の削除

不要なHiRDBファイルシステム領域の世代番号は，HiRDBのpdmodコマンドでremove generation文を実行して削除します。削除方法については，「HiRDBファイルシステム領域の世代番号の削除」を参照してください。

3.7　インナレプリカグループ内のRDエリアのバックアップと回復

バックアップの取得

インナレプリカグループ内のRDエリアのバックアップは，-qオプションを指定してpdcopyコマンドを実行することで取得できます。-qオプションには，バックアップを取得するRDエリアの世代番号を指定します。-qオプションを指定して取得したバックアップファイルは，オリジナルとレプリカのどちらのRDエリアの障害に対しても対応できます。

データベースの回復

-qオプション付きでpdcopyコマンドを実行してバックアップを取得すると，同一インナレプリカグループ内の別の世代のRDエリアの回復ができます。回復するときには，回復対象のRDエリアの世代番号を-qオプションに指定してpdrstrコマンドを実行します。

ここでは，インナレプリカグループ内のRDエリアのバックアップと回復に関する運用例を示します。ここで示す運用例は，次の条件下で実施するものとします。

ミラーリング機能をハードウェアで実現する

RDエリア用のHiRDBファイルシステム領域の格納ディスクと，システムログなどのシステムファイル用のHiRDBファイルシステム領域の格納ディスクが別々になっている

ここではRDエリアの格納ディスクだけに障害が発生する

RDエリアの格納ディスクに障害が発生したあとも，システムファイルの格納ディスクは正常に動作している

3.7.1　レプリカRDエリアを利用したオリジナルRDエリアの回復

オリジナルRDエリアに障害が発生した場合に備え，オリジナルRDエリアを使った業務の運用中に，レプリカRDエリアのバックアップを取得しておきます。次の図に示すように，バックアップ取得後，オリジナルRDエリアに障害が発生した場合は，レプリカRDエリアで取得したバックアップを使用して，オリジナルRDエリアの障害を回復します。

図3‒8　レプリカRDエリアを利用したオリジナルRDエリアの回復

以降，前述の図に示す(1)から(3)の手順について説明します。

(1)　レプリカRDエリアのバックアップの取得

レプリカRDエリアのバックアップは，次の手順で取得します。

レプリカRDエリアの閉塞かつクローズ

オリジナルRDエリアの静止化（バックアップ閉塞化）

ペアボリュームの分離

オリジナルRDエリアの閉塞解除

レプリカRDエリアのバックアップの取得

ペアボリュームの生成

以降，各操作の手順について説明します。

(a)　レプリカRDエリアの閉塞かつクローズ

バックアップを取得するレプリカRDエリアを閉塞かつクローズ状態にします。次に，pdholdコマンドの実行例を示します。

pdholdコマンドの実行例

pdhold -r RD01 -q 1 -c

(b)　オリジナルRDエリアの静止化（バックアップ閉塞化）

オリジナルRDエリアとレプリカRDエリア用にペアボリューム化されているものを，レプリカRDエリアへ物理的にアクセスできるように，ペアボリュームを分離する必要があり，その前に，オリジナルRDエリアを参照可能バックアップ閉塞（更新WAITモード）状態にしておきます。これによって，バッファの内容が，オリジナルRDエリアに反映されます。ハードウェアでミラーリングを実現する場合は，同時に，レプリカRDエリアへも反映されます。次に，pdholdコマンドの実行例を示します。

pdholdコマンドの実行例

pdhold -r RD01 -q 0 -b -w

(c)　ペアボリュームの分離

ペアボリュームを分離し，バックアップ取得対象のレプリカRDエリアの実体へ物理的にアクセスできるようにします。ペアボリュームの分離は，ミラーリング機能を使って実現します。日立ディスクアレイシステムを使用している場合は，「日立ディスクアレイシステム使用時の注意事項および操作手順」を参照してください。

(d)　オリジナルRDエリアの閉塞解除

「ペアボリュームの分離」によって，レプリカRDエリアの実体へ物理的にアクセスできるようになると，オリジナルRDエリアを閉塞状態にしておく必要はないため，解除します。閉塞状態を解除することで，業務を再開できます。閉塞状態の解除には，pdrelsコマンドを使用します。次に，pdrelsコマンドの実行例を示します。

pdrelsコマンドの実行例

pdrels -r RD01 -q 0

(e)　レプリカRDエリアのバックアップの取得

pdcopyコマンドを使用してレプリカRDエリアのバックアップを取得します。このとき，-qオプションに取得するレプリカRDエリアの世代番号を指定して実行します。次に，pdcopyコマンドの実行例を示します。

pdcopyコマンドの実行例

pdcopy -m /hirdb/rdarea/rdmast/rdmast01
       -b /bkdir/bkup01
       -r RD01
       -q 1

バックアップの取得方法については，マニュアル「HiRDB システム運用ガイド」を参照してください。

(f)　ペアボリュームの生成

「レプリカRDエリアのバックアップの取得」でバックアップが取得できたため，オリジナルとレプリカのボリュームをペアボリュームに戻します。ハードウェアでミラーリング機能を実現する場合には，分離していた間のオリジナルRDエリアに対する更新内容は，自動的にレプリカRDエリアへ反映されます。日立ディスクアレイシステムを使用している場合は，「日立ディスクアレイシステム使用時の注意事項および操作手順」を参照してください。

(2)　オリジナルRDエリアの回復

図「レプリカRDエリアを利用したオリジナルRDエリアの回復」に示すように，オリジナルRDエリアに障害が発生した場合，「レプリカRDエリアのバックアップの取得」で取得したバックアップを使って，オリジナルRDエリアを回復します。

ここでは，正のボリューム（オリジナルRDエリア）で障害が発生した場合の回復手順を示します。回復は，次の手順で実施します。

オリジナルRDエリアのクローズ

オリジナルRDエリアのハードディスクの取り替え

ログのアンロード

オリジナルRDエリアの回復

以降，各操作の手順について説明します。

(a)　オリジナルRDエリアのクローズ

ここでは，障害によって，オリジナル側のハードディスクが破壊されたと考え，オリジナル側を新しいハードディスクに取り替えて対応することにします。そのため，取り替え前には，オリジナルRDエリアをクローズする必要があります。RDエリアのクローズには，pdcloseコマンドを使用します。このとき，-qオプションにオリジナルRDエリアの世代番号0を指定します。次に，pdcloseコマンドの実行例を示します。

pdcloseコマンドの実行例

pdclose -r RD01 -q 0

(b)　オリジナルRDエリアのハードディスクの取り替え

ハードディスクを新しいものに取り替えます。取り替えたあと，マニュアル「HiRDB システム運用ガイド」の「ディスク障害が発生したときの対処方法」で示すRDエリアの回復の直前までの手順を実施しておく必要があります。ハードディスクそのものの取り替え方法については，ハードディスクなどのマニュアルを参照してください。

(c)　ログのアンロード

ハードディスクの取り替えが完了したら，オリジナルとレプリカのRDエリアを障害発生前の状態まで回復します。回復には，システムログのアンロードファイルが必要です。アンロードファイルは，pdlogunldコマンドを使って取得します。次に，pdlogunldコマンドの実行例を示します。

pdlogunldコマンドの実行例

pdlogunld -d sys -s bes1 -g logfg01 -o /uldir/ulog01

(d)　オリジナルRDエリアの回復

オリジナルとレプリカの両方のRDエリアの回復が必要ですが，ハードウェアでミラーリング機能が有効な場合，オリジナルを回復することで，ミラーリングのコピー機能でレプリカRDエリアにも反映されます。

RDエリアの回復にはpdrstrコマンドを使用します。pdrstrコマンドの-bオプションには「レプリカRDエリアのバックアップの取得」で取得したバックアップファイルを指定し，-lオプションには「ログのアンロード」で取得したアンロードファイルを指定します。次に，pdrstrコマンドの実行例を示します。

pdrstrコマンドの実行例

pdrstr -m /hirdb/rdarea/rdmast/rdmast01
       -b /bkdir/bkup01
       -l /uldir/ulog01
       -r RD01 -q 0

(3)　回復後のレプリカRDエリアのバックアップの取得

障害の回復後，レプリカRDエリアのバックアップを取得します。バックアップ取得前には，オリジナルRDエリアの更新業務は再開しておきます。

ペアボリュームの分離

オリジナルRDエリアの閉塞解除とオープン

オリジナルRDエリアに対する更新業務の再開

レプリカRDエリアのバックアップ取得

ペアボリュームの生成

以降，手順3以外の各操作の手順について説明します。

(a)　ペアボリュームの分離

「レプリカRDエリアのバックアップの取得」の操作の中で，ペアボリューム化を設定してありましたが，障害回復後のレプリカRDエリアのバックアップを取得するために，ここでは，ペアボリュームを分離します。これ以降，レプリカRDエリアに物理的にアクセスできるようになります。ペアボリュームの分離は，ミラーリング機能を使って実現します。日立ディスクアレイシステムを使用している場合は，「日立ディスクアレイシステム使用時の注意事項および操作手順」を参照してください。

(b)　オリジナルRDエリアの閉塞解除とオープン

「ペアボリュームの分離」によって，レプリカRDエリアの実体へ物理的にアクセスできるようになると，オリジナルRDエリアを閉塞状態にしておく必要はないため，解除し，オープンします。閉塞状態を解除し，オープンすることで，業務を再開できます。閉塞解除およびオープンには，pdrelsコマンドを使用します。次に，pdrelsコマンドの実行例を示します。

pdrelsコマンドの実行例

pdrels -r RD01 -q 0 -o

(c)　レプリカRDエリアのバックアップ取得

障害回復後，回復後のレプリカRDエリアのバックアップファイルを取得しておきます。バックアップは，pdcopyコマンドを使用して取得します。このとき，-qオプションに取得するレプリカRDエリアの世代番号を指定して実行します。次に，pdcopyコマンドの実行例を示します。

pdcopyコマンドの実行例

pdcopy -m /hirdb/rdarea/rdmast/rdmast01
       -b /bkdir/bkup02
       -r RD01
       -q 1

(d)　ペアボリュームの生成

「レプリカRDエリアのバックアップ取得」でバックアップが取得できると，オリジナルとレプリカのボリュームをペアボリュームに戻します。ハードウェアでミラーリング機能を実現する場合には，分離していた間のオリジナルRDエリアに対する更新内容は，ペアボリュームに戻すことによって，自動的にレプリカRDエリアへ反映されます。日立ディスクアレイシステムを使用している場合は，「日立ディスクアレイシステム使用時の注意事項および操作手順」を参照してください。

3.7.2　2世代分のRDエリアのシステムログを利用した回復

ここでは，次の図に示すように，オリジナルRDエリアで運用中にレプリカRDエリアのバックアップを取得したあと，レプリカRDエリアをカレントに変更して運用再開したときに障害が発生した場合の回復例について説明します。

図3‒9　2世代分のRDエリアのシステムログを利用した回復

前述の図の場合，オリジナルRDエリアとレプリカRDエリアの2世代分のシステムログとレプリカRDエリアのバックアップファイルを使って回復できます。回復は次の手順で実施します。以降，前述の図に示す(1)から(4)の手順について説明します。

(1)　レプリカRDエリアのバックアップの取得

「レプリカRDエリアのバックアップの取得」と同じ操作をします。操作内容については，「レプリカRDエリアのバックアップの取得」を参照してください。

(2)　カレントRDエリアの変更

ここでは，運用上，カレントRDエリアをレプリカRDエリアに設定します。

オリジナルRDエリアの静止化（バックアップ閉塞化）

ペアボリュームの分離

レプリカRDエリアの閉塞解除およびオープン

カレントRDエリアの変更

オリジナルRDエリアの静止化解除

(a)　オリジナルRDエリアの静止化（バックアップ閉塞化）

オリジナルRDエリアとレプリカRDエリア用にペアボリューム化されているものを，レプリカRDエリアへ物理的にアクセスできるように，ペアボリュームを分離する必要があり，その前に，オリジナルRDエリアを閉塞状態にしておきます。これによって，バッファの内容が，オリジナルRDエリアに反映されます。ハードウェアでミラーリングを実現する場合は，同時に，レプリカRDエリアにも反映されます。次に，pdholdコマンドの実行例を示します。

pdholdコマンドの実行例

pdhold -r RD01 -q 0 -b

(b)　ペアボリュームの分離

ペアボリュームを分離し，バックアップ取得対象のレプリカRDエリアの実体へ物理的にアクセスできるようにします。ペアボリュームの分離は，ミラーリング機能を使って実現します。日立ディスクアレイシステムを使用している場合は，「日立ディスクアレイシステム使用時の注意事項および操作手順」を参照してください。

(c)　レプリカRDエリアの閉塞解除およびオープン

カレントRDエリアの変更のために，カレントに設定予定のレプリカRDエリアの閉塞状態を解除し，オープン状態にします。次に，解除およびオープンに使うpdrelsコマンドの実行例を示します。

pdrelsコマンドの実行例

pdrels -r RD01 -q 1 -o

(d)　カレントRDエリアの変更

カレントRDエリアをオリジナルからレプリカRDエリアへ変更します。変更には，pddbchgコマンドを使用します。次に，pddbchgコマンドの実行例を示します。

pddbchgコマンドの実行例

pddbchg -r RD01 -q 1

カレントの変更が終了すると，カレントに指定されたレプリカRDエリアを使って更新業務を再開できます。

(e)　オリジナルRDエリアの静止化解除

オリジナルRDエリアの静止化をpdrelsコマンドで解除します。静止化解除後，オリジナルRDエリアにアクセスしない場合は，オリジナルRDエリアをpdholdコマンドで閉塞かつクローズ状態にしておきます。次に，pdrelsコマンド，およびpdholdコマンドの実行例を示します。

pdrelsコマンドの実行例

pdrels -r RD01 -q 0

pdholdコマンドの実行例

pdhold -r RD01 -q 0 -c

(3)　オリジナルとレプリカの2世代分のシステムログを利用した回復

カレントRDエリアをレプリカRDエリアに設定して業務を運用している間に，レプリカRDエリアで障害が発生した場合には，「レプリカRDエリアのバックアップの取得」で取得してあるバックアップファイルと，オリジナルおよびレプリカの2世代分のシステムログを利用してカレントであるレプリカRDエリアを回復することができます。回復は，次の手順で実施します。

レプリカRDエリアのクローズ

障害の発生したレプリカRDエリアのハードディスクの取り替え

ログのアンロード

カレントのレプリカRDエリアの回復

以降，操作について説明します。

(a)　レプリカRDエリアのクローズ

ここでは，障害によって，レプリカのハードディスクが破壊されたと考え，新しいハードディスクに取り替えて対応することにします。そのため，取り替え前には，カレントであるレプリカRDエリアをクローズしておく必要があります。RDエリアのクローズには，pdcloseコマンドを使用します。このとき，-qオプションにレプリカRDエリアの世代番号1を指定します。次に，pdcloseコマンドの実行例を示します。

pdcloseコマンドの実行例

pdclose -r RD01 -q 1

(b)　障害の発生したレプリカRDエリアのハードディスクの取り替え

ハードディスクを新しいものに取り替えます。取り替えたあと，マニュアル「HiRDB システム運用ガイド」の「ディスク障害が発生したときの対処方法」で示すRDエリアの回復の直前までの手順を実施しておく必要があります。ハードディスクそのものの取り替え方法については，ハードディスクなどのマニュアルを参照してください。

(c)　ログのアンロード

ハードディスクの取り替えが完了したら，オリジナルとレプリカのRDエリアを障害発生前の状態まで回復します。回復には，システムログのアンロードファイルが必要です。アンロードファイルは，pdlogunldコマンドを使って取得します。次に，pdlogunldコマンドの実行例を示します。

pdlogunldコマンドの実行例

pdlogunld -d sys -s bes1 -g logfg02 -o /uldir/ulog02

(d)　カレントのレプリカRDエリアの回復

RDエリアの回復にはpdrstrコマンドを使用します。pdrstrコマンドの-bオプションには「レプリカRDエリアのバックアップの取得」で取得したバックアップファイルを指定し，-lオプションには「ログのアンロード」で取得したアンロードファイルを指定します。また，-xオプションに0を指定します。これによって，オリジナルRDエリアのシステムログも利用して回復できるようになります。次に，2世代分のシステムログを利用して回復する場合のpdrstrコマンドの実行例を示します。

pdrstrコマンドの実行例

pdrstr -m /hirdb/rdarea/rdmast/rdmast01
       -b /bkdir/bkup01
       -l /uldir/ulog02
       -r RD01
       -q 1
       -x 0

(4)　回復後のレプリカRDエリアのバックアップの取得

(a)　レプリカRDエリアのバックアップの取得

障害回復後に，回復後のレプリカRDエリアのバックアップファイルを取得しておくことをお勧めします。バックアップは，pdcopyコマンドを使用して取得します。このとき，-qオプションに取得するレプリカRDエリアの世代番号1を指定して実行します。次に，pdcopyコマンドの実行例を示します。ここでは，カレントRDエリアの変更によるマスタディレクトリ用RDエリアおよびデータディクショナリ用RDエリアの内容の更新があったため，これらのRDエリアのバックアップも取得する指定をしています。

pdcopyコマンドの実行例

pdcopy -m /hirdb/rdarea/rdmast/rdmast01
       -b /bkdir/bkup03
       -r MAST,DDIC,RD01
       -q 1

バックアップの取得方法については，マニュアル「HiRDB システム運用ガイド」を参照してください。

(b)　ペアボリュームの生成

レプリカRDエリアで業務を行った場合，カレントであるレプリカボリュームのデータをオリジナルのボリュームへ反映させる必要があります。日立ディスクアレイシステムを使用している場合は，「日立ディスクアレイシステム使用時の注意事項および操作手順」を参照してください。

3.7.3　レプリカRDエリアの差分バックアップの取得と回復

ここでは，次の図に示すように，レプリカRDエリアの差分バックアップを取得し続け，その差分バックアップを使って障害回復を実現する方法について説明します。差分バックアップの取得は，バックアップ取得処理時間を短縮できるため，データベースの規模が大きいが更新したデータ量が少ない場合に適用できます。差分バックアップの取得方法や前提については，マニュアル「HiRDB システム運用ガイド」を参照してください。ここでは，差分バックアップの取得コマンドの実行例だけを示します。

図3‒10　レプリカRDエリアの差分バックアップの取得と回復

以降，前述の図に示す(1)から(3)の手順について説明します。

(1)　レプリカRDエリアの差分バックアップの取得

レプリカRDエリアの差分バックアップを取得するには，まずは通常のバックアップを取得します。そのあと，差分バックアップを取得できます。手順は，次のとおりです。

レプリカRDエリアのバックアップ（フルバックアップ）の取得

レプリカRDエリアの差分バックアップの取得

以降，各操作の手順について説明します。

(a)　レプリカRDエリアのバックアップ（フルバックアップ）の取得

次に示す手順でレプリカRDエリアのバックアップを取得します。

レプリカRDエリアの閉塞かつクローズ

オリジナルRDエリアの静止化（バックアップ閉塞化）

ペアボリュームの分離

オリジナルRDエリアの閉塞解除

レプリカRDエリアのバックアップ（フルバックアップ）の取得

ペアボリュームの生成

これは，手順2，手順4のオリジナルRDエリアの更新業務の停止と再開，手順5のレプリカRDエリアのバックアップ（フルバックアップ）の取得以外は，「レプリカRDエリアのバックアップの取得」と同じ操作をします。操作内容については，「レプリカRDエリアのバックアップの取得」を参照してください。ここでは，手順7のレプリカRDエリアのバックアップの取得操作について説明します。

レプリカRDエリアのバックアップ（フルバックアップ）の取得

レプリカRDエリアの差分バックアップを取得する前は，いったん，通常のバックアップ（フルバックアップ）を取得しておく必要があります。このとき，pdcopyコマンドは，通常のオプション指定だけではなく，-gオプション，-Kオプション，-dオプションも指定して実行します。-dオプションにaを指定することで，フルバックアップの取得になります。次に，pdcopyコマンドの実行例を示します。

pdcopyコマンドの実行例

pdcopy -m /hirdb/rdarea/rdmast/rdmast01
       -b /bkdir/dfbk01
       -r RD01
       -q 1
       -g 'GRP01(S)'
       -K /control/dfmgr
       -d a

-gオプションには差分バックアップグループ名として任意の名称を指定します。最初のフルバックアップ取得時には，必ず差分バックアップグループ名に’(S)’を指定します。次回以降の差分バックアップ取得時には，ここで指定した差分バックアップグループ名を指定します。差分バックアップグループとは，差分バックアップ機能を適用するRDエリア群（RDエリアのグループ）のことを指します。-Kオプションには，差分バックアップ管理ファイルを格納するHiRDBファイルシステム領域名を指定します。差分バックアップファイル管理ファイルには，差分バックアップを取得したときの管理情報が格納されます。この領域は，差分バックアップを取得する運用を開始する前に用意しておく必要があります。取得前の前提については，マニュアル「HiRDB システム運用ガイド」を参照してください。

バックアップの取得方法については，マニュアル「HiRDB システム運用ガイド」を参照してください。

(b)　レプリカRDエリアの差分バックアップの取得

レプリカRDエリアのバックアップ取得後は，差分のバックアップが取得できるようになります。差分のバックアップは，次の手順で取得します。

オリジナルRDエリアの静止化（バックアップ閉塞化）

ペアボリュームの分離

オリジナルRDエリアの閉塞解除

レプリカRDエリアの差分バックアップの取得

ペアボリュームの生成

ここでは，レプリカRDエリアの差分バックアップの取得操作について説明します。

レプリカRDエリアの差分バックアップの取得

ここでは，レプリカRDエリアのバックアップとして，「レプリカRDエリアのバックアップ（フルバックアップ）の取得」以後からの差分だけを取得します。pdcopyコマンドでバックアップを取得しますが，そのとき，通常のオプションに加えて，-gオプション，-Kオプションおよび-dオプションも指定します。-dオプションにdを指定することで，差分バックアップの取得になります。-gオプション，-Kオプションには，「レプリカRDエリアのバックアップ（フルバックアップ）の取得」で指定した値を指定します。-gオプションに，フルバックアップを取得したときに指定した差分バックアップグループ名を指定することによって，ここでは，自動的にレプリカRDエリアの差分バックアップが取得されます。次に，差分バックアップの取得をするpdcopyコマンドの実行例を示します。

pdcopyコマンドの実行例

pdcopy -m /hirdb/rdarea/rdmast/rdmast01
       -b /bkdir/dfbk02
       -g GRP01
       -K /control/dfmgr
       -d d

(2)　レプリカRDエリアの差分バックアップを使った回復

差分バックアップを取得する運用を開始してから，オリジナルRDエリアで障害が発生した場合，取得してある差分バックアップを使って障害を回復します。次の手順で回復します。

オリジナルRDエリアのクローズ

オリジナルRDエリアのハードディスクの取り替え

ログのアンロード

オリジナルRDエリアの回復

以降，各操作の手順について説明します。

(a)　オリジナルRDエリアのクローズ

ここでは，障害によって，オリジナルRDエリアのハードディスクが破壊されたと考え，新しいハードディスクに取り替えて対応することにします。そのため，取り替え前には，オリジナルRDエリアをクローズしておく必要があります。レプリカRDエリアは，「レプリカRDエリアのバックアップ（フルバックアップ）の取得」の手順1で設定した閉塞かつクローズ状態のままであるとします。RDエリアのクローズには，pdcloseコマンドを使用します。このとき，-qオプションにオリジナルRDエリアの世代番号0を指定します。次に，pdcloseコマンドの実行例を示します。

pdcloseコマンドの実行例

pdclose -r RD01 -q 0

(b)　オリジナルRDエリアのハードディスクの取り替え

ハードディスクを新しいものに取り替えます。取り替えたあと，マニュアル「HiRDB システム運用ガイド」の「ディスク障害が発生したときの対処方法」で示すRDエリアの回復の直前までの手順を実施しておく必要があります。ハードディスクそのものの取り替え方法については，ハードディスクなどのマニュアルを参照してください。

(c)　ログのアンロード

ハードディスクの取り替えが完了したら，オリジナルとレプリカのRDエリアを障害発生前の状態まで回復します。回復には，システムログのアンロードファイルが必要です。アンロードファイルは，pdlogunldコマンドを使って取得します。次に，pdlogunldコマンドの実行例を示します。

pdlogunldコマンドの実行例

pdlogunld -d sys -s bes1 -g logfg03 -o /uldir/ulog03

(d)　オリジナルRDエリアの回復

オリジナルとレプリカ両方のRDエリアの回復が必要ですが，ハードウェアのミラーリング機能が有効である場合，オリジナルを回復することで，ミラーリングのコピー機能でレプリカRDエリアへも反映されます。

RDエリアの回復にはpdrstrコマンドを使用します。差分バックアップを使用するため，-gオプション，-Kオプションを指定します。これらのオプションには，「レプリカRDエリアのバックアップ（フルバックアップ）の取得」で指定した値を指定します。-lオプションには「ログのアンロード」で取得したアンロードファイルを指定します。次に，pdrstrコマンドの実行例を示します。

pdrstrコマンドの実行例

pdrstr -m /hirdb/rdarea/rdmast/rdmast01
       -g GRP01
       -K /control/dfmgr
       -l /uldir/ulog03
       -r RD01
       -q 0

(3)　回復後のレプリカRDエリアのバックアップ（フルバックアップ）の取得

障害の回復後，レプリカRDエリアのバックアップを取得します。バックアップ取得中には，オリジナルRDエリアの業務は再開しておきます。

ペアボリュームの分離

オリジナルRDエリアの閉塞解除とオープン

オリジナルRDエリアの更新業務の再開

レプリカRDエリアのバックアップ（フルバックアップ）の取得

ペアボリュームの生成

これは，手順4のレプリカRDエリアのバックアップ（フルバックアップ）の取得以外（手順1〜手順3，手順5）は，「回復後のレプリカRDエリアのバックアップの取得」と同じ操作をします。操作内容については，「回復後のレプリカRDエリアのバックアップの取得」を参照してください。ここでは，手順4のレプリカRDエリアのバックアップ（フルバックアップ）の取得操作について説明します。

レプリカRDエリアのバックアップ（フルバックアップ）の取得

レプリカRDエリアのフルバックアップを取得します。フルバックアップを取得するときは，「レプリカRDエリアのバックアップ（フルバックアップ）の取得」と同じコマンドを実行しますが，このとき，-gオプションに'(S)'を指定する必要はありません。次に，pdcopyコマンドの実行例を示します。

pdcopyコマンドの実行例

pdcopy -m /hirdb/rdarea/rdmast/rdmast01
       -b /bkdir/dfbk03
       -r RD01
       -q 1
       -g GRP01
       -K /control/dfmgr
       -d a

3.7.4　2世代分のRDエリアのシステムログを利用した回復方法を採用できない場合（KFPR26263-Eメッセージが出力される場合）

オリジナルRDエリアの運用中に，レプリカRDエリアで再編成やデータ・インデクスの一括作成などを実行した場合には，実行後に必ずレプリカRDエリアのデータをオリジナルRDエリアへコピー（ペアボリュームを生成）しておく必要があります。そのあとにオリジナルRDエリアの運用を再開できます。また，レプリカRDエリアで再編成やデータ・インデクスの一括作成中には，オリジナルRDエリアでは参照だけができる状態とし，更新をさせないようにする必要があります。

もし，再編成の実行後にペアボリュームを生成しないで運用を再開，または，再編成中にもう一方のRDエリアを更新した場合，その後の運用中に障害が発生しても，オリジナルとレプリカの2世代分のシステムログを利用した回復方法（データベースの回復コマンド：pdrstrを-xオプションを指定して実行する方法（「2世代分のRDエリアのシステムログを利用した回復」を参照してください））を採用することはできません。この状況のときに2世代分のシステムログを利用した回復方法を採用するとKFPR26263-Eメッセージが出力されます。これは，2世代分のシステムログを正しく認識することができずに回復コマンドが正常に終了できなかったために出力されるメッセージです。このメッセージが出力された場合は，オリジナルおよびレプリカそれぞれのRDエリアを段階的に回復していく方法しかありません。次に，KFPR26263-Eメッセージが出力された場合（2世代分のRDエリアのシステムログを利用した回復方法を採用できない場合）の対処方法について例を用いて説明します。

(1)　KFPR26263-Eメッセージが出力された場合（2世代分のRDエリアのシステムログを利用した回復方法を採用できない場合）の対処

次の図に示す手順でレプリカRDエリア内の表の再編成を実行すると，再編成中にオリジナルRDエリアを更新しているため，オリジナルとレプリカのそれぞれのシステムログのどちらが正しいものなのかがHiRDBには判断できない状態になってしまいます。このため，次の図に示す「オリジナルRDエリアで障害発生」が発生したときに，オリジナルとレプリカの両方のシステムログを利用して回復しようとしても，KFPR26263-Eメッセージが出力され，回復に失敗してしまいます。

図3‒11　KFPR26263-Eメッセージが出力される（2世代分のRDエリアのシステムログを利用した回復方法を採用できない）場合の例

この場合は，前述の図に示すように，更新を開始（RDエリアの閉塞かつクローズの解除）および終了（RDエリアの閉塞かつクローズ）した時点の時刻が分かれば，次に示す手順で対処できます。

オリジナルRDエリアを(A)の時点まで回復

図「KFPR26263-Eメッセージが出力される（2世代分のRDエリアのシステムログを利用した回復方法を採用できない）場合の例」の手順2で取得したバックアップファイルとシステムログ1を使用して(A)の時点（2003.5.16 22:15:10）まで回復します。

コマンド実行例

pdrstr -m /hirdb/rdarea/rdmast/rdmast01
       -b /bkdir/bkup01
       -l /lgdir/unld01
       -T , 20030516_221510
       -r RD01
       -q 0

-bオプションにバックアップファイルを指定します。-lオプションにシステムログ1に相当するログを指定します。-Tオプションには回復終了時刻（2003.5.16 22:15:10）を指定します。回復終了時刻は，「,」付きで指定します。

オリジナルRDエリアの内容をレプリカRDエリアへコピー（ペアボリュームの生成）

ミラーリング機能を使って実現します。ここでのコピーによって，レプリカRDエリアも(A)の時点まで回復します。日立ディスクアレイシステムを使用している場合は，「日立ディスクアレイシステム使用時の注意事項および操作手順」を参照してください。

レプリカRDエリアを(B)から(C)の時点まで回復

図「KFPR26263-Eメッセージが出力される（2世代分のRDエリアのシステムログを利用した回復方法を採用できない）場合の例」のシステムログ3を使用して(B)の時点（2003.5.16 22:45:00）から(C)の時点（2003.5.17 05:40:05）まで回復します。このとき，再編成中に実行していたオリジナルRDエリアでの更新時に出力されたシステムログ2を使用することはありません。

コマンド実行例

pdrstr -m /hirdb/rdarea/rdmast/rdmast01
       -l /lgdir/unld01
       -T 20030516_224500,20030517_054005
       -r RD01
       -q 1

-lオプションにシステムログ3に相当するログを指定します。-Tオプションには回復開始時刻（2003.5.16 22:45:00）と回復終了時刻（2003.5.17 05:40:05）を指定します。

レプリカRDエリアの内容をオリジナルRDエリアへコピー（ペアボリュームの生成）

ミラーリング機能を使って実現します。ここでのコピーによって，オリジナルRDエリアがレプリカRDエリア同様，(C)の時点まで回復します。日立ディスクアレイシステムを使用している場合は，「日立ディスクアレイシステム使用時の注意事項および操作手順」を参照してください。

オリジナルRDエリアを(D)から障害発生直前の状態まで回復

図「KFPR26263-Eメッセージが出力される（2世代分のRDエリアのシステムログを利用した回復方法を採用できない）場合の例」のシステムログ4を使用して(D)の時点（2003.5.17 06:35:22）から障害発生直前まで回復します。

コマンド実行例

pdrstr -m /hirdb/rdarea/rdmast/rdmast01
       -l /lgdir/unld01
       -T 20030517_063522
       -r RD01
       -q 0

-lオプションにシステムログ4に相当するログを指定します。-Tオプションに回復開始時刻（2003.5.17 06:35:22）を指定します。

3.8　インナレプリカグループ内のRDエリアに対して実行できるコマンドの一覧

インナレプリカグループ内のRDエリアに対して実行できる主なコマンドの一覧を次の表に示します。インナレプリカ機能を使用している場合，次の表に示すコマンドでは，-qオプションが使えるようになります。-qオプションには世代番号を指定します。インナレプリカグループ内の特定の世代番号のRDエリアを指定するときに使用します。次の表に示すように，-qオプションを必ず指定するコマンドと任意指定のコマンドがあります。任意指定の場合は処理対象のRDエリアが異なります。

表3‒7　インナレプリカグループ内のRDエリアに対して実行できる主なコマンド

-qオプション

-qオプション省略時の

処理対象

コマンド名

機能

必須

−

pdcopy※1※2

バックアップファイルの取得

pddbchg

カレントRDエリアの変更

pdrstr※1※2

データベースの回復

任意

カレントRDエリア

pddbst

データベースの状態解析

pdgetcst

最適化情報の収集

pdload

ユーザデータの表への登録

pdpgbufon

グローバルバッファへのページの読み込み

pdplgexe※3

HiRDBのプラグイン関連

pdrorg

表やインデクスの再編成

任意

指定したRDエリア

（オリジナルもレプリカもRDエリア名で指定可能）

pdclose

RDエリアのクローズ

pddbfrz

RDエリアの満杯ファイルの更新抑止

pddbls※2

RDエリアの状態表示

pdhold

RDエリアの静止化（バックアップ閉塞化）

pdopen

RDエリアのオープン

pdrels

RDエリアの閉塞状態の解除

（凡例）-qオプションの指定の違いについて説明します。

必須（-qオプションを必ず指定するコマンド）：

インナレプリカグループ内のRDエリアを指定する場合には，必ず-qオプションで世代番号を指定します。

任意（処理対象が「カレントRDエリア」の場合）：

インナレプリカ機能を使用している場合に-qオプションの指定を省略すると，必ずカレントRDエリアへアクセスします。そのため，-qオプションを省略する場合は注意が必要です。

任意（処理対象が「指定したRDエリア」の場合）：

-qオプションの指定を省略しても，RDエリアの名称を直接指定することで，特定の世代番号のRDエリアを指定できます。オリジナルRDエリアでもレプリカRDエリアでも，それぞれの名称を指定できます。

注※1　

pdcopyコマンドおよびpdrstrコマンドは，-qオプションを指定しないで，RDエリア名称を直接指定して実行することもできますが，-qオプションを指定する場合とRDエリア名を直接指定する場合で処理結果が異なります。違いを次に示します。

-qオプションを指定する場合

インナレプリカグループ内のすべてのRDエリアで使用できるバックアップファイルが取得でき（pdcopyコマンド），それを使ってインナレプリカグループ内のどのRDエリアでも回復できます（pdrstrコマンド）。

RDエリア名を直接指定する場合

指定したRDエリアのバックアップファイルが取得でき（pdcopyコマンド），それを使って指定したRDエリアだけの回復ができます（pdrstrコマンド）。

注※2　

このコマンドで”ALL”を指定できるのは-qオプションを省略したときです。”ALL”を指定することで，処理対象サーバ内のすべてのRDエリアをコマンドの実行対象にできます。

注※3　

このコマンドの機能および-qオプションで世代番号を指定できるかどうかについてはHiRDBの各プラグイン製品のマニュアルを参照してください。

意図しないRDエリアへのアクセスを防ぐため，-qオプションの使い方には注意してください。なお，コマンドを複数のRDエリアに対して実行する場合，コマンドの処理対象となるすべてのRDエリアの世代番号を一致させておいてください。一致していないと，コマンドの実行エラーになります。

なお，pdrbalコマンドは，インナレプリカ機能を使用しているRDエリア（インナレプリカグループ内のRDエリア）に対して実行できません。

各コマンドの使い方，オプションの説明などについては，マニュアル「HiRDB コマンドリファレンス」を参照してください。

3.9　インナレプリカ使用時の定義系SQL実行

レプリカRDエリアを作成したあと，インナレプリカグループ内のRDエリアに対して，表，インデクスの追加，削除，表構成の変更などの定義系SQLを実行するには幾つかの条件を満たす必要があります。条件については，「インナレプリカ機能使用時の定義系SQL」を参照してください。

4　更新可能なオンライン再編成の運用方法

インナレプリカ機能を使用すると，データベースの再編成中に更新業務を実施できます。オンライン中に更新業務を実施できるデータベースの再編成を，更新可能なオンライン再編成と呼びます。

この章では，更新可能なオンライン再編成を実施するための操作手順や，その際の注意事項について説明します。

4.1　更新可能なオンライン再編成の流れ

更新可能なオンライン再編成とは，作成したレプリカのDB（Database：データベース）で一時的に業務を処理させている間にデータベース再編成を実行し，再編成終了後にレプリカのDBで行った業務処理の内容を反映させるものです。

これにより，データベース再編成中でもほとんど中断することなくデータベースの更新処理を実行できます。

更新可能なオンライン再編成の流れを次の図に示します。

図4‒1　更新可能なオンライン再編成の流れ

処理の概要を説明します。

ミラーリング機能でペアボリュームを作成します。

オンライン業務はマスタのDBで処理されています。

データベース静止化を実施します。

ペアボリュームを解除します。

カレントDBを切り替えます。

オンライン業務の処理をレプリカDBで行うよう切り替えます。

オンライン業務から切り離されたマスタのDBに対して，データベース再編成を実施します。

オンライン業務を処理しているレプリカのDBでは，システムログ反映開始ポイントが設定されます。あとで実施される追い付き反映処理では，システムログ反映終端ポイントが設定されます。

レプリカのDBで処理されたオンライン業務をマスタのDBに反映するため，システムログ反映開始ポイントおよびシステムログ反映終端ポイントを基に追い付き反映処理を実施します。

追い付き反映処理中もレプリカのデータベースの更新処理を実行できます。

追い付き反映処理が終わる時点でトランザクションの同期点を取得し，オンライン業務を行うDBをマスタに戻します。

4.2　運用前に考慮すること

更新可能なオンライン再編成を実施する上で，知っておく必要のある事項について説明します。

4.2.1　RDエリア指定（-r）で実行するか表指定（-t）で実行するか

更新可能なオンライン再編成には，RDエリアを対象に実行するものと，表を対象に実行するものがあります。どちらを対象にするかで次の表のように処理を行う単位が異なります。

表4‒1　実行対象と処理を行う単位

対象

処理を行う単位

実行方法

RDエリア

それぞれの処理は，対象となるRDエリアが格納されているバックエンドサーバごとに一括して行われます。

データベース静止化コマンド（pdorbegin）に -rオプションを指定して実行します。それに対応する次のコマンドも，正しくサーバが指定されている場合，そのオプション指定に従って実行されます。

データベース静止化コマンド（pdorbegin）

データベース切り替えコマンド（pdorchg）

追い付き反映静止化コマンド（pdorend）

表

それぞれの処理は，対象となる表が格納されているバックエンドサーバごとに一括して行われます。

対象となる表に横分割表が含まれている場合，横分割表を格納している複数のバックエンドサーバで一括して処理されます。

データベース静止化コマンド（pdorbegin）に -tオプションを指定して実行します。それに対応する次のコマンドも，正しくサーバが指定されている場合，そのオプション指定に従って実行されます。

データベース静止化コマンド（pdorbegin）

データベース切り替えコマンド（pdorchg）

追い付き反映静止化コマンド（pdorend）

なお，これらのコマンドを実行するときには，サーバを指定（-s）しなくても処理されます。指定誤りを防止するため，これらのコマンドはサーバを指定しないで実行することをお勧めします。

また，表名指定をするときは，制約種別指定オプション（-cオプション）を指定し，制約関係にある表の関連RDエリアも更新可能なオンライン再編成の対象へ含めることをお勧めします。

4.2.2　制限事項

更新可能なオンライン再編成を実施する上での，制限事項について説明します。

(1)　更新可能なオンライン再編成を実施できない表

次のような表には，更新可能なオンライン再編成を実施できません。

ディクショナリ表

レジストリ表

SGMLTEXT型，XML型，およびFREEWORD型の列以外の抽象データ型の列定義を含む表

回復指定がNOまたはPARTIALのBLOB列定義を含む表

ユニークインデクスがない表

256バイト以上のVARCHAR列，またはNULL値を許す列でユニークインデクスを構成している表

監査証跡表

CREATE TABLEでWITHOUT ROLLBACKオプションを指定した表

一時表

(2)　更新可能なオンライン再編成中に制限されるデータベース操作

RDエリアが更新可能なオンライン再編成閉塞状態の場合，次の表のようにデータベース操作が制限されます。

表4‒2　制限されるデータベース操作

データベース操作

操作対象ごとの実行可否

オリジナル

RDエリア

レプリカ

RDエリア

CREATE TABLE文，CREATE INDEX文，DROP TABLE文，DROP INDEX文，DROP SCHEMA文，ALTER TABLE文

×

×

ASSIGN LIST文，FETCH文，1行SELECT文，動的SELECT文，INSERT文，DELETE文，UPDATE文，代入文

○※1

○

PURGE TABLE文

×

×

LOCK文

○※1

○

ログ取得モードがNOのUAP

×

×

データロードユティリティ（pdload）

ログ取得モード：ALL

○

○※2

ログ取得モード：NO，またはPARTIAL

○

×

再編成ユティリティ（pdrorg）

ログ取得モード：ALL

○

×

ログ取得モード：NO，またはPARTIAL

○

×

構成変更ユティリティ（pdmod）

（RDエリア再初期化，RDエリア拡張を除く）

×

×

リバランスユティリティ（pdrbal）

×

×

最適化情報収集ユティリティ（pdgetcst）

×

×

カレントRDエリア切り替えコマンド（pddbchg）

×

×

LOB用RDエリア更新凍結コマンド（pddbfrz）

×

×

（凡例）

○：実行できます。

×：実行できません。

注※1

クライアント環境定義で，オンライン再編成を使用するUAPを実行可能にする指定（PDDBORGUAP = YES）がある場合，実行できます。詳細については「オンライン業務と更新バッチ処理の同時実行」を参照してください。

注※2

作成モードおよび一括バッファでは実行できません。またBLOB列が定義されている表では実行できません。

4.2.3　注意事項

更新可能なオンライン再編成を実施する上での注意事項について説明します。

(1)　運用前の注意事項

更新可能なオンライン再編成の運用前に注意することについて説明します。

(a)　RDエリアの管理と再編成のタイミング

RDエリアの管理と再編成のタイミングを次に示します。

関連するRDエリア※は同時にペアボリューム解除するボリューム内で管理して，同じタイミングで更新可能なオンライン再編成を行う必要があります。

更新可能なオンライン再編成の対象RDエリア内に「更新可能なオンライン再編成を実施できない表」で示した表は含まれてはいけません。

更新可能なオンライン再編成の対象RDエリアと同じHiRDBファイルシステム領域内に格納しているRDエリアに対しては，次のどちらかを実施してください。

同じタイミングで更新可能なオンライン再編成を行う。

ペアボリューム解除の間だけ，参照可能バックアップ閉塞または更新可能バックアップ閉塞にする。

レプリカRDエリアのデータをオリジナルRDエリアにコピーして障害回復を行う際に，副から正へのボリュームコピーが使用できるのは，次の場合だけです。

ボリューム内のすべてのRDエリアに対して更新可能なオンライン再編成を行っている。

ボリューム内に更新可能なオンライン再編成を行なっていないRDエリアを含む場合，オンライン再編成を行っているRDエリアのデータだけをコピーする必要があります。コピーは，pdcopy，pdrstr，pdfbkup，pdfrstr，またはpdrorgで行ってください。

注※

関連するRDエリアを次の表に示します。

表4‒3　関連するRDエリア

対象のRDエリア

関連するRDエリア

非分割表を格納するRDエリア

対象のRDエリア内の表に定義されているインデクスを格納するRDエリア

対象のRDエリア内の表に定義されているLOB列，抽象データ型の列，プラグインインデクスを格納するRDエリア

分割表を格納するRDエリア

対象のRDエリア内の表に定義されている非分割インデクスを格納する同じサーバ内のRDエリア

対象のRDエリア内の表に対応する分割インデクスを格納する同じサーバ内のRDエリア

対象のRDエリア内の表に定義されているLOB列，抽象データ型の列，プラグインインデクスを格納する同じサーバ内のRDエリア

非分割インデクスを格納するRDエリア

非分割インデクスが定義されているサーバ内分割表を格納しているRDエリア

(b)　圧縮表の追い付き反映処理をする場合

BINARY型の圧縮列がある表を追い付き反映処理する場合，データ圧縮時に付加情報が追加されるため，圧縮状況によっては圧縮前のデータサイズより大きくなることがあります。その場合，追い付き反映処理でデータを伸張するため，性能が劣化します。BINARY型の圧縮列がある表を追い付き反映処理する場合，追い付き反映処理時にデータを伸張しないように，次の条件を満たす表定義にすることを推奨します。

圧縮列の定義長（単位：バイト）≧
（↑圧縮列に格納する最大データ長÷表定義時の圧縮分割サイズ↑×8）＋圧縮列に格納する最大データ長

複数の圧縮列がある場合，各列が上記条件を満たすようにしてください。

圧縮表については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

(2)　運用中の注意事項

更新可能なオンライン再編成の運用中に注意することについて説明します。

(a)　複数RDエリアを再編成するときの追い付き反映コマンドの実行タイミング

複数のRDエリアを対象にデータベースの再編成を実行する場合，指定したすべてのRDエリアの再編成処理が終わるまで追い付き反映コマンドは実行しないでください。

複数のRDエリアを対象にデータベースの再編成を実行する場合は，再編成処理に掛かる時間が同じくらいのRDエリアを選択することをお勧めします。

(b)　複数の再編成処理の並列実行

更新可能なオンライン再編成を開始すると，追い付き反映処理が終了するまで同じサーバ内のほかのRDエリアに更新可能なオンライン再編成を実行できません。

(c)　追い付き反映処理に掛かる時間

更新可能なオンライン再編成を適用する表に対して更新する場合，次の条件のどれかを満たすとき，オリジナルRDエリアに対する追い付き反映処理に時間が掛かります。

RDエリアにSGMLTEXT型の列が含まれる

XML型の列にn-gramインデクスが定義されている

FREEWORD型の列にIXFREEWORD型インデクスが定義されている

RDエリアにユニークインデクスが複数定義されている

RDエリアのユニークキーを更新する

(d)　追い付き反映処理時のトランザクション量

レプリカRDエリアに対するトランザクション処理が多く，追い付き反映コマンドが時間内に終了しない場合は，トランザクション処理量を制限してから追い付き反映コマンドを実行する必要があります。

(e)　HiRDB再開始直後の追い付き反映コマンド（pdorend）再実行

追い付き反映コマンド（pdorend）実行中にHiRDBが異常終了した場合，HiRDBを再開始した直後に追い付き反映コマンド（pdorend）を再実行すると，ユニークキーの重複エラーが発生することがあります。この場合は，pdls -d trnコマンドでトランザクションのロールバック処理の完了を確認してから，追い付き反映コマンド（pdorend）を再実行してください。

(f)　共用RDエリアまたは共用RDエリア内の表を対象とした処理実行

処理対象のRDエリアに共用RDエリアが含まれる場合，または処理対象の表が共用RDエリアに含まれている場合，すべてのバックエンドサーバで処理が行われます。次のコマンドはサーバを指定（-s）しないで実行する必要があります。

データベース静止化コマンド（pdorbegin）

データベース切り替えコマンド（pdorchg）

追い付き反映静止化コマンド（pdorend）

(g)　共用RDエリアの更新可能なオンライン再編成閉塞状態の解除

通常，共用RDエリアを含むRDエリアを処理する場合，すべてのバックエンドサーバが対象となり，サーバを指定（-s）しないでコマンドを実行します。しかし，オンライン再編成中，一部のバックエンドサーバに障害が発生した場合，稼働しないバックエンドサーバがあるため，オンライン再編成処理を取り消せないときがあります。このようなときは，コマンドでサーバを指定（-s）して，それぞれのバックエンドサーバの閉塞状態を解除してください。

稼働中のバックエンドサーバの閉塞を解除します（-sオプション指定）。

障害が発生したバックエンドサーバの障害を取り除きます。

障害を取り除いたバックエンドサーバの閉塞を解除します（-sオプション指定）。

(h)　サーバ間で参照制約関係を持つ表が存在する場合の再編成

参照表または被参照表を格納するRDエリアは，世代を合わせて運用する必要があります。RDエリア内で複数のサーバに参照制約関係を持つ表を格納している場合，それらのサーバを同時に更新可能なオンライン再編成の対象にしてください。

(3)　その他の注意事項

(a)　オンライン再編成閉塞状態でのHiRDBの停止

オンライン再編成閉塞状態のRDエリアがあると，HiRDBは正常停止やサーバ単独停止ができません（計画停止はできます）。正常停止やサーバ単独停止を行いたい場合は，追い付き反映コマンドを正常終了するか，データベース静止化コマンドですべてのRDエリアのオンライン再編成閉塞状態を解除する必要があります。

(b)　追い付き反映処理と系切り替え

追い付き反映コマンド（pdorend）実行中に系切り替えが発生すると，コマンドは異常終了します。追い付き反映が終了しないと，反映に使用する更新ログが見積もりを超えてログが出力されることがあります。

系切り替えが発生した場合は，できるだけ早く追い付き反映コマンドを再実行してください。

(c)　RDエリア名の変更

更新可能なオンライン再編成の準備フェーズで関連RDエリアの情報を取得したあとは，取得した関連RDエリアの名称を変更しないでください。関連RDエリアの情報を取得したあとに名称を変更し，更新可能なオンライン再編成のコマンドを実行した場合に"指定したRDエリア名称がありません"のエラーになったときは，コマンドに指定したRDエリア名の修正が漏れている可能性があります。エラーになった場合は，次の図に示す運用手順および実行例を参考に，コマンドに指定したRDエリア名を修正し，再度コマンドを実行してください。

図4‒2　RDエリア名を変更する場合の運用手順（1/2）

注※1

図「RDエリア名を変更する場合の実行例」のケース1を参照してください。

注※2

図「RDエリア名を変更する場合の実行例」のケース2を参照してください。

図4‒3　RDエリア名を変更する場合の運用手順（2/2）

注※1

次の図のケース3を参照してください。

図4‒4　RDエリア名を変更する場合の実行例

[実行例の説明]

更新可能なオンライン再編成対象のRDエリアがRDエリア1，RDエリア2，RDエリア3，およびRDエリア4であったが，RDエリア2をRDエリア7に変更しています。

ケース1：

運用手順の開始以降から(1)までの間に，RDエリア名称2をRDエリア名称7に変更し，次のコマンドを実行しました。

pdrdrefls -e org -r RDエリア1,RDエリア2 -l -d','

RDエリア名称を変更したため，RDエリア2が存在しないエラーとなります。

KFPT02019-E Pdrdrefls:specified value not found in system,

RDAREA ="RDエリア2"

pdrdreflsコマンドのRDエリア名称を修正して再実行してください。

pdrdrefls -e org -r RDエリア1,RDエリア7 -l -d','

コマンドを再実行すると，次の関連RDエリアの情報が取得されます。

"RDエリア1","RDエリア7","RDエリア3","RDエリア4"

ケース2：

運用手順の(2)から(3)までの間にRDエリア名称2をRDエリア名称7に変更し，次のコマンドを実行しました。

pdorcheck -r RDエリア1,RDエリア2,RDエリア3,RDエリア4

RDエリア名称を変更したため，RDエリア2が存在しないエラーとなります。

KFPT02019-E Pdorcheck:specified value not found in system,

RDAREA="RDエリア2"

pdorcheckのRDエリア名称を変更して再実行してください。

pdorcheck -r RDエリア1,RDエリア7,RDエリア3,RDエリア4

コマンドを再実行すると次のメッセージが出力されます。

KFPT02022-I Pdorcheck:all resources conformed to Online DB

Reorganization

(すべてのRDエリアがオンライン再編成の適用条件を満たしています)

ケース3：

運用手順の(5)から(6)までの間にRDエリア名称2をRDエリア名称7に変更し，次のコマンドを実行しました。

pdorbegin -r RDエリア1,RDエリア2,RDエリア3,RDエリア4

RDエリア名称を変更したため，RDエリア2が存在しないエラーとなります。

KFPH00142-E pdorbegin command failed due to specified name

not found, RDAREA = RDエリア2

RDエリア2→RDエリア7の名称変更のエラーであるため，pdorbegin -uを実行し，いったんデータベースの静止化を取り消します。

pdorbegin -r RDエリア1,RDエリア3,RDエリア4 -u

pdorbeginのRDエリア名称を変更して再実行してください。

pdorbegin -r RDエリア1,RDエリア7,RDエリア3,RDエリア4

コマンドを再実行すると次のメッセージが出力されます。

KFPH27044-I pdorbegin command started

KFPH00130-I RDAREA held(org), RDAREA = "RDエリア1"

KFPH00130-I RDAREA held(org), RDAREA = "RDエリア1_GN1"

:

省略

:

KFPH00130-I RDAREA held(org), RDAREA = "RDエリア4"

KFPH00130-I RDAREA held(org), RDAREA = "RDエリア4_GN1"

KFPH00110-I pdorbegin command completed

KFPH27045-I pdorbegin command ended, return code = 0

関連RDエリアの情報を取得したあとにRDエリア名を変更し，更新可能なオンライン再編成の追い付き反映処理で対象RDエリアを誤って指定した場合の例を次の図に示します。また，その場合のRDエリアの回復要否および回復方法を表「RDエリアの回復要否および回復方法」に示します。

図4‒5　対象となるRDエリアを誤って指定した場合の例（1/2）

図4‒6　対象となるRDエリアを誤って指定した場合の例（2/2）

表4‒4　RDエリアの回復要否および回復方法

更新可能なオンライン再編成の対象かどうか

RDエリア名※

回復方法

例の(4)-2を実行しない場合

例の(4)-2を実行する場合

対象RDエリアである

RDエリア1，RDエリア4

回復不要

（最初から対象RDエリアであり，正しく運用されているため）

回復不要

（最初から対象RDエリアであり，正しく運用されているため）

対象RDエリアの予定であったが，対象外とした

RDエリア2（RDエリア7），RDエリア5（RDエリア8）

回復不要

（バッチ更新がない場合，副系DBをAPで更新し，追い付き反映で正系DBに反映されるが，直接正系DBがAPによって更新されていて，最終的にはDBの内容が同じになるため）

回復要

更新前のバックアップがある場合：

更新可能なオンライン再編成の運用を間違えたRDエリアだけ，バッチ更新およびAP更新ができる場合

更新前のバックアップファイルから，更新可能なオンライン再編成の対象外としたRDエリア（RDエリア2（RDエリア7），RDエリア5（RDエリア8））をバックアップ取得時点の状態に戻し，これらのRDエリア（RDエリア2（RDエリア7），RDエリア5（RDエリア8））に対してだけ，バッチ更新およびAP更新を再度実行してください。

更新可能なオンライン再編成の運用を間違えたRDエリアだけ，バッチ更新およびAP更新ができない場合

すべてのRDエリアを更新前のバックアップ取得時点に戻し，更新可能なオンライン再編成の対象RDエリアを修正し，バッチ更新およびAP更新を再度実行してください。

バックアップがない場合：

更新可能なオンライン再編成の対象外となったRDエリア（RDエリア2（RDエリア7），RDエリア5（RDエリア8））にある表のうち，バッチ更新とAP更新で同一行が更新されている行を，バッチ更新の内容とAP更新の内容を基にSQLで修正してください。

対象外のRDエリアであったが，対象とした

RDエリア3（RDエリア2），RDエリア6（RDエリア5）

回復不要（正系DBをAPで直接更新する予定であったが，副系DBをAPで更新し，追い付き反映処理で正系DBに反映され，最終的にはDBの内容が同じになるため）

回復不要（更新可能なオンライン再編成の対象外の予定であり，バッチ更新されていなければ，左記の理由によって最終的にはDBの内容が同じになるため）

注※

対象となるRDエリアを誤って指定した場合の例で使用しているRDエリア名です。括弧内は名称変更後のRDエリア名を示しています。

4.3　運用の手順

更新可能なオンライン再編成の運用手順について，運用前の準備と運用に分けて説明します。また，更新可能なオンライン再編成の中止方法について説明します。

4.3.1　更新可能なオンライン再編成の準備

更新可能なオンライン再編成の準備手順とその例を示します。

(1)　更新可能なオンライン再編成の準備手順

更新可能なオンライン再編成の準備には，RDエリアの物理配置の検討，各種定義の設定，ペアボリュームの定義などを含みます。これらの作業は更新可能なオンライン再編成のたびに実施する必要はありません。これらの作業は一度しか実施しません。

更新可能なオンライン再編成の準備は次の図に示す手順で行います。

図4‒7　更新可能なオンライン再編成の準備

RDエリアの物理配置の検討

更新可能なオンライン再編成を実施するRDエリアのボリューム内の物理配置を検討します。検討のポイントを次に示します。

レプリカ作成ガイドラインを満たしているか

更新可能なオンライン再編成ではインナレプリカ機能を使用するため，レプリカ作成ガイドラインも考慮する必要があります。インナレプリカ機能に関する考慮点については，「運用前に考慮すること」を参照してください。

同じボリュームにインナレプリカ機能単独で使用されるRDエリアがないか

更新可能なオンライン再編成では，マスタDBとレプリカDBが一時的に切り替わるため，それとは別のレプリカを使用する作業（インナレプリカ機能を使うが更新可能なオンライン再編成を行わないRDエリア）に運用上悪い影響がないかを考慮する必要があります。

システム定義の設定

HiRDBを停止して，システム定義を設定します。更新可能なオンライン再編成を行うためには，次に示すシステム共通定義オペランドを設定する必要があります。オペランドに指定できる値の詳細については，マニュアル「HiRDB システム定義」を参照してください。システム定義ファイルのパーミッションは，ファイルの所有者（HiRDB管理者）にだけ，読み込み権限および書き込み権限を持たせるように設定してください。

pd_max_reflect_process_count

追い付き反映コマンド（pdorend）で，HiRDBが保証するpdorend追い付き反映プロセスの同時実行数です。HiRDB/シングルサーバの場合はシステム全体，HiRDB/パラレルサーバの場合はFES一つ当たりの数で指定します。

このオペランドを指定するときの留意事項については「pd_max_reflect_process_countオペランドの留意事項と見積もり」を参照してください。

pd_log_org_reflected_logpoint

追い付き反映処理が完了したあと，システムログファイルの状態を変更するかを指定します。これは，障害が発生したときにどのように対処したいかによって設定が異なります。設定値による障害対策方法の違いについては，「システムログとオペランドの設定」を参照してください。

通常は，keepを設定することをお勧めします。

pd_log_org_no_standby_file_opr

すべてのシステムログファイルがオンライン再編成上書き禁止状態の場合に，スワップが発生したときのHiRDBの処理を指定します。これは，障害が発生したときにどのように対処したいかによって設定が異なります。設定値による障害対策方法の違いについては，「システムログとオペランドの設定」を参照してください。

通常は，stopを設定することをお勧めします。

関連RDエリアの確認（pdrdrefls）

RDエリアに対して更新可能なオンライン再編成を実施する場合，同時にカレントデータベース切り替えの実施対象として指定しなければいけないRDエリア（関連RDエリア）を確認します。

すべての関連RDエリアに対して同じタイミングでカレントデータベース切り替えを実施しないと，オンライン業務のアクセスがエラーになります。また，制約種別指定オプション（-cオプション）を指定し，制約関係にある表の関連RDエリアも入力情報へ含めることをお勧めします。

RDエリア指定の場合

このコマンドの出力結果は，運用時に更新可能なオンライン再編成の入力情報として使用できます※。

注※

入力情報として使用できるのは，出力結果のRDエリア数が128個以下の場合です。129個以上ある場合は，出力された複数のRDエリアをグループ化して128個以下にしてください。複数のRDエリアのグループ化（RDエリア名一括指定）については，マニュアル「HiRDB コマンドリファレンス」を参照してください。

表指定の場合

このコマンドの出力結果を，運用時に更新可能なオンライン再編成の入力情報として使用する必要があります。

レプリカRDエリアの定義

構成変更ユティリティ（pdmod）で，HiRDBファイルシステム領域の複製世代登録定義（create generation）とレプリカRDエリア定義（replicate rdarea）を行います。更新可能なオンライン再編成を行うRDエリア（関連RDエリア含む）には，すべてレプリカRDエリアの定義を行ってください。

なお，レプリカRDエリアが使用するグローバルバッファには，通常オリジナルRDエリアと同じものを割り当てます。メモリ資源に余裕がある場合は，オリジナルRDエリアと同じ面数のグローバルバッファを用意して，競合しないようにすることをお勧めします。レプリカRDエリアに別のグローバルバッファを割り当てるためには，HiRDBを正常停止する必要があります。

適用条件の確認（pdorcheck）

更新可能なオンライン再編成が実施できるRDエリアかどうかを確認します。該当RDエリア内に更新可能なオンライン再編成が実施できない表があると，追い付き反映処理がエラーとなり，業務をオリジナルRDエリアに戻せません。

ペアボリュームの定義

更新可能なオンライン再編成を実施するマスタDBとレプリカRDエリアが定義されているボリュームを二重化します。

操作方法については，使用するミラーリング機能のマニュアルを参照してください。日立ディスクアレイシステムを使用している場合は，まず「日立ディスクアレイシステム使用時の注意事項および操作手順」を参照してください。

追い付き状態管理表の作成（pdorcreate）

追い付き反映処理をするためには，オリジナルRDエリアに反映処理を管理するための表（追い付き状態管理表）を作成する必要があります。

追い付き状態管理表は，更新可能なオンライン再編成の対象RDエリアとは別のRDエリアに作成します。追い付き反映処理を行うサーバごとに追い付き状態管理表を格納するRDエリアを用意して，追い付き状態管理表を作成することをお勧めします。

なお，更新可能なオンライン再編成の対象RDエリアと同じRDエリアに追い付き状態管理表を作成すると，追い付き反映コマンドを正常に実行できません。

(2)　更新可能なオンライン再編成の準備例

更新可能なオンライン再編成の準備例を示します。ここで更新可能なオンライン再編成を行うRDエリアの構成は次の図のとおりになります。再編成するRDエリアは，RDTBLとします。

図4‒8　更新可能なオンライン再編成を行うRDエリア構成

RDエリアの物理配置の検討

関連RDエリアの物理配置を決定します。

システム定義の設定

HiRDBの停止

HiRDBを正常停止します。

pdstop

システム定義の追加

システム共通定義に次の定義を追加します。

pd_max_reflect_process_count = 8
pd_log_org_reflected_logpoint = keep
pd_log_org_no_standby_file_opr = stop

HiRDBの開始

HiRDBを正常開始します。

pdstart

関連RDエリアの確認（pdrdrefls）

再編成したいRDエリア「RDTBL」または表「T1」の関連RDエリアを確認します。このとき，出力結果をデータベース静止化（pdorbegin）実行時の入力情報として利用できるよう「，」区切りで出力するよう指定します。

RDエリア指定の場合

pdrdrefls -e org -r RDTBL -l -d ',' -c ref

［引数の説明］

-e：関連の種別を指定します。

-r：マスタDBにある再編成する表格納RDエリアの名称を指定します。

-l：出力情報の各情報を改行しないで表示することを指定します。

-d：関連RDエリアの区切り文字を指定します。

-c：参照制約関係にある表の関連RDエリア名を，含めて表示する場合に指定します。

表指定の場合

pdrdrefls -e org -t T1 -l -d ',' -c ref

［引数の説明］

-e：関連の種別を指定します。

-t：表識別子を指定します。

-l：出力情報の各情報を改行しないで表示することを指定します。

-d：関連RDエリアの区切り文字を指定します。

-c：参照制約関係にある表の関連RDエリア名を，含めて表示する場合に指定します。

実行結果が，次のように出力された場合，RDTBLの関連RDエリアは，RDIDXおよびRDLOBということになります。

"RDTBL","RDIDX","RDLOB"

レプリカRDエリアの定義

HiRDBファイルシステム領域の複製世代登録

HiRDBファイルシステム領域の複製世代登録を行います。

pdmod -a /usr/pdmod/crtgen

制御文crtgenの内容は次のとおりです。

create generation for HiRDB file system area "/hirdb/area1" …（a）
server name bes1                                            …（b）
generation number 1                                         …（c）
reproduce "/hirdb/area";                                    …（d）

（a）　複製するHiRDBファイルシステム領域名を指定します。

（b）　サーバ名称を指定します。

（c）　世代番号を指定します。

（d）　マスタのHiRDBファイルシステム領域名を指定します。

レプリカRDエリアの定義

レプリカRDエリアを定義します。

pdmod -a /usr/pdmod/reparea

制御文repareaの内容は次のとおりです。

replicate rdarea RDTBL_1 globalbuffer buftbl01              …（a）
reproduce RDTBL generation number 1;                        …（b）
replicate rdarea RDIDX_1 globalbuffer buftbl02              …（a）
reproduce RDIDX generation number 1;                        …（b）
replicate rdarea RDLOB_1 globalbuffer buftbl03              …（a）
reproduce RDLOB generation number 1;                        …（b）

（a）　作成するレプリカRDエリア名とそれに割り当てるグローバルバッファを指定※します。

（b）　複製元のRDエリア名とレプリカの世代番号を指定します。

注※

次回のHiRDB開始以降は，ここで指定したグローバルバッファを割り当てることはできません。したがって，この運用後のHiRDB終了時にはシステム共通定義のpdbufferオペランドでグローバルバッファを割り当てる必要があります。

適用条件の確認（pdorcheck）

RDTBLに更新可能なオンライン再編成を適用できるか確認します。

pdorcheck -r "RDTBL","RDIDX","RDLOB"

［引数の説明］

-r：マスタDBにある再編成する表格納RDエリアの名称を指定します。

ペアボリュームの定義

マスタDBのボリューム（/hirdb/area）への更新がレプリカDBのボリューム（/hirdb/area1）に反映されるように，ボリュームを二重化します。

操作方法については，使用するミラーリング機能のマニュアルを参照してください。日立ディスクアレイシステムを使用している場合は，まず「日立ディスクアレイシステム使用時の注意事項および操作手順」を参照してください。

追い付き状態管理表の作成（pdorcreate）

追い付き状態管理表を作成します。

pdorcreate -o RDRMT

［引数の説明］

-o：追い付き状態管理表を作成するRDエリアを指定します。

4.3.2　更新可能なオンライン再編成の運用

更新可能なオンライン再編成の運用方法について説明します。

(1)　更新可能なオンライン再編成の運用手順

更新可能なオンライン再編成の運用手順を次の図に示します。

図4‒9　更新可能なオンライン再編成の運用手順

レプリカRDエリアおよびペアボリュームの状態確認

更新可能なオンライン再編成を実施する前に，次のことを確認します。

レプリカRDエリアがコマンド閉塞かつクローズ状態になっている（pddblsコマンドで確認）。

ペアボリュームがペア状態になっている。

上記の状態になっていない場合，次の操作をします。

レプリカRDエリアをpdhold -cコマンドでコマンド閉塞かつクローズ状態にする。

ペアボリュームを再同期して，ペア状態にする。

ペアボリュームのペア状態の確認および再同期の方法については，使用するミラーリング機能のマニュアルを参照してください。日立ディスクアレイシステムを使用している場合は，「日立ディスクアレイシステム使用時の注意事項および操作手順」を参照してください。

更新可能なオンライン再編成用のデータベースの静止化（pdorbegin）

データベースの静止化コマンド（pdorbegin）を実行します。実行すると，RDエリア指定の場合は指定したオリジナルRDエリアと指定された世代のレプリカRDエリアが，表指定の場合は指定した表の関連RDエリアのオリジナルRDエリアと指定された世代のレプリカRDエリアが，オンライン再編成閉塞状態になります。

このコマンドを実行してから，項番4（カレントデータベース切り替え（pdorchg））が終了するまで，静止化したRDエリアへのアクセスは待ち状態になります。

注意

更新可能なオンライン再編成を実施したい同一サーバ内のRDエリアは1回のコマンドで指定してください。同一サーバ内にオンライン再編成機能閉塞状態のRDエリアがある場合は，更新可能なオンライン再編成の運用終了後に再度実行してください。

ペアボリュームの解除

「更新可能なオンライン再編成の準備」で定義した二重化したボリュームを解除します。解除方法については，使用するミラーリング機能のマニュアルを参照してください。日立ディスクアレイシステムを使用している場合は，まず「日立ディスクアレイシステム使用時の注意事項および操作手順」を参照してください。

カレントデータベース切り替え（pdorchg）

カレントデータベース切り替えコマンド（pdorchg）を実行します。実行すると，RDエリア指定の場合はオンライン業務に使用されるRDエリアがサーバ単位に，表指定の場合はオンライン業務に使用されるRDエリアがすべてのサーバで一括して切り替わります。

このコマンドが終了すると，項番1（データベースの静止化（pdorbegin））で待ち状態になっていたアクセスが可能になります。

（任意）再編成前バックアップの取得

データベース再編成ユティリティ（pdrorg）での障害に備えて，データベース複写ユティリティ（pdcopy）で静止化したRDエリアのバックアップを取得します。

この操作は任意ですが，行わない場合は，更新可能なオンライン再編成の運用に入る前にバックアップを取得しておくことをお勧めします。

バックアップの取得方法については，マニュアル「HiRDB システム運用ガイド」を参照してください。

また，pdcopyコマンドの実行前に，pdlogswap -d sys -wコマンドを実行してシステムログファイルをスワップしてください。

データベースの再編成（pdrorg）

オンライン再編成閉塞状態のオリジナルRDエリアまたはオリジナルRDエリアに定義されている表に対して，データベース再編成ユティリティ（pdrorg）を実行します。項番4（（任意）再編成前バックアップの取得）でバックアップを取得していない場合は，ログ取得モードで実行してください。

（任意）再編成後バックアップの取得

データベース再編成ユティリティ（pdrorg）実行後の障害に備えて，データベース複写ユティリティ（pdcopy）で再編成後のRDエリアのバックアップを取得します。この操作は任意ですが，項番5（データベースの再編成）でログを取得しないで再編成を実行した場合は必須です。

バックアップの取得方法については，マニュアル「HiRDB システム運用ガイド」を参照してください。

また，pdcopyコマンドの実行前に，pdlogswap -d sys -wコマンドを実行してシステムログファイルをスワップしてください。

追い付き反映処理（pdorend）

追い付き反映コマンド（pdorend）を実行します。これにより，次の処理が行われます。

データベースの再編成中にカレントデータベース（現在はレプリカDB）に行われた更新処理のマスタDBへの反映

マスタDBとレプリカDBの切り替え（カレントデータベースをマスタDBに変更）

カレントデータベースの変更処理では，カレントがマスタDBになるまでは，RDエリアへのアクセスは待ち状態になります。

ファイルアクセス停止（pdpfresh）

ペアボリュームの再同期を行う前に，ファイルアクセス停止コマンド（pdpfresh）で動作中のすべてのプロセスを停止します。この時点でレプリカRDエリアへアクセスしていた可能性のあるプロセスが存在しない場合は実行する必要はありません。RDエリアの属性がSCHEDULEの場合も実行する必要はありません。

プロセス停止の確認には，次のコマンドを実行してください。

pdls -d prc -c

［引数の説明］

-d：コマンド種別を指定します。

-c：アクセスしているプロセスを表示するオプションです。

ペアボリューム再同期

項番2（ペアボリュームの解除）で解除したペアボリュームを再同期します。これで，更新可能なオンライン再編成の実施前の状態に戻ります。日立ディスクアレイシステムを使用している場合は，「日立ディスクアレイシステム使用時の注意事項および操作手順」を参照してください。

更新可能なオンライン再編成を複数回行う場合の運用手順を次の図に示します。

図4‒10　更新可能なオンライン再編成を複数回行う場合の運用手順

まず，1回目のデータベースの再編成を，運用フェーズの項番1〜8の流れで実施します。

次のデータベースの再編成の対象RDエリアに，一つ前に行ったデータベースの再編成と同じものが含まれている場合，運用フェーズの項番9を行ってから運用フェーズの項番1〜8を実施します。一つ前に行ったデータベースの再編成と同じものが含まれていない場合は，そのまま運用フェーズの項番1〜8を実施します。つまり，あるRDエリアに対して連続して再編成を実施する場合は，運用フェーズ項番9（ペアボリュームの再同期）してから，やり直します。

必要な回数これらを繰り返し，すべての再編成が終了したら通常運用に戻ります。

データベースの再編成をRDエリア単位またはサーバ単位で実施すると，ペアボリュームの再同期をしないで次のデータベースの再編成ができて効率が良くなります。

(2)　更新可能なオンライン再編成の運用例

更新可能なオンライン再編成の運用例を示します。ここで更新可能なオンライン再編成を行うRDエリアの構成は「更新可能なオンライン再編成の準備例」で行ったものと同じとします。

更新可能なオンライン再編成用のデータベースの静止化（pdorbegin）

関連RDエリア（RDTBL，RDIDX，RDLOB）を静止化します。

RDエリア指定の場合

準備フェーズで確認した関連RDエリアを指定して，データベースの静止化をします。

pdorbegin -r "RDTBL","RDIDX","RDLOB" -q 1 -w 60

［引数の説明］

-r：静止化するマスタのRDエリアを指定します。

-q：世代番号を指定します。

-w：排他待ち時間を指定します。

表指定の場合

処理対象の表を指定して，データベースの静止化をします。

pdorbegin -t T1 -q 1 -w 60 -c ref

［引数の説明］

-t：静止化する表識別子を指定します。

-q：世代番号を指定します。

-w：排他待ち時間を指定します。

-c：参照制約関係にある表の関連RDエリアを，実行対象へ含める場合に指定します。

関連RDエリアの確認コマンド（pdrdrefls）では，関連RDエリア名をコンマ（，）区切りで出力できるため，その出力をデータベースの静止化コマンドの入力に利用することができます。関連RDエリアが多い場合などに利用すると便利です。このとき，制約種別指定オプション（-cオプション）を指定し，制約関係にある表の関連RDエリアも入力情報へ含めることをお勧めします。例えば，RDTBLの関連RDエリアをコンマ区切りで標準出力する場合は次のように実行します。

pdrdrefls -e org -r RDTBL -s bes1 -l -d ',' -c ref

ペアボリュームの解除

ペアボリュームを解除します。操作方法については，使用するミラーリング機能のマニュアルを参照してください。日立ディスクアレイシステムを使用している場合は，まず「日立ディスクアレイシステム使用時の注意事項および操作手順」を参照してください。

カレントデータベース切り替え（pdorchg）

カレントのRDエリアを切り替えます。

pdorchg -s bes1

［引数の説明］

-s：再編成を行うバックエンドサーバ名を指定します。

（任意）再編成前バックアップの取得

再編成前のオリジナルRDエリアのバックアップを取得します。

pdcopy -m /hirdb/rdarea/rdmast/rdmast00 -M r -r RDTBL,RDIDX,RDLOB -q 0 -b /bkdir/bkup01 -p /bkdir/list01

［引数の説明］

-m：マスタディレクトリ用RDエリアの先頭HiRDBファイル名を指定します。

-M：バックアップ取得モードを指定します。

-r：オリジナルRDエリアを指定します。

-q：バックアップ対象のRDエリアの世代番号を指定します。

-b：バックアップファイル名を指定します。

-p：pdcopyコマンドの処理結果リストの出力先を指定します。

バックアップの取得方法については，マニュアル「HiRDB システム運用ガイド」を参照してください。

また，pdcopyコマンドの実行前に，pdlogswap -d sys -wコマンドを実行してシステムログファイルをスワップしてください。

データベースの再編成

オリジナルRDエリアを再編成します。

pdrorg -k rorg -t T1 -r RDTBL -q 0 -l p -n 128 /user/rorg/rorg01

［引数の説明］

-k：再編成処理種別を指定します。

-t：再編成する表の名称を指定します。

-r：再編成する表の格納RDエリアのオリジナルRDエリア名を指定します。

-q：再編成するRDエリアの世代番号を指定します。

-l：ログ取得方式を-p（更新前ログモード）で指定します。

-n：一括入出力ページ数を指定します。

/user/rorg/rorg01：pdrorgコマンドの制御文ファイル名を指定します。

（任意）再編成後バックアップの取得

再編成前のオリジナルRDエリアのバックアップを取得します。

pdcopy -m /hirdb/rdarea/rdmast/rdmast00 -M r -r RDTBL,RDIDX,RDLOB -q 0 -b /bkdir/bkup02 -p /bkdir/list02

［引数の説明］

-m：マスタディレクトリ用RDエリアの先頭HiRDBファイル名を指定します。

-M：バックアップ取得モードを指定します。

-r：オリジナルRDエリアを指定します。

-q：バックアップ対象のRDエリアの世代番号を指定します。

-b：バックアップファイル名を指定します。

-p：pdcopyコマンドの処理結果リストの出力先を指定します。

バックアップの取得方法については，マニュアル「HiRDB システム運用ガイド」を参照してください。

また，pdcopyコマンドの実行前に，pdlogswap -d sys -wコマンドを実行してシステムログファイルをスワップしてください。

データベース追い付き反映（pdorend）

データベース追い付き反映コマンドを実行します。実行すると，次の処理が行われます

再編成中にレプリカDBに行われた更新処理がマスタDBに反映される。

カレントDBがマスタDBに切り替えられる。

マスタDBとレプリカDBが同期する。

データベースのオンライン再編成閉塞状態が解除される。

pdorend -s bes1

［引数の説明］

-s：再編成を行ったバックエンドサーバを指定します。

システム共通定義のpd_check_pendingオペランドの値にUSEを指定した場合，更新可能なオンライン再編成の追い付き反映処理後に，オリジナル世代の参照表が検査保留状態になります。

ファイルアクセス停止（pdpfresh）

カレントデータベースを切り替えたあとのレプリカRDエリアにアクセスしていた可能性のあるHiRDB常駐プロセスをすべて停止します。

pdpfresh -s bes1

［引数の説明］

-s：再編成を行ったバックエンドサーバ を指定します。

レプリカRDエリアにアクセスしているプロセスがないことを確認します。

pdls -d prc -c

［引数の説明］

-d：コマンド種別を指定します。

-c：アクセスしているプロセスを表示するオプションです。

実行結果のSTATUSの部分に"L"が表示された場合，アクセスしているプロセスがないことを意味します。"C"の場合，まだすべてのアクセスが停止していないことを意味します。"L"が表示されるまで待つ必要があります。

HOSTNAME:h9000vr4(183629)
STATUS   PID  UID  GID  SVID  TIME   PROGRAM  C-PID       C GRP
L        28   439  200  bes1  183545 pdhold   3324(172.18.32.25) PC

ペアボリューム再同期

分離していたペアボリュームを再同期します。操作方法については，使用するミラーリング機能のマニュアルを参照してください。日立ディスクアレイシステムを使用している場合は，まず「日立ディスクアレイシステム使用時の注意事項および操作手順」を参照してください。

4.3.3　更新可能なオンライン再編成の取り消し

「オリジナルRDエリアに障害が発生した」，または「ログファイルが不足する」などの理由でオンライン再編成実行を中止する場合，追い付き反映コマンド(pdorend)に-uオプションを指定して実行することにより，更新可能なオンライン再編成状態を取り消すことができます。

カレントデータベースの切り替え後に取り消した場合，業務はレプリカDBで続行します。オリジナルRDエリアは，データ不整合が発生しているため，データを参照できません。オリジナルRDエリアは業務終了後，回復する必要があります。更新可能なオンライン再編成の取り消し方法については，次の表を参照してください。

表4‒5　更新可能なオンライン再編成の取り消し

取り消しのタイミング

操作

カレントデータベース切り替え実行前

pdorbeginに-uオプションを指定して実行し，更新可能なオンライン再編成の状態を取り消してください。

RDエリア指定の場合

pdorbegin -r "RDTBL","RDIDX","RDLOB" -u

表指定の場合

pdorbegin -t T1 -c ref -u

-c：参照制約関係にある表の関連RDエリアを，実行対象へ含める場合に指定します。

カレントデータベース切り替え実行以降

pdorendに-uオプションを指定して実行し，更新可能なオンライン再編成の状態を取り消してください。

取り消したあとは，レプリカRDエリアで業務を継続できます。オリジナルRDエリアは，データ不整合が発生しているため，データを参照しないでください。次のどちらかの方法でマスタDBを回復する必要があります。

方法1　HiRDBを停止しないで，アクセスを制限し，マスタDBを回復する。

レプリカRDエリアを参照可能バックアップ閉塞状態にします（pdhold -b）

レプリカDBのバックアップを取得します（pdcopy -q 1）

オリジナルRDエリアを閉塞クローズします（pdhold -c）

取得したバックアップを使って，オリジナルRDエリアを回復します（pdrstr -q 0）

オリジナルRDエリアの閉塞を解除します（pdrels -o）

カレントデータベース切り替えコマンドを実行します（pddbchg -q 0）

レプリカRDエリアの参照可能バックアップ閉塞状態を解除し，閉塞かつクローズ状態にしておきます（pdrels ,pdhold -c）

バックアップの取得方法については，マニュアル「HiRDB システム運用ガイド」を参照してください。

また，pdcopyコマンドの実行前に，pdlogswap -d sys -wコマンドを実行してシステムログファイルをスワップしてください。

方法2　HiRDBを停止して，マスタDBを回復する。

オリジナルRDエリアとレプリカRDエリアをコマンド閉塞状態にします（pdhold -r オリジナルRDエリア，レプリカRDエリア -c）

カレントデータベース切り替えコマンドを実行します（pddbchg -q 0）

HiRDBを停止します（pdstop）

ボリュームをペア状態にして，レプリカDBの状態をマスタDBに反映します(pairresync -restore)。「ミラーリング方式の違いによる注意事項」の「ペア再同期のリストア機能」を参照してください

HiRDBを開始します（pdstart）

レプリカRDエリアからバックアップを取得しておきます（pdcopy -q 1）

バックアップの取得方法については，マニュアル「HiRDB システム運用ガイド」を参照してください。

また，pdcopyコマンドの実行前に，pdlogswap -d sys -wコマンドを実行してシステムログファイルをスワップしてください。

4.4　オンライン業務と更新バッチ処理の同時実行

通常，更新可能なオンライン再編成では，オンライン再編成閉塞状態のオリジナルRDエリアに対して，業務プログラムを実行できません。しかし，クライアント環境定義のPDDBORGUAPをYESと指定することで，レプリカRDエリアでのオンライン業務中に，オリジナルRDエリアを業務プログラム（バッチ処理）で操作できます。

オンライン再編成閉塞状態のRDエリアに対する，オンライン業務と更新バッチ処理のイメージを次の図に示します。

図4‒11　RDエリアに対するオンライン業務と更新バッチ処理

更新バッチ処理が終了したあと，追い付き反映処理を行うことで，レプリカRDエリアで更新されたオンライン業務のデータを，オリジナルRDエリアに反映します。オンライン業務で更新するデータと，更新バッチ処理で操作するデータの整合性はチェックされません。このため，オンライン業務と同時に実行できる更新バッチ処理は，オンライン業務で操作しないデータ（行）を更新する処理に限ります。

注意事項

バッチ業務とオンライン業務で更新する行が重複した場合，バッチ業務の更新内容によってはデータの不整合が発生する可能性があります。詳細は，「更新バッチ処理の条件」を参照してください。

4.4.1　更新バッチ処理の流れ

オリジナルRDエリアに更新バッチ処理を行う場合，更新可能なオンライン再編成と同じく，作成したレプリカRDエリアで一時的に業務を処理させ，その間に更新バッチ処理を実行します。更新バッチ処理が終了したあとに，レプリカRDエリアで行った業務を反映させます。

オンライン業務と更新バッチ処理を同時に実行する流れを次の図に示します。

図4‒12　オンライン業務と更新バッチ処理の同時実行の流れ

処理は「更新可能なオンライン再編成の運用」とほぼ同じです。手順5 データベースの再編成を行う代わりに，更新バッチ処理を行います。

4.4.2　制限事項

オンライン業務と更新バッチ処理の同時実行を行う上での制限事項について説明します。

(1)　更新バッチ処理の条件

オンライン業務と同時に実行する更新バッチ処理が，オンライン業務で操作するデータ（行）と重複するデータを更新する場合，更新列だけを反映する追い付き反映処理を使用する必要があります。このためpdorbeginコマンドに-eオプションを指定して実行します。

オンライン業務と同時に実行する更新バッチ処理と，オンライン業務で操作するデータ（行）が重複しない場合は，更新列だけの反映処理を使用する必要はありません。

更新列だけの反映処理を使用しないで，更新バッチ処理での更新とオンライン業務の更新するデータ（行）が重複した場合は，バッチの更新内容は保証できません。

更新バッチ処理の後にオンライン業務を反映した場合の結果を次の表に示します。

表4‒6　更新列だけの反映処理を使用しない場合の更新バッチ処理後にオンライン業務を反映した結果

更新バッチ処理

オンライン業務

処理内容

行の重複

INSERT文

DELETE文

UPDATE文

INSERT文

なし

○

○

○

あり

×

（ユニークエラー）

△※３

（削除されます）

△※１※３

DELETE文

なし

○

○

○

あり

△※４

（INSERTされます）

×

（NOT FOUND）

×

（NOT FOUND）

UPDATE文

なし

○

○

○

あり

×

（ユニークエラー）

△※３

（DELETEされます）

△※１※２※３

キー値更新

なし

○

○

○

あり

×

（ユニークエラー）

×

（NOT FOUND）

×

（NOT FOUND）

（ユニークエラー）

（凡例）

○：反映処理は正常に実行されます。

△：オンライン業務後の結果になります。

×：追い付き反映処理でエラーになります。

注※１

結果を保証できません。オンライン業務で更新した行の列以外の列がオンライン業務での更新行のデータで上書きされることがあります。

注※２

繰返し列の場合の結果については，次の表を参照してください。

注※３

オンライン業務で更新した内容がロールバックされると，バッチ業務の更新が無効（オンライン業務の更新前に戻される）となる場合があります。

注※４

オンライン業務で更新した内容がロールバックされると，更新バッチ処理の更新が有効となります。

表4‒7　繰返し列の場合の更新バッチ処理後にオンライン業務を反映した結果

バッチ処理

オンライン業務（UPDATE文）

ADD指定

DELETE指定

SET指定

UPDATE文

ADD指定

条件１

条件２

△※１※２

△※１※２

△※１※２

×

（最大要素数超過）

DELETE指定

△※１※２

条件３

条件４

条件３

条件４

×

（該当要素なし）

△※１※２

×

（該当要素なし）

△※１※２

SET指定

条件５

条件６

条件７

同一要素更新あり

条件８

同一要素更新なし

同一要素更新あり

△※１※３

○

△※１※３

△※１

（DELETEされる）

○

○

△※１

（上書きUPDATE）

（凡例）

○：反映処理は正常に実行されます。

△：バッチ業務実行後オンライン業務が実行された結果となります。

×：追い付き反映処理でエラーとなります。

条件１

バッチ業務で追加後の要素数とオンライン業務で追加する要素数を加えた数が，最大要素数を超えない場合

条件２

バッチ業務で追加後の要素数とオンライン業務で追加する要素数を加えた数が，最大要素数を超える場合

条件３

オンライン業務の対象となる要素で，存在しない要素がある場合

条件４

オンライン業務の対象となる要素がすべて存在する場合

条件５

バッチで更新した要素番号以下の要素番号から要素を追加した場合

条件６

バッチで更新した要素番号より大きい要素番号から要素を追加した場合

条件７

バッチで更新した要素番号より小さいの要素番号の要素を削除した場合

条件８

バッチで更新した要素番号より大きい要素番号の要素を削除した場合

注※１

結果を保証できません。

注※２

バッチ業務での，UPDATE ADDまたはUPDATE DELETEによって，要素数の増減があるとオンライン業務での実行結果が期待した要素に対して実行されない可能性があります。

注※３

オンライン業務でUPDATE ADDまたはUPDATE DELETEを行うと，バッチ業務で更新した要素の位置がずれてしまう可能性があります。

更新列だけを反映する追い付き反映処理は，オンライン業務と更新バッチ処理の実行が，更新バッチ処理で更新（UPDATE）した行とオンライン業務で更新（UPDATE）した行が重複した行でも更新する列が異なる場合，バッチの更新内容を保証する機能です。

オンライン業務で行更新（ROW更新）またはFIX表の列更新で全列を更新した場合は，実際に列の値が更新された列だけオリジナルRDエリアの表の更新を行います。オンライン業務でSET句またはDELETE句で繰返し列にない要素番号を指定したUPDATE文を実行した場合，存在しなかった要素の更新は行いません。オンライン業務の更新種別，更新対象および追い付き反映処理の更新対象列を表「オンライン業務の更新種別，更新対象および追い付き反映処理の更新対象列」に，繰返し列の場合のオンライン業務の更新対象要素，および追い付き反映処理の更新対象を表「繰返し列の場合のオンライン業務の更新対象要素，および追い付き反映処理の更新対象」に示します。

表4‒8　オンライン業務の更新種別，更新対象および追い付き反映処理の更新対象列

オンライン業務

追い付き反映処理の更新対象列

表種別

更新種別

更新対象列

FIX表

行更新（ROW）

−

更新前後で異なる値の列

列更新

全列更新

更新前後で異なる値の列

上記以外

UPDATE文で更新対象に記述した行

非FIX表

行更新（ROW）

−

−

列更新

全列更新

UPDATE文で更新対象に記述した列。ただし，繰返し列の場合，UPDATE文に列を記述しても，要素の更新がない列は更新対象外です。

上記以外

（凡例）

−：該当しません。

表4‒9　繰返し列の場合のオンライン業務の更新対象要素，および追い付き反映処理の更新対象

オンライン業務でのUPDATE SETまたはUPDATE DELETEの更新対象要素

追い付き反映処理の更新対象

存在する

更新対象

存在しない

更新対象外

更新バッチ処理で更新した行とオンライン業務で更新した行が同じ行で，なおかつ，同じ列の更新を行った場合，更新内容は保証できません。更新バッチ処理の更新対象とオンライン業務の更新対象および更新結果を次の表に示します。

表4‒10　更新バッチ処理とオンライン業務の更新対象および更新結果

バッチ処理で更新の行とオンライン業務で更新の行

バッチ処理で更新の列とオンライン業務で更新の列

更新結果

異なる

−

○

重複している

異なる

○

重複している

×

（凡例）

○：保証します。

×：保証しません。

−：該当しません。

更新列だけの反映処理を使用する場合は，pdorbeginコマンドに-eオプションを指定して実行してください。

(2)　追い付き反映処理でのエラーのスキップ

追い付き反映処理で論理的なエラーが発生する場合，pdorend（追い付き反映処理コマンド）に-fオプションを指定して実行します。-fオプションでは追い付き反映処理の制御文が指定でき，ここで反映エラースキップを指定することで，エラーが生じたデータを無視して，追い付き反映処理を続行できます。エラーとなったデータ情報は，制御ファイルで指定したスキップ情報ファイルに出力します。

追い付き反映処理でのエラーをスキップする機能の概要を次の図に示します。

図4‒13　追い付き反映処理でのエラーのスキップ機能

反映をスキップしたデータを，データベースに反映するかどうかはユーザが判断します。反映する場合はSQLなどを実行して，データベースの整合性を回復します。

4.4.3　注意事項

オンライン業務と更新バッチ処理の同時実行を行う上での注意事項について説明します。

(1)　参照表更新時の注意

追い付き反映処理を行う場合，更新バッチ処理で対象となる表に参照表，および被参照表が含まれていても，参照制約のチェックは行われません。そのため，参照制約に違反するデータが発生するおそれがあります。

したがって，更新バッチ処理で参照表，および被参照表からキーを削除する場合，オンライン業務で削除するキーにデータが追加されないことを確認する必要があります。

また，追い付き反映処理でのエラーをスキップしていた場合，必ず参照制約のある表間でのデータ整合性も検証してください。検証方法については，マニュアル「HiRDB システム導入・設計ガイド」を参照してください。

なお，システム共通定義のpd_check_pendingオペランドの値にUSEを指定した場合，更新可能なオンライン再編成の対象としたオリジナル世代の関連RDエリア内の参照表が検査保留状態になります。

(2)　追い付き反映処理の開始

追い付き反映処理は，必ず更新バッチ処理が終了してから実行してください。更新バッチ処理の終了前に，追い付き処理を実行すると，タイムアウトまたはデッドロックが発生することがあります。その場合，更新バッチ処理が終了したことを確認したあと，再度，追い付き反映処理を実行してください。

5　障害対策

この章では，更新可能なオンライン再編成を実行中に発生した障害への対策方法について説明します。

5.1　更新可能なオンライン再編成実行時の障害

更新可能なオンライン再編成を実行しているときに障害が発生すると，システムログ障害が発生したり，マスタDB・レプリカDBに障害が発生したりするなど，HiRDBだけを運用しているときよりも多様な障害対策が必要になります。

5.1.1　障害対策の流れ

更新可能なオンライン再編成を実行しているときの障害対策の流れを次の図に示します。

図5‒1　更新可能なオンライン再編成を実行しているときの障害対策の流れ

更新可能なオンライン再編成で障害が発生すると，ユニットダウン，コマンドの異常終了，またはボリューム障害が発生します。障害発生時の対策の流れを次に示します。

通常のHiRDBの運用のときと同じようにトラブルシュート情報を取得します。

トラブルシュート情報の取得・調査の結果，障害原因がシステムログにあった場合，その障害を回復します。詳細については，「システムログファイルの障害回復」を参照してください。

オンライン再編成がどのような状態（更新可能なオンライン再編成状態）なのかを確認します。詳細については，「更新可能なオンライン再編成状態の確認」を参照してください。

発生現象，トラブルシュート情報および更新可能なオンライン再編成状態を基に障害対策を行います。詳細については，「取得した情報を基にした障害対策」を参照してください。

5.1.2　システムログとオペランドの設定

更新可能なオンライン再編成中は，追い付き反映処理のため，システムログに次の表に示す情報を残しています。

表5‒1　追い付き反映処理のためのシステムログ情報

情報

説明

システムログ反映開始ポイント

ここからの情報を，追い付き反映処理することを示します。

システムログ反映済みポイント

現在，追い付き反映を終了しているポイントであることを示します。

システムログ反映読み込みポイント

現在，追い付き反映処理のために読み込んでいるポイントであることを示します。

システムログ反映終端ポイント

ここまでの情報を，追い付き反映処理したことを示します。

オンライン再編成のデータベース静止化コマンド（pdorbegin）を実行すると，システムログファイルにシステムログ反映開始ポイントが設定されます。

そのあと，オンライン再編成の追い付き反映コマンド（pdorend）を実行すると，追い付き反映処理が開始され，反映状態に合わせてシステムログ反映済みポイントおよびシステムログ反映読み込みポイントが設定されます。

オンライン再編成の追い付き反映コマンドで行われる反映同期処理でシステムログ反映終端ポイントが設定されます。

オンライン再編成の追い付き反映コマンドが正常終了すると，設定された情報はクリアされます。

システムログにこれらの情報を持っているため，更新可能なオンライン再編成では，オリジナルRDエリアに障害が発生した場合でも障害回復後システムログを反映することができます。

しかし，システムログファイルのswap先としてシステムログ反映開始ポイントが設定されている世代が上書きされると，追い付き反映処理ができなくなります。これを防止するのが，pd_log_org_reflected_logpointオペランドです。pd_log_org_reflected_logpointオペランドにkeepを指定すると，システムログ反映開始ポイントが設定されているシステムログファイルの上書きを禁止します。

ただし，pd_log_org_reflected_logpointオペランドにkeepを，pd_log_org_no_standby_file_oprオペランドにstopを指定してシステムログファイルが満杯になった場合は，HiRDBユニットが異常終了します。したがって，更新可能なオンライン再編成を使用する場合はログ容量を適切に見積もる必要があります。

また，pd_log_org_reflected_logpointオペランドにreleaseを，pd_log_org_no_standby_file_oprオペランドにcontinueを指定してシステムログ反映開始ポイントが設定されているシステムログファイルがswap先として上書きされた場合は，システムログ反映開始ポイントからオリジナルRDエリアに対して反映する運用はできなくなります。この場合は，レプリカRDエリアで業務を続けてください。レプリカRDエリアでの業務を続行した場合，ディスク装置の機能を使い，レプリカRDエリアの情報をオリジナルRDエリアにコピーするためにはHiRDBを停止させる必要があります。

上述したオペランド指定の組み合わせによる注意事項を次の表に示します。

表5‒2　オペランド指定の組み合わせによる注意事項

オペランド指定の組み合わせ

注意事項

pd_log_org_reflected_logpoint

pd_log_org_no_standby_file_opr

keep

stop

システムログファイルが満杯になるとHiRDBユニットが異常終了します。ログの見積もりを適切に行ってください。

release

continue

システムログ反映開始ポイントが設定されているシステムログファイルが上書きされると，オリジナルRDエリアに反映処理ができなくなります。

レプリカRDエリアで業務を続行してください。

5.1.3　システムログファイルの障害回復

システムログファイルに関連する障害の対策方法を次の表に示します。

表5‒3　システムログファイルに関連する障害の対策方法

現象

状況・その後の運用

対策

両系※1のシステムログファイルでファイル障害が発生した。

追い付き反映処理で更新ログレコードが入力できない。

［状況］

更新可能なオンライン再編成の対象であったレプリカRDエリアが閉塞して，ユニットダウンしている。

システムログファイルをアンロード（pdlogunld）したあと，ダウンしたユニットを起動して，追い付き反映処理を中止します。運用は，レプリカのRDエリアで続けます。

詳細については，「システムログファイルで障害，ユニットダウンした場合の対策」を参照してください。

［状況］

更新可能なオンライン再編成の対象であったレプリカRDエリアに対する更新処理が正常に継続している。

追い付き反映処理を中止したあと，レプリカのRDエリアで運用を続けます。システムログファイルは再作成します。

詳細については，「システムログファイルで障害，レプリカDBへの更新が継続している場合の対策」を参照してください。

更新可能なオンライン再編成の上書き禁止状態によりスワップ先にできるシステムログファイルがなくなり，ログ満杯でユニットダウンした。更新可能なオンライン再編成は継続できる。

［その後の運用］

更新可能なオンライン再編成を継続したい。

システムログファイル不足発生時の回復を行いHiRDBを起動し，障害が発生したサーバへの業務を抑止後，追い付き反映処理を行います。

詳細については，「ログ満杯でユニットダウン，再編成を継続したい場合の対策」を参照してください。

［その後の運用］

HiRDBの稼働を継続したい。

システムログファイル不足発生時の回復を行いHiRDBを起動し，追い付き反映処理を中止します。

詳細については，「ログ満杯でユニットダウン，HiRDB稼働を継続させたい場合の対策」を参照してください。

追い付き反映処理に使用するシステムログファイルが，KFPS01175-Wメッセージが出力されたあと上書きされた。

そのため，追い付き反映処理ができなくなった※2。

［その後の運用］

HiRDBの稼働を継続したい。

追い付き反映処理を中止し，レプリカのRDエリアで運用を続けます。

詳細については，「システムログが上書きされ，追い付き反映できない場合の対策」を参照してください。

注※1

pd_log_dual=Nを指定している場合は，片系のシステムログファイルでの障害になります。

注※2

pd_log_org_no_standby_file_opr=continueを指定している場合に発生します。

(1)　システムログファイルで障害，ユニットダウンした場合の対策

障害が発生して閉塞しているシステムログファイルに対してpdlogunldを実行します。

システムログファイルへのI/Oエラーでコマンドが失敗した場合，該当システムログファイルをpdloginitで再初期化します。ほかの理由でpdlogunldコマンドが失敗した場合，エラーメッセージに従って障害原因を取り除いて，再度pdlogunldコマンドを実行します。

ダウンしたユニットを再起動します。

HiRDBの再開始では，直前のHiRDB稼働中に最後に有効になったシンクポイントをシステムログから最新のシステムログファイルまでを入力にしてデータベースの回復を行います。したがって，これらの期間のシステムログファイルが一つ以上（システムログを二重化している場合はある時点のシステムログファイルの両系）を失ってしまった場合，再開始に失敗するか，またはデータベース不正が発生します。

この場合，失われたシステムログファイルのアンロードログファイルを取得していれば，データベース回復ユティリティ（pdrstr）を使うことで回復できます。

追い付き反映処理を中止（pdorend -uコマンド）します。

以降，HiRDBはレプリカRDエリアで業務を継続することができます。オリジナルRDエリアはデータ不整合が発生しているため，データを参照しないでください。

レプリカRDエリアで業務を続行したあとに，マスタDBの修復を行う方法については，表「更新可能なオンライン再編成の取り消し」を参照してください。

マスタDBの回復後は，データベースの静止化コマンド（pdorbegin）からオンライン再編成をやり直せます。

(2)　システムログファイルで障害，レプリカDBへの更新が継続している場合の対策

追い付き反映処理を中止（pdorend -uコマンド）します。

以降，HiRDBはレプリカRDエリアで業務を継続することができます。オリジナルRDエリアはデータ不整合が発生しているため，データを参照しないでください。

障害が発生して閉塞しているシステムログファイルを再作成して，閉塞を解除します。

レプリカRDエリアで業務を続行したあとに，マスタDBの修復を行う方法については，表「更新可能なオンライン再編成の取り消し」を参照してください。

マスタDBの回復後は，データベースの静止化コマンド（pdorbegin）からオンライン再編成をやり直せます。

(3)　ログ満杯でユニットダウン，再編成を継続したい場合の対策

システムログファイル不足発生時の回復方法に従ってHiRDBを起動します。

システムログファイルの容量不足に関する詳細については，マニュアル「HiRDB システム運用ガイド」を参照してください。

このとき追加するシステムログファイルは，次のようにしてください。

バージョン09-04より前のHiRDBを使用している場合

マニュアル「HiRDB システム運用ガイド」の計算式で求めた値の2倍にしてください。

バージョン09-04以降のHiRDBを使用している場合

マニュアル「HiRDB システム運用ガイド」の計算式で求めた値にしてください。

障害が発生したサーバへの更新処理（オンライン業務）を抑止します。

業務抑止はユーザごとの運用手順に従って実行してください。

追い付き反映処理コマンド（pdorend）を実行します。

更新可能なオンライン再編成が正常終了したら，更新処理（オンライン業務）の抑止を解除して，業務を再開します。

(4)　ログ満杯でユニットダウン，HiRDB稼働を継続させたい場合の対策

システムログファイル不足発生時の回復方法に従ってHiRDBを起動します。

システムログファイルの容量不足に関する詳細については，マニュアル「HiRDB システム運用ガイド」を参照してください。

追い付き反映処理を中止（pdorend -uコマンド）します。

以降，HiRDBはレプリカRDエリアで業務を継続することができます。オリジナルRDエリアはデータ不整合が発生しているため，データを参照しないでください。

レプリカRDエリアで業務を続行したあとに，マスタDBの修復を行う方法については，表「更新可能なオンライン再編成の取り消し」を参照してください。

マスタDBの回復後は，データベースの静止化コマンド（pdorbegin）からオンライン再編成をやり直せます。

(5)　システムログが上書きされ，追い付き反映できない場合の対策

追い付き反映処理を中止（pdorend -uコマンド）します。

以降，HiRDBはレプリカRDエリアで業務を継続することができます。オリジナルRDエリアはデータ不整合が発生しているため，データを参照しないでください。

レプリカRDエリアで業務を続行したあとに，マスタDBの修復を行う方法については，表「更新可能なオンライン再編成の取り消し」を参照してください。

マスタDBの回復後は，データベースの静止化コマンド（pdorbegin）からオンライン再編成をやり直せます。

5.1.4　更新可能なオンライン再編成状態の確認

更新可能なオンライン再編成状態の確認は，各ボリュームのRDエリアの状態やペアボリューム状態などによって行います。

更新可能なオンライン再編成状態の確認方法を次の表に示します。この表で確認した判定結果を，障害対策で利用します。

RDエリア状態とは，pddblsコマンドで表示されるRDエリア状態のことです。確認する場合はpddblsコマンドの-aオプションを指定しないでください。-aオプションを指定するとRDエリアへのアクセスを行うため，ペア状態でアクセスできないRDエリアが障害閉塞する場合があります。また，追い付き状態とは，pdls -d orgコマンドで表示される追い付き状態のことです。

表5‒4　更新可能なオンライン再編成状態の確認方法

判定要素

判定結果

オリジナルRDエリア状態

（pddbls）

レプリカRDエリア状態

（pddbls）

カレントRDエリア

（pddbls）

追い付き状態

（pdls）

ペアボリューム状態

再編成状態

OPEN

HOLD(CMD)CLOSE

マスタDB

NONE

ペア状態

NONE（pdorbeginの失敗，または未実施）

HOLD(ORG)

HOLD(ORG)

マスタDB

READY

ペア状態

READY1（ボリュームペアの解除失敗，または未実施）

HOLD(ORG)

HOLD(ORG)

マスタDB

READY

ペア解除状態

READY2（pdorchgの失敗，または未実施）

HOLD(ORG)

HOLD(ORG)

レプリカDB

READY

ペア解除状態

READY3（再編成の失敗，またはpdorend未実施）

HOLD(ORG)

HOLD(ORG)

レプリカDB

REFLEC

ペア解除状態

REFLEC（追い付き処理の失敗）

HOLD(ORG)

HOLD(ORG)

レプリカDB

SYNC

ペア解除状態

SYNC（レプリカからオリジナルRDエリアへの業務切り替え処理の失敗）

注　オリジナルまたはレプリカのボリューム障害時は，障害側がHOLDになります。

5.1.5　取得した情報を基にした障害対策

「更新可能なオンライン再編成状態の確認」までに取得した障害情報を基に障害対策を行います。

状況ごとの対策方法については次の表を参照してください。

障害対策方法（ユニットダウンまたはコマンドが異常終了した場合）

障害対策方法（マスタDBのボリューム障害の場合）

障害対策方法（レプリカDBのボリューム障害の場合）

障害対策方法（構成情報の複写漏れによるディレクトリ管理情報不正の場合）

なお，再編成状態がNONE，READY1，READY2のときは，データベース静止化コマンドの取り消しコマンド（pdorbegin -u）で更新可能なオンライン再編成の実行を取り消せます。

表5‒5　障害対策方法（ユニットダウンまたはコマンドが異常終了した場合）

再編成状態

対策後の運用方針

対策方法

NONE

オンライン再編成を続行する。

障害要因を取り除いて，データベース静止化コマンド（pdorbegin）からやり直します。

READY1

オンライン再編成を続行する。

使用するミラーリング機能のマニュアルを参照してください。

READY2

オンライン再編成を続行する。

障害要因を取り除いて，データベース静止化コマンド（pdorbegin）からやり直します。

READY3

障害回復後，オンライン再編成を続行する。

障害要因を取り除いて，データベースの再編成コマンド（pdrorg）を実行します。

オンライン再編成を中止して，レプリカRDエリアで業務を続行する。

マスタDBの修復のために，HiRDBを停止しない（ただし，アクセスを制限する）。

オンライン再編成を取り消します（pdorend -u）。

レプリカRDエリアを参照可能バックアップ閉塞状態にします。

レプリカDBのバックアップを取得します。

3.で取得したバックアップを使って，オリジナルRDエリアを回復します。

カレントデータベース切り替えコマンド（pddbchg）を実行します。

オンライン再編成を中止して，レプリカRDエリアで業務を続行する。

マスタDBの修復のために， HiRDBを一時停止する。

オンライン再編成を取り消します（pdorend -u）。

レプリカRDエリアを参照可能バックアップ閉塞状態にします。

カレントデータベース切り替えコマンド（pddbchg）を実行します。

HiRDBを停止します（pdstop）。

レプリカRDエリアのデータをオリジナルRDエリアにコピーします。

＜ボリューム内のすべてのRDエリアに対して更新可能なオンライン再編成を行っている場合＞

レプリカボリュームのデータをオリジナルボリュームにコピーする機能を使用して，レプリカDBの状態をマスタDBに反映（二重化（pairresysnc -restore））します。日立ディスクアレイシステムを使用している場合は，「日立ディスクアレイシステム使用時の注意事項および操作手順」を参照してください。

＜ボリューム内に更新可能なオンライン再編成を行っていないRDエリアを含む場合＞

レプリカRDエリアを構成するHiRDBファイルをpdfbkupでバックアップし，pdfrstrでオリジナルRDエリアを構成するHiRDBファイルにリストアします。

HiRDBを開始します（pdstart）。

REFLEC

オンライン再編成を中止して，レプリカRDエリアで業務を続行する。

マスタDBの修復のために，HiRDBを停止しない（ただし，アクセスを制限する）。

オンライン再編成を取り消します（pdorend -u）。

レプリカRDエリアを参照可能バックアップ閉塞状態にします。

レプリカDBのバックアップを取得します。

3.で取得したバックアップを使って，オリジナルRDエリアを回復します。

カレントデータベース切り替えコマンド（pddbchg）を実行します。

オンライン再編成を中止して，レプリカRDエリアで業務を続行する。

マスタDBの修復のために， HiRDBを一時停止する。

オンライン再編成を取り消します（pdorend -u）。

レプリカRDエリアを参照可能バックアップ閉塞状態にします。

カレントデータベース切り替えコマンド（pddbchg）を実行します。

HiRDBを停止します（pdstop）。

レプリカRDエリアのデータをオリジナルRDエリアにコピーします。

＜ボリューム内のすべてのRDエリアに対して更新可能なオンライン再編成を行っている場合＞

レプリカボリュームのデータをオリジナルボリュームにコピーする機能を使用して，レプリカDBの状態をマスタDBに反映（二重化（pairresysnc -restore））します。日立ディスクアレイシステムを使用している場合は，「日立ディスクアレイシステム使用時の注意事項および操作手順」を参照してください。

＜ボリューム内に更新可能なオンライン再編成を行っていないRDエリアを含む場合＞

レプリカRDエリアを構成するHiRDBファイルをpdfbkupでバックアップし，pdfrstrでオリジナルRDエリアを構成するHiRDBファイルにリストアします。

HiRDBを開始します（pdstart）。

オンライン再編成を続行する。

障害要因を取り除くか，またはカレントデータベースへのアクセスを制限するかして，追い付き反映コマンド（pdorend）を実行します。

SYNC

オンライン再編成を中止して，レプリカRDエリアで業務を続行する。

マスタDBの修復のために，HiRDBを停止しない（ただし，アクセスを制限する）。

オンライン再編成を取り消します（pdorend -u）。

レプリカRDエリアを参照可能バックアップ閉塞状態にします。

レプリカDBのバックアップを取得します。

3.で取得したバックアップを使って，オリジナルRDエリアを回復します。

カレントデータベース切り替えコマンド（pddbchg）を実行します。

オンライン再編成を中止して，レプリカRDエリアで業務を続行する。

マスタDBの修復のために，HiRDBを一時停止する。

オンライン再編成を取り消します（pdorend -u）。

レプリカRDエリアを参照可能バックアップ閉塞状態にします。

カレントデータベース切り替えコマンド（pddbchg）を実行します。

HiRDBを停止します（pdstop）。

レプリカRDエリアのデータをオリジナルRDエリアにコピーします。

＜ボリューム内のすべてのRDエリアに対して更新可能なオンライン再編成を行っている場合＞

レプリカボリュームのデータをオリジナルボリュームにコピーする機能を使用して，レプリカDBの状態をマスタDBに反映（二重化（pairresysnc -restore））します。日立ディスクアレイシステムを使用している場合は，「日立ディスクアレイシステム使用時の注意事項および操作手順」を参照してください。

＜ボリューム内に更新可能なオンライン再編成を行っていないRDエリアを含む場合＞

レプリカRDエリアを構成するHiRDBファイルをpdfbkupでバックアップし，pdfrstrでオリジナルRDエリアを構成するHiRDBファイルにリストアします。

HiRDBを開始します（pdstart）。

オンライン再編成を完了させる。

障害要因を取り除いて，追い付き反映コマンド（pdorend）を実行します。

表5‒6　障害対策方法（マスタDBのボリューム障害の場合）

再編成状態

対策後の運用方針

対策方法

NONE

オンライン再編成を続行する。

ボリュームを交換します※1。

ログをアンロードします。

再編成前のバックアップとシステムログからマスタDBを障害発生直前まで回復します。

データベースの静止化コマンド（pdorbegin）からやり直します。

READY1

オンライン再編成を続行する。

使用するミラーリング機能のマニュアルを参照してください。

READY2

オンライン再編成を続行する。

ボリュームを交換します※1。

ログをアンロードします。

再編成前のバックアップとシステムログからマスタDBを障害発生直前まで回復します。

データベースの静止化コマンド（pdorbegin）からやり直します。

カレントデータベースの切り替えコマンド（pdorchg）を実行します。

READY3

オンライン再編成を続行する。

ボリュームを交換します※1。

ログをアンロードします。

再編成前のバックアップとシステムログからマスタDBを障害発生直前まで回復します。

データベースの再編成コマンド（pdrorg）を実行します。

REFLEC

オンライン再編成を続行する。

追い付き反映処理は初めからやり直す※2。

ボリュームを交換します※1。

再編成後のバックアップからマスタDBを再編成完了時まで回復します。

pdorchg実行後のすべてのトランザクションを初めから反映させるための追い付き反映コマンド（pdorend -z）を実行します。

オンライン再編成を続行する。

追い付き反映処理は障害発生時の続きから行う。

ボリュームを交換します※1。

ログをアンロードします。

再編成後のバックアップからマスタDBを障害発生直前まで回復します。

追い付き反映コマンド（pdorend）を実行します。

オンライン再編成を中止して，レプリカRDエリアで業務を続行する（マスタDBの修復については，表「障害対策方法（ユニットダウンまたはコマンドが異常終了した場合）」を参照してください）。

追い付き反映処理を取り消します（pdorend -u）。

SYNC

オンライン再編成を続行する。

ボリュームを交換します※1。

ログをアンロードします。

再編成後のバックアップからマスタDBを障害発生直前まで回復します。

追い付き反映コマンド（pdorend）を実行します。

オンライン再編成を中止して，レプリカRDエリアで業務を続行する。

（マスタDBの修復については，表「障害対策方法（ユニットダウンまたはコマンドが異常終了した場合）」を参照してください）。

追い付き反映処理を取り消します（pdorend -u）。

注※1

ペア状態の回復については，使用するミラーリング機能のマニュアルを参照してください。

注※2

システム定義のpd_log_org_reflected_logpointオペランドにkeepを，pd_log_org_no_standby_file_oprオペランドにstopを指定して，システムログ反映開始ポイントを消去しないと指定している場合に選択できます。

表5‒7　障害対策方法（レプリカDBのボリューム障害の場合）

再編成状態

対策後の運用方針

対策方法

NONE

障害回復後，オンライン再編成を続行する。

レプリカDBの回復については，使用するミラーリング機能のマニュアルを参照してください。

データベースの静止化コマンド（pdorbegin）からやり直します。

READY1

障害回復後，オンライン再編成を続行する。

データベースの静止化コマンド（pdorbegin）の -u指定でオンライン再編成を取り消します。

レプリカDBの回復については，使用するミラーリング機能のマニュアルを参照してください。

データベースの静止化コマンド（pdorbegin）からやり直します。

READY2

障害回復後，オンライン再編成を続行する。

データベースの静止化コマンド（pdorbegin）の -u指定でオンライン再編成を取り消します。

レプリカDBの回復については，使用するミラーリング機能のマニュアルを参照してください。

データベースの静止化コマンド（pdorbegin）からやり直します。

READY3

オンライン再編成を中止して，障害の発生していないマスタDBにレプリカDBのデータを反映する。その後，マスタDBで業務を続行する。

追い付き反映処理を取り消します（pdorend -u）。

マスタDBをコマンド閉塞クローズします（pdhold -c）。

ログをアンロードします。

再編成直前に取得したバックアップとカレントRDエリア（レプリカRDエリア）の更新ログからマスタDBを障害発生直前まで回復します（pdrstr -q 0 -x c）。

回復後のバックアップを取得します。

マスタDBの閉塞を解除します（pdrels -o）。

カレントデータベースの切り替えコマンド（pddbchg）を実行します。

REFLEC

オンライン再編成を中止して，障害の発生していないマスタDBにレプリカDBのデータを反映する。その後，マスタDBで業務を続行する。

追い付き反映処理を取り消します（pdorend -u）。

マスタDBをコマンド閉塞クローズします（pdhold -c）。

ログをアンロードします。

再編成直前に取得したバックアップとカレントRDエリア（レプリカRDエリア）の更新ログからマスタDBを障害発生直前まで回復します（pdrstr -q 0 -x c）。

回復後のバックアップを取得します。

マスタDBの閉塞を解除します（pdrels -o）。

カレントデータベースの切り替えコマンド（pddbchg）を実行します。

SYNC

オンライン再編成を完了させる。

追い付き反映コマンド（pdorend）を実行します。

表5‒8　障害対策方法（構成情報の複写漏れによるディレクトリ管理情報不正の場合）

再編成状態

対策後の運用方針

対策方法

READY1

READY2

オンライン再編成を続行する。

更新可能なオンライン再編成を取り消します（pdorbegin -u）。

レプリカRDエリアにオリジナルRDエリアの構成情報を複写します（pdmod）。

データベースの静止化コマンド（pdorbegin）からやり直します。

READY3

オンライン再編成を続行する。

レプリカRDエリアを再初期化します（pdmodのwith reconstruction指定でオリジナルRDエリアの構成と合わせます）。

レプリカRDエリアにアクセスするプロセスを停止します（pdpfresh）。

ペアボリュームを再同期し，ペアを解除します。

カレントデータベースの切り替えコマンド（pdorchg）を実行します。

レプリカRDエリアの閉塞を解除します（pdrels）。

付録

付録A　ミラーリング方式の違いによる注意事項

ミラーリング機能を実現する製品（ハードウェアおよびソフトウェア）によって，使用できる機能やHiRDB Staticizer Optionの運用方法が一部異なります。ここでは，ミラーリング方式の違いに伴う注意事項を説明します。

付録A.1　インナレプリカに必要なミラーリング機能

インナレプリカ機能を使用するには，オリジナルRDエリアのデータを複製する機能が必要です。インナレプリカ機能に必要なミラーリング機能を次の表に示します。次の表の機能をサポートしているミラーリング機能であれば，インナレプリカ機能のRDエリア作成に使用できます。

表A‒1　インナレプリカ機能に必要なミラーリング機能

項番

インナレプリカ機能の詳細

必要なミラーリング機能

備考

１

基本機能

ペアボリュームの生成

オリジナルRDエリアの格納領域を割り当てるボリュームを二重化できる機能

−

ペアボリュームの分離

二重化したボリュームを分離し，それぞれのボリュームを同一OS下で独立したボリュームとしてアクセスできるようにする機能

−

ペアボリュームの再統合

分離したボリュームを再びペアボリュームに設定できる機能

−

相方向のデータ反映

ペア設定時のデータの反映で，正ボリュームから副ボリュームへ，または副ボリュームから正ボリュームへの選択ができること

データ反映が一方向だけの場合は，一部の運用が制限されます。

２

高速なデータ反映

分離状態の差分管理

ペア関係を持ったボリュームが分離状態にあるとき，更新履歴を管理し，再度ペア設定をすると差分だけを高速に反映する機能

−

３

オンライン中のペア設定・解除

オープン中のファイルがある状態でのペアボリュームの分離・統合ができる機能

HiRDBのRDエリアのオープン属性をSCHEDULEにすることで，対処できる場合もあります。

付録A.2　インナレプリカ機能に使用できる代表的なミラーリング機能

インナレプリカ機能に使用できる代表的なミラーリング機能，および運用上の注意事項を，次の表に示します。日立ディスクアレイシステムを使用する場合の注意事項については，「日立ディスクアレイシステム使用時の注意事項および操作手順」を参照してください。

表A‒2　ミラーリング機能を実現する製品と，インナレプリカ機能運用上の注意

項番

ミラーリング機能

HiRDBインナレプリカ機能運用上の注意

種別

プラットフォーム

代表製品

1

ハードウェア

AIX

SANRISE2000シリーズまたはSANRISE1000シリーズ

HOMRCF制御機構

（RAID Manager使用）

上記以外の日立ディスクアレイシステム

ShadowImage

（RAID Manager使用）

【論理ボリューム管理下で使用することが前提】

前提製品

JP1/HiCommand Dynamic Link Manager 04-00/B以降

HiRDB稼働中のデータ同期化

次のどちらかの場合，上記の副系ボリューム情報の変更をHiRDB稼働中（オンライン中）に行うことができます。

(a)レプリカRDエリアのオープン属性がSCHEDULEで，RDエリアがコマンド閉塞・クローズの状態。

(b)レプリカRDエリアのオープン属性がSCHEDULE以外で，RDエリアを閉塞・クローズ後，pdpfreshコマンドを実行しプロセスの入れ替えが終了した状態。

2

Linux

SANRISE2000シリーズまたはSANRISE1000シリーズ

HOMRCF制御機構

（RAID Manager使用）

上記以外の日立ディスクアレイシステム

ShadowImage

（RAID Manager使用）

【MRCFまたはShadowImageについて】

VxVMやVCSは未サポートです。このため，論理ボリューム管理は使用できません。

3

ソフトウェア

AIX

−

−

4

Linux

LVMスナップショット

LVMの仕様上，HiRDB稼働中に副ボリュームから正ボリュームへのペア再同期はできません。

付録A.3　日立ディスクアレイシステム使用時の注意事項および操作手順

日立ディスクアレイシステムのMRCF（Multiple RAID Coupling Feature）機能，またはShadowImage機能を使用する場合の注意事項および操作手順を，それぞれOSごとに示します。

(1)　AIXの場合

AIXで日立ディスクアレイシステムのMRCF（Multiple RAID Coupling Feature）機能，またはShadowImage機能を使用する場合の注意事項および操作手順を次の表に示します。

表A‒3　日立ディスクアレイシステム MRCF機能，またはShadowImage機能使用上の注意事項および操作手順（AIX）

項番

項目

注意事項

補足および手順

1

ファイルシステム

ディスクは論理ボリューム管理下で使用してください。論理ボリューム操作はHitachi Dynamic Link Manager Softwareのコマンドを使用します。

PVIDを変更するコマンドが未サポートのためです。

2

ボリュームペアの設定

オンライン性能との兼ね合いから，ペア生成コマンドのコピー速度オペランド（-c）に4以上の値を設定してください。「普通」（オンライン重視）で6〜10が目安です。

−

隠蔽モード（-m noread）を使用しないでください。

−

3

オンライン中のペアボリューム操作

-S指定のペアボリュームの分割

正・副ボリュームに差分がある状態でペア状態の解除（-Sオプション）を指定すると，副ボリュームへ差分が反映されないで分割されるため，データベースの内容が不整合になります。分割前に，正・副ボリュームの内容が完全に一致していることを確認してください。

−

ペア再同期のリストア機能

HiRDB稼働中のリストア機能は使用を禁止します。

オンライン中の再編成などの更新処理は，必ず正ボリューム側で実行してください。

副ボリュームから正ボリュームにデータをコピーする間はオリジナルRDエリアにアクセスできません。

pairresyncのリストア（-restore）を実行すると，正ボリュームのPVIDが書き換わるため正ボリュームのPVID変更操作が必要になります。

4

ペアボリューム操作時のRDエリアの状態

オリジナルRDエリア

ペア分割時は正ボリュームのオリジナルRDエリアの更新内容が，完全にディスクへ反映されている必要があります。pdholdコマンドでオリジナルRDエリアを閉塞クローズするか，静止化（バックアップ閉塞）状態にしてください。

UNIXファイルシステムの場合，オリジナルRDエリア閉塞後，サーバキャッシュをディスクに書き出してください。

−

レプリカRDエリア

必ずpdholdコマンドで閉塞かつクローズ状態にします。

副ボリュームの実体がないまたは非活動状態でHiRDBがアクセスすると，RDエリアが障害閉塞します。この場合，副ボリュームをアクセス可能にし閉塞解除すれば問題ありません。

5

ペアボリューム操作時のVG管理

ペア生成

ペア生成の前に，HDLMの物理ボリュームを登録し，副ボリュームのVGを再作成します

−

ペア分割

副ボリュームのPVIDを変更します

副ボリュームのVG情報を再作成します

副ボリュームのVG情報を活動化します

〈手順〉

pdhold -r orign -b

オリジナルRDエリア静止化

pairsplit

ペアボリューム分割

pairevtwait -s psus

ペア分割の待ち合わせ

dlmrecreatevg

副ボリュームのVGの再作成

dlmvaryonvg

副ボリュームのVGを活動状態

chown

論理ボリューム情報再設定

pdrels -r

オリジナルRDエリアオリジナルRDエリア静止化解除

pdrels -r レプリカRDエリア -o

レプリカRDエリアの閉塞解除オープン

ペア再同期

副ボリュームのVGを非活動にします

副ボリュームのVGを削除します

〈手順〉

pdhold -r レプリカRDエリア -c

レプリカRDエリアの閉塞クローズ

dlmvaryoffvg

副ボリュームのVG 非活動

dlmexportvg

副ボリュームVG情報削除

pairresync

ペア再同期

pairevtwait -s pair

ペア状態の待ち合わせ

6

レプリカRDエリアのオープン属性

INITIAL

HiRDB起動時にレプリカRDエリアをオープンします。副ボリュームへアクセスできない場合は，レプリカRDエリアは障害閉塞します。

HiRDB稼働中（オンライン中）にボリュームの統合・分割を繰り返し実行するためには，RDエリアをコマンド閉塞かつクローズ状態にしたあとでpdpfreshコマンドを実行してください。

副ボリュームをアクセス可能状態にし，pdrels -oで閉塞を解除しオープンしてください。

HiRDBが一度アクセスしたRDエリアをHiRDBから完全に切り離すためには，アクセスしたプロセスがすべて終了している必要があります。

DEFER

HiRDB稼働中（オンライン中）にボリュームの統合・分割を繰り返し実行するためには，RDエリアをコマンド閉塞かつクローズ状態にしたあとでpdpfreshコマンドを実行してください。

HiRDBが一度アクセスしたRDエリアをHiRDBから完全に切り離すためには，アクセスしたプロセスがすべて終了している必要があります。

SCHEDULE

pdpfreshコマンドを実行しなくても，HiRDB稼働中（オンライン中）にボリュームの統合・分割を繰り返し実行できます。システム共通定義(pdsys)に「pd_lv_mirror_use = Y」を指定すると，すべてのレプリカRDエリアのオープン属性を自動的に「SCHEDULE」属性にできます。

ただし，プロセスの開始時と終了時に，RDエリアのオープン・クローズ処理が毎回実行されます。レプリカRDエリアの閉塞解除時，オープン指定（pdrels -o）をするか，または閉塞なしのクローズ状態の場合はオープンコマンド(pdopen)を実行することで，オーバヘッドを削減できます。

RDエリアをコマンド閉塞かつクローズ状態にすることで，HiRDBから完全に切り離すことができます。

7

HiRDBの開始・終了

HiRDBの停止時のレプリカRDエリアの閉塞状態を次回のHiRDB開始時に引き継ぐためには，計画停止または強制停止してください。

ペア分割していない場合（副ボリュームにアクセスできない状態の場合）は，正常開始直後にpdhold -r replica -cでレプリカRDエリアをコマンド閉塞しておきます。業務やpddbls -r all -aコマンドの実行でレプリカRDエリアにアクセスさせないためです。

−

8

系切り替え

系切り替え運用の詳細については，マニュアル「高信頼化システム監視機能 HAモニタ」を参照してください。

手順については，マニュアル「高信頼化システム監視機能 HAモニタ」の「ShadowImageを使用する場合に副ボリュームを待機系に引き継ぐ」を参照してください。

9

オフラインでのペアボリューム操作

ペア再同期のリストア機能

副ボリュームからのデータ反映前に正ボリュームのVGを削除します。

リストア機能で副側からデータを反映後，ペア分割し，正ボリュームのVGを再作成してください。

UNIXファイルシステムの場合，リストア実行前にサーバキャッシュをディスクに書き出してください。

〈手順〉

dlmvaryoffvg

正ボリュームのVG 非活動

dlmexportvg

正ボリュームVG情報削除

pairresync -restore

ペア再同期（副→正コピー）

pairevtwait -s pair

ペア状態の待ち合わせ

pairsplit

ペア分割

pairevtwait -s psus

ペア分割の待ち合わせ

dlmrecreatevg

正ボリュームのVGの（再）作成正・活動状態

chlv

正ボリュームの論理ボリューム名を元に戻す

chown

オーナーの変更

(2)　Linuxの場合

Linuxで日立ディスクアレイシステムのMRCF（Multiple RAID Coupling Feature）機能，またはShadowImage機能を使用する場合の注意事項および操作手順を次の表に示します。

表A‒4　日立ディスクアレイシステム MRCF機能，またはShadowImage機能使用上の注意事項および操作手順（Linux）

項番

項目

注意事項

補足および手順

1

ファイルシステム

ディスクはVG管理できません。そのため，ペア生成，ペア分離，およびペア再同期で，VG操作は不要です。

VxVMやVCSは，MRCF機能やShadowImage機能が未サポートのためです。

2

ボリュームペアの設定

オンライン性能との兼ね合いから，ペア生成コマンドのコピー速度オペランド（-c）に4以上の値を設定してください。「普通」（オンライン重視）で6〜10が目安です。

−

隠蔽モード（-m noread）を使用しないでください。

−

3

オンライン中のペアボリューム操作

-S指定のペア解除

正・副ボリュームに差分がある状態でペア状態の解除（-Sオプション）を指定すると，副ボリュームへ差分が反映されないで分割されるため，データベースの内容が不整合になります。分割前に，正・副ボリュームの内容が完全に一致していることを確認してください。

−

ペア再同期のリストア機能

HiRDB稼働中にリストア機能を使用しないでください。

オンライン再編成などの更新処理は，必ず正ボリューム側で実行してください。

副ボリュームから正ボリュームにデータをコピーする間はオリジナルRDエリアにアクセスできません。

4

ペアボリューム操作時のRDエリアの状態

オリジナルRDエリア

ペア分割時は正ボリュームのオリジナルRDエリアの更新内容が，完全にディスクへ反映されている必要があります。pdholdコマンドでオリジナルRDエリアを閉塞クローズするか，静止化（バックアップ閉塞）状態にしてください。

UNIXファイルシステムの場合，オリジナルRDエリア閉塞後，サーバキャッシュをディスクに書き出してください。

−

レプリカRDエリア

必ずpdholdコマンドで閉塞かつクローズ状態にします。

副ボリュームの実体がないまたは非活動状態でHiRDBがアクセスすると，RDエリアが障害閉塞します。この場合，副ボリュームをアクセス可能にして，閉塞を解除してください。

5

レプリカRDエリアのオープン属性

INITIAL

HiRDB起動時にレプリカRDエリアをオープンします。副ボリュームへアクセスできない場合は，レプリカRDエリアは障害閉塞します。

HiRDB稼働中（オンライン中）にボリュームの統合・分割を繰り返し実行するためには，RDエリアをコマンド閉塞かつクローズ状態にしたあとでpdpfreshコマンドを実行してください。

副ボリュームをアクセス可能状態にし，pdrels -oで閉塞を解除しオープンしてください。

HiRDBが一度アクセスしたRDエリアをHiRDBから完全に切り離すためには，アクセスしたプロセスがすべて終了している必要があります。

DEFER

HiRDB稼働中（オンライン中）にボリュームの統合・分割を繰り返し実行するためには，RDエリアをコマンド閉塞かつクローズ状態にしたあとでpdpfreshコマンドを実行してください。

HiRDBが一度アクセスしたRDエリアをHiRDBから完全に切り離すためには，アクセスしたプロセスがすべて終了している必要があります。

SCHEDULE

pdpfreshコマンドを実行しなくても，HiRDB稼働中（オンライン中）にボリュームの統合・分割を繰り返し実行できます。システム共通定義(pdsys)に「pd_lv_mirror_use = Y」を指定すると，すべてのレプリカRDエリアのオープン属性を自動的に「SCHEDULE」属性にできます。

ただし，サーバプロセスの開始時と終了時に，RDエリアのオープン・クローズ処理が毎回実行されます。レプリカRDエリアの閉塞解除時，オープン指定（pdrels -o）をするか，または閉塞なしのクローズ状態の場合はオープンコマンド(pdopen)を実行することで，オーバヘッドを削減できます。

RDエリアをコマンド閉塞かつクローズ状態にすることで，HiRDBから完全に切り離すことができます。

6

HiRDBの開始・終了

HiRDBの停止時のレプリカRDエリアの閉塞状態を次回のHiRDB開始時に引き継ぐためには，計画停止または強制停止してください。

ペア分割していない場合（副ボリュームにアクセスできない状態の場合）は，正常開始直後にpdhold -r replica -cでレプリカRDエリアをコマンド閉塞しておきます。業務やpddbls -r all -aコマンドの実行でレプリカRDエリアにアクセスさせないためです。

−

7

系切り替え

系切り替え運用の詳細については，マニュアル「HiRDB システム運用ガイド」の「HiRDBによる共有ディスクのアクセス制御」を参照してください。

系切り替え運用をするには，01-08以降のHAモニタが前提になります。

また，HiRDBシステム定義とHAモニタの環境の設定が必要になります（マニュアル「HiRDB システム運用ガイド」の「HiRDBによる共有ディスクのアクセス制御」を参照）。

付録A.4　LVMスナップショット機能使用時の注意事項および操作手順

Linuxで，LVMスナップショット機能を使用する場合の注意事項および操作手順を，次の表に示します。

表A‒5　LVMスナップショット機能使用上の注意事項および操作手順

項番

項目

注意事項

補足及び手順

１

ファイルシステム

正ボリューム（オリジナル論理ボリューム）と副ボリューム（スナップショット論理ボリューム）は，同一のVGに作成します。正ボリュームと副ボリュームの容量を想定したVGの容量を用意してください。

−

2

ボリュームペアの作成

正ボリュームだけ作成します。

副ボリュームは作成しません。

副ボリュームは，ペア解除時に作成します。

3

オンライン中のペアボリュームの操作

ペア解除

副ボリュームとしてスナップショット論理ボリュームを作成してください。

〈手順〉

1. lvcreate -s

ペア再同期

副ボリュームを破棄してください。

〈手順〉

1. lvremove

副ボリュームから正ボリュームへのペア再同期

LVMの仕様上，HiRDB稼働中に副ボリュームから正ボリュームへのペア再同期はできません。

−

4

ペアボリューム操作時のRDエリアの状態

日立ディスクアレイシステム使用時の注意事項および操作手順の「Linuxの場合」を参照してください。

−

5

レプリカRDエリアのオープン属性

日立ディスクアレイシステム使用時の注意事項および操作手順の「Linuxの場合」を参照してください。

−

6

系切り替え

系切り替え後，HiRDBがアクセスするより前に"pvscan --cache"などを実行してLVM情報を最新に更新してください。更新していない場合，系切り替え前に作成した副ボリュームにアクセスできません。

日立ディスクアレイシステム使用時の注意事項および操作手順の「Linuxの場合」の内容も参照してください。

−

付録B　インナレプリカ機能使用時の定義系SQL

インナレプリカ機能を使用する場合の定義系SQLを実行するための条件と，注意事項について説明します。

付録B.1　定義系SQLを実行するための条件

インナレプリカ機能を使用している場合，定義系SQLはオリジナルRDエリアとレプリカRDエリアの対象の表に関連するすべてのRDエリア（インデクス，LOB列，BLOB属性，およびプラグインインデクス）に対して処理を行います。

定義系SQLを実行するためには，次に示す幾つかの条件を満たしている必要があります。（b）および（c）の条件を満たしていない場合，定義系SQLはエラーになります。

(a)　格納RDエリア名

指定された格納RDエリアがオリジナルRDエリアかどうか。

(b)　対象の表と関連RDエリアのレプリカRDエリアの複製定義

対象の表と関連するRDエリアが複数になる場合，次の条件を満たすかどうか。

各RDエリアのレプリカRDエリアの定義数が同じ

各RDエリアのレプリカRDエリアを定義した世代が同じ

(c)　RDエリアの状態

対象の表と関連するRDエリアが，すべての世代（オリジナルRDエリアも含む）で定義系SQLを実行できる状態か。

RDエリアの状態の確認手順とRDエリアの状態ごとの定義系SQLの実行可否を次に示します。

RDエリアの状態の確認手順

定義系SQLを実行する前に，次の手順に従ってRDエリアの状態を確認します。

pdrdreflsコマンドに-tオプションを指定し，対象の表に関連するRDエリアを調べます。

インデクスの定義を変更する場合は，インデクスを定義している表を指定します。なお，pdrdreflsコマンドで表示される関連RDエリアは，対象の表またはインデクス格納RDエリアにほかの表またはインデクスが定義されている場合，それらの情報も表示するため，実際に定義SQL文が対象とする関連RDエリアよりも範囲が広い場合があります。-aオプション指定で表示される表またはインデクス名称から対象RDエリアを判断してください。

1.で調べたRDエリアで，すべてのオリジナルRDエリアが更新可能状態であることをpddblsコマンドで確認します。

1.で調べたRDエリアで，レプリカRDエリアの状態をpddblsコマンドで確認します。定義系SQLを実行できる条件を次に示します。

＜オリジナルRDエリアがすべてカレントRDエリアである場合＞

すべてのレプリカRDエリアが，各世代内で次のどちらかの状態で統一されていること。

・更新可能な状態

・コマンド閉塞かつクローズ状態で定義処理をスキップする状態※

＜オリジナルRDエリアがカレントRDエリアでない場合＞

(i)pddblsコマンドに-Cオプションを指定し，1.で調べたオリジナルRDエリアののレプリカRDエリアを調べます。

(ii)pddblsコマンドの-qオプションに(i)のカレントRDエリアの世代番号を指定し，すべてのRDエリアが更新可能状態であることを確認します。

(iii)上記以外のレプリカRDエリアが，各世代内で次のどちらかの状態で統一されていること。

・更新可能な状態

・コマンド閉塞かつクローズ状態で定義処理をスキップする状態※

注※

世代の処理対象となる表に関連するすべてのRDエリアがコマンド閉塞かつクローズ状態の場合は，定義処理がスキップされます。定義処理をスキップした場合，KFPH22032-Wメッセージが出力されます。定義系SQLが正常に完了し，KFPH22032-Wメッセージが出力されている場合は，スキップした世代のRDエリアはデータディクショナリ用RDエリアの定義情報と不整合です。閉塞を解除する前にRDエリアの再作成が必要になります。詳細は「KFPH22032-Wメッセージの出力と対処」を参照してください。

RDエリアの状態ごとの定義系SQLの実行可否

RDエリアの状態ごとの定義系SQLの実行可否を，表「RDエリア状態ごとの定義系SQLの実行可否（オープン契機がINITIALの場合）」および表「RDエリア状態ごとの定義系SQLの実行可否（オープン契機がDEFERまたはSCHEDULEの場合）」に示します。

表B‒1　RDエリア状態ごとの定義系SQLの実行可否（オープン契機がINITIALの場合）

定義系SQL

オリジナル世代または

カレントRDエリアの世代

左記以外のレプリカRDエリアの世代

閉塞なし

オープン

○

○

クローズ

×

×

コマンド閉塞

オープン

×

×

クローズ

×

○※１

参照可能閉塞

オープン

×

×

クローズ

×

×

参照可能バックアップ閉塞

オープン

×

×

クローズ

×

×

更新可能バックアップ閉塞

オープン

○

○

クローズ

−

−

障害閉塞

オープン

×

×

クローズ

×

×

ログレス閉塞

オープン

×

×

クローズ

×

×

同期化閉塞

オープン

○※２

○※２

クローズ

×

×

オンライン再編成閉塞

オープン

×

×

クローズ

×

×

（凡例）

○：実行できます。

×：実行できません。

−：該当しません。

注※1

世代の処理対象となる表に関連するすべてのRDエリアがコマンド閉塞かつクローズ状態の場合は，定義処理がスキップされます。この場合，KFPH22032-Wメッセージが出力され，閉塞を解除する前にRDエリアを再作成する必要があります。詳細は「KFPH22032-Wメッセージの出力と対処」を参照してください。

注※2

排他待ちになります。

表B‒2　RDエリア状態ごとの定義系SQLの実行可否（オープン契機がDEFERまたはSCHEDULEの場合）

定義系SQL

オリジナル世代または

カレントRDエリアの世代

左記以外のレプリカRDエリアの世代

閉塞なし

オープン

○

○

クローズ

○

○

コマンド閉塞

オープン

×

×

クローズ

×

○※１

参照可能閉塞

オープン

×

×

クローズ

×

×

参照可能バックアップ閉塞

オープン

×

×

クローズ

×

×

更新可能バックアップ閉塞

オープン

○

○

クローズ

○

○

障害閉塞

オープン

×

×

クローズ

×

×

ログレス閉塞

オープン

×

×

クローズ

×

×

同期化閉塞

オープン

○※２

○※２

クローズ

○※２

○※２

オンライン再編成閉塞

オープン

×

×

クローズ

×

×

（凡例）

○：実行できます。

×：実行できません。

注※1

世代の処理対象となる表に関連するすべてのRDエリアがコマンド閉塞かつクローズ状態の場合は，定義処理がスキップされます。この場合，KFPH22032-Wメッセージが出力され，閉塞を解除する前にRDエリアを再作成する必要があります。詳細は「KFPH22032-Wメッセージの出力と対処」を参照してください。

注※2

排他待ちになります。

一部の定義系SQLは，それぞれのRDエリアに対してこれらの条件のどれかをチェックしてから処理を行います。チェックが発生する定義系SQLの一覧とそのチェック内容を次の表に示します。

表B‒3　チェックが発生する定義系SQLの一覧とそのチェック内容

SQL文

内容

チェック内容

（a）

（b）

（c）

CREATE TABLE

表定義

○

○

○

CREATE INDEX

インデクス定義

○

○

○

DROP INDEX

インデクス削除

×

○

○

DROP SCHEMA

スキーマ削除

×

○

○

ALTER TABLE ADD 列

LOB列，BLOB属性を含む抽象データ型列の列追加

○

○

○

ALTER TABLE CHANGE SEGMENT REUSE

空き領域の再利用機能の適用を変更

×

○

○

DROP TABLE

表削除

×

○

○

ALTER TABLE ADD RDAREA

ハッシュ関数によって横分割している表に対して，表格納用RDエリアを追加

○

○

○

ALTER TABLE ADD 列

FIX表の列，NOT NULL列追加

DEFAULT句指定列追加

×

○

○

ALTER TABLE CHANGE [NO SPLIT｜SPLIT]

可変長文字データの格納方式を変更

×

○

○

ALTER TABLE CHANGE CLUSTER KEY

実表のクラスタキーの一意性制約を変更

×

○

○

ALTER TABLE CHANGE HASH

FIXハッシュ分割表のハッシュ関数を変更

×

○

○

ALTER TABLE DROP

実表の列を削除

×

○

○

GRANT RDAREA

RDエリア利用権限の付与

○

×

×

ALTER TABLE CHANGE RDAREA

分割表の境界値指定を変更

○

○

○

ALTER TABLE CHANGE COLUMN

LOB列，LOB属性のログ取得種別を変更

○

○

○

（凡例）

○：チェックします。

×：チェックしません。

付録B.2　インナレプリカ機能を使用中に定義系SQLを実行する場合の注意事項

定義系SQLを発行するときは，次の点に注意してインナレプリカの運用方法を決定してください。

対象の表に関連するすべてのRDエリア※1は，複製定義数を一致させ，レプリカRDエリアの世代番号※2をすべてそろえて運用してください。ただし，HiRDB/パラレルサーバで表のサーバ間分割をしている場合は，複製定義数または世代番号はサーバ内でそろっていれば問題ありません。

RDエリア内に複数の表またはインデクスがある場合は，すべての表に関連する格納RDエリアを一組にして運用してください。

複数の世代に定義系SQLを実行する場合は，世代数分の処理時間と排他資源が必要になります。

レプリカRDエリアの実体がオリジナルRDエリアと別になっている状態でKFPH22032-Wメッセージが出力された場合，レプリカRDエリアの再作成が必要です。詳細は「KFPH22032-Wメッセージの出力と対処」を参照してください。

注※1

関連するRDエリアの確認には，pdrdreflsコマンドを使用します。

注※2

レプリカRDエリアの定義数または世代番号の確認には，pddblsコマンドを使用します。

付録B.3　KFPH22032-Wメッセージの出力と対処

●出力

RDエリアがコマンド閉塞かつクローズ状態のため，定義処理をスキップするとKFPH22032-Wメッセージが出力されます。KFPH22032-Wメッセージは，一つの定義系SQL（DROP SCHEMA以外）で，該当する世代のサーバで1回出力されます。DROP SCHEMAのように複数の表を対象とする定義系SQLは，個々の表について該当する世代のサーバで1回出力します。

●対処

コマンド閉塞かつクローズ状態のため処理をスキップしたRDエリアは，RDエリア内の定義情報を変更していません。ペアを分離しているなど，オリジナルRDエリアの更新が自動でレプリカRDエリアに反映される状態でない場合，RDエリアの内容は，データディクショナリ用RDエリアにある表やインデクスの定義情報と不整合です。この状態でレプリカRDエリアの閉塞を解除して使用すると，SQLがエラーとなったり，RDエリアが障害閉塞したりします。

RDエリアの閉塞を解除する前に次のどちらかの方法で，RDエリアの内容と表やインデクスの定義情報を一致させてください。

該当するRDエリアにオリジナルRDエリア，またはカレントRDエリアをコピーし，レプリカデータベースを再作成します。この場合，コピー元とコピー先のRDエリアの構成情報（構成ファイル数，ページ長，セグメントサイズ，およびセグメント数）が不一致のときはデータベース構成変更ユティリティ（pdmod）のRDエリアの構成情報複写で実体に合わせてRDエリアの定義情報もコピーします。

データベース構成変更ユティリティ（pdmod）で該当するRDエリアを再初期化します。再初期化するとRDエリアのデータはすべて削除されるため，データを再度登録します。

付録C　更新可能なオンライン再編成で使用するコマンド一覧

更新可能なオンライン再編成で使用するコマンドの一覧を次の表に示します。HiRDBコマンドの詳細についてはマニュアル「HiRDB コマンドリファレンス」を，MRCFコマンドおよびShadowImageコマンドについては使用するミラーリング機能のマニュアルを参照してください。

表C‒1　更新可能なオンライン再編成で使用するコマンドの一覧

属性

コマンド名

処理内容

HiRDB

コマンド

pdcopy

データベース複写

pdls

オンライン再編成追い付き反映状況の表示

pdorbegin

オンライン再編成データベースの静止化

pdorcheck

適用条件の確認

pdorchg

オンライン再編成カレントデータベース切り替え

pdorcreate

追い付き管理表の作成

pdorend

オンライン再編成追い付き反映

pdpfresh

ファイルにアクセスしているプロセスの停止

pdrdrefls

関連RDエリア表示

pdrorg

データベース再編成

pdrstr

データベース回復

MRCF

コマンド，

ShadowImage

コマンド

paircreate

ペアボリューム生成

pairevtwait

ペアボリューム生成再同期待ち合わせ

pairresync

ペアボリューム再同期

pairsplit

ペアボリューム分割

LVMコマンド

lvcreate

ペアボリューム分割

lvremove

ペアボリューム再同期

（正ボリューム→副ボリューム）

lvconvert

ペアボリューム再同期

（副ボリューム→正ボリューム）

付録D　pd_max_reflect_process_countオペランドの留意事項と見積もり

pd_max_reflect_process_countオペランドを指定するときの留意事項と見積もり方法について説明します。

付録D.1　pd_max_reflect_process_countオペランドの留意事項

(1)　値の範囲

pd_max_reflect_process_countオペランドには，次の条件を示す値を指定してください。この条件を満たさない場合，HiRDBを開始できません。

pd_max_reflect_process_count指定値＋pd_max_users指定値≦pd_max_users指定可能最大値

(2)　pd_max_usersオペランドとの関係

HiRDB開始時には，pd_max_reflect_process_countオペランドとpd_max_usersオペランドで指定した分だけ，HiRDBに対する接続枠が用意されます。

そのうち，pd_max_reflect_process_countオペランドで指定した分の接続枠は，更新可能なオンライン再編成での追い付き反映処理（pdorend反映プロセス）のために使用されます。ユーザの接続には使用されません。

pd_max_usersオペランドで指定した分の接続枠は，通常ユーザのために使用されます。しかし，更新可能なオンライン再編成での追い付きコマンド（pdorend）実行時に次の条件を満たすと，pdorend反映プロセスのためにも使用されます。

pdorend反映プロセスのための接続枠が，pd_max_reflect_process_countオペランドで指定した接続枠では足りない。

pd_max_usersオペランドで指定した接続枠のうちクライアントグループの自由接続枠（保証接続枠以外の部分）に空きがある。

自由接続枠に，↑自由接続枠数×0.1↑（約10%）より多い空きがある。

例を次に示します。

（例）

オペランドの指定値および使用状況が次のような場合の動作について説明します。

［指定値］

pd_max_reflect_process_countオペランドには20を，pd_max_usersには60（自由接続枠：48）を指定しています。

［状況］

追い付き反映処理用の接続が，pd_max_reflect_process_countオペランドで指定された20枠すべて使用されています。

現在，自由接続枠は29枠使用されています。

［動作］

この場合，↑自由接続枠数×0.1↑＝5なので，自由接続枠を残り5枠になるまで必要に応じて使用します。

ここで，次のコマンドを実行すると，さらに12（＝4×3）枠を自由接続枠から使用します。

pdorend -s bes1,bes2,bes3,bes4 -m 3

その次に，次のコマンドを使用すると，さらに3枠を使用しようとしますが，追い付き反映処理に使用できる空き自由接続枠が2枠（＝48−29−5−12）しかないため，エラーが発生します。

pdorend -s bes5 -m 3

(3)　共用メモリの節約

pd_max_reflect_process_countオペランドで指定した値は共用メモリ容量に影響します。更新可能なオンライン再編成の追い付き反映処理中にオンライン業務を行うユーザが少ないことがわかっている場合には，pdorend反映プロセスが通常ユーザ用の自由接続枠を使用するようにpd_max_reflect_process_countオペランドを小さめに設定すると，共用メモリの使用量を節約できます。

(4)　追い付き反映処理中のユーザ接続要求エラーの回避策

更新可能なオンライン再編成の追い付き反映処理が自由接続枠を使用しているときは，ユーザ接続数がpd_max_usersで指定した値未満でも，ユーザからの接続要求がエラーになることがあります。

この現象を回避するには次のようにしてください。

pd_max_reflect_process_countオペランドを正しく見積もってください。見積もり方法については，「pd_max_reflect_process_countオペランドの見積もり」を参照してください。

更新可能なオンライン再編成のpdorend反映プロセスの最大同時実行数がpd_max_reflect_process_countオペランドで指定した値以下になるように追い付き反映処理を実行してください。具体的には，次の方法で行います。

pdorend同時実行数を減らす

pdorend -sで指定する値（サーバ数）を減らす

pdorend -mで指定する値（pdorend反映プロセスの多重度）を減らす

接続を保証したいユーザに対しては，クライアントグループを設定してください。

付録D.2　pd_max_reflect_process_countオペランドの見積もり

pd_max_reflect_process_countオペランドの見積もり方法について説明します。

(1)　見積もり方法

pd_max_reflect_process_countオペランドの見積もり式を示します。

↑（a−MAX（0，↓（b−c）×d×0.9↓−e））÷d↑

a：更新可能なオンライン再編成のpdorend反映プロセスの最大同時実行数

b：pd_max_users指定値

c：クライアントグループ設定枠数

d：HiRDB/シングルサーバの場合は"1"を，HiRDB/パラレルサーバの場合システム内のFESの数を指定してください。

e：追い付き反映処理の実行中の最大同時接続数

追い付き反映処理中にユティリティを実行する場合は，ユティリティの最大同時実行数も加算します。ただし，pdgetcstの実行については，1回につき2を加算してください。

この値をあらかじめ見積もれない場合，または追い付き反映処理の実行中にpd_max_usersオペランド指定分の接続枠を保証したい場合は，（b−c）×dを指定してください。

なお，更新可能なオンライン再編成を実施する場合，メモリ容量やファイル容量などの見積もり算出式のパラメタに含まれる次のオペランドには，上記の見積もり式で計算したpd_max_reflect_process_countオペランドの値を加算する必要があります。

pd_max_users

pd_max_bes_process

pd_max_dic_process

(2)　見積もり例

pd_max_reflect_process_countオペランドの見積もり例を示します。（例2）では，（例1）と異なる条件部分に下線を引いています。

（例1）

［条件］

HiRDB/パラレルサーバを使用する。システム内のFESは2個である。

→dに影響

クライアントグループ指定は次のとおりである。

pdcltgrp -g A -u 2
pdcltgrp -g B -u 1

→cに影響

pd_max_usersは15である。

→bに影響

追い付き反映処理中でもpd_max_usersオペランド指定分のユーザ接続枠を保証したい。

→eに影響

追い付き反映処理では，次のコマンドを同時に実行する予定である。

pdorend -s bes1, bes2, bes3, bes4, bes5, bes6, bes7, bes8, bes9, bes10 -m 2
pdorend -s bes11, bes12, bes13, bes14, bes15 -m 3

→aに影響

［算出式］

a＝10×2＋5×3＝35

b＝15

c＝2＋1＝3

d＝2

e＝（15−3）×2＝24

pd_max_reflect_process_count

　　　　＝↑（35−MAX（0，↓（15−3）×2×0.9↓−24））÷2↑

　　　　＝↑（35−MAX（0，−3））÷2↑

　　　　＝↑17.5↑

　　　　＝18

確保される接続枠は次のようになります。

（例2）

［条件］

HiRDB/パラレルサーバを使用する。システム内のFESは2個である。

→dに影響

クライアントグループ指定は次のとおりである。

pdcltgrp -g A -u 2
pdcltgrp -g B -u 1

→cに影響

pd_max_usersは15である。

→bに影響

追い付き反映処理中に接続する最大同時接続ユーザ数（ユティリティ実行数も含む）は，10である。

→eに影響

追い付き反映処理でpd_max_users指定分の接続枠を使用することで，共用メモリ量を節約したい。

→eに影響

追い付き反映処理では，次のコマンドを同時に実行する予定である。

pdorend -s bes1, bes2, bes3, bes4, bes5, bes6, bes7, bes8, bes9, bes10 -m 2
pdorend -s bes11, bes12, bes13, bes14, bes15 -m 3

→aに影響

［算出式］

a＝10×2＋5×3＝35

b＝15

c＝2＋1＝3

d＝2

e＝10

pd_max_reflect_process_count

　　　　＝↑（35−MAX（0，↓（15−3）×2×0.9↓−10））÷2↑

　　　　＝↑（35−MAX（0，11））÷2↑

　　　　＝↑12↑

　　　　＝12

確保される接続枠は次のようになります。

付録E　更新可能なオンライン再編成用サンプルシェル

AIX版のHiRDB Staticizer Optionでは，更新可能なオンライン再編成の運用手順のひな形になるサンプルシェルプログラムが用意されています。

ここでは，用意されているサンプルシェルプログラムについて説明します。

付録E.1　想定する物理エリア構成と論理エリア構成

サンプルシェルプログラムでは，次の図のような物理エリア構成，および論理エリア構成を想定しています。

図E‒1　想定する物理エリア構成と論理エリア構成

日立ディスクアレイシステムによって，LU（論理デバイス）が/dlmfdrv255と/dlmfdrv256のペアボリューム構成になっています。プライマリボリューム（マスタ）は/dlmfdrv255，セカンダリボリューム（レプリカ）は/dlmfdrv256です。論理ボリュームは，プライマリのものが/lv00，セカンダリのものが/GN1_lv00です。

付録E.2　サンプルシェルプログラムのファイル名

(1)　インストールディレクトリ

サンプルシェルプログラムは，$PDDIR/binにインストールされます。

(2)　ファイル名

ボリュームを操作するコマンドは，root権限の所有者で，またHiRDBコマンドはHiRDB管理者権限の所有者で実行する必要があります。

したがって，サンプルシェルプログラムには，操作に必要な実行権限が変わる単位でファイルが用意されています。

サンプルシェルプログラムの名称を次の表に示します。

表E‒1　サンプルシェルプログラムの名称

処理内容

サンプルシェルプログラム名称

自動実行処理

（初期設定と以下の処理の実行）

org_［OS名］.sh

ボリューム再同期処理

org0_［OS名］.sh

切り替え実行前処理

org1_［OS名］.sh

ボリューム分割処理

org2_run_［OS名］.sh

切り替え実行後処理

org3_［OS名］.sh

［OS名］の部分は，「AIX」となります。例えば，自動実行処理の場合，「org_AIX.sh」になります。

付録E.3　サンプルシェルプログラムフローチャート

サンプルシェルプログラムで実行する処理のフローチャートを次の図に示します。

org_［OS名］.shのフローチャート

org0_［OS名］.shのフローチャート

org1_［OS名］.shのフローチャート

org2_［OS名］.shのフローチャート

org3_［OS名］.shのフローチャート

なお，フローチャート内の条件文「シェルコマンド実行判定」とは，次に処理する予定のコマンドを実行する必要があるかどうかを判定する処理です。例えば，「シェル状態管理変数初期化」の前に「シェルコマンド実行判定」がある場合，「シェルコマンド実行判定」をする必要があるかどうかを判定する処理です。実行する必要がある場合はYに，必要がない場合はNになります。

図E‒2　org_［OS名］.shのフローチャート

図E‒3　org0_［OS名］.shのフローチャート

図E‒4　org1_［OS名］.shのフローチャート

図E‒5　org2_［OS名］.shのフローチャート

図E‒6　org3_［OS名］.shのフローチャート

付録E.4　サンプルシェルプログラム使用方法

サンプルシェルプログラムの使用方法について説明します。

(1)　サンプルシェルプログラムの実行

サンプルシェルプログラムは，$PDDIR/binからファイルをコピーしてから使用します。

サンプルシェルプログラムは一つの運用例です。運用環境によっては，正しく動作しないことがあるので，必要に応じて内容をカスタマイズしてから使用してください。

なお，サンプルシェルプログラムは，系切り替えの運用には対応していません。

次にサンプルシェルプログラムの使用手順を示します。

＜使用手順＞

サンプルシェルプログラムを，実行したいディレクトリにコピーします。

使用環境に応じてサンプルシェルプログラムを変更します。

詳細については，「サンプルシェルプログラムのカスタマイズ」を参照してください。

サンプルシェルプログラムを次に示す順序と実行者で実行するか，root権限を持つユーザでorg_［対象OS］.shを実行します。

＜実行順序＞

org0_［対象OS］.sh

実行者：root権限所有者

org1_［対象OS］.sh

実行者：HiRDB管理者

org2_run_［対象OS］.sh

実行者：root権限所有者

org3_［対象OS］.sh

実行者：HiRDB管理者

注意

サンプルシェルプログラムでエラーが発生した場合，エラーからの回復はコマンドで行ってください。回復したあと最初からサンプルシェルプログラムを実行し直す場合は，先に実行ディレクトリに残っている次の一時ファイルを削除してください。

orgsts

orgsts_R

(2)　サンプルシェルプログラムのカスタマイズ

サンプルシェルプログラムは，使用環境に応じてシェル変数を変更する必要があります。変更の可能性のあるシェル変数を次の表に示します。これらの変数は，各シェルの先頭のコメント部分「#Set XXXX…」に記述されています。

表E‒2　変更の可能性のあるシェル変数

シェル名称

変数

変数の意味

org_［対象OS］.sh

USER

HiRDB管理者ユーザアカウント

org0_［対象OS］.sh

VOLGP_P

正系ボリュームグループ名

VOLGP_S

副系ボリュームグループ名

LV_P

正系論理ボリューム名

LV_S

副系論理ボリューム名

PAIR_VOL_GP

ペアボリュームグループ

PAIR_VOL_NAME

ペアボリューム名称

USER

HiRDB管理者ユーザアカウント

RDAREA_NAME

更新可能なオンライン再編成の対象オリジナルRDエリア名

GENERATION

更新可能なオンライン再編成の対象レプリカRDエリア世代番号

org1_［対象OS］.sh

RDAREA_NAME

更新可能なオンライン再編成の対象オリジナルRDエリア名

GENERATION

更新可能なオンライン再編成のレプリカRDエリア世代番号

org2_run_［対象OS］.sh

VOLGP_P

正系ボリュームグループ名

VOLGP_S

副系ボリュームグループ名

LV_P

正系論理ボリューム名

LV_S

副系論理ボリューム名

LV_PFIX

論理ボリューム接頭思

PAIR_VOL_GP

ペアボリュームグループ

PAIR_VOL_NAME

ペアボリューム名称

USER

HiRDB管理者ユーザアカウント

RDAREA_NAME

更新可能なオンライン再編成の対象オリジナルRDエリア名

GENERATION

更新可能なオンライン再編成の対象レプリカRDエリア世代番号

OWNER

論理ボリューム所有者

GROUP

論理ボリュームグループ名

LU_P

正系論理ボリューム名称（AIXだけ）

LU_S

副系論理ボリューム名称（AIXだけ）

LU_PFIX

論理ボリューム接頭辞（AIXだけ）

org3_［対象OS］.sh

RDAREA_NAME1

更新可能なオンライン再編成の対象オリジナルRDエリア名(pdcopy用)

RDAREA_NAME2

更新可能なオンライン再編成の対象オリジナルRDエリア名(pdrorg用)

TABLE_NAME

更新可能なオンライン再編成の対象表名称

SERVER_NAME

更新可能なオンライン再編成の対象RDエリア

GENERATION

更新可能なオンライン再編成の対象レプリカRDエリア世代番号

CONTROL_FILE

再編成前データベース再編成制御ファイル

BACKUP_FILE_B

再編成前データベース複写ファイル

BACKUP_FILE_A

再編成後データベース複写ファイル

LIST_FILE_B

再編成前データベース複写結果リストファイル

LIST_FILE_A

再編成後データベース複写結果リストファイル

MASTER_DIRECTORY

マスタディレクトリ名称

MAX_REF_TIME

pdorendコマンド追い付き反映最大許容待ち時間

MAX_TRN_TIME

pdorendコマンドトランザクション処理最大許容待ち時間

MAX_RETRY_CNT

pdorendコマンド最大リトライ回数

REF_PROCESS_CNT

pdorend反映プロセスの多重度

CMD_RETRY_CNT

シェル内pdorendコマンドリトライ回数

付録F　トラブル事例

インナレプリカ運用時のよくあるトラブル事例を次の表に示します。

表F‒1　よくあるトラブル事例

トラブル事例

トラブル発生契機

出力されるメッセージ

原因/対処

の参照先

レプリカRDエリアが閉塞

定義系SQL実行

（CREATE，DROP，ALTERコマンド）

KFPH22015-E（HiRDBファイルシステム領域がない）

KFPH00306-E（オープンエラー）

「定義系SQL実行時にレプリカRDエリア閉塞」を参照してください。

RDエリアの状態解析コマンドでのセグメント情報取得

（pddbls -r all -aコマンド）

KFPH22015-E（HiRDBファイルシステム領域がない）

KFPH00306-E（オープンエラー）

「RDエリアの状態解析コマンドでのセグメント情報取得（pddbls -r all -aコマンド実行）時にレプリカRDエリア閉塞」を参照してください。

オリジナルRDエリア拡張（pdmodコマンドのexpand rdarea文）後のRDエリアアクセス

KFPH22001-E（RDエリア制御情報の矛盾検知，reason code = 5）

「オリジナルRDエリア拡張後のRDエリアアクセス時にレプリカRDエリア閉塞」を参照してください。

カレントRDエリアの切り替え

（pdorchgコマンド）

KFPH22001-E（RDエリア制御情報の矛盾検知，reason code = 5）

「カレントRDエリア切り替え時にレプリカRDエリア閉塞（RDエリア制御情報の矛盾検知）」を参照してください。

KFPO00107-E（システムコールエラー，"open64(oflopen64)" failed. errno=13 : Permission denied）

KFPH27007-E（HiRDBファイルシステム領域アクセスエラー，code = -1540）

KFPH00306-E（オープンエラー）

「カレントRDエリア切り替え時にレプリカRDエリア閉塞（オープンエラー）」を参照してください。

更新可能なオンライン再編成運用中の系切り替え発生

KFPH22015-E（HiRDBファイルシステム領域がない）

「更新可能なオンライン再編成運用中の系切り替えでレプリカRDエリア閉塞」を参照してください。

オンライン再編成の追い付き反映

（pdorendコマンド）

KFPO00107-E（システムコールエラー，"write(oflwrite)" failed. errno=5）

KFPH23100-E（HiRDBファイルアクセスエラー，code = -1544）

KFPH00306-E（入出力エラー）

「オンライン再編成の追い付き反映時にレプリカRDエリア閉塞」を参照してください。

KFPH22015-E（HiRDBファイルシステム領域がない）

コマンドが異常終了

データベースの静止化

（pdorbeginコマンド）

KFPH00153-E（RDエリア状態不正）

「データベースの静止化（pdorbeginコマンド）が異常終了（RDエリア状態不正）」を参照してください。

KFPS00450-W（タイムアウト）

KFPA11770-I（排他エラー）

KFPH00145-E（code = -5：排他エラー）

「データベースの静止化（pdorbeginコマンド）が異常終了（タイムアウト）」を参照してください。

データベースの静止化の解除

（pdorbegin -uコマンド）

KFPS00450-W（タイムアウト）

KFPA11770-I（排他エラー）

KFPH00145-E（code = -5：排他エラー）

「データベースの静止化の解除（pdorbegin -uコマンド）が異常終了」を参照してください。

カレントRDエリアの切り替え

（pdorchgコマンド）

KFPS00450-W（タイムアウト）

KFPA11770-I（排他エラー）

KFPH00145-E（code = -5：排他エラー）

「カレントRDエリアの切り替え（pdorchgコマンド）が異常終了（タイムアウト）」を参照してください。

KFPH27043-E（code = -55：コマンドの実行順序不正）

「カレントRDエリアの切り替え（pdorchgコマンド）が異常終了（コマンドの実行順序不正）」を参照してください。

更新可能なオンライン再編成

KFPA11756-E（RDエリア容量不足）

「更新可能なオンライン再編成が異常終了（RDエリア容量不足）」を参照してください。

KFPA20002-E（通信処理エラー，abort=Pab1114，code=-364）

「更新可能なオンライン再編成が異常終了（通信処理エラー）」を参照してください。

更新可能なオンライン再編成の取り消し（pdorend -uコマンド）

KFPH27043-E（code = -55：コマンドの実行順序不正）

「更新可能なオンライン再編成の取り消し（pdorend -uコマンド）が異常終了」を参照してください。

オンライン再編成の追い付き反映

（pdorendコマンド）

KFPH27043-E（code = -50：タイムアウト，または，-51：リトライ回数オーバー）

「オンライン再編成の追い付き反映（pdorendコマンド）が異常終了（タイムアウトまたはリトライ回数オーバー）」を参照してください。

KFPH27043-E（code = -55：コマンドの実行順序不正）

「オンライン再編成の追い付き反映（pdorendコマンド）が異常終了（コマンドの実行順序不正）」を参照してください。

KFPT02016-E（ユニークインデクスがない）

「オンライン再編成の追い付き反映（pdorendコマンド）が異常終了（ユニークインデクス未定義）」を参照してください。

HiRDBが異常終了

更新可能なオンライン再編成

KFPS01220-E（ログファイル不足）

「HiRDBが異常終了する事例」を参照してください。

ボリューム操作コマンドがエラー

ペアボリューム再同期

−

「ボリューム操作コマンドがエラーになる事例」を参照してください。

各トラブル事例を次の形式で説明します。

よくある原因

よくある原因を挙げています。

確認方法

トラブルの原因が「よくある原因」で示した原因であるかどうかを確認する方法を記載しています。

対処方法

よくある原因に対する対処方法を記載しています。

対処手順

対処方法の手順を記載しています。

対処手順に書かれているペアボリュームのボリューム操作については，使用するミラーリング機能のマニュアルを参照してください。日立ディスクアレイシステムを使用している場合は，「日立ディスクアレイシステム使用時の注意事項および操作手順」を参照してください。

付録F.1　レプリカRDエリアが閉塞する事例

(1)　定義系SQL実行時にレプリカRDエリア閉塞

次のメッセージが出力され，レプリカRDエリアが障害閉塞しました。

KFPH22015-E（HiRDBファイルシステム領域がない）

KFPH00306-E（オープンエラー）

よくある原因

副ボリュームがアクセス不可状態であるのに，レプリカRDエリアをアクセス抑止（コマンド閉塞かつクローズ）状態にしていません。このため，定義系SQLの実行の延長でレプリカRDエリアを更新しようとしてエラーになりました。

確認方法

次のことを確認します。

KFPH22032-Wメッセージが出力されていない。

現在の副ボリュームのファイルは，OSから認識できない状態になっている。

対処方法

レプリカRDエリアの障害閉塞状態を解除し，レプリカRDエリアをコマンド閉塞かつクローズ状態にして定義系SQLを実行します。

対処手順

手順

操作

確認方法

1

副ボリュームをアクセス可能状態にします。

各システムでの操作手順に従ってください。

−

2

レプリカRDエリアの障害閉塞を解除します。

「pdrels -r レプリカRDエリア名 -o」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA released, RDAREA = "RDエリア名"

KFPH00130-I RDAREA opened, RDAREA = "RDエリア名"

3

レプリカRDエリアへのアクセスを抑止します。

「pdhold -r レプリカRDエリア名 -c」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA held, RDAREA = "RDエリア名"

KFPH00130-I RDAREA closed, RDAREA = "RDエリア名"

4

RDエリアにアクセスするプロセスを停止します。

pdpfreshコマンドを実行します。

pdpfresh -c（プロセスのリフレッシュ完了確認）コマンドを実行し，次のメッセージを確認します。

KFPS00730-I pdpfresh ended, return code = 0

5

シンクポイントダンプを取得します。

pdlogsyncコマンドを実行します。

−

6

ペアボリュームを再同期します。

各システムでの操作手順に従ってください。

−

7

定義系SQLを再実行します。

−

−

8

オンライン再編成の適用条件を満たしていることを確認します。

pdorcheckコマンドを実行します。

次のメッセージを確認します。

KFPT02022-I Pdorcheck:all resources conformed to Online DB Reorganization

(2)　RDエリアの状態解析コマンドでのセグメント情報取得（pddbls -r all -aコマンド実行）時にレプリカRDエリア閉塞

次のメッセージが出力され，レプリカRDエリアが障害閉塞しました。

KFPH22015-E（HiRDBファイルシステム領域がない）

KFPH00306-E（オープンエラー）

よくある原因

副ボリュームがアクセス不可状態であるのに，レプリカRDエリアをアクセス抑止（コマンド閉塞かつクローズ）状態にしていません。このため，pddblsコマンドでレプリカRDエリアにアクセスしようとしてエラーになりました。

確認方法

現在の副ボリュームのファイルは，OSから認識できない状態になっていることを確認します。

対処方法

レプリカRDエリアの障害閉塞状態を解除します。

対処手順

手順

操作

確認方法

1

副ボリュームをアクセス可能状態にします。

各システムでの操作手順に従ってください。

−

2

レプリカRDエリアの障害閉塞を解除します。

「pdrels -r レプリカRDエリア名 -o」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA released, RDAREA = "RDエリア名"

KFPH00130-I RDAREA opened, RDAREA = "RDエリア名"

3

レプリカRDエリアへのアクセスを抑止します。

「pdhold -r レプリカRDエリア名 -c」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA held, RDAREA = "RDエリア名"

KFPH00130-I RDAREA closed, RDAREA = "RDエリア名"

4

RDエリアにアクセスするプロセスを停止します。

pdpfreshコマンドを実行します。

pdpfresh -c（プロセスのリフレッシュ完了確認）コマンドを実行し，次のメッセージを確認します。

KFPS00730-I pdpfresh ended, return code = 0

5

シンクポイントダンプを取得します。

pdlogsyncコマンドを実行します。

−

6

ペアボリュームを再同期します。

各システムでの操作手順に従ってください。

−

(3)　オリジナルRDエリア拡張後のRDエリアアクセス時にレプリカRDエリア閉塞

次のメッセージが出力され，レプリカRDエリアが障害閉塞しました。

KFPH22001-E（RDエリア制御情報の矛盾検知，reason code = 5）

よくある原因は二つあります。原因ごとに事例を説明します。

よくある原因1

正ボリュームと副ボリュームのペアが解除されている状態でオリジナルRDエリアの拡張（pdmodコマンドのexpand rdarea文）を実行したため，オリジナルRDエリアとレプリカRDエリアの実体が不一致になっています。

ただし，レプリカRDエリアに定義情報のコピー（pdmodコマンドのdefine copy rdarea文）を実行しているため，オリジナルRDエリアとレプリカRDエリアの定義は一致しています。

確認方法

次のことを確認してください。

オリジナルRDエリアの拡張（pdmodコマンドのexpand rdarea文）を実行している。

レプリカRDエリアとオリジナルRDエリアの構成ファイル数が一致している（次のコマンドでディクショナリ表の構成ファイル数を検索して確認する）。

SELECT FILE_COUNT FROM "MASTER".SQL_RDAREAS WHERE RDAREA_NAME = 'RDエリア名称'

対処方法

レプリカRDエリアのデータベースの状態をオリジナルRDエリアに一致させ，レプリカRDエリアの閉塞を解除します。

対処手順

手順

操作

確認方法

1

レプリカRDエリアへのアクセスを抑止します。

「pdclose -r レプリカRDエリア名」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA closed, RDAREA = "RDエリア名"

2

RDエリアにアクセスするプロセスを停止します。

pdpfreshコマンドを実行します。

pdpfresh -c（プロセスのリフレッシュ完了確認）コマンドを実行し，次のメッセージを確認します。

KFPS00730-I pdpfresh ended, return code = 0

3

シンクポイントダンプを取得します。

pdlogsyncコマンドを実行します。

−

4

ペアボリュームを再同期します。

各システムでの操作手順に従ってください。

−

5

ペアを解除し，副ボリュームをアクセス可能状態にします。

各システムでの操作手順に従ってください。

−

6

レプリカRDエリアの障害閉塞を解除します。

「pdrels -r レプリカRDエリア名 -o」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA released, RDAREA = "RDエリア名"

KFPH00130-I RDAREA opened, RDAREA = "RDエリア名"

よくある原因2

正ボリュームと副ボリュームがペア状態でオリジナルRDエリアの拡張（pdmodコマンドのexpand rdarea文）を実行したので，オリジナルRDエリアとレプリカRDエリアの実体は一致していますが，レプリカRDエリアに定義情報のコピー（pdmodコマンドのdefine copy rdarea文）を実行していなかったため，オリジナルRDエリアとレプリカRDエリアの定義が不一致になりました。

確認方法

次のことを確認してください。

オリジナルRDエリアの拡張（pdmodコマンドのexpand rdarea文）を実行している。

レプリカRDエリアとオリジナルRDエリアの構成ファイル数が一致していない（次のコマンドでディクショナリ表の構成ファイル数を検索して確認する）。

SELECT FILE_COUNT FROM "MASTER".SQL_RDAREAS WHERE RDAREA_NAME = 'RDエリア名称'

対処方法

レプリカRDエリアを定義に従って再初期化し，障害閉塞を解除します。

その後，オリジナルRDエリアとレプリカRDエリアの実体と定義を一致させます。

対処手順

手順

操作

確認方法

1

レプリカRDエリアへのアクセスを抑止します。

「pdclose -r レプリカRDエリア名」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA closed, RDAREA = "RDエリア名"

2

レプリカRDエリアを再初期化し，構成ファイル数をディクショナリ表の定義に一致させます。

pdmodコマンドの「initialize rdarea レプリカRDエリア名；」文を実行します。

次のメッセージを確認します。

KFPX14250-I Processing of initialize rdarea statement ended return code=0, RDAREA name="レプリカRDエリア名"

3

レプリカRDエリアの障害閉塞を解除します。

「pdrels -r レプリカRDエリア名 -o」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA released, RDAREA = "RDエリア名"

KFPH00130-I RDAREA opened, RDAREA = "RDエリア名"

4

レプリカRDエリアへのアクセスを抑止します。

「pdhold -r レプリカRDエリア名 -c」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA held, RDAREA = "RDエリア名"

KFPH00130-I RDAREA closed, RDAREA = "RDエリア名"

5

RDエリアにアクセスするプロセスを停止します。

pdpfreshコマンドを実行します。

pdpfresh -c（プロセスのリフレッシュ完了確認）コマンドを実行し，次のメッセージを確認します。

KFPS00730-I pdpfresh ended, return code = 0

6

シンクポイントダンプを取得します。

pdlogsyncコマンドを実行します。

−

7

ペアボリュームを再同期します。

各システムでの操作手順に従ってください。

−

8

オリジナルRDエリアの拡張のためにHiRDBファイルシステム領域を追加している場合は，レプリカ用の世代番号を登録します。

pdmodコマンドのcreate generation文を実行します。

−

9

オリジナルRDエリアの構成情報をレプリカRDエリアの定義にコピーします。

pdmodコマンドの「define copy rdarea レプリカRDエリア名 reproduce オリジナルRDエリア名；」文を実行します。

次のメッセージを確認します。

KFPX14250-I Processing of define copy rdarea statement ended return code=0, RDAREA name="レプリカRDエリア名"

10

ペアを解除し，副ボリュームをアクセスできる状態にします。

各システムでの操作手順に従ってください。

−

11

レプリカRDエリアのコマンド閉塞を解除します。

「pdrels -r レプリカRDエリア名」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA released, RDAREA = "RDエリア名"

(4)　カレントRDエリア切り替え時にレプリカRDエリア閉塞（RDエリア制御情報の矛盾検知）

次のメッセージが出力され，レプリカRDエリアが障害閉塞しました。

KFPH22001-E（RDエリア制御情報の矛盾検知，reason code = 5）

よくある原因

オリジナルRDエリアの拡張（pdmodコマンドのexpand rdarea文）を実行しましたが，レプリカRDエリアに定義情報のコピー（pdmodコマンドのdefine copy rdarea文）を実行していません。このため，レプリカRDエリアの定義情報と構成ファイル数が不一致になりました。

確認方法

オリジナルRDエリアの拡張（pdmodコマンドのexpand rdareaコマンド）を実行したかどうかを確認します。

対処方法

レプリカRDエリアを初期化し，障害閉塞を解除して，カレントRDエリアの切り替えを再実行します。その後オンライン再編成状態を解除して，オリジナルRDエリアとレプリカRDエリアのデータベースの定義と実体を一致させます。

対処手順

手順

操作

確認方法

1

レプリカRDエリアを再初期化します（構成ファイル数をディクショナリ表の定義に一致させます）。

pdmodコマンドの「initialize rdarea レプリカRDエリア名；」文を実行します。

マニュアル「HiRDB コマンドリファレンス」の「データベース構成変更ユティリティ（pdmod）」を参照してください。

2

レプリカRDエリアの障害閉塞を解除します。

「pdrels -r レプリカRDエリア名 -o」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA released, RDAREA = "RDエリア名"

KFPH00130-I RDAREA opened, RDAREA = "RDエリア名"

3

pdorchgコマンドを再実行します。

エラーになったpdorchgコマンドを再実行して完了させます。

次のメッセージを確認します。

KFPH00130-I RDAREA current changed, RDAREA = "RDエリア名"

KFPH27045-I pdorchg command ended, return code = 0

4

オンライン再編成閉塞を解除します。

pdorend -uコマンドを実行します。

次のメッセージを確認します。

KFPH27045-I pdorend command ended, return code = 0

また，pddblsコマンドを実行し，次の表示結果を確認します。

オリジナルRDエリアのREPLICA-STATUS：S（サブRDエリア）

レプリカRDエリアのREPLICA-STATUS：C（カレントRDエリア）

5

カレントRDエリアをオリジナルRDエリアに戻します。

「pddbchg -q 0 -r オリジナルRDエリア名」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA current changed, RDAREA = "RDエリア名"

また，pddblsコマンドを実行し，次の表示結果を確認します。

オリジナルRDエリアのREPLICA-STATUS：C（カレントRDエリア）

レプリカRDエリアのREPLICA-STATUS：S（サブRDエリア）

6

レプリカRDエリアへのアクセスを抑止します。

「pdhold -r レプリカRDエリア名 -c」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA held, RDAREA = "RDエリア名"

KFPH00130-I RDAREA closed, RDAREA = "RDエリア名"

7

RDエリアにアクセスするプロセスを停止します。

pdpfreshコマンドを実行します。

pdpfresh -c（プロセスのリフレッシュ完了確認）コマンドを実行し，次のメッセージを確認します。

KFPS00730-I pdpfresh ended, return code = 0

8

シンクポイントダンプを取得します。

pdlogsyncコマンドを実行します。

−

9

ペアボリュームを再同期します。

各システムでの操作手順に従ってください。

−

10

オリジナルRDエリアの拡張のためにHiRDBファイルシステム領域を追加している場合は，レプリカ用の世代番号を登録します。

pdmodコマンドのcreate generation文を実行します。

−

11

オリジナルRDエリアの構成情報をレプリカRDエリアの定義にコピーします。

pdmodコマンドの「define copy rdarea レプリカRDエリア名 reproduce オリジナルRDエリア名；」文を実行します。

マニュアル「HiRDB コマンドリファレンス」の「データベース構成変更ユティリティ（pdmod）」を参照してください。

(5)　カレントRDエリア切り替え時にレプリカRDエリア閉塞（オープンエラー）

次のメッセージが出力され，レプリカRDエリアが障害閉塞しました。

KFPO00107-E（システムコールエラー，"open64(oflopen64)" failed. errno=13 : Permission denied）

KFPH27007-E（HiRDBファイルシステム領域アクセスエラー，code = -1540）

KFPH00306-E（オープンエラー）

よくある原因

副ボリュームの操作に失敗したため，副ボリュームがアクセス不可状態です。このため，レプリカRDエリアのオープン処理でエラーになりました。

確認方法

副ボリュームのファイルがOSから認識できない状態であることを確認します。

対処方法は次の二つがあります。

対処方法1

副ボリュームをアクセス可能にしてオンライン再編成を続行します。

対処手順

手順

操作

確認方法

1

ペアを解除し，副ボリュームをアクセス可能状態にします。

各システムでの操作手順に従ってください。

−

2

レプリカRDエリアの障害閉塞を解除します。

「pdrels -r レプリカRDエリア名 -o」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA released, RDAREA = "RDエリア名"

KFPH00130-I RDAREA opened, RDAREA = "RDエリア名"

3

pdorchgコマンドを再実行します。

−

−

対処方法2（通常運用として推奨する方法ではありません）

副ボリュームをアクセス可能にできない場合，システムのステータスをクリアして，オンライン再編成閉塞状態を解除します。この方法で対策する場合は，システム管理者に連絡してください。

対処手順

手順

操作

確認方法

1

HiRDBを計画停止します。

pdstop -Pコマンドを実行します。

−

2

ユニットとサーバのステータスファイルをすべて初期化（再作成）します。

pdstsiniコマンドを実行します。

−

3

HiRDBを正常開始します。

pdstartコマンドを実行します。

−

4

レプリカRDエリアへのアクセスを抑止します。

「pdhold -r レプリカRDエリア名 -c」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA held, RDAREA = "RDエリア名"

KFPH00130-I RDAREA closed, RDAREA = "RDエリア名"

5

カレントRDエリアをオリジナルRDエリアに戻します。

「pddbchg -q 0 -r オリジナルRDエリア名」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA current changed, RDAREA = "RDエリア名"

また，pddblsコマンドを実行し，次の表示結果になっていることを確認します。

オリジナルRDエリアのREPLICA-STATUS：C（カレントRDエリア）

レプリカRDエリアのREPLICA-STATUS：S（サブRDエリア）

6

追い付き状態管理表を初期化するため，いったん削除します。

pdorcreate -dコマンドを実行します。

次のメッセージを確認します。

KFPT02020-I Pdorcreate:reflection management table dropped

KFPT02014-I Pdorcreate terminated, return code=0

7

追い付き状態管理表を再作成します。

pdorcreateコマンドを実行します。

次のメッセージを確認します。

KFPT02020-I Pdorcreate:reflection management table created

KFPT02014-I Pdorcreate terminated, return code=0

(6)　更新可能なオンライン再編成運用中の系切り替えでレプリカRDエリア閉塞

REDO処理中に次のメッセージが出力され，レプリカRDエリアが障害閉塞しました。

KFPH22015-E（HiRDBファイルシステム領域がない）

よくある原因

待機系で副ボリュームをアクセス可能にしていませんでした。このため，REDO処理でレプリカRDエリアの回復ができませんでした。

確認方法

現在の副ボリュームのファイルはOSから認識できない状態であることを確認します。

対処方法

レプリカRDエリアの整合性が取れていないため，オンライン再編成を中止し，バックアップと更新ログからレプリカRDエリアを回復します。

対処手順

手順

操作

確認方法

1

更新可能なオンライン再編成状態を取り消します。

pdorend -uコマンドを実行します。

次のメッセージを確認します。

KFPH27045-I pdorend command ended, return code = 0

また，pddblsコマンドを実行して，次の表示結果を確認します。

オリジナルRDエリアのREPLICA-STATUS：S（サブRDエリア）

レプリカRDエリアのREPLICA-STATUS：C（カレントRDエリア）

2

オリジナルRDエリアへのアクセスを抑止します。

「pdhold -r オリジナルRDエリア名 -c」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA held, RDAREA = "RDエリア名"

KFPH00130-I RDAREA closed, RDAREA = "RDエリア名"

3

システムログをアンロードします。

pdlogunldコマンドを実行します。

マニュアル「HiRDB コマンドリファレンス」の「RD単位の回復をする場合」を参照してください。

4

バックアップと手順3で取得したアンロードログを使用して，レプリカRDエリアを回復します。

pdrstr -q 0 -x cコマンドを実行します。

5

レプリカRDエリアのデータをオリジナルRDエリアにコピーします。

データのコピー方法は任意ですが，次のような方法があります。

pdcopyコマンドでデータをコピーし，pdrstrコマンドで回復する。

pdrorgコマンドでデータをアンロード，リロードする。

pdrorgコマンドでデータをアンロードし，pdloadコマンドでリロードする。

コマンドによって実行できるRDエリアの状態が異なります。実行できるRDエリアの状態については，マニュアル「HiRDB コマンドリファレンス」の「RDエリアの状態によるユティリティ及びUAPの実行可否」を参照してください。

−

6

カレントRDエリアをオリジナルRDエリアに戻します。

「pddbchg -q 0 -r オリジナルRDエリア名」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA current changed, RDAREA = "RDエリア名"

また，pddblsコマンドを実行して，次の表示結果を確認します。

オリジナルRDエリアのREPLICA-STATUS：C（カレントRDエリア）

レプリカRDエリアのREPLICA-STATUS：S（サブRDエリア）

7

オリジナルRDエリアのコマンド閉塞を解除します。

「pdrels -r オリジナルRDエリア名 -o」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA released, RDAREA = "RDエリア名"

KFPH00130-I RDAREA opened, RDAREA = "RDエリア名"

また，pddblsコマンドを実行して，次の表示結果を確認します。

オリジナルRDエリアのSTATUS：OPEN

(7)　オンライン再編成の追い付き反映時にレプリカRDエリア閉塞

オンライン再編成の追い付き反映コマンド（pdorend）は正常終了しましたが，次のメッセージが出力され，レプリカRDエリアが障害閉塞しました。

KFPO00107-E（システムコールエラー，"write(oflwrite)" failed. errno=5）

KFPH23100-E（HiRDBファイルアクセスエラー，code = -1544）

KFPH00306-E（入出力エラー）

または，次のメッセージが出力され，レプリカRDエリアが障害閉塞しました。

KFPH22015-E（HiRDBファイルシステム領域がない）

よくある原因

pdorendコマンド完了前に副ボリュームをアクセスできない状態にしています。

確認方法

次のことを確認します。

pdorendコマンドが正常終了している。

pddblsコマンドの表示結果で，カレントRDエリアがオリジナルRDエリアになっている。

pdls -d orgコマンドの表示結果で，STATUSがNONEになっている。

現在の副ボリュームのファイルはOSから認識できない状態である。

対処方法

レプリカRDエリアの障害閉塞を解除し，オンライン再編成を終了させます。

対処手順

手順

操作

確認方法

1

副ボリュームをアクセス可能にします。

各システムでの操作手順に従ってください。

−

2

レプリカRDエリアの障害閉塞を解除します。

「pdrels -r レプリカRDエリア名 -o」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA released, RDAREA = "RDエリア名"

KFPH00130-I RDAREA opened, RDAREA = "RDエリア名"

3

レプリカRDエリアへのアクセスを抑止します。

「pdhold -r レプリカRDエリア名 -c」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA held, RDAREA = "RDエリア名"

KFPH00130-I RDAREA closed, RDAREA = "RDエリア名"

4

RDエリアにアクセスするプロセスを停止します。

pdpfreshコマンドを実行します。

pdpfresh -c（プロセスのリフレッシュ完了確認）コマンドを実行し，次のメッセージを確認します。

KFPS00730-I pdpfresh ended, return code = 0

5

シンクポイントダンプを取得します。

pdlogsyncコマンドを実行します。

−

6

ペアボリュームを再同期します。

各システムでの操作手順に従ってください。

−

付録F.2　コマンドが異常終了する事例

(1)　データベースの静止化（pdorbeginコマンド）が異常終了（RDエリア状態不正）

次のメッセージが出力され異常終了しました。

KFPH00153-E（RDエリア状態不正）

よくある原因

レプリカRDエリアをアクセス抑止（コマンド閉塞かつクローズ）状態にしていません。

確認方法

pddblsコマンドで表示するレプリカRDエリアの状態が「CLOSE HOLD(CMD)」以外であることを確認します。

対処方法

レプリカRDエリアをコマンド閉塞状態にします。

対処手順

手順

操作

確認方法

1

レプリカRDエリアへのアクセスを抑止します。

「pdhold -r レプリカRDエリア名 -c」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA held, RDAREA = "RDエリア名"

KFPH00130-I RDAREA closed, RDAREA = "RDエリア名"

2

pdorbeginコマンドを再実行します。

−

−

(2)　データベースの静止化（pdorbeginコマンド）が異常終了（タイムアウト）

次のメッセージが出力され異常終了しました。

KFPS00450-W（タイムアウト）

KFPA11770-I（排他エラー）

KFPH00145-E（code = -5：排他エラー）

よくある原因

次のどちらかの原因が考えられます。

長時間実行中のトランザクションが存在します。

複数のRDエリアの排他，またはサーバ間の排他で，作業中のトランザクションとデッドロックしました。

対処方法

pdorbeginコマンドを再実行します。

再実行してもエラーになる場合は，次のコマンドを実行し，資料を取得してタイムアウトになる原因を調査してください。

pdls -d trn -a

pdls -d lck -a

pdls -d prc

pdls -d rpc -a

(3)　データベースの静止化の解除（pdorbegin -uコマンド）が異常終了

次のメッセージが出力され異常終了しました。

KFPS00450-W（タイムアウト）

KFPA11770-I（排他エラー）

KFPH00145-E（code = -5：排他エラー）

よくある原因

データベースの静止化コマンド（pdorbegin）がエラーとなった直後に，静止化解除コマンド（pdorbegin -u）を実行しましたが，対象RDエリア数が多かったため，pdorbeginコマンドのロールバック処理が完了していません。

対処方法

pdorbegin -uコマンドを再実行します。

(4)　カレントRDエリアの切り替え（pdorchgコマンド）が異常終了（タイムアウト）

次のメッセージが出力され，異常終了しました。

KFPS00450-W（タイムアウト）

KFPA11770-I（排他エラー）

KFPH00145-E（code = -5：排他エラー）

よくある原因

長時間実行中のトランザクションが存在します。

対処方法

pdorchgコマンドを再実行します。

再実行してもエラーになる場合は，次のコマンドを実行し，資料を取得してタイムアウトになる原因を調査してください。

pdls -d trn -a

pdls -d lck -a

pdls -d prc

pdls -d rpc -a

(5)　カレントRDエリアの切り替え（pdorchgコマンド）が異常終了（コマンドの実行順序不正）

次のメッセージが出力され異常終了しました。

KFPH27043-E（code = -55：コマンドの実行順序不正）

よくある原因

データベースの静止化コマンド（pdorbegin）のエラーを無視してカレントRDエリア切り替えコマンド（pdorchg）を実行しました。

確認方法

pdorbeginコマンドの結果を確認します。

対処方法

pdorbeginコマンドの仕掛かり状態を取り消します。

対処手順

次のどちらかの手順を実行してください。

手順

操作

確認方法

1

pdorbeginコマンドのエラー原因を取り除き，pdorbeginコマンドから再実行します。

−

−

手順

操作

確認方法

1

pdorbegin -uコマンドを実行し，pdorbeginコマンドの仕掛かり処理を取り消します。

「pdorbegin {-r RDエリア名｜-t 表名｜-s サーバ名} -u」コマンドを実行します。

次のメッセージを確認します。

KFPH27045-I pdorbegin command ended, return code = 0

また，pddblsコマンドを実行し，次の表示結果を確認します。

オリジナルRDエリアのSTATUS：OPEN

オリジナルRDエリアのREPLICA-STATUS：C（カレントRDエリア）

(6)　更新可能なオンライン再編成が異常終了（RDエリア容量不足）

次のメッセージが出力され異常終了しました。

KFPA11756-E（RDエリア容量不足）

よくある原因

ページの格納効率が高い表（インデクス）を再編成すると，定義時の空き領域比率に従った空き領域を確保しながら詰め直すため，再編成前よりも表（インデクス）のページサイズが大きくなることがあります。

確認方法

KFPA11756-E，およびKFPH00213-Wメッセージが出力されていることを確認します。

対処方法は次の三つがあります。

対処方法1

オリジナルRDエリアを拡張してから，データベース再編成ユティリティを再実行します。

注　データベース再編成ユティリティの異常終了によってRDエリアがログレス閉塞している場合は，回復作業を先に実施してください。

対処手順

手順

操作

確認方法

1

オリジナルRDエリアを拡張します。

「HiRDBファイルシステム領域の世代番号の登録」および「インナレプリカグループ内のRDエリアの構成変更と構成情報の複写」を参照してください。

−

2

表をリロードします。

pdrorg -k reldコマンドを実行します。

−

3

追い付き反映処理をします。

pdorendコマンドを実行します。

−

4

RDエリアにアクセスするプロセスを停止します。

pdpfreshコマンドを実行します。

pdpfresh -c（プロセスのリフレッシュ完了確認）コマンドを実行し，次のメッセージを確認します。

KFPS00730-I pdpfresh ended, return code = 0

5

シンクポイントダンプを取得します。

pdlogsyncコマンドを実行します。

−

6

ペアボリュームを再同期します。

各システムでの操作手順に従ってください。

−

7

オリジナルRDエリアの定義をレプリカRDエリアにコピーします。

pdmodコマンドの「define copy rdarea レプリカRDエリア名 reproduce オリジナルRDエリア名；」文を実行します。

マニュアル「HiRDB コマンドリファレンス」の「データベース構成変更ユティリティ（pdmod）」を参照してください。

対処方法2

オプションで空き領域比率を小さく指定してデータベース再編成ユティリティを再実行します。

注　データベース再編成ユティリティの異常終了によってRDエリアがログレス閉塞している場合は，回復作業を先に実施してください。

対処手順

手順

操作

確認方法

1

空き領域比率を小さくして表をリロードします。

option文のtblfree（表の空き領域比率）またはidxfree（インデスクの空き領域比率）の値を小さくしてpdrorg -k reldコマンドを実行します。

マニュアル「HiRDB コマンドリファレンス」の「データベース構成変更ユティリティ（pdmod）」を参照してください。

2

次回のデータベース再編成までにRDエリアを拡張します。

「インナレプリカグループ内のRDエリアの構成変更と構成情報の複写」を参照してください。

−

対処方法3

今回のデータベース再編成をあきらめて，現在のオンライン再編成閉塞状態を終了させます。

対処手順

手順

操作

確認方法

1

オリジナルRDエリアを再編成ユティリティ開始直前に回復します。

オンライン再編成を実行する前のバックアップファイルと，システムログファイルを使用して，終了時間指定でオリジナルRDエリアを再編成ユティリティ開始直前に回復します。操作手順は，マニュアル「HiRDB コマンドリファレンス」の「データベース回復ユティリティ(pdrstr)」を参照してください。

−

2

オンライン再編成の追い付き反映を実行します。

pdorendコマンドを実行します。

次のメッセージを確認します。

KFPH27045-I pdorend command ended, return code = 0

(7)　更新可能なオンライン再編成が異常終了（通信処理エラー）

次のメッセージが出力され異常終了しました。

KFPA20002-E（通信処理エラー，abort=Pab1114，code=-364）

よくある原因

一度に処理できるメッセージ数の上限数900を超えました。

短時間に多数のメッセージが出力されると，ネットワークやディスクなどに負荷が掛かり，通信エラーになります。

確認方法

再編成対象の表，インデクス，またはRDエリアの数が900近いことを確認します。

対処方法

再編成の単位を分けて，データベース再編成ユティリティを複数回実行します。

(8)　更新可能なオンライン再編成の取り消し（pdorend -uコマンド）が異常終了

次のメッセージが出力され異常終了しました。

KFPH27043-E（code = -55：コマンドの実行順序不正）

よくある原因

運用中にレプリカRDエリアをpdholdコマンドで意図的にコマンド閉塞にしていましたが，その後解除していませんでした。

確認方法

pddblsコマンドを実行して，レプリカRDエリアの状態が「CLOSE HOLD(CMD)」または「HOLD(CMD)」であることを確認します。

対処方法

レプリカRDエリアのコマンド閉塞を解除してから，pdorend -uコマンドを再実行します。

対処手順

手順

操作

確認方法

1

レプリカRDエリアのコマンド閉塞を解除します。

「pdrels -r レプリカRDエリア名」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA released, RDAREA = "RDエリア名"

また，pddblsコマンドを実行して，次の表示結果を確認します。

レプリカRDエリアのSTATUS：HOLD（ORG）

2

pdorend -uコマンドを再実行します。

−

−

(9)　オンライン再編成の追い付き反映（pdorendコマンド）が異常終了（タイムアウトまたはリトライ回数オーバー）

次のメッセージが出力され，レプリカRDエリアが障害閉塞しました。

KFPH27043-E（code = -50：タイムアウト，または-51：リトライ回数オーバー）

よくある原因

長時間実行中のトランザクションが存在しました。

対処方法

追い付き反映処理の最大待ち時間の指定値を大きくするか，レプリカRDエリアに対するトランザクション量を抑えてから，再度コマンドを実行します。

対処手順

次のどちらかの手順を実行してください。

手順

操作

確認方法

1

オンライン再編成の追い付き反映コマンドのオペランドを修正し，再実行します。

pdorendコマンドの-n（最大リトライ回数），-t（トランザクション処理の最大待ち時間），-w（追い付き反映処理の最大待ち時間）オペランドの値の妥当性を検証し，再実行します。

次のメッセージを確認します。

KFPH27045-I pdorend command ended, return code = 0

手順

操作

確認方法

1

長時間実行中のトランザクションの完了を待って，pdorendコマンドを再実行します。

−

−

(10)　オンライン再編成の追い付き反映（pdorendコマンド）が異常終了（コマンドの実行順序不正）

次のメッセージが出力され異常終了しました。

KFPH27043-E（code = -55：コマンドの実行順序不正）

よくある原因

レプリカRDエリアのコマンド閉塞状態（pdhold）を解除していません。

確認方法

pddblsコマンドを実行し，レプリカRDエリアの状態が「CLOSE HOLD(CMD)」であることを確認します。

対処手順

手順

操作

確認方法

1

レプリカRDエリアのコマンド閉塞を解除します。

「pdrels -r レプリカRDエリア名」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA released, RDAREA = "RDエリア名"

また，pddblsコマンドを実行し，レプリカRDエリアが次の状態であることを確認します。

「HOLD(ORG)」または「CLOSE HOLD(ORG)」

2

pdorendコマンドを再実行します。

−

−

(11)　オンライン再編成の追い付き反映（pdorendコマンド）が異常終了（ユニークインデクス未定義）

次のメッセージが出力され異常終了しました。

KFPT02016-E（ユニークインデクスがない）

よくある原因

次の二つがあります。

原因1

データベース静止化コマンド（pdorbegin）で指定した表またはRDエリアの関連RDエリア内に更新可能なオンライン再編成の実行に必要なユニークインデクスが定義されていない表があります。

原因2

更新可能なオンライン再編成の対象表にはユニークインデクスが定義されていますが，NULL値を許す列（非ナル値制約でない列）を含んでいます。

確認方法

オンライン再編成の対象表のインデクス定義を確認してください。また，表指定（pdorbegin -t指定）のオンライン再編成の場合，指定した表以外でもその表に関連するRDエリア内の表に更新があった場合，追い付き反映対象になるため，ユニークインデクス（NULL値を許す列を含まない）が必要です。関連するRDエリア内にある表のインデクス定義を確認してください。特に関連するRDエリアに表を追加した場合などは注意してください。

更新可能なオンライン再編成の実行に必要な表の条件は，「更新可能なオンライン再編成を実施できない表」を参照してください。

関連するRDエリアについては，「RDエリアの管理と再編成のタイミング」を参照してください。

対処方法

オンライン再編成状態を取り消し，レプリカRDエリアで更新を抑止して業務を続行します。その間にレプリカRDエリアの内容をオリジナルRDエリアにコピーします。その後，レプリカRDエリアのアクセスを抑止し，オンライン再編成の実行に必要なユニークインデクスを定義します。

注　エラー発生時点ではレプリカRDエリアの更新はオリジナルRDエリアに反映されていません。オリジナルRDエリアのデータをレプリカRDエリアに同期させるまでは，更新業務を抑止してください。

対処手順

手順

操作

確認方法

1

オンライン再編成状態を取り消します。

pdorend -uコマンドを実行します。

次のメッセージを確認します。

KFPH27045-I pdorend command ended, return code = 0

また，pddblsコマンドを実行して，次の表示結果になっていることを確認します。

オリジナルRDエリアのREPLICA-STATUS：S（サブRDエリア）

レプリカRDエリアのREPLICA-STATUS：C（カレントRDエリア）

2

レプリカRDエリアの更新を抑止します。

手順4でレプリカRDエリアのデータをオリジナルRDエリアにコピーするため，その方法に合わせた閉塞状態にします。

−

参照可能バックアップ閉塞にする場合：

「pdhold -r レプリカRDエリア名 -b」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA held（bu i）, RDAREA = "RDエリア名"

参照可能閉塞にする場合：

「pdhold -r レプリカRDエリア名 -i」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA held（inq）, RDAREA = "RDエリア名"

アクセス禁止閉塞にする場合：

「pdhold -r レプリカRDエリア名」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA held, RDAREA = "RDエリア名"

アクセス禁止閉塞かつクローズ状態にする場合：

「pdhold -r レプリカRDエリア名 -c」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA held, RDAREA = "RDエリア名"

KFPH00130-I RDAREA closed, RDAREA = "RDエリア名"

3

オリジナルRDエリアのアクセスを抑止します。

手順4でレプリカRDエリアのデータをオリジナルRDエリアにコピーするため，そのコピー方法に合わせた閉塞状態にします。

−

参照可能閉塞にする場合：

「pdhold -r オリジナルRDエリア名 -i」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA held（inq）, RDAREA = "RDエリア名"

アクセス禁止閉塞かつクローズ状態にする場合：

「pdhold -r オリジナルRDエリア名 -c」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA held, RDAREA = "RDエリア名"

KFPH00130-I RDAREA closed, RDAREA = "RDエリア名"

4

レプリカRDエリアのデータをオリジナルRDエリアにコピーします。

データのコピー方法は任意ですが，次のような方法があります。

pdcopyコマンドでデータをコピーし，pdrstrコマンドで回復する。

pdrorgコマンドでデータをアンロード，リロードする。

pdrorgコマンドでデータをアンロードし，pdloadコマンドでリロードする。

コマンドによって実行できるRDエリアの状態が異なります。実行できるRDエリアの状態については，マニュアル「HiRDB コマンドリファレンス」の「RDエリアの状態によるユティリティ及びUAPの実行可否」を参照してください。

−

5

オリジナルRDエリアのコマンド閉塞を解除します。

「pdrels -r オリジナルRDエリア名 -o」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA released, RDAREA = "RDエリア名"

KFPH00130-I RDAREA opened, RDAREA = "RDエリア名"

その後，pddblsコマンドを実行して，次の表示結果を確認します。

オリジナルRDエリアのSTATUS：OPEN

6

カレントRDエリアをオリジナルRDエリアに戻します。

「pddbchg -q 0 -r オリジナルRDエリア名」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA current changed, RDAREA = "RDエリア名"

その後，pddblsコマンドを実行して，次の表示結果を確認します。

オリジナルRDエリアのREPLICA-STATUS：C（カレントRDエリア）

レプリカRDエリアのREPLICA-STATUS：S（サブRDエリア）

7

手順2でレプリカRDエリアをアクセス禁止閉塞かつクローズ状態にしていない場合，アクセス禁止閉塞かつクローズ状態にします。

アクセス禁止閉塞（クローズ状態でない）の場合：

「pdclose -r レプリカRDエリア名」コマンドを実行し，クローズ状態にします。

次のメッセージを確認します。

KFPH00130-I RDAREA closed, RDAREA = "RDエリア名"

参照可能バックアップ閉塞，参照可能閉塞の場合：一度閉塞を解除し，その後アクセス禁止閉塞かつクローズ状態にします。

「pdrels -r レプリカRDエリア名」コマンドで閉塞を解除します。

pddblsコマンドでRDエリアの状態を確認します。

「pdhold -r レプリカRDエリア名 -c」コマンドで閉塞かつクローズ状態にします。

1.に対して次のメッセージを確認します。

KFPH00130-I RDAREA released, RDAREA = "RDエリア名"

2.に対して次の表示結果を確認します。

レプリカRDエリアのSTATUS：OPEN

3.に対して次のメッセージを確認します。

KFPH00130-I RDAREA held, RDAREA = "RDエリア名"

KFPH00130-I RDAREA closed, RDAREA = "RDエリア名"

8

該当する表に，更新可能なオンライン再編成の実行に必要なユニークインデクスを定義するか，該当する表をインナレプリカ運用しないRDエリアに移動させます。

−

−

9

更新可能なオンライン再編成の適用条件が満たされていることを確認します。

pdorcheckコマンドを実行します。

次のメッセージを確認します。

KFPT02022-I Pdorcheck:all resources conformed to Online DB Reorganization

付録F.3　HiRDBが異常終了する事例

次のメッセージが出力され，HiRDBが異常終了しました。

KFPS01220-E（ログファイル不足）

よくある原因

大規模な表の再編成でログを大量に出力したため，ログファイルが不足しました。

更新可能なオンライン再編成を実行したことでログファイルが「更新可能なオンライン再編成の上書き禁止状態」となりましたが，スワップ先のシステムログファイルがなかったため，ログファイル不足になりました。

対処方法は次の二つがあります。

対処方法1

必要なログファイルを追加します。

対処手順

必要なログファイルの追加手順は，表「システムログファイルに関連する障害の対策方法」を参照してください。

対処方法2（業務を再開させるための非常手段）

ログファイルを追加できない場合で，業務を再開しなければならないときは，システムのステータスファイルを初期化してオンライン再編成状態を解除します。ただし，オリジナルRDエリアのデータ回復が必要になります。この対処方法を取る場合は，システム管理者に連絡してください。

対処手順

手順

操作

確認方法

1

システムログをアンロードします。

pdlogunldコマンドを実行します。

マニュアル「HiRDB コマンドリファレンス」の「システム単位の回復をする場合」を参照してください。

2

ユニットとサーバのステータスファイルをすべて初期化（再作成）します。

pdstsinitコマンドを実行します。

3

HiRDBを回復モードで開始します。

pdstart -rコマンドを実行します。

4

バックアップと手順1で取得したアンロードログを使用してマスタディレクトリ用RDエリアを回復します。

pdrstrコマンドでマスタディレクトリ用RDエリアの回復を実行します。

5

HiRDBを正常終了します。

pdstopコマンドを実行します。

6

HiRDBを正常開始します。

pdstartコマンドを実行します。

7

マスタディレクトリ用RDエリア以外のRDエリアを，コマンド閉塞かつクローズ状態にします。

pdhold -r ALL -cコマンドを実行します。

8

バックアップと手順1で取得したアンロードログを使用して，マスタディレクトリ用RDエリア以外のRDエリアを回復します。

バックアップとアンロードログでRDエリアを回復しない場合，手順10に進んでください。

pdrstr -q 0 -x cコマンドを実行します。

参考　通常，RDエリア更新ログは更新したRDエリアに適用しますが，pdrstrの-xオプションに「c（カレント）」を指定すると，カレント状態のRDエリア（レプリカRDエリア）の更新で取得されたログを適用してオリジナルRDエリアを回復できます。

9

オンライン再編成の対象外のRDエリアの閉塞を解除します。

「pdrels -r RDエリア名-o」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA released, RDAREA = "RDエリア名"

KFPH00130-I RDAREA opened, RDAREA = "RDエリア名"

10

手順8，9でオリジナルRDエリアを回復しない場合，レプリカRDエリアのデータをオリジナルRDエリアにコピーします。

データのコピー方法は任意ですが，次のような方法があります。

pdcopyコマンドでデータをコピーし，pdrstrコマンドで回復する。

pdrorgコマンドでデータをアンロード，リロードする。

pdrorgコマンドでデータをアンロードし，pdloadコマンドでリロードする。

コマンドによって実行できるRDエリアの状態が異なります。実行できるRDエリアの状態については，マニュアル「HiRDB コマンドリファレンス」の「RDエリアの状態によるユティリティ及びUAPの実行可否」を参照してください。

pdrorgコマンド，pdloadコマンド，またはUAPでデータをアンロード，リロードする場合，オリジナルRDエリアとレプリカRDエリアをオープン状態にする必要があるため，データをアンロードする前に「pdopen -r RDエリア」コマンドを実行します。ただし，更新業務の実行は抑止する必要があるため，閉塞状態はそのままにしてください。

−

11

カレントRDエリアをオリジナルRDエリアに戻します。

「pddbchg -q 0 -r オリジナルRDエリア名」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA current changed, RDAREA = "RDエリア名"

その後，pddblsコマンドを実行して，次の表示結果を確認します。

オリジナルRDエリアのREPLICA-STATUS：C（カレントRDエリア）

レプリカRDエリアのREPLICA-STATUS：S（サブRDエリア）

12

オリジナルRDエリアのコマンド閉塞を解除します。

「pdrels -r オリジナルRDエリア名 -o」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA released, RDAREA = "RDエリア名"

KFPH00130-I RDAREA opened, RDAREA = "RDエリア名"

13

手順10でレプリカRDエリアをオープンしている場合は，クローズします。

「pdclose -r レプリカRDエリア」コマンドを実行します。

次のメッセージを確認します。

KFPH00130-I RDAREA closed, RDAREA = "RDエリア名"

14

追い付き状態管理表を初期化するため，いったん削除します。

pdorcreate -dコマンドを実行します。

次のメッセージを確認します。

KFPT02020-I Pdorcreate:reflection management table dropped

KFPT02014-I Pdorcreate terminated, return code=0

15

追い付き状態管理表を再作成します。

pdorcreateコマンドを実行します。

次のメッセージを確認します。

KFPT02020-I Pdorcreate:reflection management table created

KFPT02014-I Pdorcreate terminated, return code=0

16

システムのバックアップを取得します。

マニュアル「HiRDB システム運用ガイド」の「バックアップ取得」を参照してください。

−

17

HiRDBを正常終了します。

pdstopコマンドを実行します。

−

18

HiRDBを開始します（業務を受け付けます）。

pdstartコマンドを実行します。

−

19

データディクショナリLOB用RDエリアおよびリスト用RDエリアの回復を行います。

pdmodコマンドの「initialize rdarea データディクショナリLOB用RDエリア；」文および「initialize rdarea リスト用RDエリア；」文を実行します。

マニュアル「HiRDB コマンドリファレンス」の「データベース構成変更ユティリティ（pdmod）」を参照してください。

付録F.4　ボリューム操作コマンドがエラーになる事例

サーバプロセスのリフレッシュ（pdpfreshコマンド）実行後，ペアボリューム再同期のためのボリューム操作をしたところ，デバイスアクセス中状態のため，ボリューム操作コマンドがエラーになりました。

よくある原因

デファードライト（遅延更新）プロセスのプレシンク処理が完了していません。

確認方法

次のことを確認してください。

pdorendコマンドが正常終了している。

pdpfresh -cコマンドでプロセスのリフレッシュ（KFPS00730-I pdpfresh ended, return code = 0）を確認している。

対処方法

時間を空けるか，pdlogsyncコマンドを実行してデファードライトプロセスのアクセス完了の同期を取ってから，ペアボリューム再同期のためのボリューム操作を再実行します。

索引

記号

-qオプション[1]

数字

2世代分のRDエリアのシステムログを利用した回復[1]

A

alter rdarea文[1]

C

create generation文[1]

H

HiRDB Datareplicatorを使用している場合の注意[1]

HiRDB Staticizer Optionが提案するシステム[1]

HiRDB Staticizer Option対応バージョンのHiRDB Datareplicatorを使用している場合[1]

HiRDB Staticizer Option未対応バージョンのHiRDB Datareplicatorを使用している場合[1]

HiRDB再開始直後の追い付き反映コマンド（pdorend）再実行[1]

HiRDBシステム内のRDエリア数の管理例[1]

HiRDBファイルシステム領域ごとにミラーリング[1]

HiRDBファイルシステム領域と世代番号[1]

HiRDBファイルシステム領域の世代番号の削除[1]

HiRDBファイルシステム領域の世代番号の登録[1]

K

KFPR26263-Eメッセージ[1]

L

LV[1]、[2]、[3]

LVMスナップショット機能使用時の注意事項および操作手順[1]

M

MRCF[1]、[2]

P

pd_inner_replica_control[1]

pd_lck_pool_sizeオペランド[1]

pd_log_org_no_standby_file_opr[1]

pd_log_org_reflected_logpoint[1]

pd_lv_mirror_use[1]、[2]、[3]

pd_max_bes_processオペランド[1]

pd_max_file_no[1]

pd_max_rdarea_no[1]

pd_max_reflect_process_count[1]

pd_max_reflect_process_countオペランドの見積もり[1]

pd_max_reflect_process_countオペランドの留意事項[1]

pd_max_reflect_process_countオペランドの留意事項と見積もり[1]

pd_max_usersオペランド[1]

pd_rdarea_open_attribute[1]

pd_rdarea_open_attribute_use[1]、[2]

pdcopyコマンド[1]、[2]

PDDBACCS[1]

pddbchgコマンド[1]

pddblsコマンド[1]

pddbstコマンド[1]

pdholdコマンドの-bオプション[1]

pdholdコマンドの-cオプション[1]

pdholdコマンドの-sオプション[1]

pdmodコマンド[1]、[2]

pdopsetupコマンド[1]

pdopsetup -d[1]

pdrbalコマンド[1]

pdrelsコマンド[1]

pdrstrコマンド[1]

R

RDエリア数の管理の仕組み[1]

RDエリアのオープン属性に関する設定[1]

RDエリアのオープン属性について[1]

RDエリアのオープン属性のパターン[1]

RDエリアのオープン属性の変更方法[1]

RDエリアの拡張[1]

RDエリアの管理と再編成のタイミング[1]

RDエリアの構成情報の複写[1]

RDエリアの構成変更[1]

RDエリアの再初期化[1]

RDエリアの状態表示[1]

RDエリアの属性変更[1]

RDエリアの閉塞状態の種類[1]

RDエリア名の変更[1]

replicate rdarea文[1]

S

ShadowImage[1]

ShadowImage機能[1]

あ

アクセス対象RDエリアの世代番号が統一されていなかった場合の例[1]

アプリケーションからのアクセス[1]

アンインストール[1]、[2]

い

インストール[1]

インストールとセットアップ[1]

インナレプリカ関連の定義[1]

インナレプリカ機能[1]

インナレプリカ機能使用時の定義系SQL[1]

インナレプリカ機能に必要なミラーリング機能[1]

インナレプリカ機能を使用中に定義系SQLを実行する場合の注意事項[1]

インナレプリカグループ[1]

インナレプリカグループ内データの整合性の保持の検討[1]

インナレプリカグループ内のRDエリアに対して実行できるコマンドの一覧[1]

インナレプリカグループ内のRDエリアの運用[1]

インナレプリカグループ内のRDエリアの拡張[1]

インナレプリカグループ内のRDエリアの構成変更と構成情報の複写[1]

インナレプリカグループ内のRDエリアのバックアップと回復[1]

インナレプリカグループの統合[1]

インナレプリカ使用時の定義系SQL実行[1]

インナレプリカとRDエリア[1]

インナレプリカの適用例[1]

う

運用の手順[1]

運用前に考慮すること[1]

お

追い付き状態管理表[1]

追い付き反映処理時のトランザクション量[1]

追い付き反映処理と系切り替え[1]

追い付き反映処理に掛かる時間[1]

オープン[1]

オペランド指定の組み合わせによる注意事項[1]

オペランドや制御文の指定値の組み合わせによるオープン属性のパターン[1]

オリジナルRDエリア[1]

オリジナルとレプリカのRDエリアに関する定義情報を登録するための領域[1]

オリジナルとレプリカのRDエリアの関係[1]

オンライン業務とアプリケーション開発の同時実行[1]

オンライン業務と更新バッチ処理の同時実行[1]

オンライン業務と分析業務の同時実行[1]

オンライン再編成閉塞状態でのHiRDBの停止[1]

オンラインでのデータベース再編成[1]

オンラインでのデータベースの再編成（オンライン再編成）[1]

オンラインでのデータ・インデクスの一括作成[1]、[2]

か

カレントRDエリア[1]

カレントRDエリアの変更[1]

き

共用RDエリアの更新可能なオンライン再編成閉塞状態の解除[1]

共用RDエリアまたは共用RDエリア内の表を対象とした処理実行[1]

共用メモリサイズ[1]

共用メモリサイズの見積もり[1]

く

グローバルバッファの割り当て[1]

こ

更新可能なオンライン再編成実行時の障害[1]

更新可能なオンライン再編成状態の確認[1]

更新可能なオンライン再編成中に制限されるデータベース操作[1]

更新可能なオンライン再編成で運用前に考慮すること[1]

更新可能なオンライン再編成で使用するコマンド一覧[1]

更新可能なオンライン再編成に必要な領域（追い付き状態管理表を格納するユーザ用RDエリア）[1]

更新可能なオンライン再編成の運用[1]

更新可能なオンライン再編成の運用手順[1]

更新可能なオンライン再編成の運用例[1]

更新可能なオンライン再編成の準備[1]

更新可能なオンライン再編成の準備例[1]

更新可能なオンライン再編成の取り消し[1]

更新可能なオンライン再編成の流れ[1]

更新可能なオンライン再編成用サンプルシェル[1]

更新可能なオンライン再編成を実施する上での制限事項[1]

更新可能なオンライン再編成を実施する上での注意事項[1]

更新可能なオンライン再編成を実施できない表[1]

更新可能なオンライン再編成を複数回行う場合の運用手順[1]

さ

サーバ定義の変更[1]

最大同時接続数[1]

サブRDエリア[1]

サンプルシェルプログラム使用方法[1]

サンプルシェルプログラムのカスタマイズ[1]

サンプルシェルプログラムの実行[1]

サンプルシェルプログラムのファイル名[1]

サンプルシェルプログラムの名称[1]

サンプルシェルプログラムフローチャート[1]

し

システム共通定義（pdsys）の変更[1]

システム構成[1]

システムの構成例[1]

システムの前提[1]

システムログが上書きされ，追い付き反映できない場合の対策[1]

システムログ反映開始ポイント[1]

システムログ反映終端ポイント[1]

システムログ反映済みポイント[1]

システムログ反映読み込みポイント[1]

システムログファイルで障害，ユニットダウンした場合の対策[1]

システムログファイルで障害，レプリカDBへの更新が継続している場合の対策[1]

システムログファイルの障害回復[1]

システムログファイルの容量の見積もり[1]

取得した情報を基にした障害対策[1]

障害対策の流れ[1]

せ

静止化（バックアップ閉塞）[1]

静止化（バックアップ閉塞化）[1]

世代番号[1]

世代番号の検討[1]

セットアップ[1]

セットアップの解除[1]

前提製品[1]

そ

想定する物理エリア構成と論理エリア構成[1]

て

定義系SQLを実行するための条件[1]

ディスク容量の見積もり[1]

データベースの回復[1]

データベースの状態解析[1]

データベースの状態表示[1]

適用目的ごとの運用方法[1]

と

同期化閉塞[1]

統合後の注意事項[1]

に

二重化（ペアボリューム化）[1]

二重化されたボリューム[1]

の

ノンストップサービスに対応したデータベース[1]

は

バックアップの取得[1]

バックアップファイルの取得[1]

バックエンドサーバ当たりの最大起動プロセス数[1]

ひ

日立ディスクアレイシステム MRCF機能，またはShadowImage機能使用上の注意事項および操作手順（AIX）[1]

日立ディスクアレイシステム MRCF機能，またはShadowImage機能使用上の注意事項および操作手順（Linux）[1]

ふ

複数RDエリアを再編成するときの追い付き反映コマンドの実行タイミング[1]

複数の再編成処理の並列実行[1]

不要なHiRDBファイルシステム領域の世代番号の削除[1]

不要なレプリカRDエリアの削除[1]

へ

ペアボリューム[1]

ペアボリュームを分離[1]

閉塞解除[1]

閉塞かつクローズ[1]

み

ミラーリング機能[1]

ミラーリング機能によるレプリカ実体の作成（ペアボリュームの分離）[1]

ミラーリング機能を実現する製品と，インナレプリカ機能運用上の注意[1]

ゆ

ユーザLOB用RDエリア[1]、[2]

ユーザ表の定義情報を登録するための領域[1]

ユーザ用RDエリア[1]、[2]

り

リソースの見積もり[1]

れ

レプリカRDエリア[1]

レプリカRDエリアのオープン属性について[1]

レプリカRDエリアの格納領域[1]

レプリカRDエリアの差分バックアップの取得と回復[1]

レプリカRDエリアの定義[1]

レプリカRDエリアの定義と実体の作成時の注意[1]

レプリカRDエリアへアクセスするためのペアボリュームの分離[1]

レプリカRDエリアへのアクセス[1]

レプリカRDエリアを作成するまとまり[1]

レプリカRDエリアを利用したオリジナルRDエリアの回復[1]

レプリカ作成ガイドライン[1]

レプリカの作成対象になれるRDエリアおよびHiRDBファイルシステム領域[1]

レプリカの作成単位[1]

レプリカの実体の作成（ペアボリュームの分離）[1]

レプリカの定義[1]

レプリカの定義・作成例[1]

レプリカの物理的な最小単位[1]

レプリカを作成するときのまとまり[1]

レプリカを利用したデータベースの回復[1]

ろ

ログ満杯でユニットダウン，HiRDB稼働を継続させたい場合の対策[1]

ログ満杯でユニットダウン，再編成を継続したい場合の対策[1]