データベースを復元する - BizTalk Server
データベース間のトランザクション状態の一貫性を保証するには、すべてのデータベースを同じマークに復元する必要があります。 「 マークされたトランザクション、完全バックアップ、ログ バックアップ」を参照してください。
送信先システムにサーバーが 1 つだけ存在する場合は、すべてのログ バックアップ セット (最新のセットを除く) が復元されていることを確認する必要があります。 「復元されたバックアップの履歴の表示」を参照してください。 すべてのログ バックアップ セットの復元が完了していない場合、復元ジョブが現在実行中でなければ、ジョブを実行します (必要に応じて手動で)。 復元できる未処理のバックアップ セットがある場合、ジョブは、それらがすべて復元されるまでそれらを処理します。
送信先システムに複数のサーバーがある場合は、すべてのサーバーの復元を同じバックアップ セットで行う必要があります。 各サーバーの復元履歴を表示し、復元された最新のログ バックアップ セットがすべてのサーバーで同じであることを確認します。 同一の最新ログ バックアップ セットで復元されていないサーバーがある場合は、そのサーバーに対する復元ジョブを手動で実行する必要があります。
すべてのサーバーが同じバックアップ セットになった後で、最終的なセットを手動で復元できます。
adm_BackupHistory テーブルは、送信元システムのログ配布プロセスに関する一元的な履歴ポイントです。 実行されたバックアップ作業がすべて、このテーブルに記録されます。 送信先システムのすべてのサーバーが、このテーブルの記録を読み取り、復元作業に必要な情報を受け取ります。
開始する前に
- BAM プライマリ インポート データベースをバックアップから復元する場合は、BAM プライマリよりも古いバックアップを使用して BAM アーカイブ、BAM スター スキーマ、および BAM 分析データベースも復元する必要があります。 BAM のバックアップと復元に関するページを参照してください。
- 送信元データベースの完全バックアップまたはログ バックアップを BizTalk Server のバックアップ ジョブで使用した保存場所から移動する場合は、LogFileLocation または DBFileLocation の値として、送信先システムが完全/ログ バックアップ ファイルを読み取るための新しい場所を設定します。これにより、送信先システムにある bts_LogShippingDatabases テーブルで、送信元データベースに関連付けられた行が更新されます。 bts_ConfigureBtsLogShipping ストアド プロシージャを実行すると、このテーブルに値が入力されます。 これらの列は既定で Null に設定されます。この値は、adm_BackupHistory テーブルに記録されている場所から送信先システムがバックアップ ファイルを読み取ることを意味します。
- バックアップ ファイルのコピーは必ず、セキュリティで保護された場所に保管しておいてください。 ログ バックアップがあっても、バックアップ ファイルがなければデータベースを復元することはできません。
前提条件
sysadmin SQL Server ロールのメンバーであるアカウントを使用して、SQL Serverにサインインします。
データベースを復元する
移行先システムで、SQL Server Management Studioを開き、SQL Serverに接続します。
[SQL Server エージェント] を展開し、[ジョブ] を展開します。 次の操作を行います。
[BTS ログ配布 - バックアップ履歴の取得] ジョブを右クリックし、[無効] を選択します。 状態が [成功] に変わります。
[BTS ログ配布 - データベースの復元] ジョブを右クリックし、[無効] を選択します。 状態が [成功] に変わります。
[BTS ログ配布 - マークに復元] を右クリックし、ステップで [ジョブの開始] を選択します。 [ ステップ ID 1] を 選択し、[開始] を選択 します。
状態が [成功] に変わると、SQL Server エージェント ジョブとBizTalk Server データベースが移行先システムに復元されます。
重要
[状態] が [エラー] の場合は、[メッセージ] フィールドのリンクを選択して原因を特定します。 これらのジョブを続行するには、状態が [成功] になっていることが必要です。
SampleUpdateInfo.xml ファイルを編集したBizTalk Serverで、コマンド プロンプトを開き、次の場所に移動します。
32 ビット コンピューター:
%SystemDrive%\Program Files\Microsoft BizTalk Server <version>\Schema\Restore
64 ビット コンピューター:
%SystemDrive%\Program Files (x86)\Microsoft BizTalk Server <version>\Bins32\Schema\Restore
コマンド プロンプトで、次のコマンドを入力します。
cscript UpdateDatabase.vbs SampleUpdateInfo.xml
Note
SQL Server 2016 以降の環境を使用する場合は、UpdateDatabase.vbs で MSOLEDBSQL を使用する必要がある場合があります。 UpdateDatabase.vbs で、 に移動します
conn.Provider = "SQLOLEDB"
。SQLOLEDB
をMSOLEDBSQL
に変更します。 それ以外の場合、スクリプトは エラー で失敗する可能性があります:SQL Server: Invalid connection string attribute
。このスクリプトにより、他のデータベースの場所に関する情報を格納しているテーブルがすべて更新されます。
重要
- BizTalk グループ内の 1 台 のサーバーで UpdateDatabase.vbs を実行します。
- 64 ビット コンピューターの場合は、UpdateDatabase.vbs を 64 ビット コマンド プロンプトから実行する必要があります。 64 ビット コンピューターの既定のコマンド プロンプトは 64 ビット のコマンド プロンプトであり、%SystemDrive%\windows\System32\cmd.exe にあります。
- BizTalk EDI エンジンでは、データベースの復元時に SampleUpdateInfo.xml に独自の変更を行う必要はありません。 EDI テーブルにアクセスするには、BizTalkDTADb データベースへの接続に依存します。
編集した SampleUpdateInfo.xml ファイルを、この BizTalk グループでBizTalk Server実行しているすべてのコンピューターの次のフォルダーにコピーします。
32 ビット コンピューター: コピー先
%SystemDrive%\Program Files\Microsoft BizTalk Server <version>\Schema\Restore
64 ビット コンピューター: コピー先
%SystemDrive%\Program Files (x86)\Microsoft BizTalk Server <version>\Bins32\Schema\Restore
BizTalk Server グループ内の各コンピューターでコマンド プロンプトを開き、次の操作を行います。
32 ビット コンピューター:
%SystemDrive%\Program Files\Microsoft BizTalk Server <version>\Schema\Restore
64 ビット コンピューター:
%SystemDrive%\Program Files (x86)Microsoft BizTalk Server <version>\Bins32\Schema\Restore
コマンド プロンプトに、次のコマンドを入力します。
cscript UpdateRegistry.vbs SampleUpdateInfo.xml
このスクリプトにより、他のデータベースの場所に関する情報を格納しているすべてのレジストリ エントリが更新されます。
重要
- BizTalk グループ 内のすべての サーバーで UpdateRegistry.vbs を実行します。
- 64 ビット コンピューターの場合は、UpdateRegistry.vbs を 64 ビット コマンド プロンプトから実行する必要があります。 64 ビット コンピューターにおける既定のコマンド プロンプトは、64 ビット コマンド プロンプト (%SystemDrive%\windows\System32\cmd.exe) であることに注意してください。
すべてのBizTalk Server サービスを再起動します。 「How to start, stop, Pause, Resume, or Restart BizTalk Server Services」を参照してください。
データベースを復元した後で、Windows Management Instrumentation サービスを再起動します。
services.msc を開きます。
[Windows Management Instrumentation] を右クリックし、[再起動] を選択します。
[BizTalk Server管理] を開きます。 次の操作を行います。
BizTalk グループを右クリックし、[削除] を選択します。
[BizTalk Server管理] を右クリックし、[既存のグループに接続] を選択します。
[SQL Server名] で、BizTalk 管理データベースをホストするSQL Server インスタンスの名前を選択します。 SQL Server インスタンスを選択すると、BizTalk Serverはそのコンピューター上のBizTalk Server データベースを自動的に検出します。
[ データベース名] で、BizTalk 管理データベース (既定では BizTalkMgmtDb ) を選択し、[ OK] を選択します。
BizTalk Server管理コンソールは、BizTalk グループを管理コンソールに追加します。
これでBizTalk Serverが復元され、実行中である必要があります。 次に、バックアップ BizTalk Server ジョブを構成して、新しい移行先サーバーへのバックアップの書き込みを開始します。 また、新しい送信先システムの再構成も必要です。
重要
- ルール エンジンを使用している場合は、データベースを復元した後、BizTalk Server グループ内のすべてのサーバーでルール エンジン更新サービスを再起動する必要があります。 「How to start, stop, Pause, Resume, or Restart BizTalk Server Services」を参照してください。
- BAM を使用している場合は、今度は BAM データベースを復元します。 BAM のバックアップと復元に関するページを参照してください。
- データベースを移動していて、BizTalk EDI または RosettaNet アクセラレータを使用している場合は、一部の SQL ポートが BizTalk データベースに対して設定されている可能性があります。 バインドをエクスポートし、古いデータベース リンクを検索し、それに応じてデータベース リンクを置き換えます。