ヘッダーをスキップ
Oracle Rdb for OpenVMS Oracle RMUリファレンス・マニュアル
リリース7.2
E06177-01
  目次
目次
索引
索引

戻る
戻る
 
次へ
次へ
 

1.40 RMU Repairコマンド

数種類のデータベースの問題を修正します。RMU Repairコマンドを使用して次の操作を実行できます。

修復操作では、破損したユーザー・データまたは破損した索引は修正できません。他のコマンド(RMU Restore、RMU Recover、SQL IMPORT、RMU Loadコマンドなど)を使用し、影響を受けた構造を削除して問題を修正します。

注意

AbmまたはInitialize=Tsns修飾子を使用すると、アフター・イメージ・ジャーナルが無効になります。これらの修飾子を付けてRMU Repairコマンドを発行した後は、データベースをバックアップし、ジャーナル処理を手動で再び有効にしてください。


形式



説明

RMU Repairではすべてのタイプの破損が修正できるわけではなく、パフォーマンスが必ず向上するとも限らないため、バックアップ・コピーがない場合やデータベースのコピーをエクスポートしていない場合は、RMU Repairコマンドを使用しないことをお薦めします。修復操作の効果が見られない場合は、そのようなデータベースのバックアップ・コピーに戻ることができます。

RMU Repairコマンドは、オフラインでトランザクションのコンテキスト外で実行します。このため、RMU Repairではレコードはデータベースの.aijファイルに書き込まれません。また、修復されたデータベースをRMU Recoverコマンドでロール・フォワードすることはできません。RMU Repairコマンドを使用した後は、データベースのバックアップ・コピーを作成することをお薦めします。修復操作を行うと同じ内容のメッセージが発行されます。また、アフター・イメージ・ジャーナルが有効になっているデータベースに対してこのコマンドを使用した場合には、Oracle RMUによって警告が発行されます。


コマンドのパラメータ

root-file-spec

破損の修復やパフォーマンスの改善を行うデータベース・ルート・ファイルのファイル指定。

コマンドの修飾子

Abm

Noabm

Areas修飾子で指定した領域の論理領域ビットマップ(ABM)ページの再構築を行います。Abm修飾子を指定するとアフター・イメージ・ジャーナルが無効になります。アフター・イメージ・ジャーナルを有効にする場合は、RMU Repairコマンドが完了してからジャーナル処理を明示的に有効化する必要があります。

NoAbm修飾子はABMページを再構築しないことを指定します。これがデフォルトです。

All_Segments

Noall_Segments

All_Segments修飾子は、RMU Repairでセグメント文字列のすべてのセグメントを取得することを指定します。Noall_Segments修飾子はRMU Repairでセグメント文字列の最初のセグメントのみを取得することを指定します。

指定の領域に格納されているセグメント文字列のリスト記憶域マップに複数の領域が含まれる可能性があると認識している場合は、Noall_Segments修飾子を指定します。たとえば、記憶域マップが次に示すSQLコマンドを使用して作成された場合、Oracle Rdbによって、AREA1がいっぱいになるまですべてのセグメント文字列がAREA1に格納されます。AREA1がいっぱいになると、Oracle Rdbは残りのセグメントをAREA2に書き込みます。AREA2が破損したとします。この場合、AREA1から最初のセグメントを取り出すだけでは十分ではなく、すべてのセグメントを取り出して、セグメント文字列から失われた部分がないかを判別する必要があります。


CREATE STORAGE MAP FOR LIST STORE IN (AREA1, AREA2) FOR (TABLE1)
   IN RDB$SYSTEM;

Areas修飾子とAll_Segments修飾子の指定は内容が重複するため不要です。All_Segments修飾子を指定すると、セグメント文字列が最初に格納された場所にかかわらず、RMU Repairですべての記憶領域が調べられます。

Areas[={storage-area-list or *}]

データベース内の修復する記憶領域を指定します。記憶領域は名前または領域のID番号で指定できます。

デフォルトでは、データベース内のすべての記憶領域が修復されます。複数の記憶領域を指定する場合は、storage-area-listの記憶領域名またはID番号をカンマで区切り、リストをカッコで囲みます。

Checksum

データベース記憶領域のすべてのページを読み取って、各ページのチェックサムが正しいことを確認します。ページのチェックサムが正しくない場合は、正しいチェックサムで置き換えられます。

Areas修飾子を使用して、RMU Repairでチェックする記憶領域を指定します。Areas修飾子を指定しないと、すべての記憶領域のすべてのページがチェックされ、正しくない場合は更新されます。

この修飾子は、ユーザーがデータベースにアタッチしていてもしていなくても使用できます。

この修飾子は、Areas修飾子以外の修飾子と使用すると無効になります。

Initialize=initialize-options

Noinitialize

初期化オプションを指定できます。複数のオプションを指定する場合は、オプションをカンマで区切り、オプションのリストをカッコで囲みます。

