Share via


Ertelenmiş hareketleri (SQL Server)

De SQL Server 2005 Enterprise Editionve sonraki sürümleri, bozuk bir hareket haline ertelenmiş geri (Geri Al) tarafından gerekli veri veritabanı başlatma sırasında çevrimdışıysa. A ertelenmiş işlem rulo ileri aşaması tamamlandıktan ve geri alındı engelleyen bir hatayla karşılaştı kaydedilmemiş bir hareket. İşlem geri alınamaz çünkü o ertelenmiş.

[!NOT]

Bozuk hareketleri sadece ertelenmiş SQL Server 2005 Enterprise Editionve sonraki sürümleri. Diğer sürümlerinde SQL Server, bozuk bir hareket başlatma başarısız olmasına neden olur..

Veritabanı ileriye alındı ise, bir g/Ç hatası hareket tarafından gereken bir sayfa okuma engelledi, genellikle, ertelenmiş işlem oluşur. Ancak, hata dosya düzeyinde de ertelenmiş hareketleri neden olabilir. Ertelenmiş işlem de kısmi geri yükleme sırası hangi hareketi geri alma gerekli bir noktada durur ve bir işlem çevrimdışı veri gerektirdiğinde oluşur.

Kullanıcı hareketleri geri alınıyor ve bir g/Ç hatası vurmak, tüm veritabanını çevrimdışı neden. Veritabanı yeniden çevrimiçi duruma getirildiğinde, Yinele ve vardı tüm kaydedilmemiş hareketleri geri çalışır tüm kilitleri reacquires. Bir hareket tarafından değiştirilen tüm veriler kalır uygun şekilde kilitli kadar hareket geri dönebilirsiniz. Veritabanı çevrimiçi kalır ertelenmiş hareketleri çözümlendiği zaman geri alınamaz işlemleri yolsuzluk sabit zaman onların kilitler ve yeniden veritabanı veya bir çevrimiçi geri yükleme sonra verecektir. Noktası kadar ertelenmiş işlem belirli işlemleri bir bütün olarak veritabanı önleme kilitleri tutabilir. Örneğin, ertelenmiş işlem bir create table yönergesi içeriyorsa, ertelenmiş işlem giderilmiştir kadar hiçbir kullanıcı bir tablo oluşturabilirsiniz.

Piecemeal geri yükleme veritabanı olan bir veya daha fazla etkin işlem değil henüz restore edilmiş ve çevrimdışı filegroup etkileyen bir noktaya kurtarır çünkü ertelenmiş işlem yapılabilir. Hareketleri geri alınamaz çünkü onlar ertelenmiş olur.

Aşağıdaki tabloda, veritabanı kurtarma ve sonucu bir I/O sorun oluşursa gerçekleştirmek neden eylemlerini listeler.

Eylem

Eğer (g/Ç sorunlarını ortaya veya gerekli verileri çevrimdışı) çözünürlük

Sunucu başlatma

Ertelenmiş işlem

Geri yükleme

Ertelenmiş işlem

Ekle

Ekleme başarısız

AutoRestart

Ertelenmiş işlem

Veritabanı veya veritabanı anlık görüntü oluşturma

Oluşturma başarısız

Veritabanı yansıtma üzerinde Yinele

Ertelenmiş işlem

Filegroup çevrimdışı

Ertelenmiş işlem

Bir hareket ERTELENMİFL devlet dışına taşıma

Önemli notÖnemli

Ertelenmiş hareketleri, işlem günlüğünün etkin tutmak. Bu hareketlere Ertelenmifl devlet dışına taşınır kadar ertelenmiş hareketleri içeren sanal günlük dosya kesilmiş olamaz. Günlük kesilme hakkında daha fazla bilgi için bkz: Transaction Log Truncation.

Hareketin Ertelenmifl devlet dışına taşımak için veritabanı temiz bir şekilde herhangi bir g/Ç hataları başlamalıdır. Ertelenmiş hareketleri varsa, kaynağı olan g/Ç hataları düzeltmeniz gerekir. İçinde genellikle denenir, sıraya göre listelenen kullanılabilir çözümler aşağıdaki gibidir:

  • Veritabanını yeniden başlatın. Sorun geçici veritabanı ertelenmiş hareketleri başlamalıdır.

  • Bir filegroup çevrimdışı olduğundan hareketler ertelenmiş, filegroup çevrimiçi getir.

    Bir çevrimdışı filegroup yeniden çevrimiçi duruma getirmek için aşağıdaki kullanın Transact-SQLdeyimi:

    RESTORE DATABASE database_name FILEGROUP=<filegroup_name>
    
  • Veritabanını geri yüklemek. Çevrimiçi geri yükleme sonra ertelenmiş hareketleri çözümlenir.

    Ertelenmiş hareketleri yalnızca birkaç bozuk sayfalar tarafından neden tam veya toplu oturum kurtarma modeli altında çevrimiçi sayfa geri yükleme hataları giderebilecek (destekleniyorsa).

  • Artık kullanıyorsanız, çevrimdışı filegroup işlevsiz bir filegroup çevrimdışı durumu neden ertelenmiş hareketleri gerektirir. Filegroup feshedilmiş olduktan sonra filegroup çevrimdışı olduğundan ertelenmiş hareketleri Ertelenmifl devlet dışına taşınır.

    Önemli notÖnemli

    Geçersiz filegroup asla telafi edilebilir.

    Daha fazla bilgi için, bkz. Geçersiz Filegroups (SQL Server) Kaldır.

  • Hareketleri nedeniyle kötü bir sayfa ertelenmiş ve iyi bir yedek veritabanı yoksa, veritabanını onarmak için aşağıdaki işlemi kullanın:

    • Veritabanı aşağıdaki yürüterek Acil moduna ilk koy Transact-SQLdeyimi:

      ALTER DATABASE <database_name> SET EMERGENCY
      

      Acil Durum modu hakkında daha fazla bilgi için bkz: Veritabanı durumları.

    • Ardından, aşağıdaki dbcc ifadelerden birini dbcc REPAIR_ALLOW_DATA_LOSS seçeneğini kullanarak veritabanını onarma: dbcc checkdb, dbcc checkalloc, veya dbcc checktable.

      dbcc hatalı sayfa karşılaştığında, dbcc onu kaldırır ve ilgili hataları onarır. Bu yaklaşım, fiziksel olarak tutarlı bir durumda yeniden çevrimiçi duruma getirilebilmesi veritabanı sağlar. Ancak, ek verileri de kaybolmuş olabilir; Bu nedenle, bu yaklaşım, son çare olarak kullanılmalıdır.

Ayrıca bkz.

Başvuru

alter veritabanı (Transact-sql)

RESTORE (Transact-SQL)

Kavramlar

Geçersiz Filegroups (SQL Server) Kaldır

Dosya (tam kurtarma modeli) yükler

Dosya (Basit kurtarma modeli) yükler

Sayfalar (SQL Server) geri yükleme

Piecemeal geri yüklemeler (SQL Server)

Diğer Kaynaklar

Understanding How Restore and Recovery of Backups Work in SQL Server