27 Mayıs 2009 Çarşamba

"System.Data.SqlClient.SqlError: The media set has 2 media families but only 1 are provided. All members must be provided. (Microsoft.SqlServer.Smo)"

HATA MESAJI:
"System.Data.SqlClient.SqlError: The media set has 2 media families but only 1 are provided. All members must be provided. (Microsoft.SqlServer.Smo)"

AÇIKLAMA:
Bir yedek dosyasını açmak (restore) istediğinizde böyle bir hata mesajıyla karşılaşabilirsiniz.

Bu hatayı almanızın sebebi, ilgili veritabanının yedeğini birden fazla dosyaya almanız, fakat yedeği açarken bu yedek dosyalarından sadece bir tanesini kullanmanızdır.

Örnek:
BACKUP DATABASE [veritabanım] TO DISK = N'C:\Test\Yedek1.bak', DISK = N'C:\Test\Yedek2.bak' WITH NOFORMAT, NOINIT, NAME = N'veritabanım-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10 GO

ÇÖZÜM:
Eğer yedek dosyasını açarken, yedekleme yaparken kullandığınız tüm yedek dosyalarını kullanırsanız böyle bir hata ile karşılaşmazsınız.

Örnek (İlk örneğe göre):
RESTORE DATABASE [veritabanım] FROM DISK = N'C:\Test\Yedek1.bak', DISK = N'C:\Test\Yedek2.bak' WITH FILE = 1, MOVE N'veritabanım' TO N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\veritabanım.mdf', MOVE N'veritabanım_log' TO N'C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\veritabanım_1.ldf', NOUNLOAD, STATS = 10 GO

Not: Eğer bu açma işlemini SSMS arayüzünü kullanarak yapacaksanız, o zaman "Restore Database" penceresindeki "From device:" bölümünde şöyle bir metin görünmeli: "C:\Test\Yedek1.bak,C:\Test\Yedek2.bak". Yani tek bir tane yedek değil, yedeklerin tümü.

1 yorum:

Adsız dedi ki...

tesekkurler, isime cok yaradi verdiginiz bilgi.