Service Broker kimlikleri yönetme
Yönlendirme için kullanılan benzersiz bir tanımlayıcı içeren her veritabanıService Brokerileti, veritabanı.Bu bölümde açıklanmıştırService Brokertanımlayıcılarını nasılService Brokerkorur, ileti yasadışı ve yönetmek için kullanılabilir olan seçenekleriService Brokertanımlayıcılar.
Hizmet Aracısı tanımlayıcıları
Her bir veritabanı içeren birService Brokertanımlayıcı, ayıran, diğer tüm veritabanlarını ağ.The service_broker_guid column of the sys.databases catalog view shows the Service Broker identifier for each database in the instance.Service Broker systems can be designed to run multiple copies of a service.Hizmet her kopyasını farklı bir veritabanında çalışır.CREATE yolun BROKER_INSTANCE yan hizmet birden çok kopyası olan bir sistemde kullanmak deyim hizmetin belirli bir kopya için bir yol oluşturmak için.
Service BrokerYönlendirme kullandığıService Brokertanımlayıcının sağlamak bir konuşma için tüm iletiler teslim, aynı veritabanı.DIALOG konuşma BEGIN deyim hedef hizmet ile bir görüşme açılır.If a conversation is successfully opened, the acknowledgement message from the destination service contains the Service Broker identifier for the destination database.Service Broker then routes all messages for the conversation to the specified database.
Service Broker tanımlayıcılar için hizmet belirtilebilir yan tümce BEGIN DIALOG konuşma deyiminin gerçekleştirilecek yönlendirme türünü denetlemek için:
Bir hizmet belirli bir kopyasını görüşmeleri yönlendirmek için birservice_broker_guid.Örneğin, ağ üzerindeki üç veritabanlarında üç kopyasını bir hizmet olabilir: veritabanı geliştirme, sınama veritabanına ve bir üretim veritabanını. Her sistem BEGIN DIALOG konuşma tablolarda belirtinservice_broker_guid tüm iletileri gidin doğru veritabanını. için emin olmak için
To let Service Broker balance conversation loads across multiple copies of a service, do not specify service_broker_guid.Service Broker will alternatively pick among the routes with the same service name as is specified in the TO SERVICE clause of BEGIN DIALOG CONVERSATION.
Varsayılan olarak, bir ağ hizmet yalnızca bir kopyasıService Brokerdoğru yönlendiren görüşmeleri.Belirtmek zorunda değilsinizService Brokertanımlayıcı CREATE yol veya BEGIN DIALOG konuşma ifadeleri.
Daha fazla bilgiService Brokeryol ile eşleşen, bkz:Yönlendirme Hizmet Aracısı.
İleti teslimini doğru desteklemek için herService Brokertanımlayıcı olması gereken benzersiz tüm örnekleri arasındaDatabase Engineaynı ağ.Aksi durumda, ileti misdirected.Yeni bir veritabanı oluşturulursa, bu atanmış yeni birService Brokertanımlayıcı, olması gereken benzersiz ağ.Veritabanını geri bağlı veya, tanımlayıcı geri yüklenir.geri yükleme yükle ve veritabanlarını eklemek, dikkatli olun.Yüklü, etkin bir şekilde işlemi birden çok veritabanıService Brokerişlemleri ve kullanarak aynı tanımlayıcılar.
Hizmet Aracısı ileti teslimi
SQL Serverdevre dışı bırakılması için bir mekanizma sağlar.Service Brokerbir veritabanında aynı varsa, ileti teslimiService Brokertanımlayıcı olarak başka bir veritabanında aynı ağ.İleti teslimi veritabanında devre dışı bırakıldığında, bu veritabanından gönderilen tüm iletilerin veritabanı için iletim sırasındaki kalır.Daha fazla,Service Brokeralıcı iletileri için kullanılabilir olması için veritabanı Hizmetleri dikkateBu hizmetler dikkate alınmazService BrokerYönlendirme bulur hedef hizmet örnek.
Devre dışı bırakmaService Brokerileti teslimi, güvenli bir şekilde sağlar riski olmadan sorun giderme veya veri kurtarma amacıyla bir veritabanının yedeğini Ekle misdirected iletileri.The is_broker_enabled column of sys.databases shows the current state of Service Broker message delivery for each database.
Eklemek ya da kullanım bakım yalnızca bir veritabanına sahip olmak için bir veritabanını geri yükleme bir verilenService Brokertanımlayıcısı vardır ileti teslim etkin.Aksi durumda, ileti misdirected ve işlemek için bir veritabanının yanlış kopya ortaya çıkabilir.
Tanımlayıcılar ve ileti yönetimi
CREATE the DATABASE komutu, komutu ALTER DATABASE ve geri yükleme DATABASE komutunu etkinleştirmek için seçenekler içerirService Brokerileti teslim.Değiştirmek için seçenekler de içerdikleriService Brokertanımlayıcı bir veritabanı.
Eklemek ya da bir veritabanını geri yükleme varsayılan olarak,Service Brokertanımlayıcı ve ileti teslim durumu aynı.Genellikle, değişmezService Brokertanımlayıcısı aşağıdaki durumlarda:
Ne zaman bir yedek kurtarma amacıyla geri yükleme yükleyin.
Ne zaman bir yansıtmalı çift yapılandırın.
Ne zaman günlük aktarma için yedek bir sunucu ayarlayabilirsiniz.Veritabanının bir kopyasını yaparken, örnek tanımlayıcısı değiştirin.
Tanımlayıcılar ve ileti teslimi için dört seçenek vardır:
ENABLE_BROKER.Bu seçenek etkinleştirirService Brokerileti teslimi, varolan korumaService Brokertanımlayıcı veritabanı.
Not
Enabling SQL Server Service Broker in any database require a database lock.Etkinleştirmek içinService Broker,msdb veritabanı, ilk durağı SQL Serveraracı.Daha sonraService Brokerelde etmek gereken kilit.
DISABLE_BROKER.Bu seçenek devre dışı bırakır.Service Brokerileti teslimi, varolan korumaService Brokertanımlayıcı veritabanı.
NEW_BROKER.Bu seçenek etkinleştirirService Brokerileti teslim ve oluşturur YeniService Brokertanımlayıcı veritabanı.Bu seçenek, veritabanındaki tüm varolan görüşmeler sona erer ve her görüşme için hata verir.Bu, çünkü bu görüşmeleri yeni tanımlayıcısı kullanmayın.Eski başvurduğu bir yolService Brokertanımlayıcı gerekir yeniden yeni bir tanımlayıcı.
ERROR_BROKER_CONVERSATIONS.This option activates Service Broker message delivery, preserving the existing Service Broker identifier for the database.Service Broker ends all conversations in the database, and returns an error for each conversation.saat daha açık konuşmalar varsa, diğer veritabanları farklı bir noktaya bir veritabanına geri yükleme yüklemelisiniz, bu seçenek genellikle kullanılır.Şimdi diğer veritabanları ile zaman uyumlu oldukları için tüm görüşmeler geri yüklenen veritabanı, bir hata ile sona erdi gerekir.The Service Broker identifier is retained so that all routes that reference the identifier are still valid.
Belirtilen seçenek olarak dikkateSQL Serverizin vermez aynı olan iki veritabanlarıService Brokerher ikisi de tanımlayıcısına sahip aynı örneğini etkin ileti teslimiSQL Server.Bir veritabanını iliştirmek, sahipse aynıService BrokerVarolan bir veritabanı tanıtıcısıSQL Serverdevre dışı bırakırService Brokerileti teslim iliştirilmekte olan veritabanındaki.
Veritabanları, ekleme seçenekleri hakkında daha fazla bilgi için bkz:DATABASE (Transact-SQL) CREATEveALTER DATABASE Transact-SQL).Etkinleştirme hakkında bilgi içinService Brokerileti teslim veritabanı için bkz:Nasıl Yapılır: Databases (Transact-SQL), Service Broker ileti teslimi için aktif hale getirin.