Aynı veya başka bir sunucuda MSSQL veritabanı nasıl çoğaltılır?


15

Aşağıdakileri gerçekleştirmeye çalışıyorum:

  1. Özgün veritabanının anlık görüntüsünü alın, başka bir sunucuda bir kopya oluşturun ve kesin olarak oluşturun?
  2. Özgün veritabanının anlık görüntüsünü alın, aynı sunucuda farklı bir DB adı altında bir kopya oluşturun.

Ancak, MSSQL ile sınırlı deneyim nedeniyle olamaz. Herhangi bir öneri?

İlave bilgi:

Kaynak DB sunucusu: SQL Server 2000

Hedef DB sunucusu: SQL Server 2005

Yanıtlar:


17
  1. veritabanını yedekle
  2. veritabanını yeni bir adla ve / veya başka bir sunucuda geri yükleme

Her iki işlem de Enterprise Manager'dan (SQL2000) veya onun yerine geçen SQL Management Studio'dan (SQL2005 +) veya TSQL komutları BACKUP ve RESTORE tarafından gerçekleştirilebilir .

Not: SQL2005'te SQL2000'den yedeklenmiş bir veritabanını çoğu durumda sorun değil, tersi şekilde geri yükleyebilirsiniz.


1
Teşekkürler David. Yine de başka bir sunucuda yeni bir ad altında DB nasıl geri yüklerim?
Alex N

Veritabanını yedeklemek bir yedekleme dosyası oluşturur (veya varolan bir dosyayı genişletir). Bu dosyayı diğer sunucuya aktarın ve daha sonra bu dosyadan bir veritabanını geri yüklemek için Management Studio'yu (veya başka bir yolla verilen RESTORE komutunu) kullanın. Geri yükleme işlemi, geri yüklendikten sonra veritabanı için bir ad belirleme fırsatı sunar.
David Spillett

7

Yukarıdaki adımları uygularken bunu tökezlediğim için bunu ekliyorum.
SQL Server 2008 R2'de en azından sunucuya yerel bir yedek almak için bir adımı atlayabilirsiniz.

  1. Sağ Tıklama Veritabanları
  2. Veritabanını Geri Yükle'yi tıklayın.
  3. Veritabanından seçeneğini kopyaladığınız veritabanına ayarlayın
  4. Veritabanına seçeneğini yeni ada ayarlayın
  5. Tamam'ı tıklayın

5

Muhtemelen bu en iyi çözümdür:

1) Kaynak DB Sunucusunda - Yerel dosyaya yedekleme oluşturun

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) Kaynak Dosyayı Hedef Sunucuya kopyalayın.
Her iki sunucu da aynı makinedeyse, o dosyanın bir kopyasını oluşturmak isteyebilirsiniz:

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

3) Hedef DB Sunucusunda : Veritabanını yedekleme dosyasından geri yükleyin

RESTORE DATABASE CloneDB

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

0

MS SQLServer 2012 kullanarak, önce 3 temel adım gerçekleştirmeniz, sadece kaynak DB => yapısını içeren .sql dosyasını oluşturmanız ve kaynak DB'ye sağ tıklamanız ve ardından Görevler sonra Komut Dosyaları Oluştur => sihirbazı takip etmeniz ve u Yerel olarak .sql dosyası İkinci olarak, .sql dosyasında kaynak db'yi hedef bir => hedef dosyaya sağ tıklayın ve Yeni Sorgu ve Ctrl-H tuşlarına basın veya (düzenle - bul ve değiştir - Quack replce) son olarak, verilerle doldurun => algılama DB'sini sağ tıklatın, ardından Görevler'i ve ardından Verileri İçe Aktar => Veri kaynağı bırakma dow'u "sql sunucusu için .net framework data procider" olarak ayarlandı + DATA ex altında bağlantı dizesi metin alanını ayarla ex: Data Source = Mehdi \ SQLEXPRESS; Başlangıç ​​Kataloğu = db_test; Kullanıcı Kimliği = sa; Parola = sqlrpwrd15 => Hedefle aynı şey =>transfer etmek istediğiniz tabloyu işaretleyin veya tümünü işaretlemek için "kaynak: ....."

bitirdiniz.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.