SQL Server yedekleme ve geri yükleme işlemlerinin sorunlarını giderme

Bu makalede, Microsoft SQL Server yedekleme ve geri yükleme işlemleri sırasında karşılaşabileceğiniz yaygın sorunların çözümleri sağlanır ve bu işlemler hakkında daha fazla bilgi için başvurular sağlanır.

Özgün ürün sürümü: SQL Server
Özgün KB numarası: 224071

Yedekleme ve geri yükleme işlemleri uzun sürüyor

Yedekleme ve geri yükleme işlemleri yoğun G/Ç kullanır. Yedekleme/Geri yükleme aktarım hızı, temel alınan G/Ç alt sisteminin G/Ç birimini işlemek için ne kadar iyi iyileştirildiğinden bağlıdır. Yedekleme işlemlerinin durdurulduğunu veya tamamlanmasının çok uzun sürdüğünü düşünüyorsanız, tamamlanma süresini tahmin etmek veya yedekleme veya geri yükleme işleminin ilerleme durumunu izlemek için aşağıdaki yöntemlerden birini veya daha fazlasını kullanabilirsiniz:

  • SQL Server hata günlüğü, önceki yedekleme ve geri yükleme işlemleri hakkında bilgi içerir. Veritabanını geçerli durumunda yedeklemek ve geri yüklemek için gereken süreyi tahmin etmek için bu ayrıntıları kullanabilirsiniz. Hata günlüğünden örnek bir çıkış aşağıda verilmiştir:

    RESTORE DATABASE successfully processed 315 pages in 0.372 seconds (6.604 MB/sec)
    
  • SQL Server 2016 ve sonraki sürümlerde, yedekleme ve geri yükleme işlemlerinin ilerleme durumunu izlemek için XEvent backup_restore_progress_trace kullanabilirsiniz.

  • percent_complete Sys.dm_exec_requests sütununu kullanarak uçuş içi yedekleme ve geri yükleme işlemlerinin ilerleme durumunu izleyebilirsiniz.

  • ve Backup/Restore throughput/sec performans izleyici sayaçlarını kullanarak Device throughput Bytes/sec yedekleme ve geri yükleme aktarım hızı bilgilerini ölçebilirsiniz. Daha fazla bilgi için bkz. SQL Server, Yedekleme Cihazı Nesnesi.

  • Yedekleme sürelerinin tahminini almak için estimate_backup_restore betiğini kullanın.

  • Nasıl Çalışır? konusuna bakın: Geri Yükleme/Yedekleme Ne Yapıyor?. Bu blog gönderisi, yedekleme veya geri yükleme işlemlerinin geçerli aşaması hakkında içgörü sağlar.

