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

SQL Anywhere 11.0.1 (日本語) » SQL Remote » SQL Remote の配備と管理 » SQL Remote の管理

 

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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 ドライブのメディア障害からリカバリするには、次の手順に従います。
  1. c:\ ドライブを交換します。

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

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

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

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

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

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

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

    dbeng11 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 にコピーします。

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

参照