Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, mevcut bir medya kümesine yedekleme eklediğinizde sıkıştırılmış yedeklemelerin davranışı tanıtılır.
Özgün ürün sürümü: SQL Server
Özgün KB numarası: 2297053
Özet
Sıkıştırılmış yedeklemelerin temel kısıtlamalarından biri, sıkıştırılmış ve sıkıştırılmamış yedeklemelerin bir medya kümesinde birlikte bulunamamalarıdır. Bu kısıtlama Yedekleme Sıkıştırması (SQL Server) bölümünde belgelenmiştir.
Bu makale, bu belgeleri tamamlar ve sunucu yapılandırma seçeneği - yedekleme sıkıştırma varsayılanı ile ilgili olarak, sıkıştırılmış yedeklemelerin beklenen davranışı hakkında daha fazla bilgi sağlar.
Belirtiler
Aşağıdaki senaryoyu değerlendirin:
- Var olan bir medya kümesine yedek eklersiniz.
- Sp_configure sistem saklı yordamı seçeneğine
backup compression defaultgüvenirsiniz ve backup deyiminde yan tümcesiniWITH COMPRESSIONbelirtmezsiniz.
Bu senaryoda yedeklemenin başarılı olduğunu ancak beklenenden farklı bir sıkıştırma durumunda olabileceğini fark edeceksiniz.
Daha Fazla Bilgi
Var olan bir medya kümesine yedek eklediğinizde, yedekleme medya kümesinden sıkıştırma ayarını devralır.
Bir medya kümesi oluşturulduğunda, bu medya kümesinin sıkıştırma ayarıyla ilgili bilgiler medya üst bilgi dosyasına yazılır.
Var olan bir medya kümesine alınan yedeklemeler yalnızca bu yedeklemelerin sıkıştırma ayarı medya kümesiyle aynıysa birlikte bulunabilir. Aşağıdaki üç faktör sıkıştırılmış yedeklemelerin davranışını etkiler:
SQL Server'ın yapılandırma seçeneği - Yedekleme sıkıştırma varsayılanı
Yedekleme Kümesi Seçenekleri - SıKıŞTıRMA veya NO_COMPRESSION
Mevcut medya için dikkate alınması gereken önemli bir faktör, medya kümesinin şu anda sıkıştırılmış veya sıkıştırılmamış bir yedekleme içerdiğidir.
Aşağıdaki tabloda, yukarıdaki üç faktöre göre sıkıştırılmış yedeklemelerin davranışı özetlenmiştir:
| Backup deyimi | Yeni medya kümesi | Sıkıştırılmış yedeği olan mevcut bir medya kümesine ekleme | Sıkıştırılmamış yedeklemesi olan mevcut bir medya kümesine ekleme |
|---|---|---|---|
Deyim düzeyi yan tümcesi WITH COMPRESSION |
Yedekleme başarılı olur ve sıkıştırılır | Başarılı | Hata |
Deyim düzeyi yan tümcesi WITH NO_COMPRESSION |
Yedekleme başarılı olur ve sıkıştırılmaz | Hata | Başarılı |
| Deyim düzeyi sıkıştırma yan tümcesi olmadan deyimi yedekleme | Yedekleme başarılıdır ve sıkıştırma, sistem saklı yordamının seçeneğine backup compression default bağlıdır sp_configure |
Yedekleme başarılı olur ve sıkıştırılır | Yedekleme başarılı olur ve sıkıştırılmaz |
Yukarıdaki tablodan görebileceğiniz gibi, sunucuda seçeneğini backup compression default kullandığınızda ve sıkıştırılmış yedeklemeyi mevcut bir medya kümesine eklediğinizde, sıkıştırma ayarlarındaki uyuşmazlık nedeniyle yedekleme hiçbir zaman başarısız olmaz. Çalışır ancak medya kümesinin üst bilgisindeki ayarı devralır. Ancak yan tümcesini WITH COMPRESSION veya WITH NO_COMPRESSION backup deyiminizde belirtirseniz, medya kümesinde depolanan yedekleme ile alınan geçerli yedekleme arasında sıkıştırma ayarı açısından uyuşmazlık olması durumunda bir hata oluşur.
Not
SQL Server Management Studio'da sistem saklı yordamını sp_configure çalıştırarak seçeneğin backup compression default geçerli ayarını bulabilirsiniz. Var olan bir medyaya sıkıştırılmış yedekleme ekiyorsanız, RESTORE HEADERONLY deyimini kullanarak üst bilgi bilgilerini alabilirsiniz. Daha fazla bilgi için Örnekler bölümüne bakın.
Örnekler
Çeşitli durumların davranışını göstermek için bazı betik örnekleri aşağıda verilmiştir. Yedeklemenin bir banda veya diske olması fark etmeksizin davranış aynıdır.
Örnek 1: Seçeneğin
backup compression defaultdeğeri olduğunda0deyimi düzeyi yan tümcesiniWITH COMPRESSIONkullanarak sıkıştırılmamış yedekleme ayarına sahip mevcut bir medya kümesine yedekleme ekleyin:Sıkıştırma değerini denetleyin:
-- The value of the option "backup compression default" is 0 by default sp_configure 'backup compression default'yan tümcesini
WITH FORMATkullanarak yeni bir medya kümesi oluşturun:BACKUP DATABASE test TO DISK = N'E:\testbackup.bak' WITH FORMAT, INIT, NAME = N'testbackup-Full Database Backup', SKIP, NOUNLOAD, STATS = 10 GOYedeklemeyi ve üst bilgiyi denetleyin ve sıkıştırılmış sütun değerinin 0 olduğuna bakın:
RESTORE HEADERONLY FROM DISK = N'E:\testbackup.bak'yan tümcesini
WITH COMPRESSIONkullanarak veritabanınıtestyedekleyin:-- The backup will fail as compressed and non compressed backups can't be mixed within the same media set BACKUP DATABASE test TO DISK = N'E:\testbackup.bak' WITH NAME = N'testbackup-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, COMPRESSION, STATS = 10 GOSQL betiğini yürüttkten sonra 3098 ve 3013 hata iletilerini alabilirsiniz.
Örnek 2: seçeneğinin
backup compression default1değeri olarak ayarlanırken aynı medya kümesine bir yedekleme ekleme:Sunucu düzeyinde açın
backup compression default:-- The option "backup compression default" as this point is set to 1. sp_configure 'backup compression default', 1 GO RECONFIGURE GOYedeklemeyi aynı medya kümesine ekleme:
-- Given that you may expect the backup to be compressed and it will be if it is a new media set. -- However, if you have a backup and append the backup to the same media set, -- the backup works but results in an uncompressed backup. BACKUP DATABASE test TO DISK = N'E:\testbackup.bak' WITH NAME = N'testbackup-Full Database Backup', SKIP, NOREWIND, NOUNLOAD, STATS = 10 GOSQL betiğini yürüttkten sonra aşağıdaki çıkışı görebilirsiniz:
Processed two pages for database `test`, file _test_log_ on file 2. BACKUP DATABASE successfully processed 162 pages in 6.211 seconds (0.203 MB/sec).Yedekleme ve medya kümesi üst bilgisini denetleyin:
-- Then, you will see that though Server default is set to compressed, the backup given that -- it is appended to an existing media set inherits the compression setting of the media set itself. -- You may expect this to have failed with the same error as when specifying the clause `WITH COMPRESSION` -- in the backup statement given that compressed and non compressed backups can't co-exist in the media set. RESTORE HEADERONLY FROM DISK = N'E:\testbackup.bak'
Örnek 3: seçeneğinin
backup compression default0değerini olarak ayarlayın ve sıkıştırılmış yedekleme ayarına sahip mevcut bir medya kümesine bir yedekleme ekler:yan tümcesini
WITH FORMATkullanarak yeni bir medya kümesi oluşturun:-- If you create a new media set by using the FORMAT option, the current compression setting is inherited BACKUP DATABASE test TO DISK = N'E:\testbackup.bak' WITH FORMAT, INIT, NAME = N'testbackup-Full Database Backup', SKIP, NOUNLOAD, STATS = 10 GOYedekleme ve medya kümesi üst bilgisini denetleyin:
RESTORE HEADERONLY FROM DISK = N'E:\testbackup.bak'seçeneğini
backup compression defaultolarak yeniden0ayarlayın:sp_configure 'backup compression default', 0 GO RECONFIGURE GOyan tümcesini
WITH INITkullanarak veritabanınıtestaynı medya kümesine yedekleyin:-- If you use the clause "WITH INIT", the backup sets are overwritten but the media header is not BACKUP DATABASE test TO DISK = N'E:\testbackup.bak' WITH INIT, NAME = N'testbackup-Full Database Backup', SKIP, NOUNLOAD, STATS = 10 GOYedekleme ve medya kümesi üst bilgisini denetleyin:
-- Note that even though we changed backup compression default to 0, the old media header is preserved which has it as 1, and the backup goes as compressed RESTORE HEADERONLY FROM DISK = N'E:\testbackup.bak'
Örnek 4: Sıkıştırılmış yedeklemeler sıkıştırılmamış bir ayara sahip NT yedeklemeleriyle birlikte bulunamaz:
NT yedeklemesi alın ve yedekleme üst bilgisini doğrulayın:
-- You can see that it is not a SQL backup and the value of compressed is 0 RESTORE HEADERONLY FROM TAPE = N'\\.\Tape0've
WITH COMPRESSIONyan tümcelerini kullanarak veritabanınıtestaynı medya kümesine yedekleyinWITH INIT:BACKUP DATABASE test TO TAPE = N'\\.\Tape0' WITH INIT, COMPRESSION, NAME = N'testbackup-Full Database Backup', SKIP, NOUNLOAD, STATS = 10 GOSQL betiğini yürüttkten sonra 3098 ve 3013 hata iletilerini alabilirsiniz.
Örnek 5: Sıkıştırılmamış yedeklemeler ve sıkıştırılmamış ayara sahip NT yedeklemeleri birlikte bulunabilir:
Veritabanını
testbaşlatmadan ve sıkıştırma olmadan aynı medya kümesine yedekleyin:--The backups ( NT and non-compressed backup) can co-exist BACKUP DATABASE test TO TAPE = N'\\.\Tape0' WITH NAME = N'testbackup-Full Database Backup', SKIP, NOUNLOAD, STATS = 10 GOYedekleme üst bilgisini doğrulayın ve SQL ve NT yedeklemesine bakın:
RESTORE HEADERONLY FROM TAPE = N'\\.\Tape0'NT yedeklemesi olan bir bantta sıkıştırılmış yedeklemeye zorlama:
BACKUP DATABASE test TO TAPE = N'\\.\Tape0' WITH COMPRESSION, NAME = N'testbackup1 Full Database Backup', SKIP, NOUNLOAD, STATS = 10 GOSQL betiğini yürüttkten sonra 3098 ve 3013 hata iletilerini alabilirsiniz.
Hata iletileri 3098 ve 3013
Hata iletisi 3098
Msg 3098, Level 16, State 2, Line 1 The backup cannot be performed because 'COMPRESSION' was requested after the media was formatted with an incompatible structure. To append to this media set, either omit 'COMPRESSION' or specify 'NO_COMPRESSION'. Alternatively, you can create a new media set by using WITH FORMAT in your BACKUP statement. If you use WITH FORMAT on an existing media set, all its backup sets will be overwritten.Hata iletisi 3013
Msg 3013, Level 16, State 1, Line 1 BACKUP DATABASE is terminating abnormally.