Denetlenecek şeyler

  1. Aşağıdaki tabloda listelenen bilinen sorunlardan herhangi birini yaşayıp yaşamadığınızı denetleyin. Değişiklikleri uygulamalı veya ilgili makalelerde açıklanan düzeltmeleri ve en iyi yöntemleri uygulamanız gerekip gerekmediğini göz önünde bulundurun.

    Bilgi Bankası veya Çevrimiçi Kitaplar bağlantısı Açıklama ve önerilen eylemler
    SQL Server'da Yedekleme ve Geri Yükleme Performansını İyi duruma getirme Çevrimiçi Kitaplar konusu, Yedekleme/Geri Yükleme işlemlerinin performansını geliştirmek için kullanabileceğiniz çeşitli en iyi yöntemleri kapsar. Örneğin, veri dosyalarının SE_MANAGE_VOLUME_NAME anında başlatılmasını sağlamak için SQL Server çalıştıran Windows hesabına özel ayrıcalık atayabilirsiniz. Bu, önemli performans kazançları sağlayabilir.
    2920151 R2 tabanlı yük devretme kümeleri için önerilen düzeltmeler ve güncelleştirmeler Windows Server 2012

    2822241 Windows 8 ve Windows Server 2012 güncelleştirme paketi: Nisan 2013
    Geçerli sistem toplamaları, SQL Server gibi programların performansını düşürebilecek sistem düzeyinde bilinen sorunların düzeltmelerini içerebilir. Bu güncelleştirmeleri yüklemek bu tür sorunların önlenmesine yardımcı olabilir.
    2878182 DÜZELTME: Bir uygulamadaki kullanıcı modu işlemleri, Windows Server 2012 çalıştıran sunucularda yanıt vermiyor

    Yedekleme işlemleri yoğun G/Ç kullanır ve bu hatadan etkilenebilir. Bu sorunları önlemeye yardımcı olmak için bu düzeltmeyi uygulayın.
    Virüsten koruma yazılımını SQL Server ile çalışacak şekilde yapılandırma Virüsten koruma yazılımı, .bak dosyalarında kilitler tutabilir. Bu, yedekleme ve geri yükleme işlemlerinin performansını etkileyebilir. Yedekleme dosyalarını virüs taramalarının dışında tutmak için bu makaledeki yönergeleri izleyin.
    2820470 Windows'ta artık mevcut olmayan bir paylaşılan klasöre erişmeye çalıştığınızda gecikmeli hata iletisi Windows 2012 ve sonraki sürümlerde artık mevcut olmayan bir paylaşılan klasöre erişmeye çalıştığınızda oluşan bir sorunu açıklar.
    967351 NTFS birimindeki yoğun parçalanmış bir dosya belirli bir boyutun ötesine geçmeyebilir BIR NTFS dosya sistemi yoğun bir şekilde parçalandığında oluşan bir sorunu açıklar.
    304101 Yedekleme programı, büyük bir sistem birimini yedeklediğinizde başarısız oluyor
    2455009 DÜZELTME: SQL Server 2005, SQL Server 2008 veya SQL Server 2008 R2'de işlem günlüğünün içinde çok sayıda VLF varsa veritabanını kurtardığınızda yavaş performans Birçok sanal günlük dosyasının varlığı, veritabanını geri yüklemek için gereken süreyi etkileyebilir. Bu durum özellikle geri yükleme işleminin kurtarma aşamasında geçerlidir. Birçok VLI'nin varlığından kaynaklanabilecek diğer olası sorunlar hakkında bilgi için bkz. Veritabanı işlemlerinin tamamlanması uzun sürüyor veya işlem günlüğünde çok sayıda sanal günlük dosyası olduğunda hatalar tetikliyorlar.
    Ağ konumuna yedekleme veya geri yükleme işlemi yavaş Benzer boyuttaki bir dosyayı SQL Server çalıştıran sunucudan ağ konumuna kopyalamaya çalışarak sorunu ağa yalıtın. Performansı doğrulayın.
  2. Sorunun nedeni hakkında daha fazla işaretçi için SQL Server hata günlüğünde ve Windows olay günlüğünde hata iletilerini denetleyin.

  3. Aynı anda yedekleme yapmak için üçüncü taraf yazılım veya veritabanı bakım planları kullanıyorsanız, yedeklemelerin yazıldığı sürücüdeki çekişmeyi en aza indirmek için zamanlamaları değiştirmeniz gerekip gerekmediğini göz önünde bulundurun.

  4. Donanımınızın üretici yazılımı güncelleştirmelerini denetlemek için Windows yöneticinizle birlikte çalışın.

Farklı SQL Server sürümleri arasında veritabanı geri yüklemesini etkileyen sorunlar

SQL Server yedekleme, yedeklemenin oluşturulduğu sürümden daha önceki bir SQL Server sürümüne geri yüklenemez. Örneğin, SQL Server 2019 örneğinde alınan bir yedeklemeyi SQL Server 2017 örneğine geri yükleyemezsiniz. Aksi takdirde aşağıdaki hata iletisi görüntülenir:

Hata 3169: Veritabanı %ls sürümünü çalıştıran bir sunucuda yedeklendi. Bu sürüm, %ls sürümünü çalıştıran bu sunucuyla uyumsuz. Veritabanını yedeklemeyi destekleyen bir sunucuya geri yükleyin veya bu sunucuyla uyumlu bir yedekleme kullanın.

SQL Server'ın sonraki bir sürümünde barındırılan bir veritabanını SQL Server önceki bir sürümüne kopyalamak için aşağıdaki yöntemi kullanın.

Not

