Şimdi paylaş:
İçindekiler gizlemek

SQL Server Veritabanınız kurtarma modunda mı? 10 kanıtlanmış çözümü hemen edinin! Kolay düzeltmeden gelişmiş onarıma kadar adım adım çözümler.

1. anlayış SQL Server Veritabanı Kurtarma Modu

1.1 Kurtarma Modu nedir? SQL Server

Olduğunda, bir SQL Server veritabanı "Kurtarmada" durumunu gösteriyor, bu şu anlama geliyor SQL Server Veritabanı tutarlılığını sağlamak için çökme kurtarma veya işlem kurtarma işlemi gerçekleştirir. Bu otomatik işlem, kaydedilen işlemleri tekrar oynatarak ve kaydedilmemiş işlemleri geri alarak veri bütünlüğünü korur.

In SQL Server, bir veritabanı "Kurtarmada" etiketini içeriyorsa, bu şu anda kurtarma modunda olduğu anlamına gelir.

Kurtarma modu genellikle beklenmedik kapanmalar, elektrik kesintileri veya veritabanı geri yüklemeleri sırasında ortaya çıkar. Bu normal bir koruma mekanizması olsa da, sorunlar ortaya çıktığında... SQL Server veritabanının kurtarılması alışılmadık derecede uzun sürüyor veya takılıp kalmış gibi görünüyor.

1.2 Veritabanı Kurtarmanın Üç Aşaması

SQL Server iyileşme üç farklı aşamadan oluşur:

1.2.1 Analiz Aşaması

SQL Server Kirli sayfaları ve etkin işlemleri belirlemek için son kontrol noktasından itibaren işlem günlüğünü tarar. Kurtarılması gerekenleri izlemek için Kirli Sayfa Tablosu (DPT) ve Etkin İşlem Tablosu (ATT) oluşturur.

1.2.2 Yeniden Yapma Aşaması (İleri Sarma)

Sistem, çökmeden önce diske yazılmamış tüm işlenmiş işlemleri yeniden oynatır. Bu, işlenmiş tüm değişikliklerin veritabanı dosyalarına düzgün bir şekilde uygulanmasını sağlar.

1.2.3 Geri Alma Aşaması (Geri Alma)

İşlenmemiş tüm işlemler, veritabanı tutarlılığını sağlamak için geri alınır. İşlem tamamlandığında, veritabanı normal işlemler için kullanılabilir hale gelir.

1.3 Yaygın Belirtiler ve Hata Mesajları

Ne zaman SQL Server db kurtarma aşamasındaysa, genellikle şunu görürsünüz:

  • Veritabanı adı "(Kurtarmada)" olarak gösteriliyor SQL Server Yönetim Stüdyosu
  • "Veritabanı kurtarılıyor" iletileriyle oturum açma hataları
  • Kurtarma ilerleme yüzdelerini gösteren hata günlüğü girişleri
  • Sorgulandığında veritabanı durumu "KURTARILIYOR" olarak gösteriliyor

2. Kök Nedenleri SQL Server Kurtarma Modu Sorunları

2.1 Eksik Geri Yükleme İşlemleri

En yaygın neden, birden fazla yedekleme dosyasından geri yükleme yapılırken ortaya çıkar. İYİLEŞME YOK finalsiz seçenek İYİLEŞME İLE komutu. Bu, veritabanının ek geri yükleme işlemleri için beklemesine neden olur.

2.2 İşlem Günlüğü Sorunları

Büyük işlem günlüğü dosyaları veya aşırı sayıda Sanal Günlük Dosyası (VLF), kurtarmayı önemli ölçüde yavaşlatır. MS SQL binlerce VLF ile kurtarma işleminde olduğunda, işlemin tamamlanması saatler hatta günler sürebilir.

2.3 Sistemle İlgili Sorunlar

Donanım arızaları, elektrik kesintileri veya yetersiz disk alanı, normal veritabanı işlemlerini kesintiye uğratarak yeniden başlatma sırasında uzun kurtarma süreçlerini tetikleyebilir.

2.4 Veritabanı Bozulması

Bozuk veritabanı dosyaları başarılı bir kurtarma işleminin tamamlanmasını engeller ve veritabanının süresiz olarak kurtarma modunda kalmasına neden olur.

3. Onarım Öncesi Teşhis Adımları

3.1 Kontrol SQL Server Hata günlükleri

