alter database veritabanı yansıtma (Transact-sql)

[!NOT]

Bu özellik Microsoft SQL Server'ın ilerideki bir sürümünde kaldırılacaktır. Yeni geliştirme işlerinde bu özelliği kullanmaktan kaçının ve bu özelliği kullanmakta olan uygulamalarda değişiklik yapmayı planlayın.Kullanım AlwaysOn Kullanılabilirlik Gruplarıyerine.

Denetimleri veritabanı için veritabanı yansıtma. Seçenekleri yansıtma veritabanı ile belirtilen değerleri, her iki veritabanı kopyası ve veritabanı yansıtma oturum bir bütün olarak uygulanır. Tek bir <database_mirroring_option> alter database deyimi izin verilir.

[!NOT]

Yapılandırma performansı etkileyebilir çünkü yoğun olmayan saatlerde veritabanı yansıtma yapılandırmanız önerilir.

alter database seçenekleri için bkz: alter veritabanı (Transact-sql). alter database set seçenekleri için bkz: alter database set seçenekleri (Transact-sql).

Konu bağlantısı simgesi Transact-SQL Sözdizim 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 
            }

Bağımsız değişkenler

Önemli notÖnemli

set ortağı ya da set WITNESS komutu girdiğinizde başarıyla bitiren, ancak daha sonra başarısız.

[!NOT]