Aşağıdaki yordamda, SQL_A (daha yüksek sürüm) ve SQL_B (düşük sürüm) adlı iki SQL Server örneğinin olduğu varsayılır.

  1. hem SQL_A hem de SQL_B SQL Server Management Studio (SSMS) uygulamasının en son sürümünü indirin ve yükleyin.
  2. SQL_A şu adımları izleyin:
    1. Veritabanı>Görevleriniz>Betik Oluştur'a sağ tıklayın < ve veritabanının tamamını ve tüm veritabanı nesnelerini betik olarak yazma seçeneğini belirleyin.
    2. Betik Seçeneklerini Ayarla ekranında Gelişmiş'i seçin ve ardından SQL Server Sürümü için Genel>Betik altında SQL_B sürümünü seçin. Ayrıca, oluşturulan betikleri kaydetmek için size en uygun seçeneği belirleyin. Ardından sihirbaza devam edin.
    3. Farklı tablolardaki verileri kopyalamak için toplu kopyalama programı yardımcı programını (bcp) kullanın.
  3. SQL_B şu adımları izleyin:
    1. Veritabanı şeması oluşturmak için SQL_A sunucusunda oluşturulan betikleri kullanın.
    2. Tabloların her birinde yabancı anahtar kısıtlamalarını ve tetikleyicilerini devre dışı bırakın. Tabloda herhangi bir kimlik sütunu varsa kimlik eklemeyi etkinleştirin.
    3. Önceki adımda dışarı aktardığınız verileri karşılık gelen tablolara aktarmak için bcp kullanın.
    4. Veri içeri aktarma işlemi tamamlandıktan sonra yabancı anahtar kısıtlamalarını ve tetikleyicilerini etkinleştirin ve c adımında etkilenen tabloların her biri için kimlik eklemeyi devre dışı bırakın.

Bu yordam genellikle küçük ve orta ölçekli veritabanları için iyi çalışır. Daha büyük veritabanları için SSMS ve diğer araçlarda Yetersiz Bellek sorunları oluşabilir. SQL Server Integration Services (SSIS), çoğaltma veya diğer seçenekleri kullanarak veritabanının bir kopyasını daha sonraki bir sürümden önceki bir SQL Server sürümüne oluşturmanız gerekir.

Veritabanınız için betik oluşturma hakkında daha fazla bilgi için bkz. Betik Oluştur seçeneğini kullanarak veritabanı betiği oluşturma.

AlwaysOn ortamlarında yedekleme işi sorunları

AlwaysOn ortamlarında yedekleme işlerini veya bakım planlarını etkileyen sorunlarla karşılaşırsanız aşağıdakileri not edin:

  • Varsayılan olarak, otomatik yedekleme tercihi İkincili Tercih Et olarak ayarlanır. Bu, birincil çoğaltmanın tek çevrimiçi çoğaltma olması dışında yedeklerin ikincil çoğaltmada gerçekleşmesi gerektiğini belirtir. Bu ayarı kullanarak veritabanınızın değişiklik yedeklerini alamazsınız. Bu ayarı değiştirmek için geçerli birincil çoğaltmanızda SSMS'yi kullanın ve kullanılabilirlik grubunuzun özellikleri'nin altındaki Yedekleme Tercihleri sayfasına gidin.
  • Veritabanlarınızın yedeklerini oluşturmak için bir bakım planı veya zamanlanmış işler kullanıyorsanız, kullanılabilirlik grubu için bir kullanılabilirlik çoğaltması barındıran her sunucu örneğinde her kullanılabilirlik veritabanı için işleri oluşturduğunuzdan emin olun.

AlwaysOn ortamındaki yedeklemeler hakkında daha fazla bilgi için aşağıdaki konulara bakın:

Dosya sorununu belirten hata iletileri alırsanız, bu bozuk bir yedekleme dosyasının belirtisidir. Aşağıda, bir yedekleme kümesi bozulursa alabileceğiniz bazı hata örnekleri verilmiştir:

  • 3241: '%ls' cihazındaki medya ailesi yanlış biçimlendirilmiş. SQL Server bu medya ailesini işleyemiyor.

  • 3242: '%ls' cihazındaki dosya geçerli bir Microsoft Bant Biçimi yedekleme kümesi değil.

  • 3243: '%ls' cihazındaki medya ailesi, %d.%d Microsoft Bant Biçimi sürümü kullanılarak oluşturuldu. SQL Server %d.%d sürümünü destekliyor.

Not

Yedeklemelerinizi denetlemek için Üst Bilgiyi Geri Yükle deyimini kullanabilirsiniz.

