データベースの創成が完了すると、データベースの運用を開始することができます。データベースの運用にあたっては、データ破壊などの異常時のリカバリに備えて、表のDSIのバックアップを行っておく必要があります。インデックスが付加された表でも、表のDSIの退避データ取得だけでよく、インデックスのDSIの退避データ取得は必要ありません。
一時表、および、一時表のインデックスのDSIのバックアップは不要です。一時表は、アプリケーション実行時に一時的に使用する領域のため、内容を保存しておく必要はありません。rdbdmpコマンドに一時表、および、一時表のインデックスのDSIを指定した場合、“qdg13756e”を出力してエラーとなります。
一時表のリカバリについては、“11.12 一時表のリカバリ”を参照してください。
DSIの退避データの取得は、rdbdmpコマンドを使用します。
rdbdmpコマンドにより取得した退避データの形式には、以下の2つがあります。
DSI形式
エクステント形式
参照
rdbdmpコマンドの詳細については、“コマンドリファレンス”を参照してください。
退避データ取得時には、以下の条件を満足していなければなりません。
rdbdmpコマンドを使用するため、Symfoware/RDBが起動状態でなければなりません。
DSIが正常状態でなければなりません。rdbinfコマンドでアクセス禁止状態でないことを確認してください。
データをバックアップするのに十分な媒体が用意されていなければなりません。そのためには、退避データの容量を把握しておくことが必要です。rdbinfコマンドのSize欄により、退避データの容量を把握してください。
REFモードでリカバリを行う場合(参照のみを行っているDSIをリカバリする場合)は、rdbdmpコマンド実行時にNオプションを指定し、エクステント形式で退避データを取得しなければなりません。
退避データは、指定された外部媒体に出力されます。このとき、アーカイブログ運用を行っている場合は、退避データの取得点を表すためのリカバリポイントが、アーカイブログファイルに設定されます。処理メッセージは、標準出力されます。
rdbdmpコマンドを使用して、DSIをバックアップする場合の入出力構成を以下に示します。
$ rdbdmp -i 在庫管理DB.在庫表DSI1 -f stock@/backup/rdb -e -y rdb: INFO: qdg02654i:rdbdmpコマンドの処理を開始します (システム名=rdbsys1) rdb: INFO: qdg02655i:rdbdmpコマンドの処理が正常終了しました (システム名=rdbsys1)
エクステント形式のバックアップを行う場合は、どのデータベーススペースを、どのディレクトリ配下にバックアップするかを記述した、バックアップ制御ファイルに従って外部媒体に出力されます。
$ rdbdmp -i 在庫管理DB.在庫表DSI -f /home/rdb1/backup1.data -e -y rdb: INFO: qdg02654i:rdbdmpコマンドの処理を開始します (システム名=rdbsys1) rdb: INFO: qdg02655i:rdbdmpコマンドの処理が正常終了しました (システム名=rdbsys1)
注意
アーカイブログ運用を行っていない場合、アーカイブログ運用を行っていてバッチ業務中などでリカバリを適用しない運用の場合およびOBJECT構造のDSIの退避データを取得する場合は、rdbdmpコマンドの前後で、更新抑止の設定と解除を行ってください。また、rdbdmpコマンド実行時にはNオプションを指定してください。この方法で取得した退避データでは、rdbrcvコマンドのFWモードによって、最新状態にまでリカバリすることはできません。
rdbdmpコマンドのeオプションは、退避先がすでに存在した場合に処理を続行するかの確認を行います。
rdbdmpコマンドのyオプションは、退避先が磁気テープの場合、入力要求のメッセージを出力せずにセットされている磁気テープを処理対象として処理を行います。そのため、yオプションを使用する場合には、コマンド実行前に、正しい磁気テープがセットされているか確認してください。
rdbdmpコマンドのyオプションとeオプションを同時に指定した場合、退避先がファイルのとき、書込みの確認要求は行わず無条件に退避ファイルを作成します。そのため、yオプションを使用する場合には、コマンド実行前に、退避先が正しいか確認してください。
rdbdmpコマンドの実行中に切り替えたアーカイブログファイルは、rdbdmpコマンド実行中には、rdblogコマンドによって破棄またはバックアップすることはできません。
バックアップの処理時間を短縮するために、同一データベース内の複数のDSIを、指定したディレクトリに一括してバックアップすることができます。
スケーラブルログ運用を行っている場合は、同一ロググループに属するDSIを指定してください。
在庫管理DBに属する在庫表DSI1、在庫表DSI2、在庫表DSI3および在庫表DSI4を、/backup/rdbにdmp1、dmp2、dmp3およびdmp4としてバックアップする例を以下に示します。
$ rdbdmp -t /home/rdb1/dsi.list -e -y rdb: INFO: qdg02654i:rdbdmpコマンドの処理を開始します (システム名=rdbsys1) rdb: INFO: qdg12578i:DSI '在庫管理DB.在庫表DSI1'をバックアップします (システム名=rdbsys1) rdb: INFO: qdg12578i:DSI '在庫管理DB.在庫表DSI2'をバックアップします (システム名=rdbsys1) rdb: INFO: qdg12578i:DSI '在庫管理DB.在庫表DSI3'をバックアップします (システム名=rdbsys1) rdb: INFO: qdg12578i:DSI '在庫管理DB.在庫表DSI4'をバックアップします (システム名=rdbsys1) rdb: INFO: qdg02655i:rdbdmpコマンドの処理が正常終了しました (システム名=rdbsys1)
24時間連続運用など日々のデータベース運用中にバックアップ時間が確保できないような場合にも、rdbdmpコマンドは業務と並行してバックアップを取得することができます。業務と並行して取得する退避データを、オンラインダンプと呼びます。オンラインダンプは、更新中のDSI情報を取得するため、DSIイメージデータと、rdbdmpコマンド実行中の更新ログを一緒にバックアップすることで、退避データとしての整合性を保証しています。このため、取得した退避データのみでrdbdmpコマンド実行時点にDSIをリカバリすることが可能です。
オンラインダンプは、アーカイブログ運用を行っていて、rdbdmpコマンドにNオプションを指定しない場合に取得できます。
なお、オンラインダンプ取得時には、rdbdmpコマンドが業務アプリケーションと同一のディスクに対してアクセスを行うため、業務アプリケーションのレスポンスに影響を与えてしまいます。また、rdbdmpコマンド実行時間に比例して、バックアップされる更新ログ量も増加してしまいます。このため、オンラインダンプを取得する場合は、なるべく更新量の少ない時間を見計らって、バックアップを取得するようにしてください。
参考
参照
rdbdmpコマンドのcオプションおよびdオプションについては、“コマンドリファレンス”を参照してください。
参考
オンラインバックアップを実施する場合、退避データの整合性を保つために、以下の様に処理します。
コマンド開始時に、バックアップ対象のDSIに対するトランザクションが実行中の場合、実際のバックアップ処理はトランザクションが完了してから開始します。
バックアップ対象のDSIに対するトランザクションがコマンド開始以降に実行した場合、トランザクションは実際のバックアップ処理と並行して実行します。
実際のバックアップ処理が終了した時にトランザクションが実行中の場合、コマンドはトランザクションの完了を待って復帰します。
注意
cオプションを指定する場合、以下の注意事項があります。
cオプションを指定する場合、アーカイブログ運用を行っていなければなりません。
cオプション指定時の退避データを用いてDSIをリカバリする場合、退避データ取得時以降のアーカイブログファイルが必須になります。このため、アーカイブログファイルの入出力障害に備えて、rdbdmpコマンド実行後には、使用中のアーカイブログファイルをバックアップしておくなどの考慮が必要です。
cオプション指定時の退避データを用いて退避データ採取時点にDSIをリカバリする場合、rdbrcvコマンドのFWモードにdumpオプションおよび退避データ取得時点の退避アーカイブログファイルを指定してリカバリしてください。
リカバリ
DSIのリカバリは、rdbrcvコマンドを使用します。DSIのリカバリ操作の手順とリカバリ操作例については、“第5章 媒体障害からのリカバリ”を参照してください。