Aygıttaki ortam ailesi yanlış oluşturulmuş. SQL Server bu medya ailesini işleyemiyor


31

SQL sunucusunda bir .BAK geri yüklemeye çalışıyorum, ancak aşağıdaki hatayı alıyorum:

Mesaj 3241, Seviye 16, Durum 7, Satır 1 'c: \ glyn \ JA.bak' cihazındaki medya ailesi yanlış oluşturulmuş. SQL Server bu medya ailesini işleyemiyor. Mesaj 3013, Seviye 16, Durum 1, Satır 1

2012, 2008 ve hatta 2005'i kullanarak geri yüklemeyi denedim, ancak hiçbir şey işe yaramaz, aşağıdaki sorguyu kullandım ve Tasks >> Back upancak hiçbir şey işe yaramazsa, işte benim SQL:

RESTORE DATABASE JA FROM DISK='c:\glyn\JA.bak'

Bir önerisi olan var mı? Fırının bozulmuş olabileceğini okudum, projede çalışan DVD'deki başka bir geliştirici tarafından bana gönderildi.


Yanıtlar:


12

Daha yeni veritabanını eski SQL sürümüne geri yüklemeyi deniyorsanız, veritabanını her zaman basitçe eski SQL sürümünde el ile oluşturabilir ve görevi kullanabilirsiniz - komut dosyaları oluşturabilir ve verileri dahil edebilirsiniz.

Dosyaya Kaydet -> Gelişmiş -> Komut Dosyasına Veri Türleri -> Şema ve Veriler .

Ayrıca Sunucu Sürümü için Komut Dosyası olduğundan emin olun .

Daha yeni SQL Server'dan eski sürüme geçmeye çalışıyorsanız, bu yalnızca desteklenen seçenek olabilir.

İlgili: SQL Server 2012 yedeklemesini SQL Server 2008 veritabanına geri yükleme?


Bir hack gibi görünüyor ama sanırım bu durum benim için bu konuda çalıştı.
JPIerson

7

Bunu , yedekleme dosyanızın bozuk olduğunu belirten buldum . Muhtemelen FTP ile ikili mod yerine metin modunda transfer edilebilir.

Ve bu blog bir başkasının aynı sorunu nasıl çözdüğünü listeliyor.


8
"başka birinin de aynı sorunu nasıl çözdüğünü listeliyor". bağlantının bozulmasını önler
jcollum

6

Ben de aynı problemi yaşadım, betiğim yanlış DOSYA türünü belirtiyordu, ben vardı .bakve FILE = 2hangisinin bir olduğunu belirtiyordum .trn.

USE [master]
RESTORE DATABASE [MyNewDB] FROM
DISK = N'D:\MyOldDB.bak'
WITH
    FILE = 1, -- 1 = .bak, 2 = .trn type backup
    MOVE N'MyOldDB' TO N'd:\data\MyOldDB.mdf',
    MOVE N'MyOldDB_log' TO N'd:\data\MyOldDB_log.ldf',
    NOUNLOAD,
    STATS = 5    
GO

RESTORE komutunun bunun için otomatik olarak algıladığından veya ayarlandığından emin değilim ...


1
Hata bu döner, sorun şu ki, veritabanlarını geri yüklemek için GUI kullandığınızda, SQL Managment Studio size ayrıntılı bilgi sağlamaz. T-sql betiğini kullanarak geri yüklemeyi denerseniz, sql sunucusu MOVE seçeneğini kullandığınızı bildirir.
dlopezgonzalez

5

Aşağıdaki betiği kaynak ve hedef SQL Sunucularında çalıştırın, sürümlerin eşleşmesi veya hedefin daha yüksek bir SQL Server sürümüne sahip olması gerekir, aksi halde .bak dosyasını geri yükleyemezsiniz:

SELECT @@Version

1
Sürümlerle ilgili nokta, diğer cevaplarda tekrar edilmiştir.
Andriy M

1
@AndriyM haklısın, ama pratik bir eylem eksikti. Tarih ya da coğrafya hakkında konuşmuyoruz, bazı komut ya da kodlardan söz edilmelidir.
Shadi Namrouti


-4

bozuk dosyayı silin ve yedeklemeyi yeniden çalıştırın


4
Merhaba, Siteye hoşgeldiniz. Bunun neden veya nasıl işe yarayacağına dair biraz daha ayrıntılı bilgi istiyoruz.
Tom V - Team Monica
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.