Bu sorunlar, temel alınan donanımı (sabit diskler, ağ depolama vb.) etkileyen veya bir virüs veya kötü amaçlı yazılımla ilgili sorunlar nedeniyle oluşabilir. Bildirilen hatalar için Windows Sistemi olay günlüklerini ve donanım günlüklerini gözden geçirin ve uygun eylemi gerçekleştirin (örneğin, üretici yazılımını yükseltin veya ağ sorunlarını düzeltin).

Bu hataları önlemek için bozuk bir veritabanını yedeklemekten kaçınmak için yedekleme çalıştırırken SAĞLAMA TOPLAMıNı Yedekle seçeneğini etkinleştirin. Daha fazla bilgi için bkz. Yedekleme ve Geri Yükleme Sırasında Olası Medya Hataları (SQL Server).

Yedekleme araçlarını kullanarak yedeklemeleri çalıştırdığınızda sağlama toplamını etkinleştirmek için izleme bayrağı 3023'i de etkinleştirebilirsiniz. Daha fazla bilgi için bkz. Yedekleme yardımcı programları seçeneği kullanıma sunmazsa CHECKSUM seçeneğini etkinleştirme.

Bu sorunları çözmek için başka bir kullanılabilir yedekleme dosyası bulmanız veya yeni bir yedekleme kümesi oluşturmanız gerekir. Microsoft, bozuk bir yedekleme kümesinden veri almaya yardımcı olabilecek herhangi bir çözüm sunmaz.

Not

Yedekleme dosyası bir sunucuya başarıyla geri yüklenirse ancak başka bir sunucuda geri yüklenmiyorsa, dosyayı sunucular arasında kopyalamak için farklı yöntemler deneyin. Örneğin, normal kopyalama işlemi yerine robocopy'yi deneyin.

İzin sorunları nedeniyle yedeklemeler başarısız olur

Veritabanı yedekleme işlemlerini çalıştırmaya çalıştığınızda aşağıdaki hatalardan biri oluşur.

  • Senaryo 1: SQL Server Management Studio'den bir yedekleme çalıştırdığınızda yedekleme başarısız olur ve aşağıdaki hata iletisini döndürür:

    Sunucu <Sunucusu adı> için yedekleme başarısız oldu. (Microsoft.SqlServer.SmoExtended)
    System.Data.SqlClient.SqlError: Yedekleme cihazı '<cihaz adı>' açılamıyor. İşletim sistemi hatası 5(Erişim reddedildi.). (Microsoft.SqlServer.Smo)

  • Senaryo 2: Zamanlanmış yedeklemeler başarısız olur ve başarısız işin iş geçmişinde günlüğe kaydedilen ve aşağıdakine benzer bir hata iletisi oluşturur:

    Executed as user: <Owner of the job>. ....2 for 64-bit  Copyright (C) 2019 Microsoft. All rights reserved.    
    Started:  5:49:14 PM  Progress: 2021-08-16 17:49:15.47    
    Source: {GUID}      Executing query "DECLARE @Guid UNIQUEIDENTIFIER      EXECUTE msdb..sp...".: 100% complete  End Progress  
    Error: 2021-08-16 17:49:15.74     
    Code: 0xC002F210     
    Source: Back Up Database (Full) Execute SQL Task     
    Description: Executing the query "EXECUTE master.dbo.xp_create_subdir N'C:\backups\D..." failed with the following error: "xp_create_subdir() returned error 5, 'Access is denied.'". 
    Possible failure reasons: Problems with the query, "ResultSet" property not set correctly, parameters not set correctly, or connection not established correctly.
    

SQL Server hizmet hesabının yedeklemelerin yazıldığı klasörde Okuma ve Yazma izinleri yoksa bu senaryolardan biri oluşabilir. Yedekleme deyimleri bir iş adımının parçası olarak veya SQL Server Management Studio el ile çalıştırılabilir. Her iki durumda da her zaman SQL Server Hizmeti başlangıç hesabı bağlamında çalışır. Bu nedenle, hizmet hesabının gerekli ayrıcalıkları yoksa, daha önce not edilen hata iletilerini alırsınız.

Daha fazla bilgi için bkz . Yedekleme Cihazları.

Not

bir klasördeki SQL Hizmeti hesabının geçerli izinlerini denetlemek için ilgili klasörün özelliklerindeki Güvenlik sekmesine gidebilir, Gelişmiş düğmesini seçebilir ve ardından Etkin Erişim sekmesini kullanabilirsiniz.

Üçüncü taraf yedekleme uygulamaları kullanan yedekleme veya geri yükleme işlemleri başarısız olur

SQL Server bir Sanal Yedekleme Cihazı Arabirimi (VDI) aracı sağlar. Bu API, bağımsız yazılım satıcılarının yedekleme ve geri yükleme işlemleri için destek sağlamak üzere SQL Server ürünleriyle tümleştirmesine olanak tanır. Bu API'ler maksimum güvenilirlik ve performans sağlamak ve SQL Server yedekleme ve geri yükleme işlevlerinin tamamını desteklemek için tasarlanmıştır. Bu, tüm anlık görüntü ve sık erişimli yedekleme özelliklerini içerir.

Genel sorun giderme adımları

Diğer kaynaklar

Nasıl Çalışır: Aynı anda kaç veritabanı yedeklenebilir?

Çeşitli sorunlar

Belirti/senaryo Düzeltme eylemleri veya ek bilgiler
Veritabanlarında değişiklik izleme etkinleştirilirse ve aşağıdakine benzer hatalar döndürürse yedeklemeler başarısız olabilir:

"Hata: 3999, Önem Derecesi: 17, Durum: 1.

<Zaman Damgası> spid <> 2601 hatası nedeniyle dbid 8'de işleme tablosu diske boşaltılamadı. Daha fazla bilgi için hata günlüğünü denetleyin."


Aşağıdaki Microsoft Bilgi Bankası makalelerine bakın:
Şifrelenmiş veritabanlarının yedeklerini geri yükleme sorunları TDE Korumalı Veritabanını Başka bir SQL Server Taşıma
Enterprise sürümünden CRM yedeklemesini geri yükleme denemesi Standart sürümde başarısız oluyor Microsoft Dynamics CRM veritabanını geri yüklerken "Veritabanı bu SQL Server sürümünde başlatılamıyor" hatası 2567984

SQL Server yedekleme ve geri yükleme işlemleri hakkında SSS

Yedekleme işleminin durumunu nasıl denetleyebilirim?

Yedekleme sürelerinin tahminini almak için estimate_backup_restore betiğini kullanın.

SQL Server yedeklemenin ortasında yük devrediyorsa ne yapmalıyım?

Kesintiye Uğramış Geri Yükleme İşlemi (Transact-SQL) başına geri yükleme veya yedekleme işlemini yeniden başlatın.

Veritabanı yedeklerini eski program sürümlerinden daha yeni sürümlerde geri yükleyebilir miyim(veya tam tersi) ?

SQL Server yedekleme, yedeklemeyi oluşturan sürümden sonraki bir SQL Server sürümü kullanılarak geri yüklenemez. Daha fazla bilgi için bkz . Uyumluluk Desteği.

SQL Server veritabanı yedeklemelerimi doğrulama Nasıl yaparım??

RESTORE Deyimleri - VERIFYONLY (Transact-SQL) bölümünde belgelenen yordamlara bakın.

SQL Server'da veritabanlarının yedekleme geçmişini nasıl alabilirim?

Bkz. SQL Server veritabanlarının yedekleme geçmişini alma.

64 bit sunucularda 32 bit yedeklemeleri geri yükleyebilir miyim(veya tersi) ?

Evet. Disk üzerindeki SQL Server depolama biçimi, 64 bit ve 32 bit ortamlarda aynıdır. Bu nedenle, yedekleme ve geri yükleme işlemleri 64 bit ve 32 bit ortamlarda çalışır.

