データベースの運用中にRDBディクショナリ破壊およびRDBディレクトリファイル破壊などの障害が発生した場合、RDBディクショナリおよびRDBディレクトリファイルを障害が発生する前の状態にリカバリします。
RDBディクショナリは、データベースの定義情報を保持しています。
RDBディレクトリファイルには、ユーザデータベース用のRDBディレクトリファイルと、RDBディクショナリ用のRDBディレクトリファイルがあります。
ユーザデータベース用のRDBディレクトリファイルは、データベースを高速にアクセスするための情報や、現在の運用情報などを保持しています。
RDBディクショナリ用のRDBディレクトリファイルは、RDBディクショナリを高速にアクセスするための情報や、現在の運用情報などを保持しています。
RDBディクショナリ、RDBディレクトリファイルおよびデータベースの関係を、以下に示します。
DIR_FILE1: ユーザデータベース用のRDBディレクトリファイル
DIR_FILE2: RDBディクショナリ用のRDBディレクトリファイル
RDBディクショナリやRDBディレクトリファイルが破壊された場合、以下のようになります。
Symfoware/RDBは、自動的にフォールバック運用になります。フォールバック運用では、RDBディクショナリのバックアップ(rdbdmpdicコマンド)、RDBディクショナリの再配置(rdbgcdicコマンド)およびRDBディクショナリの容量拡張(rdbaldicコマンド)が行えないなど、運用に制限があります。
アクセス禁止状態となります。
アクセス禁止状態となります。
フォールバック運用や運用の停止を避けるために、RDBディクショナリおよびRDBディレクトリファイルはミラーリング運用を行ってください。
RDBディクショナリおよびRDBディレクトリファイルのリカバリ方法は、以下のようになります。
Symfoware/RDB運用中にリカバリする方法と、Symfoware/RDB停止中にリカバリする方法どちらも使用することができます。
Symfoware/RDB停止中にリカバリする方法のみ使用できます。
Symfoware/RDB停止中にリカバリする方法のみ使用できます。
RDBディクショナリおよびRDBディレクトリファイルのリカバリ操作の手順とリカバリ操作例については、“11.2 RDBディクショナリおよびRDBディレクトリファイルのリカバリ”を参照してください。
リバースクリエーションによるリカバリ
リバースクリエーションとは、RDBディクショナリおよびデータベースから、RDBディレクトリファイルをリカバリすることをいいます。この機能により、RDBディレクトリファイルの退避データの取得は不要となります。
リバースクリエーションによるリカバリを、以下に示します。
インクリメンタルリカバリ
リバースクリエーションによるリカバリは、データベースをすべて参照してリカバリするため、多くの時間を必要とします。そこで、Symfoware/RDBでは、ユーザデータベース用のRDBディレクトリファイルの破壊に対して、インクリメンタルリカバリも可能としています。インクリメンタルリカバリでは、業務を再開するのに必要なDSIに関する情報だけをリカバリできるため、少ない時間でリカバリを完了することができます。たとえば、10ギガバイトクラスのデータベースで1時間半以上かかっていたものが、1つのDSI(100メガバイト)だけをリカバリするのであれば、10分程度の時間で済み、より早く目的業務を再開することができます。残りのDSIに関する情報は、目的業務と並行してリカバリすることができます。
インクリメンタルリカバリを、以下に示します。
(1): DSI1およびDSI1に関する情報
(2): DSI2およびDSI2に関する情報
(3): DSI3およびDSI3に関する情報
(4): DSI4およびDSI4に関する情報
DIR_FILE1: ユーザデータベース用のRDBディレクトリファイル
Symfoware/RDB運用中に、RDBディクショナリおよびRDBディレクトリファイルをリカバリする方法について説明します。
Symfoware/RDB運用中のリカバリ方法は、以下の運用により異なります。
RDBDICONBUFFERの指定によるフォールバック運用
rdbpldicコマンドによるフォールバック運用
メモリ常駐化を行わないフォールバック運用
注意
rdbpldicコマンドによるフォールバック運用およびメモリ常駐化を行わないフォールバック運用の場合、アーカイブログ運用を行う必要があります。
RDBDICONBUFFERの指定によるフォールバック運用
RDBディクショナリおよびRDBディレクトリファイルのリカバリは、すべての情報をメモリからリカバリするため、リカバリ時間を短縮することができます。メモリの常駐が完了していない状態では、メモリの情報からリカバリすることはできません。メモリの常駐が完了したことを、rdbprdicコマンドのmオプションで確認してください。
RDBディクショナリおよびRDBディレクトリファイルのリカバリは、rdbrcvdicコマンドのOverwriteモードによって、最新状態までリカバリします。
メモリの常駐が完了していない場合は、メモリ常駐化を行わないフォールバック運用と同じになります。
RDBDICONBUFFERの指定によるフォールバック運用の詳細については、“4.9.2 RDBディクショナリおよびRDBディレクトリファイル破壊時のフォールバック”を参照してください。rdbprdicコマンドの詳細については、“12.8 RDBディクショナリのメモリ常駐化の確認”を参照してください。
バックアップとリカバリの流れを、以下に示します。
DIR_FILE1: ユーザデータベース用のRDBディレクトリファイル
DIR_FILE2: RDBディクショナリ用のRDBディレクトリファイル
注) “表4.5 RDBディクショナリを更新する機能一覧”を参照してください。
rdbpldicコマンドによるフォールバック運用
RDBディクショナリは、メモリ上に展開されている情報、アーカイブログファイルおよび退避データからリカバリします。RDBディレクトリファイルは、リバースクリエーションによりリカバリします。リバースクリエーションによるリカバリには大変時間を必要とするため、インクリメンタルリカバリも可能としています。
RDBディクショナリおよびRDBディレクトリファイルのリカバリは、rdbrcvdicコマンドのOverwriteモードおよびfオプションによって、最新状態までリカバリします。
rdbpldicコマンドによるフォールバック運用の詳細については、“4.9.2 RDBディクショナリおよびRDBディレクトリファイル破壊時のフォールバック”を参照してください。
バックアップとリカバリの流れを、以下に示します。
DIR_FILE1: ユーザデータベース用のRDBディレクトリファイル
DIR_FILE2: RDBディクショナリ用のRDBディレクトリファイル
注1) rdbstart実行時に、自動的に常駐されます。
注2) “表4.5 RDBディクショナリを更新する機能一覧”を参照してください。
注3) アーカイブログ退避ファイルは、アーカイブログをバックアップする運用を行っている場合に適用します。
メモリ常駐化を行わないフォールバック運用
RDBディクショナリは、アーカイブログファイルおよび退避データからリカバリします。RDBディレクトリファイルは、リバースクリエーションによりリカバリします。リバースクリエーションによるリカバリには大変時間を必要とするため、インクリメンタルリカバリも可能としています。
RDBディクショナリおよびRDBディレクトリファイルのリカバリは、rdbrcvdicコマンドのOverwriteモードおよびfオプションによって、最新状態までリカバリします。
バックアップとリカバリの流れを、以下に示します。
DIR_FILE1: ユーザデータベース用のRDBディレクトリファイル
DIR_FILE2: RDBディクショナリ用のRDBディレクトリファイル
注1) “表4.5 RDBディクショナリを更新する機能一覧”を参照してください。
注2) アーカイブログ退避ファイルは、アーカイブログをバックアップする運用を行っている場合に適用します。
Symfoware/RDB停止中に、RDBディクショナリおよびRDBディレクトリファイルをリカバリする方法について説明します。
RDBディクショナリの退避データ取得のタイミングや破壊された場合のリカバリ方法は、アーカイブログ運用を行うか行わないかによって異なります。
アーカイブログ運用を行う場合
アーカイブログ適用によるリカバリ
アーカイブログ運用を行わない場合
バックアップ時点へのリカバリ
アーカイブログ適用によるリカバリ
rdbdmpdicコマンドによりバックアップしたRDBディクショナリの退避データ、アーカイブログおよびアーカイブログ退避データを利用し、rdbrcvdicコマンドのFWモードによって、最新状態までRDBディクショナリおよびRDBディレクトリファイルをリカバリします。
バックアップとリカバリの流れを、以下に示します。
注1) “表4.5 RDBディクショナリを更新する機能一覧”を参照してください。
注2) アーカイブログ退避ファイルは、アーカイブログをバックアップする運用を行っている場合に適用します。
バックアップ時点へのリカバリ
rdbdmpdicコマンドによりバックアップしたRDBディクショナリの退避データを利用し、rdbrcvdicコマンドのLOADモードによって、RDBディクショナリの退避データ取得時点までRDBディクショナリおよびRDBディレクトリファイルをリカバリします。
RDBディクショナリだけを退避データ取得時点までリカバリすると、DSIとの整合性がとれなくなってしまいます。RDBディクショナリとDSIの整合性を保つために、DSIもRDBディクショナリの退避データ取得時点までリカバリする必要があります。そのため、RDBディクショナリおよびDSIの退避データは同時に取得し、RDBディクショナリリカバリ時にはDSIもRDBディクショナリの退避データ取得時点にリカバリしてください。
バックアップとリカバリの流れを、以下に示します。
注) “表4.5 RDBディクショナリを更新する機能一覧”を参照してください。