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 の管理

 

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

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

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

  2. テンポラリ・ディレクトリを作成します。

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

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

    1. データベースのバックアップ・コピーを開始します。

    2. -a オプションを使用して、古いトランザクション・ログを適用します。

    3. データベースを停止します。

    4. 現在のトランザクション・ログと -a オプションを使用してデータベースを起動し、トランザクションを適用してデータベース・ファイルを最新の状態に更新します。

    5. データベースを停止します。

    6. データベースをバックアップします。

  4. データベースを運用ディレクトリにコピーします。

  5. データベースを起動します。

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

例:個別のトランザクション・ログの適用

c:\dbdir\cons.db という名前の統合データベース・ファイル、トランザクション・ログ・ファイル c:\dbdir\cons.log、トランザクション・ログ・ミラー・ファイル d:\mirdir\cons.mlg があると想定します。

毎週実行するフル・バックアップに加え、次のコマンドを使用してインクリメンタル・バックアップを毎日実行しているものとします。

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. トランザクション・ログ・ミラー・ファイル d:\mirdir\cons.mlg をバックアップします。

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

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

  4. 名前を変更したトランザクション・ログを、次の順序で適用します。

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

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

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

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

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

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

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

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

参照