Mssql Server DIFF Backup Restore Yapılırken ‘The media set has 8 media families but only 1 are provided. All members must be provided.’ Hatasının Çözümü

Bu makalede mssql serverda Restoring modunda olan veritabanımızın üzerine diff backup yüklerken karşılaşılan sorun üzerine yazılmıştır. Aşağıdaki komut SSMS arayüzünden restore edilen diff backup komutudur.

RESTORE DATABASE [DB_NAME] FILE = N'DB_NAME',  FILE = N'DB_NAME2' FROM  DISK = N'M:\YEDEK2\DIFF\DIFF_1.bak' WITH  FILE = 1,  MOVE N'DB_NAME' TO N'D:\VERI\DB_NAME.mdf',  MOVE N'DB_NAME2' TO N'D:\VERI\DB_NAME.ndf',  NORECOVERY,  NOUNLOAD,  STATS = 10
GO
RESTORE DATABASE [DB_NAME] FILE = N'DB_NAME',  FILE = N'DB_NAME2' FROM  DISK = N'M:\YEDEK2\DIFF\DIFF_2.bak' WITH  FILE = 1,  MOVE N'DB_NAME' TO N'D:\VERI\DB_NAME.mdf',  MOVE N'DB_NAME2' TO N'D:\VERI\DB_NAME.ndf',  NORECOVERY,  NOUNLOAD,  STATS = 10
GO
RESTORE DATABASE [DB_NAME] FILE = N'DB_NAME',  FILE = N'DB_NAME2' FROM  DISK = N'M:\YEDEK2\DIFF\DIFF_3.bak' WITH  FILE = 1,  MOVE N'DB_NAME' TO N'D:\VERI\DB_NAME.mdf',  MOVE N'DB_NAME2' TO N'D:\VERI\DB_NAME.ndf',  NORECOVERY,  NOUNLOAD,  STATS = 10
GO
.
.
Devam ediyor.

Bazen büyük veritabanlarımızı Diff backuplarını restore ederken aşağıdaki hata ile karşılaşırız.

Msg 3132, Level 16, State 1, Line 1
The media set has 8 media families but only 1 are provided. All members must be provided.
Msg 3013, Level 16, State 1, Line 1
RESTORE DATABASE is terminating abnormally.

Bu hata, Diff backup 8 parça (media family) halinde alındığı için, diff backup aynı şekilde restore edilirken 8 parça şeklinde restore edildiğini göstermektedir. Ama restore işleminde diff backup’ın sadece 1 dosyası gösterildiği için SQL Server eksik media family olduğunu söylüyor. Ama diye bilirsiniz ben restore işleminde 8 parça şeklinden gösterdim neden hata verdi. Full backup işlemlerinde herhangi bir sıkıntı yaşanmaz.

Burada restore işlemi yapılarken sql server sadece 1 restore dosyasını görmek istiyor. Yukarıdaki komutta belirtildiği gibi 8 parça şeklinden görülmesini istemiyor.

Backup işleminin 8 parça şeklinde gösterilmesinin sebebi backup almak komutunda @NumberOfFiles belirtmemizden dolayıdır.

EXECUTE [dbo].[DatabaseBackup]
@Databases = 'USER_DATABASES',
@Directory = 'C:\BACKUP\',
@BackupType = 'DIFF',
@Compress = 'Y',
@Verify = 'Y',
@CleanupTime = 240,
@CheckSum = 'Y',
@BufferCount = 50,
@MaxTransferSize = 4194304,
@NumberOfFiles = 8,
@LogToTable = 'Y'

Restore komutumuzu aşağıdaki şekilde düzeltirsek restore işlemimiz başarılı bir şekilde çalışmış olur.

RESTORE DATABASE MyDB
FROM  
    DISK = 'M:\YEDEK2\DIFF\DIFF_1.bak',
    DISK = 'M:\YEDEK2\DIFF\DIFF_2.bak',
    DISK = 'M:\YEDEK2\DIFF\DIFF_3.bak',
    DISK = 'M:\YEDEK2\DIFF\DIFF_4.bak',
    DISK = 'M:\YEDEK2\DIFF\DIFF_5.bak',
    DISK = 'M:\YEDEK2\DIFF\DIFF_6.bak',
    DISK = 'M:\YEDEK2\DIFF\DIFF_7.bak',
    DISK = 'M:\YEDEK2\DIFF\DIFF_8.bak'
WITH RECOVERY,STATS = 10;

Yukarıdaki komutumuzu başarılı bir şekilde çalıştırdık. Diff backup işlemlerinde yapmamız gereken restore işlemlerin tek media set gösterilmesi gerekmektedir. Kısacası diff backup bir tek logical backup setidir, yani SQL Server bunu parçalı değil, tek seferde restore etmek ister.

Bu makalede mssql server diff backup alınırken karşılaşılan sorunu dile getirmiş olduk. Başka makalede görüşmek dileğiyle..

Başarı Allah’tandır. Hud-88

Author: Yunus YÜCEL

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir