メイン コンテンツへスキップ
サポート
Microsoft アカウントでサインイン
サインインまたはアカウントを作成してください。
こんにちは、
別のアカウントを選択してください。
複数のアカウントがあります
サインインに使用するアカウントを選択してください。

現象

Microsoft SQL Server 2012 の [ 置換後の文字列 ] オプションを使用してバックアップからデータベースを復元すると、バックアップデータベースから取得された復元されたデータベースの物理ファイル名が、既存のデータベースの物理ファイル名で上書きされることがあります。たとえば、次のシナリオについて考えてみます。

  • SQL Server の InstanceA と Instancea の2つのインスタンスがあります。

  • SQL Server の各インスタンスで、SQLDB という名前のデータベースが作成されている。

  • InstanceA では、SQLDB データベースデータファイル名は DB1_InstanceA .mdf で、ログファイル名は DB1_InstanceA .ldf です。

  • InstanceB では、SQLDB データベースデータファイル名は DB1_InstanceB .mdf で、ログファイル名は DB1_InstanceB .ldf です。

  • [復元] コマンドの [置換後の文字列] オプションを使用して、SQLDB データベースの instancea から SQLDB データベースのバックアップを、instancea から復元しようとしています。

このシナリオでは、InstanceB 上の SQLDB の物理ファイル名が DB1_InstanceA .mdf と DB1_InstanceA に変更されます。 

原因

この動作は、SQL Server 2012 で設計されています。

回避策

この問題を回避するには、[復元] コマンドの [置換後の文字列] オプションを使用しないでください。 代わりに、 WITH MOVE オプションを使用します。注: [ ムーブ ] オプションでは、物理ファイル名を変更するオプションが提供されます。

詳細情報

[ ムーブ] オプションは、[ 復元] コマンドを初めて使用するときにのみ必要です。 バックアップからデータベースを復元しようとすると、SQL Server はデータベースの回復フォークの値を比較します。 次に、これらの値が一致するかどうかに応じて、次の操作を実行します。

  • 一致するものがある場合、バックアップセットではターゲットデータベースのファイル名がそのまま使用されます。

  • 値が異なる場合、バックアップセットの名前を使用して、ターゲットデータベースの物理ファイル名が置き換えられます。

[移動] オプションと [復元] コマンドを一緒に使用すると、次の操作が実行されます。

  1. ターゲットサーバー上に新しい回復フォークが作成されます。

  2. 次の復元操作では、バックアップセットの回復フォーク Id がターゲットサーバーの Id と照合されます。

  3. [置換] オプションと共に使用される復元コマンドは、ターゲットサーバー上の物理名を保持します。

[復元] コマンドの詳細については、「復元 (transact-sql) 」を参照してください。

ヘルプを表示

その他のオプションが必要ですか?

サブスクリプションの特典の参照、トレーニング コースの閲覧、デバイスのセキュリティ保護方法などについて説明します。

コミュニティは、質問をしたり質問の答えを得たり、フィードバックを提供したり、豊富な知識を持つ専門家の意見を聞いたりするのに役立ちます。

この情報は役に立ちましたか?

言語の品質にどの程度満足していますか?
どのような要因がお客様の操作性に影響しましたか?
[送信] を押すと、Microsoft の製品とサービスの改善にフィードバックが使用されます。 IT 管理者はこのデータを収集できます。 プライバシーに関する声明。

フィードバックをいただき、ありがとうございます。

×