データベースの運用中にRDBディクショナリ破壊およびRDBディレクトリファイル破壊などの障害が発生した場合、RDBディクショナリおよびRDBディレクトリファイルを障害が発生する前の状態にリカバリします。
RDBディクショナリは、データベースの定義情報を保持しています。
RDBディレクトリファイルには、ユーザデータベース用のRDBディレクトリファイルと、RDBディクショナリ用のRDBディレクトリファイルがあります。
ユーザデータベース用のRDBディレクトリファイルは、データベースを高速にアクセスするための情報や、現在の運用情報などを保持しています。
RDBディクショナリ用のRDBディレクトリファイルは、RDBディクショナリを高速にアクセスするための情報や、現在の運用情報などを保持しています。
RDBディクショナリ、RDBディレクトリファイルおよびデータベースの関係を、以下に示します。
DIR_FILE1: ユーザデータベース用のRDBディレクトリファイル
DIR_FILE2: RDBディクショナリ用のRDBディレクトリファイル
RDBディクショナリやRDBディレクトリファイルが破壊された場合、破壊された資源がアクセス禁止状態となります。運用の停止を避けるために、RDBディクショナリおよびRDBディレクトリファイルはミラーリング運用を行ってください。ミラーリング運用については、“2.7 データベースのミラーリング”を参照してください。
また、RDBディクショナリをリカバリする場合のために、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ディレクトリファイル
RDBディクショナリの退避データ取得のタイミングや破壊された場合のリカバリ方法は、アーカイブログ運用を行うか行わないかによって異なります。
アーカイブログ運用を行う場合
アーカイブログ適用によるリカバリ
アーカイブログ運用を行わない場合
バックアップ時点へのリカバリ
アーカイブログ適用によるリカバリ
rdbdmpdicコマンドによりバックアップしたRDBディクショナリの退避データ、アーカイブログおよびアーカイブログ退避データを利用し、rdbrcvdicコマンドのFWモードによって、最新状態までRDBディクショナリおよびRDBディレクトリファイルをリカバリします。
バックアップとリカバリの流れを、以下に示します。
注1) “RDBディクショナリを更新する機能一覧”を参照してください。
注2) アーカイブログ退避ファイルは、アーカイブログをバックアップする運用を行っている場合に適用します。
バックアップ時点へのリカバリ
rdbdmpdicコマンドによりバックアップしたRDBディクショナリの退避データを利用し、rdbrcvdicコマンドのLOADモードによって、RDBディクショナリの退避データ取得時点までRDBディクショナリおよびRDBディレクトリファイルをリカバリします。
RDBディクショナリだけを退避データ取得時点までリカバリすると、DSIとの整合性がとれなくなってしまいます。RDBディクショナリとDSIの整合性を保つために、DSIもRDBディクショナリの退避データ取得時点までリカバリする必要があります。そのため、RDBディクショナリおよびDSIの退避データは同時に取得し、RDBディクショナリリカバリ時にはDSIもRDBディクショナリの退避データ取得時点にリカバリしてください。
バックアップとリカバリの流れを、以下に示します。
注) “RDBディクショナリを更新する機能一覧”を参照してください。