alter database veritabanı yansıtma seçenekleri bulunan bir veritabanı için kullanılabilir değil.

  • database_name
    Değiştirilmesi için veritabanı adıdır.

  • ORTAK <partner_option>
    Veritabanı yansıtma oturumu ve davranışlarını yerine çalışma ortakları veritabanı özelliklerini denetler. Ya da ortak bazı set ortağı seçenekler ayarlanabilir; yansıtma sunucu asıl sunucu veya diğerleri ile sınırlıdır. Daha fazla bilgi için bkz: izleyen bireysel ortak seçenekleri. set ortağı yan tümcesi veritabanı üzerinde belirtilen ortak bakılmaksızın her iki kopyasını etkiler.

    set ortağı deyimini yürütmek için her iki ortakları bitiş durumu başlatıldı için ayarlanmış olması gerekir. Ayrıca her ortak sunucu örneği bitiş noktası yansıtma veritabanı rolü tüm ya da ortağı için ayarlamanız gerekir unutmayın. Bir bitiş noktası belirtme hakkında daha fazla bilgi için bkz: Bitiş noktası için Windows kimlik doğrulaması (Transact-sql) yansıtma veritabanı oluşturma. Rolünü ve durumu, o örneğe bir sunucu örneği bitiş noktası yansıtma veritabanı kullanın aşağıdaki bilgi edinmek için Transact-SQLdeyimi:

    SELECT role_desc, state_desc FROM sys.database_mirroring_endpoints
    
    SELECT role_desc, state_desc FROM sys.database_mirroring_endpoints
    

    <partner_option> :: =

    [!NOT]

    Tek bir <partner_option> set ortağı yan tümcesi izin verilir.

    • 'partner_server'
      Sunucu ağ adresi örneği belirtir SQL Serveryeni bir veritabanı oturumu yansıtma yerine çalışma ortağı görecek. İki ortağı her oturum gerektirir: bir asıl sunucu, ve diğer yansıtma sunucu başlayan. Bu Ortaklar farklı bilgisayarlarda bulunan öneririz.

      Bu seçenek belirtilen her bir ortak oturum başına gerçekleşir. Bir veritabanı oturumu yansıtma başlatma gerektirir iki alter database databaseset ortağı ='partner_server' deyimleri. Sırası önemlidir. Önce yansıtma sunucuya bağlanmak ve asıl sunucu örneği olarak belirtmek partner_server(set ortağı ='principal_server'). İkinci olarak, asıl sunucuya bağlanmak ve yansıtma sunucu örneği olarak belirtmek partner_server(set ortağı ='mirror_server'); Bu iki ortağı arasında oturum yansıtma veritabanı balar. Daha fazla bilgi için, bkz. (SQL Server) yansıtma veritabanı ayarlama.

      Değeri partner_serverbir sunucu ağ adresi. Bu sözdizimi aşağıdaki gibidir:

      TCP**://<system-address>:**<port>

      Burada

      • <system-address>Sistem adı, tam etki alanı adı veya IP adresi, hedef bilgisayar sistemi belirsizliğe yer bırakmadan tanımlar gibi bir karakter dizisidir.

      • <port>ortak sunucu örneği yansıtma bitiş noktası ile ilişkili bir bağlantı noktası numarasıdır.

      Daha fazla bilgi için, bkz. (Veritabanı yansıtma) sunucu ağ adresini belirtme.

      Aşağıdaki örnekte gösterilmektedir set ortağı ='partner_server' yan tümcesi:

      'TCP://MYSERVER.mydomain.Adventure-Works.com:7777'
      
      'TCP://MYSERVER.mydomain.Adventure-Works.com:7777'
      
      Önemli notÖnemli

      Bir oturumu yerine alter database deyimini kullanarak ayarlanmışsa SQL Server Management Studio, oturumu (güvenliği tam olarak ayarlanır) varsayılan olarak tam işlem güvenliği için ayarlanır ve yüksek güvenlik modunda otomatik yerine çalışma olmadan çalıştırır. Otomatik yerine çalışma izin vermek için bir witness yapılandırmak; yüksek performanslı modunda çalıştırmak için işlem güvenliği devre dışı (Emanet kapalı) açın.

    • YERİNE ÇALIŞMA
      Yansıtma sunucu asıl sunucu üzerinde el ile başarısız olur. Yalnızca asıl sunucu üzerinde yerine çalışma belirtebilirsiniz. Bu seçenek, yalnızca güvenlik ayarı tam (varsayılan) olduğunda geçerlidir.

      Yerine çalışma seçeneği gerektirir ana veritabanı içerik olarak.

    • FORCE_SERVICE_ALLOW_DATA_LOSS
      Otomatik failover oluşmaz zaman asıl sunucu veritabanı eşitlenmemiş bir devlet veya eşitlenmiş durumda başarısız olduktan sonra kuvvetleri hizmet yansıtma veritabanı için veritabanı.

      Yalnızca asıl sunucu artık çalıştırıyorsa, hizmet zorlama öneririz. Aksi takdirde, bazı istemciler yeni asıl veritabanı yerine özgün asıl veritabanına erişmeye devam edebilir.

      FORCE_SERVICE_ALLOW_DATA_LOSS yansıtma sunucuda yalnızca ve yalnızca aşağıdaki koşullar altında kullanılabilir:

      • Asıl sunucu çalışmıyor.

      • WITNESS için off ayarlamak veya witness yansıtma sunucuya bağlı.

      Yalnızca servis hemen veritabanına geri yüklemek için bazı verileri kaybetme riski hazırız hizmet zorlamak.

      Hizmet zorlamak, geçici olarak özgün asıl veritabanındaki tüm verileri koruyarak oturumu askıya alır. Veritabanı Yöneticisi, sonra özgün anapara servisi ve güçlü-e doğru yeni asıl sunucu ile iletişim kurmak, hizmet devam edebilirsiniz. Oturumun devam ettiğinde, tüm gönderilmemiş günlük kayıtlarını ve ilgili güncelleştirmeleri kaybolur.

    • OFF
      Bir veritabanı oturumu yansıtma ve yansıtma veritabanından kaldırır. KAPALI ya da ortak belirtebilirsiniz. Yansıtma kaldırma etkisi hakkında bilgi için bkz Veritabanı (SQL Server) yansıtma kaldırma.

    • ÖZGEÇMİŞ
      Askıya alınan bir veritabanı oturumu yansıtma devam ettirir. Yalnızca asıl sunucu üzerinde özgeçmiş belirtebilirsiniz.

    • EMNİYET {TÜM | KAPALI}
      Hareket güvenliği düzeyini ayarlar. Yalnızca asıl sunucu üzerinde emniyet belirtebilirsiniz.

      Varsayılan değer FULL'tur. Tam güvenlik, veritabanı oturumu yansıtma eş zamanlı çalışır (içinde yüksek güvenlik modunu). EMNİYET off için ayarlanmış ise, veritabanı oturumu yansıtma zaman uyumsuz olarak çalışır (içinde yüksek performans modu).

      Yüksek güvenlik modunun davranışı witness üzerinde kısmen gibi bağlıdır:

      • Güvenliği tam olarak ayarlanır ve witness oturum için oturum otomatik yerine çalışma ile yüksek güvenlik modunda çalıştırır. Asıl sunucu kesildiğinde, oturum otomatik olarak üzerinde veritabanı eşitlenmiş ve witness ve yansıtma sunucu örneği hala birbirine bağlı başarısız olur (diğer bir deyişle, çekirdek var). Daha fazla bilgi için, bkz. Çekirdek: (Veritabanı yansıtma) Veritabanı kullanılabilirlik bir Witness nasıl etkiler.

        Witness oturum için ayarlanır, ancak şu anda kesilir, yansıtma sunucu kaybının asıl sunucu aşağı gitmek neden olur.

      • Güvenliği tam olarak ayarlanır ve WITNESS için off ayarlamak, oturum yüksek güvenlik modunda otomatik yerine çalışma olmadan çalıştırır. Asıl sunucu örneği yansıtma sunucu örneği iner, etkilenmez. Asıl sunucu örneği iner, yansıtma sunucu örneği (ile olası veri kaybını ile) servis zorlayabilirsiniz.

      EMNİYET off için ayarlanır, oturumu yüksek performanslı modunda çalışır ve otomatik yerine çalışma ve el ile yerine çalışma desteklenmez. Ancak, sorunlar aynada anapara etkilemez ve asıl sunucu örneği iner, eğer gerekirse (ile olası veri kaybını) hizmetini yansıtma sunucu örneği için zorlayabilir — WITNESS off için ayarlanır veya witness yansıtma şu anda bağlı. Hizmet zorlama hakkında daha fazla bilgi için bkz: "FORCE_SERVICE_ALLOW_DATA_LOSS" daha önce bu bölümde.

      Önemli notÖnemli

      Yüksek performans modu şahit kullanmak üzere tasarlanmamıştır. EMNİYET off için ayarlanmış olduğunda, ancak WITNESS off için ayarlanır sağlamak öneririz.

    • ASKIYA ALMA
      Bir veritabanı oturumu yansıtma duraklatır.

      Askıda kalma ya da ortak belirtebilirsiniz.

    • ZAMAN AŞIMIinteger
      Zaman aşımı süresini saniye cinsinden belirtir. Zaman aşımı sunucu örneği yansıtma oturum kesilecek bu örneği düşünmeden önce başka bir örneğinden PING iletisi almayı bekleyeceği maksimum süredir.

      Yalnızca asıl sunucu zaman aşımı seçeneği belirtebilirsiniz. Varsayılan olarak bu seçeneği belirtmezseniz, zaman aralığı 10 saniyedir. If you specify 5 veya daha yüksek, zaman aşımı saniye belirtilen sayıda için ayarlanır. 0-4 Saniyelik bir zaman aşımı değerini belirtirseniz, zaman aşımı süresi 5 saniye ile otomatik olarak ayarlanır.

      Önemli notÖnemli

      Zaman aşımı süresini 10 saniye ya da daha fazla tutmanızı öneririz. Ayar değeri 10 saniyeden daha az bir süre için ağır yüklü bir sistemin ping eksik ve yanlış hata bildirme imkanı yaratır.

      Daha fazla bilgi için, bkz. Veritabanı yansıtma sırasında olası hataları.

  • TANIK <witness_option>
    Witness yansıtma veritabanı veritabanı özelliklerini denetler. Her iki veritabanı kopyası bir set WITNESS yan etkiler, ancak yalnızca asıl sunucu üzerinde set WITNESS belirtebilirsiniz. Bir witness bir oturum için ayarlanmışsa, çekirdek veritabanı, güvenlik ayarı ne olursa olsun hizmet için gereklidir; daha fazla bilgi için bkz: Çekirdek: (Veritabanı yansıtma) Veritabanı kullanılabilirlik bir Witness nasıl etkiler.

    Tanık ve yerine çalışma ortakları ayrı bilgisayarlarda bulunan öneririz. Tanık hakkında daha fazla bilgi için bkz: Witness yansıtma veritabanı.

    set WITNESS deyimini yürütmek için hem Müdürü hem de şahit sunucu örnekleri bitiş durumu başlatıldı için ayarlanmış olması gerekir. Ayrıca bir witness sunucu örneği bitiş noktası yansıtma veritabanı rolü tüm ya da TANIK için ayarlamanız gerekir unutmayın. Bir bitiş noktası belirtme hakkında daha fazla bilgi için bkz: Veritabanı yansıtma bitiş noktası (SQL Server).

    Rolünü ve durumu, o örneğe bir sunucu örneği bitiş noktası yansıtma veritabanı kullanın aşağıdaki bilgi edinmek için Transact-SQLdeyimi:

    SELECT role_desc, state_desc FROM sys.database_mirroring_endpoints
    
    SELECT role_desc, state_desc FROM sys.database_mirroring_endpoints
    

    [!NOT]

    Veritabanı özellikleri witness üzerinde ayarlanamaz.

    <witness_option> :: =

    [!NOT]

    Tek bir <witness_option> set WITNESS yan tümcesi izin verilir.

    • 'witness_server'
      Örneğini belirtir Veritabanı Altyapısıoturumu yansıtma veritabanında witness sunucu görecek. set WITNESS deyimleri yalnızca asıl sunucu üzerinde belirtebilirsiniz.

      set WITNESS içinde ='witness_server' deyimi, sözdizimi witness_serversözdizimi aynıdır partner_server.

    • OFF
      Witness yansıtma oturum bir veritabanından kaldırır. WITNESS için off ayarlamak otomatik failover devre dışı bırakır. Veritabanı tam güvenilirlik olarak ayarlanır ve WITNESS için off ayarlamak, veritabanı kullanılamaz yapmak asıl sunucu yansıtma sunucu arıza neden olur.

