Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SAP Sybase SQL Anywhere 16.0 » SQL Remote » SQL Remote システムの管理

 

統合データベースの自動リカバリ

統合データベースを自動でリカバリします。 トランザクションログを手動で適用する場合は、統合データベースの手動リカバリを参照してください。

前提条件

BACKUP DATABASE システム権限が必要です。

データベースとトランザクションログファイルのコピーを作成します。この手順では、データベースファイルは事前にバックアップされており、テープなどに保存されていることを想定しています。

 ♦ タスク
  1. データベース (.db) ファイルの最新のバックアップコピーをテープからテンポラリディレクトリにリストアします。トランザクションログファイルはリストアしません

  2. テンポラリディレクトリで、次の処理を実行します。

    1. データベースを起動し、-ad オプションを使用してトランザクションログを適用します。

      -ad オプションを指定すると、データベースサーバは指定されたディレクトリでデータベースのトランザクションログを検索します。次にトランザクションログの正しい順序を特定し、トランザクションログオフセットに基づいてトランザクションログを適用します。

    2. 現在のトランザクションログをテンポラリディレクトリにコピーします。

    3. データベースを起動し、現在のトランザクションログを適用します。

    4. データベースサーバを停止します。

    5. データベースとトランザクションログをバックアップします。

  3. データベースとトランザクションログファイルを適切な運用ディレクトリにコピーします。

  4. システムを通常どおり再起動します。

    新しいアクティビティは、すべて現行のトランザクションログに追加されます。

結果

統合データベースがリカバリされます。

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 がサードパーティユーティリティを使用してバックアップされます。

ここでは、名前を変更したトランザクションログファイルを示すディレクトリを任意で指定して SQL Remote Message Agent (dbremote) を実行するものとします。次に例を示します。

dbremote -c "UID=DBA;PWD=sql" c:\dbdir

毎週実行しているバックアップの 3 日後に、ディスクブロック破損のためにデータベースファイルが破壊されてしまったと想定します。次の手順を実行します。

  1. c:\ ドライブを交換します。

  2. トランザクションログミラーファイル d:\mirdir\cons.mlg をバックアップします。

  3. リカバリを実行するテンポラリディレクトリを作成します。この例では c:\recover というディレクトリを作成します。

  4. データベースファイル cons.db の最新バックアップを c:\recover\cons.db にリストアします。

  5. バックアップ済みのトランザクションログを c:\dbdir にコピーします。

  6. 名前を変更したトランザクションログを適用します。

    dbeng16 c:\recover\cons.db -ad c:\dbdir
  7. 現在のトランザクションログ d:\mirdir\cons.log を、リカバリディレクトリにコピーし、c:\recover\cons.log を作成します。

  8. 次のコマンドを使用してデータベースを起動します。

    dbeng16 c:\recover\cons.db
  9. データベースサーバを停止します。

  10. リカバリされたデータベースとトランザクションログを c:\recover からバックアップします。

  11. c:\recover から実際に使用する適切なディレクトリに、ファイルをコピーします。

    • c:\recover\cons.dbc:\dbdir\cons.db にコピーします。

    • c:\recover\cons.logc:\dbdir\cons.logd:\mirdir\cons.mlg にコピーします。


 参照