DBA Dışı: Bir SQL Server örneğini Yedekleme / Geri Yükleme Yoluyla Ağrısız Bir Şekilde Kopyalama / Taşıma Nasıl Yapılır?


11

Yeni bir sunucumuz var, bu yüzden mevcut SQL Server 2008 örneğini eski db kutusundan kopyalamam gerekiyor.

Normalde .mdf ve günlük dosyalarını kopyalayıp ekleyerek bunu yaparım, ancak 7/24 kullanıldıkları için dbs off hattını alamıyorum, bu yüzden veritabanlarını yedekledim ve yeni makinesi. Ancak bunlardan biri yetim kullanıcılarla ilgili birkaç sorunla karşılaştım . Bu yüzden aradığım şey , her şeyi minimal yaygara / rahatsızlık / baş ağrısı ile hareket ettirmek için başarısız bir süreçtir . Ben kemer altında SQL miktarı adil bir .Net geliştirici ama SQL Server'ın iç işçiliği benim için büyük bir gizem ve trol ağrılı MS belgeleri bulmak.

Lütfen yardım et.


1
Bu önceki soruda bazı fikirler bulabilirsiniz . Ancak önceki cevaplar oldukça açıklayıcıdır. En iyi fikir, bir yansıtma oluşturmak ve sonra kırmak ya da tüm dbs için bir Log nakliye (sadece sihirbazdan yapabilir) ve sadece gerekli günlük yedeklerini geri yüklemek, ancak bir DBA olmadığınızı söylüyorsanız, , muhtemelen yedekleme yöntemi daha iyidir.
Marian

Yanıtlar:


10

Veritabanlarını çevrimdışı yapamıyorsanız, yedekleme / geri yükleme yapmanız gerekir. Aşağıdakileri öneririm:

  1. MDF ve LDF dosyaları için eski kutu ile aynı dosya yapısını kullanarak SQL 2008'i yeni kutuya yükleyin.
  2. Eski kutudaki tüm veritabanlarının yedeklerini alın.
  3. Master'ı eski kutudan SQL'in tek kullanıcı modunda başlatıldığı yeni kutuya geri yükleyin. Ana yöntemi geri yükle
  4. Gelecekteki Diff veya T-log yedeklemelerini uygulayabilmek için her veritabanını eski kutudan NORECOVERY seçeneğiyle yeni kutuya geri yükleyin.
  5. Msdb'yi eski kutudan yeni kutuya geri yükleyin.

Yeni kutuyu eskisi gibi görünecek şekilde yapılandırır ve yapılandırırsanız, en az yaygaraya sahip olursunuz.

Veritabanlarınızın ne kadar büyük olduğu hakkında hiçbir fikrim yok, bu nedenle bu yöntem uzun sürebilir. Yapılacak en kolay şey eski kutuyu kapatmak ve MDF ve LDF dosyalarını kopyalamak ve daha sonra (master'ı geri yükledikten sonra) veritabanlarınızı çevrimiçi hale getirmek için SQL'i yeniden başlatmanız gerekir. Ancak, veritabanlarının çevrimdışı olmasına izin verilmediğinden bunun bir seçenek olmadığını belirttiniz.


3
Yedeklemeleri aldıktan sonra yapılan veri değişikliklerini kopyalamayı unutmayın. Farklı yedekleme veya tlog yedeklemesi alıp yeni sunucuya, yüklendikten sonra ancak geçiş yapmadan önce uygulayabilirsiniz.
Eric Humphrey - lotsahelp

iyi bir nokta, ben de söz unuttum. belki daha sonra kırılabilir bir db ayna yapılandırması içermelidir?
SQLRockstar

1
Birisinin sunucuları taşımak için farklı yollar hakkında kapsamlı bir makalesi olduğunu hayal ediyorum. Ayrıca, girişlerin yeni bir sunucuya aktarılması hakkında bir makale: support.microsoft.com/kb/246133
Eric Humphrey - lotsahelp 24:11

8

7/24 işlemden bahsediyorsunuz, bu yüzden bunu yapmanın en iyi yolu yeni sistemde bir veritabanı aynası oluşturmaktır , o zaman uygulamanızın nasıl yapılandırıldığına bağlı olarak minimum - belki sıfır arasında geçiş yapabilirsiniz - bir istemci kullanarak kesinti yan yönlendirme. Temel adımlar:

  1. Birincil veritabanınızın TAM kurtarma modunda çalıştığından emin olun .
  2. Birincil yedekleyin ve aynaya geri yükleyin WITH NORECOVERY
  3. Her iki sunucuda da "uç noktalar" oluşturun ve bağlantı noktasını ve IP adresini doğru ayarlayarak bağlantıyı (örn. Güvenlik duvarı kuralları) sağlayın örn.

    CREATE ENDPOINT endpoint1
    STATE=STARTED AS TCP(LISTENER_PORT = 5222, LISTENER_IP = 192.168.1.5) 
    FOR DATA_MIRRORING(ROLE = PARTNER, AUTHENTICATION = WINDOWS NEGOTIATE, ENCRYPTION = REQUIRED ALGORITHM RC4)
  4. Yansıtmayı aynaya, birincil işaret edecek şekilde ayarlayın:

    ALTER DATABASE GaiusMirrorDB SET PARTNER = 'TCP://192.168.1.5:5222'
    go
    EXEC sys.sp_dbmmonitoraddmonitoring
    go
  5. Ve birincil olarak, aynayı işaret ediyor (sadece farklı bir veritabanı adı ve IP adresi.

  6. Ardından, zaman geldiğinde, birincil olanı aynaya getirin:

    ALTER DATABASE GaiusDB SET PARTNER FAILOVER
    GO

Not: Bu iki sunucunun aynı ağda olduğunu varsayıyorum, bu nedenle senkron modda çalışmak uygun olacaktır. Bu bir WAN bağlantısı üzerindeyse, zaman uyumsuz modunu kullanın.

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.