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 サーバ - SQL の使用法 » リモート・データとバルク・オペレーション » データのインポートとエクスポート » データベースの再構築

 

同期やレプリケーションに関連するデータベースの再構築

この項の内容は、SQL Anywhere の Mobile Link クライアント (dbmlsync を使用するクライアント)、SQL Remote、および Replication Agent にも適用されます。

データベースが同期またはレプリケートされている場合、データベースの再構築には特に注意が必要です。同期やレプリケーションは、トランザクション・ログのオフセットに基づいています。データベースを再構築すると、古いトランザクション・ログのオフセットは新しいログのオフセットとは異なるため、古いログは使用できなくなります。このため、同期やレプリケーションに参加しているときは、バックアップをきちんと実行することが特に重要です。

同期やレプリケーションに関連するデータベースの再構築には、2 つの方法があります。最初の方法では、dbunload ユーティリティの -ar オプションを使用して、同期やレプリケーションに干渉しない方法でアンロードと再ロードを実行します。2 つ目の方法では、手動で同じタスクを実行します。

すべてのサブスクリプションを同期してから、Mobile Link 同期に参加するデータベースを再構築する必要があります。

♦  同期やレプリケーションに関連するデータベースを再構築するには、次の手順に従います (dbunload ユーティリティの場合)。
  1. データベースを停止します。

  2. データベース・ファイルとトランザクション・ログ・ファイルを安全なロケーションにコピーしてオフラインでフル・バックアップを実行します。

  3. 次 dbunload のコマンドを実行して、データベースを再構築します。

    dbunload -c connection-string -ar directory

    connection-string は DBA 権限での接続を表し、directory はレプリケーション環境で使用した古いトランザクション・ログのディレクトリを表します。データベースへのその他の接続はありません。

    -ar オプションは、パーソナル・サーバへの接続、または共有メモリ経由によるネットワーク・サーバへの接続にのみ適用されます。

    詳細については、アンロード・ユーティリティ (dbunload)を参照してください。

  4. 新しいデータベースを停止してから、データベースの復元後に通常実行する妥当性検査を実行します。

    妥当性検査の詳細については、データベースの検証を参照してください。

  5. 必要な運用オプションを使用してデータベースを起動します。これで、再ロードされたデータベースにアクセスできます。

注意

dbunload ユーティリティには、アンロード作業をチューニングするための追加オプションがあります。また、実行中または実行していないデータベースとデータベース・パラメータを指定できる接続パラメータ・オプションもあります。アンロード・ユーティリティ (dbunload)を参照してください。

前述の手順では要求に対応できない場合は、トランザクション・ログのオフセットを手動で調整できます。次の手順では、このような操作の実行方法について説明します。

♦  同期やレプリケーションに関連するデータベースを手動で操作して再構築するには、次の手順に従います。
  1. データベースを停止します。

  2. データベース・ファイルとトランザクション・ログ・ファイルを安全なロケーションにコピーしてオフラインでフル・バックアップを実行します。

  3. dbtran ユーティリティを実行してデータベースの現在のトランザクション・ログ・ファイルの開始オフセットと終了オフセットを表示します。

    終了オフセットは手順 8 で使用するために記録しておきます。

  4. 現在のトランザクション・ログ・ファイルの名前を変更して、アンロード処理中に修正されないようにします。このファイルを dbremote のオフライン・ログ・ディレクトリに置きます。

  5. データベースを再構築します。

    この手順については、データベースの再構築を参照してください。

  6. 新しいデータベースを停止します。

  7. 新しいデータベースで使用されていたトランザクション・ログ・ファイルを消去します。

  8. 新しいデータベースで dblog を実行します。手順 3 で記録した終了オフセットを -z パラメータに指定し、相対オフセットを 0 に設定します。

    dblog -x 0 -z 0000698242 -il -ir -is database-name.db
  9. Message Agent を実行するときは、コマンド・ラインに元のオフライン・ディレクトリのパスを入力します。

  10. データベースを起動します。これで、再ロードされたデータベースにアクセスできます。