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 |
---|
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 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)
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