Düzeltmeleri denemeden önce, şunları inceleyin: SQL Server Kurtarma ilerleme mesajları için hata günlüğü. Tamamlanma yüzdelerini ve tahmini kalan süreyi gösteren girişleri arayın.

  1. Açılış SQL Server Yönetim Stüdyosu
  2. Şu yöne rotayı ayarla Yönetim -> SQL Server Kayıtlar
  3. Veritabanı adınız için son girişleri inceleyin
  4. Kurtarma aşaması göstergelerini arayın (3'ün 1, 2 veya 3'üncü aşaması)

Denetleme SQL Server kurtarma ilerleme mesajları için hata günlükleri.

3.2 Kurtarma İlerlemesini İzleme

Aktif kurtarma operasyonlarını izlemek için dinamik yönetim görünümlerini kullanın:

SELECT session_id, command, blocking_session_id, wait_type, wait_time, wait_resource
FROM sys.dm_exec_requests
WHERE command = 'DB STARTUP';

3.3 Veritabanı Durumunu Kontrol Etme

Kurtarma durumunu anlamak için mevcut veritabanı durumunu doğrulayın:

SELECT name, state_desc
FROM sys.databases
WHERE name = 'YourDatabaseName';

4. Çözüm #1: Doğal İyileşmenin Tamamlanmasını Bekleyin

Bazen sabırlı olmak en iyi çözümdür. SQL Server Veritabanı kurtarma aşamasındadır. Bu yaklaşım, kurtarma işlemi normal şekilde ilerlerken ancak beklenenden daha uzun sürdüğünde işe yarar.

4.1 Ne Zaman Sabırlı Olunmalı