Genel sorun giderme ipuçları

  • Yedeklemelerin yazıldığı klasördeki SQL Server Hizmeti hesabına Okuma ve Yazma izinleri sağladığından emin olun. Daha fazla bilgi için bkz. Yedekleme izinleri.
  • Yedeklerin yazıldığı klasörün veritabanı yedeklemelerinizi karşılamak için yeterli alana sahip olduğundan emin olun. Saklı yordamı kullanarak sp_spaceused belirli bir veritabanının yedekleme boyutunun kabaca tahminini alabilirsiniz.
  • İşlerin ve bakım planlarının yapılandırmasıyla ilgili bilinen sorunlarla karşılaşmadığınızdan emin olmak için her zaman SSMS'nin en son sürümünü kullanın.
  • Yedeklemelerin başarıyla oluşturulduğundan emin olmak için işlerinizin test çalıştırmasını yapın. Yedeklemelerinizi doğrulamak için her zaman mantık ekleyin.
  • Sistem veritabanlarını bir sunucudan diğerine taşımayı planlıyorsanız Sistem Veritabanlarını Taşıma'yı gözden geçirin.
  • Aralıklı yedekleme hataları fark ederseniz, SQL Server sürümünüz için en son güncelleştirmede zaten düzeltmiş bir sorunla karşılaşıp karşılaşmadığınızı denetleyin. Daha fazla bilgi için bkz. SQL Server Sürümler ve güncelleştirmeler.
  • SQL Express sürümlerine yönelik yedeklemeleri zamanlamak ve otomatikleştirmek için bkz. SQL Server Express'da SQL Server veritabanlarının yedeklemelerini zamanlama ve otomatikleştirme.

SQL Server yedekleme ve geri yükleme işlemleri için başvuru konuları

  • Yedekleme ve geri yükleme işlemleri hakkında daha fazla bilgi için Books Online'da aşağıdaki konulara bakın:

    "SQL Server Veritabanlarını Yedekleme ve Geri Yükleme": Bu konu, SQL Server veritabanları için yedekleme ve geri yükleme işlemleri kavramlarını kapsar, ek konulara bağlantılar sağlar ve çeşitli yedeklemeleri veya geri yükleme görevlerini (yedeklemeleri doğrulama ve T-SQL veya SSMS kullanarak yedekleme gibi) çalıştırmak için ayrıntılı yordamlar sağlar. Bu, SQL Server belgelerinde bu konuyla ilgili üst konu başlığıdır.

  • Aşağıdaki tabloda, yedekleme ve geri yükleme işlemleriyle ilgili belirli görevler için gözden geçirmek isteyebileceğiniz ek konular listelenir.

    Başvuru Açıklama
    BACKUP (Transact-SQL) Yedeklemelerle ilgili temel soruların yanıtlarını sağlar. Farklı yedekleme ve geri yükleme işlemleri örnekleri sağlar.
    Yedekleme Cihazları (SQL Server) Ağ paylaşımı, Azure blob depolama ve ilgili görevleri yedekleyerek çeşitli yedekleme cihazlarını anlamak için harika bir başvuru sağlar.
    Kurtarma Modelleri (SQL Server) Çeşitli kurtarma modellerini ayrıntılı olarak kapsar: Basit, Tam ve Toplu Günlüğe Kaydedilen. Kurtarma modelinin yedeklemeleri nasıl etkilediği hakkında bilgi sağlar.
    Yedekleme & geri yükleme: sistem veritabanları (SQL Server) Stratejileri kapsar ve sistem veritabanlarının yedekleme ve geri yükleme işlemleri üzerinde çalışırken bilmeniz gerekenleri açıklar.
    Geri Yükleme ve Kurtarma'ya Genel Bakış (SQL Server) Kurtarma modellerinin geri yükleme işlemlerini nasıl etkilediğini kapsar. Veritabanının kurtarma modelinin geri yükleme işlemini nasıl etkileyebileceği hakkında sorularınız varsa bunu gözden geçirmelisiniz.
    Veritabanını Başka Bir Sunucuda Kullanılabilir Hale Getirirken Meta Verileri Yönetme Veritabanı taşındığında veya oturum açma bilgilerini, şifrelemeyi, çoğaltmayı, izinleri vb. etkileyen sorunlarla karşılaştığınızda dikkat etmeniz gereken çeşitli noktalar.
    İşlem Günlüğü Yedeklemeleriyle Çalışma İşlem günlüklerini tam ve toplu günlüğe kaydedilen kurtarma modellerinde yedekleme ve geri yükleme (uygulama) hakkında kavramlar sunar. Verileri kurtarmak için işlem günlüklerinin (günlük yedeklemeleri) rutin yedeklemelerinin nasıl alınacaklarını açıklar.
    Yönetilen Yedeklemeyi Microsoft Azure'a SQL Server Yönetilen yedeklemeyi ve ilişkili yordamları tanıtır.