rename chunk

oninit

2007年11月29日 17:33

IDS の 9.40 以上では、"rename chunk" という、リストア時にチャンクの名前や場所 ( path ) を変更する機能があります。これについて調べていたら、外部リストア ( external restore ) でもこの機能を使用できることに気がつきました。

注意:以下の例は、Solaris版 IDS 10でのものです。Windows版 V10/11, Solaris 版 V10では思った通りに動作しました。ただ、残念ながらLinux ( x86および x64環境下での IDS 10, 11 UCx, FCx ) では動作しませんでした。ontapeだけでなくonbarでも同様にだめでした。

以下、IDS 11.10.xC2のリリースノートからの抜粋です。
I. KNOWN ISSUES WITH 11.10.xC2

APAR: Component: Description
IC53659 ONUTILS-ONTAPE ON LINUX EXTERNAL RESTORE ABORTS WHEN USING -RENAME OPTION


早期に PIDリリースなどで修正されると良いですね。

以下それぞれ ontape と onbar でのコマンドライン例です。/opt/IBM/informix/instance/original/chunkにあるチャンク rootdbs.000を、新しい場所 /new/locationにコピー (外部バックアップ - external backup ) してから、このコマンドラインを実行するとチャンク内の予約ページのつじつまを合わせてくれます。下記のようにルートDB領域を移動した場合、ONCONFIGファイルも書き換わります。(実際に実行する時には、チャンクの外部バックアップ、論理ログのサルベージや、logical recovery などを適宜組み合わせてください。)

ontape -p -e -rename -p /usr/informix/instance/original/chunk/rootdbs.000 -o 0 -n /new/location/rootdbs.000 -o 0

onbar -r -e -rename -p /usr/informix/instance/original/chunk/rootdbs.000 -o 0 -n /new/location/rootdbs.000 -o 0

巨大なDB領域を含むリストアの場合、変更すべきチャンクのパスも数十個、数百個になることが考えられます。移動元、異動先のチャンクのリストをファイルに書いておき、そのファイルの名前をコマンドラインに指定することもできます。詳しくは Backup and Restore Guide をどうぞ。

(UPDATED 2007-12-06: オプション -p, -o で指定した値と、元々のパス名やオフセットが異なっているとエラーになります。ご注意を。)

IDS 9.40でも、9.40.xC8からこの機能をサポートしているらしいです。

http://www.unixadmintalk.com/f49/help-renaming-chunk-ids9-40-a-201233/

上の threadの最後にある、perlで書き換えるのはちょっと怖いですね。




関連記事