web-dev-qa-db-ja.com

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

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

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

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

追加情報:

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

宛先DBサーバー:SQL Server 2005

15
Alex N
  1. データベースをバックアップする
  2. 新しい名前または別のサーバー、あるいはその両方でデータベースを復元する

これらの操作は両方とも、Enterprise Manager(SQL2000)またはその代わりのSQL Management Studio(SQL2005 +)、またはTSQLコマンド [〜#〜] backup [〜#〜] および [から実行できます。 〜#〜]復元[〜#〜]

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

17
David Spillett

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

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

おそらくこれが最善の解決策です:

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'
5
Stefano Rosati

mS SQLServer 2012を使用して、最初に3つの基本的な手順を実行する必要があります。ソースDBの構造のみを含む.sqlファイルを生成する=>ソースDBを右クリックしてから、タスク、次にスクリプトの生成=>ウィザードに従って、uを保存できます。 .sqlファイルをローカルで2番目に、.sqlファイルでソースdbを宛先1に置き換えます=>宛先ファイルを右クリックし、新しいクエリとCtrl-Hを押すか、最後に(編集-検索と置換-Quack replce)、データを入力します=>宛先DBを右クリックし、[タスク]、[データのインポート]の順にクリックします=>データソースドロップダウンを「SQLサーバーの.netフレームワークデータプロセッサー」に設定します+データの下の接続文字列テキストフィールドを設定します。 Initial Catalog = db_test; User ID = sa; Password = sqlrpwrd15 =>宛先と同じこと=>転送するテーブルをチェックするか、「source:.....」以外のチェックボックスをチェックして、それらすべてをチェックします

完了です。

0
Mehdi Benkirane