Aşağıdaki durumlarda doğal tamamlanmaya izin verin:

  • Hata kayıtları, azalan zaman tahminleriyle istikrarlı bir ilerleme gösteriyor
  • Hiçbir yolsuzluk hatası bildirilmedi
  • Veritabanında yakın zamanda büyük işlemler yaşandı
  • VLF sayısı yönetilebilir düzeydedir (1,000'in altında)

4.2 Kurtarma İlerlemesini İzleme

Hata günlüklerindeki kurtarma süresi tahminleri genellikle hatalıdır. Kalan süre yerine ilerleme yüzdelerine odaklanın. Kapsamlı işlem geçmişine sahip büyük veritabanlarının tamamen kurtarılması birkaç saat sürebilir.

5. Düzeltme #2: RESTORE DATABASE WITH RECOVERY'i kullanın

Bu düzeltme, son kurtarma adımının atlandığı tamamlanmamış geri yükleme işlemlerini çözer. Bunu, SQL Server Kurtarma işlemindeki db, NORECOVERY kullanılarak yapılan bir geri yükleme işleminin sonucudur.

5.1 Komutu Anlamak

MKS KURTARMA İLE VERİTABANINI GERİ YÜKLE komut, işlenmemiş işlemleri geri alarak ve veritabanını çevrimiçi hale getirerek kurtarma işlemini tamamlar.

5.2 Uygulama Adımları

  1. Açılış SQL Server Yönetim Stüdyosu
  2. Bağlanın SQL Server örnek
  3. Tıkla Yeni > Mevcut Bağlantıyla Sorgu
    Yeni bir sorgu oluşturun SQL Server Yönetim Stüdyosu.
  4. Yürüt: RESTORE DATABASE [YourDatabaseName] WITH RECOVERY;
  5. Tamamlanma onayını bekleyin

Uyarı: Bu komutu yalnızca ek geri yükleme işleminin beklemede olmadığından eminseniz kullanın.

6. Düzeltme #3: İşlem Günlüğü Sorunlarını Çözün

İşlem günlüğü sorunları, kurtarma sürelerinin uzamasının başlıca nedenlerinden biridir. Bu düzeltme, tam günlükler, aşırı VLF'ler ve günlük alanı sorunlarını giderir. SQL Server kurtarma.

6.1 İşlem Günlüklerinin Yedeklenmesi

İşlem günlüğü yedekleri oluşturarak günlük alanını boşaltın:

  1. Açılış SQL Server Yönetim Stüdyosu
  2. Veritabanınıza sağ tıklayın -> Görevler -> Yedekleyin
    Yedekleme görevini başlat SQL Server veri tabanı.
  3. Düzenle Yedekleme türü için İşlem Günlüğü
    Yedekleme türünü işlem günlüğüne değiştirin
  4. Yedekleme hedefini belirtin
  5. Tıkla OK yürütmek

6.2 Sanal Günlük Dosyalarını (VLF'ler) Yönetme

VLF sayısını şu şekilde kontrol edin:

DBCC LOGINFO('YourDatabaseName');

1,000'den fazla VLF'niz varsa, bunları şu şekilde azaltın:

  1. İşlem günlüğünün yedeklenmesi
  2. Günlük dosyasını küçültme: DBCC SHRINKFILE(LogFileName, TRUNCATEONLY);
  3. Günlük dosyasını büyük parçalara (1 GB veya daha fazla) büyütme

6.3 Günlük Dosyalarını Güvenli Şekilde Küçültme

Günlükleri yalnızca aktif işlem yürütülmediği bakım dönemlerinde küçültün. Küçültme işlemlerinden önce veritabanını her zaman yedekleyin.

7. Düzeltme #4: DBCC CHECKDB'yi çalıştırın ve onarın

Veritabanı bozulması, kurtarma işleminin başarılı bir şekilde tamamlanmasını engelleyebilir. DBCC CHECKDB, MS SQL'i kurtarma modunda tutan küçük bozulma sorunlarını belirleyip onarabilen yerleşik bir komuttur.

7.1 Veritabanı Bozulmasını Kontrol Etme

Veritabanı bütünlüğünü doğrulamak için standart yaklaşımla başlayın. İlk olarak doğrudan DBCC CHECKDB komutunu deneyin:

  1. Yürüt: DBCC CHECKDB('YourDatabaseName') WITH NO_INFOMSGS;
  2. Tutarlılık hataları açısından sonuçları inceleyin
  3. Herhangi bir yolsuzluk mesajını belgelendirin

DBCC CHECKDB başarısız olursa "Veritabanı kurtarılıyor. Kurtarma tamamlanana kadar bekleniyor" gibi hatalar, veritabanının aktif olarak kurtarma modunda olduğu ve erişimi engellediği anlamına gelir. Bu durumda, ACİL DURUM modunu kullanmak için 7.3. bölüme geçin.

7.2 Erişilebilir Veritabanları için Onarım Seçenekleri

DBCC CHECKDB başarıyla çalıştırıldıysa ve bozulma bulunduysa, şu onarım adımlarını kullanın:

  1. Veritabanını tek kullanıcı moduna ayarlayın: ALTER DATABASE [YourDatabaseName] SET SINGLE_USER;
  2. Güvenli onarımı deneyin: DBCC CHECKDB('YourDatabaseName', REPAIR_REBUILD);
  3. Başarısız olursanız şunu kullanın: DBCC CHECKDB('YourDatabaseName', REPAIR_ALLOW_DATA_LOSS);
  4. Çoklu kullanıcıya dön: ALTER DATABASE [YourDatabaseName] SET MULTI_USER;

7.3 Veritabanına Erişilemediğinde Acil Durum Modunu Kullanma

Acil durum modu, yalnızca veritabanı kurtarma modunda takılıp kaldığında ve normal DBCC CHECKDB girişimlerini reddettiğinde gereklidir. Veritabanını SADECE OKUNUR olarak işaretler ve günlük kaydını devre dışı bırakır. Standart erişim başarısız olduğunda şu yaklaşımı kullanın:

  1. Acil durum modunu ayarlayın: ALTER DATABASE [YourDatabaseName] SET EMERGENCY;
  2. Tek kullanıcıyı ayarla: ALTER DATABASE [YourDatabaseName] SET SINGLE_USER;
  3. Bütünlük denetimini çalıştırın: DBCC CHECKDB('YourDatabaseName') WITH NO_INFOMSGS;
  4. Eğer bozulma bulunursa, öncelikle güvenli onarımı çalıştırın: DBCC CHECKDB('YourDatabaseName', REPAIR_REBUILD);
  5. Başarısız olursa veri kaybıyla onarımı kullanın:  DBCC CHECKDB('YourDatabaseName', REPAIR_ALLOW_DATA_LOSS);
  6. Çoklu kullanıcıyı ayarla: ALTER DATABASE [YourDatabaseName] SET MULTI_USER;
  7. Çevrimiçi ayarla: ALTER DATABASE [YourDatabaseName] SET ONLINE;

Önemli: ACİL DURUM modu, normal kurtarma işlemlerini atlar ve yalnızca veritabanına tamamen erişilemediğinde kullanılmalıdır. ACİL DURUM moduna geçmeden önce her zaman standart DBCC CHECKDB yaklaşımını deneyin.

Sen bulabilirsiniz DBCC CHECKDB'nin nasıl kullanılacağına dair daha kapsamlı bir kılavuz.

8. Düzeltme #5: Yedeklemeden Geri Yükleme

Diğer yöntemler başarısız olduğunda veya veri bütünlüğü şüpheli olduğunda, temiz bir yedeklemeden geri yükleme genellikle sorunu çözmek için en güvenilir çözümdür. SQL Server veritabanında kurtarma sorunları var.

8.1 Yedekleme ve Geri Yüklemeyi Ne Zaman Seçmelisiniz?

Yedekleme geri yüklemesini şu durumlarda düşünün:

  • Kurtarma işlemi 24 saatten uzun süredir ilerleme kaydedilmeden çalışıyor
  • Bozulma hataları başarılı onarımı engeller
  • Son zamanlarda doğrulanmış yedeklemeleriniz mevcut
  • Son yedeklemeden bu yana veri kaybı kabul edilebilir

8.2 Adım Adım Restorasyon Süreci

  1. Açılış SQL Server Yönetim Stüdyosu
  2. Sağ tıklatın veritabanları -> Veritabanını Geri Yükle
    Veritabanı geri yükleme görevini başlatın. SQL Server Yönetim Stüdyosu
  3. Seç cihaz Kaynak altında
  4. Tıkla Ekle ve yedekleme dosyanıza gidin
  5. Yedeklemeyi seçin ve tıklayın OK
  6. Klinik Mevcut veritabanının üzerine yaz Gerekirse
  7. Tıkla OK restorasyona başlamak için

Veritabanını geri yükle SQL Server.

8.3 Noktasal Kurtarma

Minimum veri kaybı için, belirli bir zaman noktasına geri yüklemek üzere işlem günlüğü yedeklerini kullanın. Tam yedeklemenizden istediğiniz kurtarma noktasına kadar kesintisiz bir günlük yedekleme zincirine sahip olduğunuzdan emin olun.

8.4 Referans

Daha fazla bilgiyi şuradan öğrenebilirsiniz: yedekleme ve geri yükleme hakkında kapsamlı kılavuz SQL Server veritabanları.

9. Düzeltme #6: OTOMATİK KAPATMA Özelliğini Devre Dışı Bırakın

OTOMATİK KAPATMA veritabanı özelliği, tekrarlanan kurtarma döngülerine neden olabilir ve bu da veritabanınızın SQL Server db sürekli olarak kurtarma modunda. Bu özelliği devre dışı bırakmak sorunu çözer.

9.1 OTOMATİK KAPATMA Sorunlarını Anlama

OTOMATİK KAPATMA etkinleştirildiğinde, SQL Server Son bağlantı sona erdikten sonra veritabanını kapatır ve ardından yeni bağlantılar için yeniden açar. Bu tekrarlanan açılış, her seferinde kurtarma işlemlerini tetikler.

9.2 OTOMATİK KAPATMA'yı devre dışı bırakma

  1. Açılış SQL Server Yönetim Stüdyosu
  2. Veritabanınıza sağ tıklayın -> Emlaklar
  3. Seç Seçenekler sol panelden
  4. set Otomatik kapanma için Yanlış
  5. Tıkla OK değişiklikleri uygulamak

Bir öğe için Otomatik Kapatma özelliğini devre dışı bırakın SQL Server veritabanında SQL Server Yönetim Stüdyosu.

Alternatif olarak T-SQL'i kullanabilirsiniz:

ALTER DATABASE [YourDatabaseName] SET AUTO_CLOSE OFF;

10. Çözüm #7: Yeniden Başlatın SQL Server Hizmet

Servis yeniden başlatılması, takılıp kalan kurtarma işlemlerini çözebilir, ancak kurtarma işlemini baştan başlatacağı için dikkatli kullanılmalıdır. Bu çözüm şu durumlarda işe yarar: SQL Server kurtarmada tamamen donmuş görünüyor.

10.1 Servis Yeniden Başlatılması Ne Zaman Yardımcı Olur?

Aşağıdaki durumlarda hizmeti yeniden başlatın:

  • Kurtarma çalışmaları birkaç saattir durmuş durumda
  • Hata günlükleri yeni giriş göstermiyor
  • Diğer veritabanları normal şekilde çalışıyor
  • Uzun süreli kesintileri göze alabilirsiniz

10.2 Güvenli Yeniden Başlatma Prosedürleri

  1. Açılış SQL Server Yapılandırma yöneticisi Dış Bağlantı
  2. Şu yöne rotayı ayarla SQL Server Hizmetler
  3. Bul SQL Server Yeniden başlatmak istediğiniz örneğe sağ tıklayın. SQL Server (Örnek Adı)
  4. Seç Yeniden
  5. Servisin tamamen yeniden başlatılmasını bekleyin.
  6. Kurtarma ilerlemesi için hata günlüklerini izleyin

Yeniden başlat SQL Server hizmet SQL Server Yapılandırma yöneticisi.

Not: Yeniden başlatma, kurtarma işleminin baştan başlamasına neden olacak ve bu da toplam kurtarma süresini uzatabilir.

11. Düzeltme #8: Veritabanını Ayırıp Yeniden Bağlayarak Onarın

Aşırı durumlarda veritabanını ayırın ve yeniden bağlayın:

  1. Veritabanını ayır: EXEC sp_detach_db 'YourDatabaseName';
  2. Sadece MDF dosyasını ekleyin: CREATE DATABASE [YourDB] ON (FILENAME = 'C:\Path\YourDB.mdf') FOR ATTACH_REBUILD_LOG;
  3. Bu, yeni bir işlem günlüğü oluşturur

Uyarı: Bu yöntem veri kaybına yol açabilir. Yalnızca diğer seçenekler tükendiğinde kullanın.

12. Düzeltme #9: Veritabanı Yansıtma Sorunlarını Ele Alın

Veritabanı yansıtma yapılandırmaları benzersiz kurtarma sorunlarına neden olabilir. Bu düzeltme, veritabanlarını kurtarma durumunda tutan yansıtmaya özgü sorunları giderir.

12.1 Yansıtma Özel Kurtarma Sorunları

Yansıtılmış veritabanları, ortak bağlantı sorunları veya uç nokta sorunları nedeniyle kurtarma aşamasında takılıp kalabilir. Hem asıl hem de yansıtılmış veritabanları kurtarma durumunu gösterebilir.

12.2 Yansıtma Kurtarma Çözümleri

Yansıtma uç noktasını yeniden başlatın:

  1. Uç nokta adını bul: SELECT * FROM sys.endpoints WHERE type = 4;
  2. Son noktayı durdur: ALTER ENDPOINT [EndpointName] STATE = STOPPED;
  3. Başlangıç ​​uç noktası: ALTER ENDPOINT [EndpointName] STATE = STARTED;

Uç nokta yeniden başlatma işlemi başarısız olursa, yansılama ortaklığını sonlandırın:

  1. Yürüt: ALTER DATABASE [DatabaseName] SET PARTNER OFF;
  2. Koşmak: RESTORE DATABASE [DatabaseName] WITH RECOVERY;
  3. Veritabanı çevrimiçi olduğunda yansıtmayı yeniden yapılandırın

13. Çözüm #10: Profesyonel Kurtarma Araçlarını Kullanın

Üçüncü taraf kurtarma araçları, yerleşik olarak kullanıldığında gelişmiş onarım yetenekleri sağlar SQL Server yöntemler başarısız olur. Bu araçlar genellikle ciddi şekilde bozulmuş veritabanlarından veri kurtarabilir.

13.1 DataNumen SQL Recovery

DataNumen SQL Recovery Kapsamlı seçeneklerle birlikte yüksek iyileşme oranına sahiptir.

Kullanım adımları şu şekildedir:

  1. Durdur SQL Server Hizmet.
  2. Kurtarma modunda, hem birincil MDF dosyası hem de ikincil NDF dosyaları dahil olmak üzere veritabanı dosyalarının bir kopyasını oluşturun.
  3. Başlat SQL Server Hizmet.
  4. Ana Sayfa DataNumen SQL Recovery.
  5. Kurtarılacak veritabanının kaynağı olarak orijinal dosya yerine kopyayı seçin.
  6. Veritabanını kurtarmak için "Kurtarmayı Başlat" seçeneğine tıklayın ve talimatları izleyin.
  7. Kurtarma işleminin ardından yeni bir kurtarma veritabanı görünecektir. SQL Server kurtarılan tüm verileri içeren.

Kullanım DataNumen SQL Recovery tek bir bozuk parçayı onarmak SQL Server MDF dosyası.

13.2 Üçüncü Taraf Araçlarını Ne Zaman Düşünmelisiniz?

Aşağıdaki durumlarda profesyonel araçlar kullanın:

  • Dahili onarım seçenekleri başarısız oluyor veya kapsamlı bozulma bildiriyor
  • Yakın zamanda yapılmış yedekleme yok
  • Kritik veriler bozulmaya rağmen kurtarılmalıdır
  • Standart kurtarma yöntemleri önemli veri kaybına neden olur

14. Önleme En İyi Uygulamaları

14.1 Düzenli Bakım Görevleri

Bu uygulamaları önlemek için uygulayın SQL Server veritabanı kurtarma sorunları:

  • Düzenli tam ve günlük yedeklemeleri planlayın: Tam yedekleme zincirlerini koruyun
  • VLF sayımlarını izleyin: En iyi performans için VLF'leri 100'ün altında tutun
  • Plan günlük dosyası boyutlandırması: Aşırı otomatik büyümeyi önlemek için kütükleri önceden boyutlandırın
  • Düzenli DBCC CHECKDB'yi çalıştırın: Yolsuzluğu erken tespit edin

14.2 İzleme ve Uyarı

Proaktif izlemeyi ayarlayın:

  1. Veritabanı durum değişiklikleri için uyarıları yapılandırın
  2. Günlük dosyası sürücülerindeki disk alanını izleyin
  3. Uzun süredir devam eden işlemleri takip edin
  4. Aşırı VLF sayımlarına karşı uyarı

14.3 Donanım ve Altyapı

Güvenilir altyapıyı sağlayın:

15. Karmaşık Senaryolarda Sorun Giderme

15.1 Çoklu Veritabanı Sorunları

Kurtarma sırasında birden fazla veritabanı takılı kaldığında:

  1. Sistem genelindeki sorunları (disk alanı, bellek) kontrol edin
  2. Kurtarma için kritik veritabanlarına öncelik verin
  3. Tüm örneği etkileyen donanım sorunlarını göz önünde bulundurun
  4. Son sistem değişikliklerini veya güncellemelerini inceleyin

15.2 Büyük Veritabanı Hususları

1TB'den büyük veritabanları için:

  • Daha uzun iyileşme süreleri (muhtemelen günler) bekleyin
  • Yeterli bellek tahsisini sağlayın
  • Paralel işleme ayarlarını göz önünde bulundurun
  • Kurtarma sırasında tempdb alanını izleyin

15.3 Microsoft Desteği ile Ne Zaman İletişime Geçilmeli?

Microsoft Destek ile iletişime geçin:

  • Yedekleme seçeneği olmayan kritik üretim sistemleri
  • Şüpheli SQL Server yazılım hataları
  • Garantili kurtarma gerektiren kurumsal ortamlar
  • Karmaşık Her Zaman Açık veya kümeleme senaryoları

16. SSS

S: Ne kadar süre olmalı? SQL Server veritabanı kurtarma işlemi normalde ne kadar sürer?

C: Kurtarma süresi, veritabanı boyutuna, işlem hacmine ve donanım performansına bağlıdır. Küçük veritabanları genellikle dakikalar içinde kurtarılırken, kapsamlı işlem günlüklerine sahip büyük veritabanları birkaç saat sürebilir. Hata günlüklerinde gösterilen süre tahminleri genellikle yanlıştır, bu nedenle ilerleme yüzdelerine odaklanın.

S: Durdurabilir miyim? SQL Server Kurtarma sırasında veri kaybı olmadan?

A: Durdurma SQL Server Kurtarma işlemi sırasında genellikle güvenlidir, ancak hizmet yeniden başlatıldığında kurtarma işlemi baştan başlar. Bu, toplam kurtarma süresini uzatır ancak orijinal olay sırasında meydana gelen veri kaybının ötesinde ek veri kaybına neden olmaz.

S: “Kurtarma Aşamasında” ve “Kurtarma Bekleniyor” arasındaki fark nedir?

A: “İyileşme Aşamasında” şu anlama gelir: SQL Server Kurtarma işlemleri aktif olarak gerçekleştiriliyor. "Kurtarma Beklemede" ifadesi, kurtarma işleminin başlatılamadığını gösterir; bu genellikle eksik dosyalar, yetersiz izinler veya kurtarma işlemine devam edilmeden önce çözülmesi gereken disk alanı sorunları nedeniyle olur.

“Kurtarma Bekliyor” hakkında daha detaylı bilgiyi şurada bulabilirsiniz: kapsamlı rehber.

S: REPAIR_ALLOW_DATA_LOSS kullanırsam veri kaybeder miyim?

C: Evet, REPAIR_ALLOW_DATA_LOSS, veritabanı tutarlılığını geri kazandırmak için bozuk verileri kaldırabilir. Her zaman önce, yapısal sorunları veri kaybı olmadan düzelten REPAIR_REBUILD'ı deneyin. REPAIR_ALLOW_DATA_LOSS'u yalnızca başka kurtarma seçeneğiniz olmadığında son çare olarak kullanın.

S: Bir veritabanı kurtarma aşamasındayken diğer veritabanlarına erişebilir miyim?

A: Evet, aynı alandaki diğer veritabanları SQL Server Kurtarma sırasında örnek erişilebilir kalır. Yalnızca kurtarma işlemi yapılan veritabanı kullanılamaz. Ancak, kurtarma işlemleri genel sunucu performansını etkileyebilir.

S: Bir veritabanının kurtarma modunda takılı kalmasına ne sebep olur?

A: Yaygın nedenler arasında NORECOVERY kullanılarak yapılan eksik geri yükleme işlemleri, aşırı sayıda Sanal Günlük Dosyası (VLF), büyük miktarda işlenmemiş işlem, veritabanı bozulması, yetersiz disk alanı ve donanım sorunları bulunur. OTOMATİK KAPATMA özelliği etkinleştirilmiş veritabanları da sürekli olarak kurtarma işlemine giriyormuş gibi görünebilir.

S: İyileşmenin ilerlediğini mi yoksa durduğunu mu nasıl anlarım?

A: Monitör SQL Server Kurtarma ilerleme mesajlarının hata günlükleri, tamamlanma yüzdelerini gösterir. Etkin veritabanı başlatma komutlarını kontrol etmek için `sys.dm_exec_requests` kullanın. Yüzdeler zamanla artarsa, kurtarma işlemi ilerliyor demektir. Birkaç saat boyunca yeni günlük girdisi olmaması, takılı kalmış bir işlemi gösterebilir.

S: Yeniden başlatmak güvenli mi? SQL Server kurtarma sırasında hizmet?

A: Yeniden başlatma güvenlidir ancak dikkatli kullanılmalıdır. Kurtarma işlemi baştan başlayacak ve potansiyel olarak kurtarma süresini iki katına çıkaracaktır. Yalnızca kurtarma işlemi saatlerce tamamen donmuş ve hiçbir ilerleme göstermemiş görünüyorsa veya işlemin gerçekten takılıp kaldığından şüpheleniyorsanız yeniden başlatın.

S: OTOMATİK KAPATMA ile kurtarma modu arasındaki fark nedir?

C: OTOMATİK KAPATMA, bağlantı olmadığında veritabanlarını otomatik olarak kapatır ve ardından yeni bağlantılar için yeniden açar. Bu tekrarlanan açılış, her seferinde kısa kurtarma işlemlerini tetikleyerek veritabanının sürekli kurtarma aşamasındaymış gibi görünmesine neden olur. OTOMATİK KAPATMA özelliğini devre dışı bırakmak bu sorunu çözer.

S: İşlem günlüğü yedekleri kurtarma sırasında yardımcı olabilir mi?

A: İşlem günlüğü yedeklemeleri, günlük sürücüsü doluysa günlük alanını boşaltarak kurtarma işleminin devam etmesine olanak sağlayabilir. Ancak, şu anda kurtarma modunda olan bir veritabanının günlüğünü yedekleyemezsiniz. Günlük yedeklemeleri daha çok önleme ve kurtarma sonrası bakım için faydalıdır.

S: Microsoft Destek ile ne zaman iletişime geçmeliyim?

A: Yerleşik kurtarma yöntemlerinin başarısız olduğu kritik üretim sistemleri için, şüphelendiğinizde Microsoft Desteği ile iletişime geçin SQL Server yazılım hataları, karmaşık Always On veya kümeleme senaryoları için veya kurumsal ortamların minimum kesinti süresiyle garantili veri kurtarma gerektirmesi durumunda.

S: Veritabanlarının kurtarma sırasında takılmasını nasıl önleyebilirim?

A: Düzenli olarak tam ve günlük yedeklemeleri uygulayın, VLF sayımlarını izleyin ve yönetin, yeterli disk alanı sağlayın, uygun kapatma prosedürlerini kullanın, donanım güvenilirliğini koruyun, üretim veritabanlarında OTOMATİK KAPATMA özelliğini devre dışı bırakın ve bozulmayı erken tespit etmek için düzenli DBCC CHECKDB işlemlerini çalıştırın.

S: VLF'ler nedir ve iyileşmeyi neden etkiler?

A: Sanal Günlük Dosyaları (VLF'ler), işlem günlüğü dosyalarındaki dahili bölümlerdir. Çok fazla VLF (1,000'den fazla) kurtarmayı önemli ölçüde yavaşlatır çünkü SQL Server Her birini ayrı ayrı işlemeniz gerekir. Uygun günlük dosyası boyutlandırma ve büyüme ayarları, optimum VLF sayımlarının korunmasına yardımcı olur.

S: Veritabanı kurtarma aşamasındayken yedeklemeden geri yükleme yapabilir miyim?

A: Şu anda kurtarma modunda olan bir veritabanını geri yükleyemezsiniz. Kurtarmanın tamamlanmasını beklemeli veya SQL Server hizmetini geri yükleyin veya farklı bir veritabanı adına geri yükleyin. Acil durumlarda, yeni bir veritabanı adına geri yüklemeyi ve kurtarma sorunları çözüldükten sonra yeniden adlandırmayı düşünebilirsiniz.

17. Sonuç ve Sonraki Adımlar

17.1 Temel Çözümlerin Özeti

Ne zaman SQL Server Veritabanı kurtarma aşamasında, lütfen şu yaklaşımları sırasıyla deneyin:

  1. Hata günlüklerini kontrol edin ve ilerlemeyi izleyin
  2. İlerleme istikrarlıysa doğal tamamlanmayı bekleyin
  3. Eksik geri yüklemeler için RESTORE WITH RECOVERY'i kullanın
  4. İşlem günlüğü sorunlarını giderin
  5. Bozulmaya karşı DBCC CHECKDB veya profesyonel araçları çalıştırın
  6. Ciddi durumlarda yedekleme geri yüklemesini göz önünde bulundurun

köprü SQL Server Bu kanıtlanmış yöntemler sayesinde kurtarma durumlarında db'ler saatler içinde çözülür. Karmaşık senaryolar için gelişmiş teknikleri veya profesyonel araçları kullanmaktan çekinmeyin.

17.2 Ek Kaynaklar

Daha fazla yardım için:

Düzenli bakım ve izleme, çoğu kurtarma sorununu önler. Gelecekte MS SQL kurtarma sorunlarının oluşmasını en aza indirmek için bu kılavuzda belirtilen önleme uygulamalarını hayata geçirin.


Yazar Hakkında

Yuan Sheng 10 yılı aşkın deneyime sahip kıdemli bir veritabanı yöneticisidir (DBA) SQL Server ortamlar ve kurumsal veritabanı yönetimi alanında uzmanlaşmıştır. Finansal hizmetler, sağlık ve üretim sektörlerindeki yüzlerce veritabanı kurtarma senaryosunu başarıyla çözmüştür.

Yuan şu konuda uzmanlaşmıştır: SQL Server Veritabanı kurtarma, yüksek erişilebilirlik çözümleri ve performans optimizasyonu alanlarında kapsamlı uygulamalı deneyime sahiptir. Terabaytlarca veri tabanını yönetme, Always On Kullanılabilirlik Grupları uygulama ve kritik öneme sahip iş sistemleri için otomatik yedekleme ve kurtarma stratejileri geliştirme konularında kapsamlı uygulamalı deneyime sahiptir.

Yuan, teknik uzmanlığı ve pratik yaklaşımıyla, veritabanı yöneticilerinin ve BT profesyonellerinin karmaşık sorunları çözmelerine yardımcı olan kapsamlı kılavuzlar oluşturmaya odaklanıyor. SQL Server Zorlukları verimli bir şekilde çözer. En son gelişmelerle güncel kalır. SQL Server Microsoft'un gelişen veritabanı teknolojilerini ve sürümlerini takip ederek, önerilerinin gerçek dünyadaki en iyi uygulamaları yansıttığından emin olmak için kurtarma senaryolarını düzenli olarak test ediyor.

hakkında sorularınız var SQL Server Kurtarma veya ek veritabanı sorun giderme kılavuzuna mı ihtiyacınız var? Yuan memnuniyetle karşılar geri bildirim ve öneriler Bu teknik kaynakların iyileştirilmesi için.

Şimdi paylaş: