Hata: sp_change_secondary_role var mı, bekleyen bir işlem günlüğü yedekleri 3101 hatası ile başarısız

Makale çevirileri Makale çevirileri
Makale numarası: 294397 - Bu makalenin geçerli olduğu ürünleri görün.
# HATA: 352508 (shiloh)
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Aşağıdaki koşullardan her ikisi de doğruysa sp_change_secondary_role yürütülüyor saklı yordamın yedek çifti bir günlüğü, sunucu üzerinde bir 3101 hata iletisiyle başarısız oluyor:

  • 1 Değeri, @ sona erdirmek bağımsız değişkeni için geçirilir. Bu da bu parametre için varsayılan değer olduğunu unutmayın.
  • Yedek sunucu üzerinde uygulanacak en az bir bekleyen bir işlem günlüğü yok.
Bu aşamada genişletilmiş yordamı xp_sqlmaint kullanarak RESTORE LOG iş bekleme sunucuda çalıştırıyorsanız, çıktıdır:
Veritabanı kaynağı - test
Hedef veritabanı - test
[Microsoft SQL-DMO (ODBC SQLState: 42000)]
3101 Hata: veritabanı kullanılmakta olduğu için [Microsoft] [ODBC SQL Server sürücüsü] [SQL Server] özel kullanım erişimi elde edilemedi.
[Microsoft][ODBC SQL Server sürücüsü][SQL Server]GNLK RESTORE anormal olarak sona eriyor.
0 Dosya yükledi.
BOŞ
Mamul bir yük SERVER1\INST1.test_logshipping planı için

Sunucu: <a1>hata</a1> 22029, Düzey 16, State 1, satır 0
Sqlmaint.exe başarısız oldu.

Neden

Günlük dağıtımını iki sunucu arasında yapılandırılır ve ikincil veya yedek sunucusu çevrimiçi duruma getirmek gereksinim duyduğunuz ikincil veya yedek sunucusu çevrimiçi duruma getirmek için yedek sunucu sp_change_secondary_role saklı yordamı çalıştırabilirsiniz. Saklı yordamın, varsayılan parametreler sp_change_secondary_role saklı yordamını çalıştırmak için şu görevleri gerçekleştirir:

  • Yedek veritabanı tek kullanıcılı moda ayarlar.
  • Kopyalanması gereken ek dosyaları kopyalar.
  • Yedek sunucu, kopyalama işini devre dışı bırakır.
  • Tüm bekleyen işlem günlüklerinin geri yükler.
  • Veritabanını çevrimiçi, ikincil sunucuda getirir.
  • Bazı düzeni, bu bilgilerin güncelleştirilmesi gerektiğinden, plan tabloları <a2>msdb</a2> veritabanını sevkiyat oturum gerçekleştirir.
@ Sona erdirmek değeri sp_change_secondary_role depolanmış yordamın aktarılırsa (Bu da @ sona erdirmek parametresi için varsayılan giriş değeri), 1 = 1 maddesi önceki sırada bir
ALTER DATABASE dbname SET SINGLE_USER
veritabanının durumunu değiştirme ve geri YÜKLEME işlemi denendi, ancak hiçbir kullanıcı bağlandığınızdan emin olmak için komut. Ancak, ALTER DATABASE deyimini bağlantıyı sonlandırır kadar yürürlükte kalır, paylaşılan veritabanının kilidi olması neden olur. 2 Ve 4 numaralı öğeleri genişletilmiş adımları spid özgün sp_change_secondary_role bağlantının farklı bir sunucuya işlem kimliği (spid) kullanmak için sunucu için ayrı bir bağlantı açar, yordamı xp_sqlmaint kullanılarak gerçekleştirilir. Sonuç olarak, saklı yordam spid blokları tarafından RESTORE GÜNLÜK görev tutulduğu paylaşılan veritabanının kilidi tamamlamak bu xp_sqlmaint çalışır. Bu yüzden, sp_change_secondary_role yordamı 3101 hata iletisiyle başarısız olur.

Pratik Çözüm

Bu hatanın oluşmaması için <a0></a0>, aşağıdaki geçici çözümlerden birini kullanın:
  • Olduğunu yok bekleyen işlem günlüklerinin sp_change_secondary_role saklı yordamını çalıştırmadan önce emin olun. El ile geri YÜKLEME işi ikincil sunucu üzerinde çalışan sp_change_secondary_role çalıştırmadan önce hiçbir bekleyen işlem günlüklerinin olmasını sağlar.

    -VEYA-
  • Sıfır değerinin geçirmek @ sona erdirmek parametresi (sonlandırma = 0) sp_change_secondary_role saklı yordamı yürütme sırasında. Ancak, kullanıcı hiçbir kullanıcı bir veritabanına, saklı yordam, RESTORE LOG başarılı bir şekilde çalıştığından emin olmak için yürütülmeden önce bağlı olduğunu doğrulamalısınız.

Durum

Microsoft SQL Server 2000'de bir sorun için onaylamıştır.

Daha fazla bilgi

sp_change_secondary_role bekleme sunucusu çevrimiçi duruma getirmek istediğinizde, bekleme sunucusu üzerinde çalışan bir sistem saklı yordamdır.

Başvurular

SQL Server Books Online'da; konu: "ayarlamak ve bir günlüğü rolünü değiştirme (Transact-SQL) gerçekleştirmek Yükleme"

Özellikler

Makale numarası: 294397 - Last Review: 25 Haziran 2004 Cuma - Gözden geçirme: 3.3
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 2000 Enterprise Edition
  • Microsoft SQL Server 2000 Developer Edition
Anahtar Kelimeler: 
kbmt kbbug kbpending KB294397 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:294397

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com