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 Anywhere サーバ - データベース管理 » データベースの保守 » バックアップとデータ・リカバリ » データベースのリカバリ » 複数のトランザクション・ログがあるデータベースのリカバリ

 

dbtran ユーティリティを使用した、複数のトランザクション・ログがあるデータベースのリカバリ

dbtran により複数のトランザクション・ログを変換し、データの整合性を維持するには、-m および -n オプションの両方を指定する必要があります。-m オプションは、指定したディレクトリ内にあるログからのすべてのトランザクションを含むファイル (-n によって指定) を作成するようログ変換ユーティリティ (dblog) に指示します。

複数のトランザクション・ログ・ファイルにまたがるトランザクションがある場合、dbtran を使用して各ログを個別に変換すると、トランザクションがロールバックされる可能性があるため、-m を使用する必要があります。dbtran は、ログを変換するときに、ROLLBACK 文をログの最後に追加してコミットされていないトランザクションを取り消そうとします。トランザクションが 2 つのログにまたがっている場合、トランザクションの COMMIT が 2 番目のログ・ファイルで発生します。最初のログ・ファイルにトランザクションの COMMIT が含まれていないために、このファイルに対する最後の操作が dbran によってロールバックされます。-m を使用してディレクトリ内のすべてのトランザクション・ログ・ファイルを変換すると、確実にすべてのトランザクションが変換されます。トランザクション・ログ・ユーティリティ (dblog)を参照してください。

♦  dbtran ユーティリティを使用して複数のトランザクション・ログからリカバリするには、次の手順に従います。
  1. トランザクション・ログ・ファイルを含むディレクトリに対してログ変換ユーティリティ (dbtran) を実行して、その結果生成された SQL 文を .sql ファイルに出力します。

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

  3. 手順 1 で dbtran によって生成された .sql ファイルを、Interactive SQL からデータベースのバックアップ・コピーに適用します。

次の例では、dbtran ユーティリティを使用してバックアップおよび現在のトランザクション・ログをデータベースのバックアップ・コピーに適用します。

  1. c:\backup ディレクトリに対してログ変換ユーティリティを実行して、SQL 文を recoverylog.sql というファイルに出力します。

    dbtran -m "c:\backup" -n recoverylog.sql
  2. backupdemo.db というデータベースのバックアップ・コピーを起動します。

    dbeng11 backupdemo.db
  3. Interactive SQL から recoverylog.sql ファイルをデータベースに適用します。

    dbisql -c "UID=DBA;PWD=sql;ENG=backupdemo" READ recoverylog.sql
参照