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

[目次][索引][前へ][次へ]

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

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

<この項の構成>
(1) インナレプリカグループ内のRDエリアの構成変更
(2) インナレプリカグループ内のRDエリアの構成情報の複写
(3) インナレプリカグループ内のRDエリアの拡張

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

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

このような操作を実行すると,処理対象となったRDエリアの構成情報(定義情報)が変更されます。構成情報が変更されると,インナレプリカグループ内のRDエリア間で構成情報に違いが生じてしまいます。このままではRDエリア間で不統一になり,運用上,データの不整合が生じるおそれがあります。このため,構成変更をした場合には,変更内容をインナレプリカグループ内のすべてのRDエリアへ矛盾なくコピーする必要があります。構成情報のコピーについては,「(2) インナレプリカグループ内のRDエリアの構成情報の複写」で説明します。

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

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

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

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

[図データ]

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

  1. オリジナルRDエリア構成情報のインナレプリカグループ内への複写
  2. オリジナルRDエリアの実体のインナレプリカグループ内への複写(ペアボリュームの生成)

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

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

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

次に,図3-6の場合のdefine copy rdarea文の指定例とpdmodコマンドの実行例を示します。

define copy rdarea文の指定例(define copy rdarea文のファイル名:/usr/dfcpy01)
 
// オリジナルRDエリアの構成情報をレプリカRDエリア1へコピー
define copy rdarea RD01_GN01
                 // コピー先のレプリカ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 Version 8 コマンドリファレンス」を参照してください。
(b) オリジナルRDエリアの実体のインナレプリカグループ内への複写(ペアボリュームの生成)

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

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

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

1.拡張用の新たな領域の作成
  1. 新たなHiRDBファイルシステム領域への世代番号の割り当て
  2. 新たなHiRDBファイルシステム領域を割り当てるボリュームの用意(ペアボリュームの生成)
  3. 新たなHiRDBファイルシステム領域の作成

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

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

4.レプリカRDエリア構成情報と実体のインナレプリカグループ内への複写
  1. レプリカRDエリア構成情報のインナレプリカグループ内への複写
  2. レプリカRDエリアの実体のインナレプリカグループ内への複写(ペアボリュームの分離)

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

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

1.新たなHiRDBファイルシステム領域への世代番号の割り当て
3.3.2 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 Version 8 コマンドリファレンス」を参照してください。

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

3.新たなHiRDBファイルシステム領域の作成
オリジナルRDエリア用のHiRDBファイルシステム領域を作成します。HiRDBのpdfmkfsコマンドを実行して,HiRDBファイルシステム領域(/HiRDB_P/area09)を作成します。pdfmkfsコマンドは,HiRDB管理者が,HiRDBの稼働中または停止中に実行します。複数のサーバマシンでHiRDBシステムを構成している場合,領域を作成するサーバマシンごとに実行します。pdfmkfsコマンドについては,マニュアル「HiRDB Version 8 コマンドリファレンス」を参照してください。
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 Version 8 コマンドリファレンス」を参照してください。

(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)」を指定します。
-rオプションには,バックアップ対象のRDエリア名を指定します。ここでは,マスタディレクトリ用RDエリア(RDMSTR01),データディクショナリ用RDエリア(RDDIC01)および拡張したレプリカRDエリアのバックアップの取得を指定します。レプリカRDエリアの指定には,-rオプションと-qオプションを使用します。-rオプションにはオリジナルRDエリア名RD01を指定し,-qオプションで取得対象の世代番号1を指定します。
バックアップ先のファイル名は,-bオプションに指定します。-pオプションには,pdcopyコマンドの処理結果リストの出力先を指定しています。

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

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

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