同じサーバーまたは別のサーバーでMSSQLデータベースを複製する方法は?


15

私は次を達成しようとしています:

  1. 元のデータベースのスナップショットを作成し、別のサーバーで複製を作成して正確に作成しますか?
  2. 元のデータベースのスナップショットを作成し、同じサーバー上に異なるDB名で複製を作成します

ただし、MSSQLの使用経験は非常に限られているため、できません。助言がありますか?

追加情報:

オリジンDBサーバー:SQL Server 2000

宛先DBサーバー:SQL Server 2005

回答:


17
  1. データベースをバックアップする
  2. 新しい名前で、および/または別のサーバーでデータベースを復元する

これらの両方の操作は、Enterprise Manager(SQL2000)またはその代替のSQL Management Studio(SQL2005 +)、またはTSQLコマンドBACKUPおよびRESTOREから実行できます。

注:ほとんどの場合問題なくSQL2005でSQL2000からバックアップされたデータベースを復元できますが、その逆はできません。


1
デビッドありがとう。ただし、別のサーバーに新しい名前でDBを復元するにはどうすればよいですか?
アレックスN

データベースをバックアップすると、バックアップファイルが作成されます(または既存のファイルが拡張されます)。このファイルを他のサーバーに転送してから、Management Studio(または他の方法で発行されたRESTOREコマンド)を使用して、そのファイルからデータベースを復元します。復元プロセスでは、復元されたデータベースの名前を指定することができます。
デビッドスピレット

7

上記の手順を実行中に私がこれにつまずいたときにこれを追加します。
SQL Server 2008 R2では、少なくともサーバーのローカルバックアップを取得する手順をスキップできます。

  1. データベースを右クリック
  2. [データベースの復元]をクリックします。
  3. [データベースから]オプションをコピーするデータベースに設定します
  4. [データベースへ]オプションを新しい名前に設定します
  5. OKをクリック

5

おそらくこれが最良の解決策です。

1)ソースDBサーバー上 -ローカルファイルへのバックアップの作成

DECLARE @fileName nvarchar(400);
DECLARE @DB_Name nvarchar(50);

SET @DB_Name = 'NameOfSourceDatabase'
SET @fileName = 'c:\Test\original.bak'

BACKUP DATABASE @DB_Name TO DISK = @fileName

2)ソースファイルをターゲットサーバーにコピーします。
両方のサーバーが同じマシン上にある場合、そのファイルのコピーを作成できます。

EXEC master.dbo.xp_cmdshell 'COPY c:\Test\original.bak   c:\Test\clone.bak'

3)宛先DBサーバー:バックアップファイルからデータベースを復元します

RESTORE DATABASE CloneDB

FROM DISK='c:\Test\clone.bak'

0

MS SQLServer 2012を使用する場合、最初に3つの基本手順を実行し、ソースDBの構造のみを含む.sqlファイルを生成する必要があります。ソースDBを右クリックし、タスク、スクリプトの生成=>ウィザードに従い、保存できます。 .sqlファイルをローカルで2番目に、.sqlファイルでソースdbを宛先1に置き換えます=>宛先ファイルを右クリックして、New QueryとCtrl-Hを押すか、最後に(編集-検索と置換-Quack replce)、データを入力します=>目的のDBを右クリックし、[タスク]、[データのインポート]の順に選択します。 Initial Catalog = db_test; User ID = sa; Password = sqlrpwrd15 =>宛先と同じこと=>転送するテーブルをチェックするか、「source:.....」以外のチェックボックスをオンにしてすべてをチェックします

完了です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.