Initialize修飾子には次のオプションを指定できます。

Spams

Nospams

Areas修飾子で指定した領域のSPAMページを再構築します。Nospams修飾子を指定すると、SPAMページは再構築されません。RMU Repairコマンドで次のいずれの修飾子も指定しない場合、デフォルトはSpam修飾子です。

これらの修飾子のいずれかを使用するとNoSpam修飾子がデフォルトになります。

表で列の削除や追加が行われても、論理領域インベントリ・エントリに格納されるレコード長は更新されません。このため、新しいレコードの格納に必要な領域を検索するときに効率が悪くなることがあり、SPAMしきい値が適切に設定されません。この問題を解決するには、まず論理領域インベントリ・エントリのレコード長を修正し、RMU Repairコマンドを使用して修正されたSPAMページを生成します。「例」の項の「例2」を参照してください。

Tables[=table-list]

RMU Repairでセグメント文字列全体をチェックする表のリストを指定します。

表を指定しない場合は、システム表以外のすべての表がチェックされます。(システム表のライトワンス領域にはセグメント文字列は格納されません。)RMU Repairでは、特定の表のセグメント文字列がどの記憶領域に格納されているかは認識されないことに注意してください。このため、デフォルトではすべての表が検索されます。


使用上の注意


例1

次のコマンドは、mf_personnelデータベースのすべての記憶領域についてSPAMページの破損を修復します。Abm修飾子を指定していないため領域ビットマップ(ABM)ページは再構築されません。


$ RMU/REPAIR MF_PERSONNEL

例2

表で列の削除や追加が行われても、論理領域インベントリ・エントリに格納されるレコード長は更新されません。このため、新しいレコードの格納に必要な領域を検索するときに効率が悪くなることがあり、SPAMしきい値が適切に設定されません。この問題を解決するには、まず論理領域インベントリ・エントリのレコード長を修正し、RMU Repairコマンドを使用して修正されたSPAMページを生成します。

たとえば、Departments表がdepartments.rda統一ページ形式記憶領域に格納されており、Budget_Projected列(integerデータ型= 4バイト)が削除されたとします。この削除により、行の長さが47バイトから43バイトに変わりました。記憶領域の要領を効率よく使用するために、fix_departments.optオプション・ファイルでレコード長を小さく(43バイト)指定することができます。


$ CREATE FIX_DEPARTMENTS.OPT
DEPARTMENTS /LENGTH=43

次のRMU Repairコマンドは、この論理領域の論理領域インベントリ・エントリに格納するレコード長を指定し、SPAMページを再構築します。


$ RMU/REPAIR/SPAMS/INITIALIZE=LAREA_PARAMETERS=FIX_DEPARTMENTS.OPT -
_$ MF_PERSONNEL

例3

次のRMU Repairコマンドは、departments.snpを初期化して名前を変更し、salary_history.snpを初期化して移動し、jobs.snpを初期化、移動および縮小します。


$ RMU/REPAIR/NOSPAMS/INITIALIZE=SNAPSHOTS=CONFIRM -
_$ /AREAS=(DEPARTMENTS,JOBS,SALARY_HISTORY) MF_PERSONNEL
%RMU-I-FULBACREQ, A full backup of this database should be
 performed after RMU Repair
Area DEPARTMENTS snapshot filename
 [SQL1:[TEST]DEPARTMENTS.SNP;1]: NEW_DEPT
Area DEPARTMENTS snapshot file allocation [10]?
Area SALARY_HISTORY snapshot filename
 [SQL1:[TEST]SALARY_HISTORY.SNP;1]: SQL2:[TEST]
Area SALARY_HISTORY snapshot file allocation [10]?
Area JOBS snapshot filename [SQL1:[TEST]JOBS.SNP;1]: SQL2:[TEST2]
Area JOBS snapshot file allocation [10]? 5

例4

次のRMU Repairコマンドは、EMPIDS_LOW記憶領域の不正確なチェックサムが検出され、正しいチェックサムを表すように更新されます。


$ RMU/REPAIR MF_PERSONNEL.RDB/AREA=EMPIDS_LOW/CHECKSUM

例5

次のコマンドは表のAIPタイプを更新します。


$ RMU/REPAIR MF_PERSONNEL /INITIALIZE=LAREA_PARAMETERS=TABLE.OPT

TABLE.OPTファイルを入力し、ファイルの内容を表示します。


$ TYPE TABLE.OPT
EMPLOYEES /TYPE=TABLE

例6

次のコマンドは記憶領域のAIPタイプを更新します。


$ RMU/REPAIR MF_PERSONNEL /INITIALIZE=LAREA_PARAMETERS=AREAS.OPT

AREAS.OPTファイルを入力し、ファイルの内容を表示します。


$ TYPE AREAS.OPT
EMPLOYEES /AREA=EMPIDS_OVER /TYPE=TABLE