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