Örnekler

A.Oturum bir witness yansıtma veritabanı oluşturma

Bir witness ile veritabanı yansıtma yukarı ayarı güvenlik yapılandırma ve yansıtma veritabanı hazırlama ve ayrıca ortakların ayarlamak için alter database kullanarak gerektirir. Tam kurulum işlemi örneği için bkz: (SQL Server) yansıtma veritabanı ayarlama.

B.Veritabanı oturumu yansıtma el ile başarısız

El ile yerine çalışma ortağı yansıtma ya da veritabanından başlatılabilir. Önce başarısız olan üzerinden sunucunun geçerli asıl sunucu için inanıyorum aslında asıl sunucu olduğunu doğrulamanız gerekir. Örneğin AdventureWorks2012 veritabanı, Sence bu sunucu örneği geçerli asıl sunucu, aşağıdaki sorguyu yürütü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'AdventureWorks2012'; 
GO

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'AdventureWorks2012'; 
GO

Sunucu örneği asıl değerinin aslında olup olmadığını mirroring_role_descolan Principal. Bu sunucu örneği yansıtma sunucu olsaydı SELECTdeyimi döndürür Mirror.

Aşağıdaki örnek, sunucu geçerli asıl adı olduğunu varsayar.

  1. El ile üzerinden ortak yansıtma veritabanı başarısız:

    ALTER DATABASE AdventureWorks2012 SET PARTNER FAILOVER;
    GO
    
    ALTER DATABASE AdventureWorks2012 SET PARTNER FAILOVER;
    GO
    
  2. Yerine çalışma yeni yansıtma üzerinde sonuçlarını doğrulamak için aşağıdaki sorguyu yürütü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'AdventureWorks2012'; 
    GO
    
    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'AdventureWorks2012'; 
    GO
    

    Cari değerini mirroring_role_descŞimdi Mirror.

Ayrıca bkz.

Başvuru

Veritabanı (Transact-sql) oluştur

databasepropertyex (Transact-sql)

sys.database_mirroring_witnesses (Transact-sql)