次の手順では、統合データベースを自動的にリカバリする方法について説明します。トランザクション・ログを手動で適用する場合は、統合データベースの手動リカバリを参照してください。
データベースとトランザクション・ログ・ファイルのコピーを作成します。この手順では、データベース・ファイルは事前にバックアップされており、テープなどに保存されていることを想定しています。
データベース (.db) ファイルの最新のバックアップ・コピーをテープからテンポラリ・ディレクトリにリストアします。トランザクション・ログ・ファイルはリストアしません。
テンポラリ・ディレクトリで、次の処理を実行します。
データベースを起動し、-ad オプションを使用してトランザクション・ログを適用します。
-ad オプションを指定すると、データベース・サーバは指定されたディレクトリでデータベースのトランザクション・ログを検索します。次にトランザクション・ログの正しい順序を特定し、トランザクション・ログ・オフセットに基づいてログを適用します。
現在のトランザクション・ログをテンポラリ・ディレクトリにコピーします。
データベースを起動し、現在のトランザクション・ログを適用します。
データベース・サーバを停止します。
データベースとトランザクション・ログをバックアップします。
データベースとトランザクション・ログ・ファイルを適切な運用ディレクトリにコピーします。
システムを通常どおり再起動します。
新しいアクティビティは、すべて現行のトランザクション・ログに追加されます。
c:\dbdir\cons.db という名前の統合データベース・ファイル、トランザクション・ログ・ファイル c:\dbdir\cons.log、トランザクション・ログ・ミラー・ファイル d:\mirdir\cons.mlg があると想定します。
次のコマンドを使用して、フル・バックアップを毎週実行するとします。
dbbackup -c "UID=DBA;PWD=sql" -r -n e:\backdir |
また、次のコマンドを使用して、インクリメンタル・バックアップを毎日実行するとします。
dbbackup -c "UID=DBA;PWD=sql" -r -n -t e:\backdir |
このコマンドは、トランザクション・ログ cons.log をディレクトリ e:\backdir にバックアップします。トランザクション・ログの名前は datexx.log (date はそのときの日付、xx はアルファベット順の次の英字) に変更され、新しいトランザクション・ログが作成されます。その後、ディレクトリ e:\backdir がサード・パーティ・ユーティリティを使用してバックアップされます。
ここでは、名前を変更したトランザクション・ログ・ファイルを示すディレクトリを任意で指定して Message Agent (dbremote) を実行するものとします。次に例を示します。
dbremote -c "UID=DBA;PWD=sql" c:\dbdir |
毎週実行しているバックアップの 3 日後に、ディスク・ブロック破損のためにデータベース・ファイルが破壊されてしまったと想定します。
c:\ ドライブを交換します。
トランザクション・ログ・ミラー・ファイル d:\mirdir\cons.mlg をバックアップします。
リカバリを実行するテンポラリ・ディレクトリを作成します。この例では c:\recover というディレクトリを作成します。
データベース・ファイル cons.db の最新バックアップを c:\recover\cons.db にリストアします。
バックアップ済みのトランザクション・ログを c:\dbdir にコピーします。
名前を変更したトランザクション・ログを適用します。
dbeng11 c:\recover\cons.db -ad c:\dbdir |
現在のトランザクション・ログ d:\mirdir\cons.log を、リカバリ・ディレクトリにコピーし、c:\recover\cons.log を作成します。
次のコマンドを使用してデータベースを起動します。
dbeng11 c:\recover\cons.db |
データベース・サーバを停止します。
リカバリされたデータベースとトランザクション・ログを c:\recover からバックアップします。
c:\recover から実際に使用する適切なディレクトリに、ファイルをコピーします。
c:\recover\cons.db を c:\dbdir\cons.db にコピーします。
c:\recover\cons.log を c:\dbdir\cons.log と d:\mirdir\cons.mlg にコピーします。
システムを通常どおり再起動します。
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |