Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Uyarı
Bu özellik, SQL Server'ın gelecek bir sürümünde kaldırılacaktır. Bu özelliği yeni geliştirme çalışmalarında kullanmaktan kaçının ve şu anda bu özelliği kullanan uygulamaları değiştirmeyi planlayın. Bunun yerine Always On kullanılabilirlik gruplarını kullanın.
Veritabanı için veritabanı yansıtmasını kontrol eder. Veritabanı yansıtma seçenekleriyle belirtilen değerler, hem veritabanı kopyalarına hem de veritabanı aynalama oturumunun tamamına uygulanır. ALTER DATABASE ifadesi için yalnızca bir <database_mirroring_option> izin verilir.
Uyarı
Veritabanı aynalamasını yoğun olmayan saatlerde yapılandırmanızı öneririz çünkü yapılandırma performansı etkileyebilir.
ALTER DATABASE seçenekleri için bkz. ALTER DATABASE. ALTER DATABASE SET seçenekleri için bkz. ALTER DATABASE SET Seçenekleri.
Transact-SQL söz dizimi kuralları
Sözdizimi
ALTER DATABASE database_name
SET { <partner_option> | <witness_option> }
<partner_option> ::=
PARTNER { = 'partner_server'
| FAILOVER
| FORCE_SERVICE_ALLOW_DATA_LOSS
| OFF
| RESUME
| SAFETY { FULL | OFF }
| SUSPEND
| TIMEOUT integer
}
<witness_option> ::=
WITNESS { = 'witness_server'
| OFF
}
Arguments
Önemli
A SET PARTNER veya SET WITNESS komutu girildiğinde başarıyla tamamlanabilir, ancak daha sonra başarısız olur.
Uyarı
ALTER DATABASE veritabanı aynalama seçenekleri kapalı bir veritabanı için mevcut değildir.
database_name Veritabanının adı değiştirilecek mi?
PARTNER <partner_option> Bir veritabanı yansıtma oturumunun failover ortaklarını ve davranışlarını tanımlayan veritabanı özelliklerini kontrol eder. Bazı SET PARTNER seçenekleri her iki partnere de ayarlanabilir; diğerleri ise ana sunucu veya ayna sunucusu ile sınırlıdır. Daha fazla bilgi için, aşağıdaki bireysel PARTNER seçeneklerine bakınız. Bir set ortağı maddesi, hangi ortak üzerinde belirlendiğine bakılmaksızın, veritabanının her iki kopyasını da etkiler.
Bir SET PARTNER ifadesi çalıştırmak için, her iki ortağın uç noktalarının DURUMU BAŞLATILMIŞTIR. Ayrıca, her ortak sunucu örneğinin veritabanı yansıtma uç noktasının ROLÜ ya PARTNER ya da ALL olarak ayarlanmalıdır. Bir uç noktayı nasıl belirtileceği hakkında bilgi için, Windows Kimlik Doğrulaması için Veritabanı Aynalama Uç Noktası Oluştur bölümüne bakınız. Bir sunucu örneğinin veritabanı yansıtma uç noktasının rolünü ve durumunu öğrenmek için, o örnekte aşağıdaki Transact-SQL ifadesini kullanın:
SELECT role_desc, state_desc FROM sys.database_mirroring_endpoints
<partner_option> ::=
Uyarı
SET PARTNER maddesi için yalnızca bir <partner_option> izin verilir.
'partner_server' Yeni bir veritabanı yansıtma oturumunda bir devre dışı ortağı olarak görev yapacak SQL Server örneğinin sunucu ağ adresini belirtir. Her oturum iki ortak gerektirir: biri ana sunucu olarak, diğeri ise ayna sunucusu olarak başlar. Bu ortakların farklı bilgisayarlarda kalmasını öneriyoruz.
Bu seçenek, her partner için seans başına bir kez belirtilir. Bir veritabanı aynalama oturumu başlatmak için iki ALTER DATABASE veritabanı SET PARTNER ='partner_server' ifadesi gerekir. Sıralamaları önemli. Öncelikle, ayna sunucusuna bağlanın ve ana sunucu örneğini partner_server olarak belirtin (SET PARTNER ='principal_server'). İkinci olarak, ana sunucuya bağlanın ve aynalı sunucu örneğini partner_server olarak belirtin (SET PARTNER ='mirror_server'); Bu, bu iki ortak arasında bir veritabanı yansıtma oturumu başlatır. Daha fazla bilgi için Veritabanı Aynalamasını Ayarlama bölümüne bakınız.
partner_server değeri bir sunucu ağ adresidir. Bu şu sözdizimine sahiptir:
TCP**://system-address<>:**<port>
where
- <sistem adresi> , hedef bilgisayar sistemini kesin olarak tanımlayan bir dizidir; örneğin sistem adı, tam nitelikli bir alan adı veya IP adresi.
- <Port> , partner sunucu örneğinin yansıtma uç noktasıyla ilişkilendirilen bir port numarasıdır.
Daha fazla bilgi için bkz. Bir Sunucu Ağ Adresi Belirt - Veritabanı Yansıtma.
Aşağıdaki örnek, SET PARTNER ='partner_server' cümlesini göstermektedir:
'TCP://MYSERVER.mydomain.Adventure-Works.com:7777'
Önemli
Bir oturum, SQL Server Management Studio yerine ALTER DATABASE ifadesi kullanılarak kurulduysa, oturum varsayılan olarak tam işlem güvenliğine ayarlanır (SAFETY FULL olarak ayarlanır) ve otomatik yedekleme olmadan yüksek güvenlik modunda çalışır. Otomatik devreye izin vermek için bir tanık yapılandırın; yüksek performans modunda çalışmak için işlem güvenliği (SAFETY SHUT) kapatılır.
FAILOVER Ana sunucudan aynaya manuel olarak başarısız olur. FAILOVER'ı sadece ana sunucuda belirtebilirsiniz. Bu seçenek yalnızca SAFETY ayarı TAM (varsayılan olarak) olduğunda geçerlidir.
FAILOVER seçeneği, ana veritabanı bağlamı olarak gereklidir .
FORCE_SERVICE_ALLOW_DATA_LOSS, ana sunucu veritabanı senkronize olmayan durumda veya otomatik devretme gerçekleşmediğinde senkronize durumda arızalandığında veritabanı hizmetini aynaya veritabanına zorunlu kılıyor.
Hizmeti zorunlu olarak yalnızca ana sunucu artık çalışmazsa öneririz. Aksi takdirde, bazı istemciler yeni ana veritabanı yerine orijinal ana veritabanına erişmeye devam edebilir. FORCE_SERVICE_ALLOW_DATA_LOSS yalnızca ayna sunucusunda ve yalnızca aşağıdaki tüm koşullar altında mevcuttur:
- Ana sunucu kapalı.
- WITNESS KAPALı olarak ayarlanmış veya tanık ayna sunucusuna bağlanmıştır.
Hizmeti yalnızca veritabanına hemen geri getirmek için bazı verileri kaybetme riskini göze almaya istekliyseniz servisi zorunlu edin.
Zorunlu hizmet oturumu askıya alır ve orijinal ana veritabanındaki tüm verileri geçici olarak korur. Orijinal ana sunucu hizmete girdiğinde ve yeni ana sunucu ile iletişim kurabildiğinde, veritabanı yöneticisi hizmete devam edebilir. Oturum devam ettiğinde, gönderilmemiş kayıtlar ve ilgili güncellemeler kaybolur.
KAPALı: Veritabanı aynalama oturumunu kaldırır ve veritabanından yansıtmayı kaldırır. Her iki partnerin OFF olduğunu belirtebilirsiniz. Bilgi için, mirroring'in kaldırılmasının etkisi hakkında bkz. Veritabanı Aynalamasının Kaldırılması.
ÖZGEÇ Askıya alınmış bir veritabanı yansıtma oturumunu yeniden başlatıyor. RESUME'u sadece ana sunucuda belirtebilirsiniz.
GÜVENLİK { FULL | KAPALI } İşlem güvenliği seviyesini belirler. SAFETY sadece ana sunucuda belirtebilirsiniz.
Varsayılan TAM DURUM. Tam güvenlikle, veritabanı yansıtma oturumu senkron olarak ( yüksek güvenlik modunda) çalışır. SAFETY OFF olarak ayarlanmışsa, veritabanı aynalama oturumu asenkron olarak ( yüksek performans modunda) çalışır.
Yüksek güvenlik modunun davranışı kısmen tanıktan asılıdır, aşağıdaki gibi:
Güvenlik TAM olarak ayarlandığında ve oturum için bir tanık ayarlandığında, oturum yüksek güvenlik modunda otomatik devre ile çalışır. Ana sunucu kaybedildiğinde, veritabanı senkronize olursa ve aynalı sunucu örneği ile witness hala birbirine bağlıysa (yani yeterli sayıda bulunuyorlarsa) oturum otomatik olarak geçer. Daha fazla bilgi için bkz. Quorum: Bir Tanık Veritabanı Erişilebilirliğini Nasıl Etkiler - Veritabanı Yansıtma.
Oturum için bir tanık ayarlanmışsa ancak şu anda bağlantısı kesilmişse, ayna sunucusunun kaybı ana sunucunun çökmesine neden olur.
Güvenlik TAM olarak ayarlandığında ve tanık KAPALı olduğunda, oturum otomatik devre olmadan yüksek güvenlik modunda çalışır. Eğer aynalı sunucu örneği çökerse, ana sunucu örneği etkilenmez. Ana sunucu örneği bozulursa, hizmeti (olası veri kaybı ile) aynalı sunucu örneğine zorla gönderebilirsiniz.
SAFETY OFF olarak ayarlanmışsa, oturum yüksek performans modunda çalışır ve otomatik devretme ile manuel devre desteklenmez. Ancak, aynadaki sorunlar ana sunucuyu etkilemez ve ana sunucu örneği kapanırsa, gerekirse (olası veri kaybı ile) ayna sunucu örneğine servisi zorlayabilirsiniz—WITNESS KAPALıysa veya Witness şu anda aynaya bağlıysa. Servisin zorlaması hakkında daha fazla bilgi için bu bölümün başındaki "FORCE_SERVICE_ALLOW_DATA_LOSS" bölümüne bakınız.
Önemli
Yüksek performans modu tanık kullanmak için tasarlanmamıştır. Ancak, GÜVENLİĞİ KAPALı olarak ayarladığınızda, WITNESS'in KAPALı olduğundan emin olmanızı şiddetle tavsiye ederiz.
SUSPEND bir veritabanı yansıtma oturumunu duraklatıyor.
Her iki partnere de SUSPEND belirtebilirsiniz.
TIMEOUT tam sayı Zaman aşım süresini saniye cinsinden belirtir. Zaman aşımı, bir sunucu örneğinin yansıtma oturumunda başka bir örnekten PING mesajı almak için beklediği maksimum süredir ve ardından o diğer örneği kapatılmış olarak kabul eder.
TIMEOUT seçeneğini sadece ana sunucuda belirtebilirsiniz. Bu seçeneği belirtmezseniz, varsayılan olarak zaman dilimi 10 saniyedir. 5 veya daha fazla belirtirseniz, zaman aşımı süresi belirtilen saniye sayısına ayarlanır. Eğer 0 ila 4 saniye arasında bir zaman aşımı değeri belirlerseniz, zaman aşımı otomatik olarak 5 saniyeye ayarlanır.
Önemli
Zaman aşımı süresini 10 saniye veya daha uzun tutmanızı öneririz. Değeri 10 saniyeden kısa ayarlamak, ağır yüklü bir sistemin PING'lerini kaybetme ve yanlış bir hata ilan etme olasılığını yaratır.
Daha fazla bilgi için Veritabanı Yansıtma Sırasında Olası Hatalar bölümüne bakınız.
WITNESS <witness_option> Tanığı yansıtan bir veritabanı tanımlayan veritabanı özelliklerini kontrol eder. A SET WITNESS maddesi, veritabanının her iki kopyasını da etkiler, ancak SET WITNESS'ı yalnızca ana sunucuda belirtebilirsiniz. Bir tanık oturum için belirlenmişse, GÜVENLİK ayarı ne olursa olsun veritabanına tebliğ etmek için yeterli yeter gereklidir; Daha fazla bilgi için bkz. Quorum: Bir Tanık Veritabanı Erişilebilirliğini Nasıl Etkiler - Veritabanı Yansıtma.
Tanık ve devretme ortaklarının ayrı bilgisayarlarda bulunmasını öneriyoruz. Tanık hakkında bilgi için Veritabanı Aynalı Tanık sayfasına bakınız.
Bir SET WITNESS ifadesi çalıştırmak için, hem ana hem de witness sunucu örneklerinin uç noktalarının DURUMU BAŞLATILMIŞTIR. Ayrıca, bir tanık sunucu örneğinin veritabanı yansıtma uç noktasının ROLÜ ya WITNESS ya da ALL olarak ayarlanmalıdır. Bir uç nokta belirtmek hakkında bilgi için Veritabanı Aynalama Uç Noktası sayfasına bakınız.
Bir sunucu örneğinin veritabanı yansıtma uç noktasının rolünü ve durumunu öğrenmek için, o örnekte aşağıdaki Transact-SQL ifadesini kullanın:
SELECT role_desc, state_desc FROM sys.database_mirroring_endpoints
Uyarı
Tanık üzerinde veritabanı özellikleri ayarlanamaz.
<witness_option> ::=
Uyarı
SET TANIK maddesi uyarınca sadece bir <witness_option> izin verilir.
'witness_server' Veritabanı Motoru'nun bir örnek olarak veritabanı yansıtma oturumu için tanık sunucu olarak görev yapmasını belirtir. SET WITNESS ifadelerini sadece ana sunucuda belirtebilirsiniz.
SET WITNESS = 'witness_server' ifadesinde, witness_server'in sözdizimi partner_server'nin sözdizimi ile aynıdır.
KAPALı Tanığı veritabanı yansıtma oturumundan çıkarıyor. Witness'ı KAPALı olarak ayarlamak otomatik devre devre dışı bırakır. Veritabanı TAM GÜVENLİĞe ayarlanmışsa ve tanık KAPALıysa, aynalı sunucudaki bir hata ana sunucunun veritabanını erişilmez etmesine neden olur.
Açıklamalar
Örnekler
A. Bir tanıkla veritabanı yansıtma oturumu oluşturmak
Bir tanıkla veritabanı aynalama kurmak, güvenliğin yapılandırılmasını ve ayna veritabanını hazırlamayı ve ayrıca ortakları ayarlamak için ALTER DATABASE kullanılmasını gerektirir. Tam kurulum sürecine bir örnek için bkz. Veritabanı Aynalaması Kurulumu.
B. Veritabanı yansıtma oturumu üzerinde manuel olarak başarısız olmak
Manuel failover, herhangi bir veritabanı yansıtma ortağından başlatılabilir. Devre yapmadan önce, mevcut ana sunucu olduğunu düşündüğünüz sunucunun aslında ana sunucu olduğunu doğrulamalısınız. Örneğin, AdventureWorks2025 veritabanı için, mevcut ana sunucu olduğunu düşündüğünüz sunucu örneğinde aşağıdaki sorguyu çalıştırın:
SELECT db.name, m.mirroring_role_desc
FROM sys.database_mirroring m
JOIN sys.databases db
ON db.database_id = m.database_id
WHERE db.name = N'AdventureWorks2022';
GO
Eğer sunucu örneği gerçekten ana görev ise, değeri mirroring_role_descPrincipal'dir. Eğer bu sunucu örneği aynalı sunucu olsaydı, ifadesi SELECT dönerdi Mirror.
Aşağıdaki örnek, sunucunun mevcut ana sunucu olduğunu varsaymaktadır.
Veritabanı yansıtma partnerine manuel olarak geçiş yapın:
ALTER DATABASE AdventureWorks2022 SET PARTNER FAILOVER; GOYeni aynada yedekleme sonuçlarını doğrulamak için aşağıdaki sorguyu çalıştırın:
SELECT db.name, m.mirroring_role_desc FROM sys.database_mirroring m JOIN sys.databases db ON db.database_id = m.database_id WHERE db.name = N'AdventureWorks2022'; GO
Mevcut değeri mirroring_role_desc şimdi Mirror.