Aracılığıyla paylaş


PowerShell kullanarak Always On kullanılabilirlik grubu oluşturma

Şunlar için geçerlidir: SQL Server

Bu konu başlığında, SQL Server'da PowerShell kullanarak Bir Always On kullanılabilirlik grubu oluşturmak ve yapılandırmak için PowerShell cmdlet'lerinin nasıl kullanılacağı açıklanmaktadır. Kullanılabilirlik grubu, tek bir birim olarak yük devredecek bir kullanıcı veritabanları kümesini ve yük devretmeyi destekleyen kullanılabilirlik çoğaltmaları olarak bilinen bir yük devretme iş ortakları kümesini tanımlar.

Uyarı

Kullanılabilirlik gruplarına giriş için bkz. AlwaysOn Kullanılabilirlik Gruplarına (SQL Server) Genel Bakış.

Uyarı

PowerShell cmdlet'lerini kullanmaya alternatif olarak Kullanılabilirlik Grubu Oluşturma sihirbazını veya Transact-SQL'i kullanabilirsiniz. Daha fazla bilgi için bkz. Yeni Kullanılabilirlik Grubu İletişim Kutusunu Kullanma (SQL Server Management Studio) veya Kullanılabilirlik Grubu Oluşturma (Transact-SQL).

Başlamadan Önce

Önkoşullar, Kısıtlamalar ve Öneriler

  • Kullanılabilirlik grubu oluşturmadan önce, SQL Server'ın her bir ana bilgisayar örneğinin tek bir WSFC yük devretme kümesinin farklı bir düğümünde yer aldığını kontrol edin. Ayrıca, sunucu örneklerinizin diğer sunucu örneği önkoşullarını karşıladığını ve diğer Tüm AlwaysOn kullanılabilirlik grubu gereksinimlerini karşıladığını ve önerilerin farkında olduğunuzu doğrulayın. Daha fazla bilgi için Her Zaman Açık Kullanılabilirlik Grupları (SQL Server) için Önkoşullar, Kısıtlamalar ve Öneriler'i okumanızı kesinlikle öneririz.

Permissions

Sysadmin sabit sunucu rolünde üyelik ve CREATE AVAILABILITY GROUP sunucu izni, ALTER ANY AVAILABILITY GROUP izni veya CONTROL SERVER izni gerektirir.

Kullanılabilirlik Grubu Oluşturmak ve Yapılandırmak için PowerShell Kullanma

Aşağıdaki tabloda, kullanılabilirlik grubu yapılandırmayla ilgili temel görevler listelenmektedir ve PowerShell cmdlet'leri tarafından desteklenen görevler gösterilir. Always On kullanılabilirlik grupları görevleri, tabloda sunuldukları sırada gerçekleştirilmelidir.

Görev PowerShell Cmdlet'leri (Varsa) veya Transact-SQL Deyimi Görev Nerede Yapılır?
Veritabanı yansıtma uç noktası oluşturma (SQL Server örneği başına bir kez) New-SqlHadrEndPoint Veritabanı yansıtma uç noktası olmayan her bir sunucu örneğinde çalıştırın.

Mevcut veritabanı yansıtma uç noktasını değiştirmek için Set-SqlHadrEndpoint kullanın.
Kullanılabilirlik grubu oluşturma İlk olarak, kullanılabilirlik grubuna eklemeyi planladığınız iki kullanılabilirlik çoğaltmasının her biri için bellek içi kullanılabilirlik-çoğaltma nesnesi oluşturmak üzere -AsTemplate parametresiyle New-SqlAvailabilityReplica cmdlet'ini kullanın.

Ardından , New-SqlAvailabilityGroup cmdlet'ini kullanarak ve kullanılabilirlik-çoğaltma nesnelerinize başvurarak kullanılabilirlik grubunu oluşturun.
Başlangıçtaki birincil replikayı barındıracak olan sunucu örneğinde çalıştırın.
İkincil kopyayı yüksek erişilebilirlik grubuna ekleme Join-SqlAvailabilityGroup (SQL Erişilebilirlik Grubuna Katıl) İkincil çoğaltmayı barındıran her sunucu örneğinde komutu çalıştırın.
İkincil veritabanını hazırlama Backup-SqlDatabase ve Restore-SqlDatabase Birincil çoğaltmayı barındıran sunucu örneğinde yedeklemeler oluşturun.

NoRecovery geri yükleme parametresini kullanarak ikincil çoğaltmayı barındıran her sunucu örneğinde yedeklemeleri geri yükleyin. Dosya yolları birincil çoğaltmayı barındıran bilgisayarlar ile hedef ikincil çoğaltma arasında farklılık gösteriyorsa RelocateFile geri yükleme parametresini de kullanın.
Her ikincil veritabanını kullanılabilirlik grubuna ekleyerek veri eşitlemeyi başlatma Add-SqlAvailabilityDatabase İkincil replikayı barındıran her sunucu örneğinde çalıştırın.

Uyarı

Verilen görevleri gerçekleştirmek için dizini (cd) belirtilen sunucu örneği veya örnekleriyle değiştirin.

PowerShell'i kullanma

SQL Server PowerShell Sağlayıcısı'nı ayarlayın ve kullanın.

Uyarı

Belirli bir cmdlet'in söz dizimini ve örneğini görüntülemek için SQL Server PowerShell ortamındaki Get-Help cmdlet'ini kullanın. Daha fazla bilgi için bkz. Yardım Alma SQL Server PowerShell.

  1. Dizini (cd) birincil çoğaltmayı barındıracak sunucu örneğiyle değiştirin.

  2. Birincil çoğaltma için bellek içi kullanılabilirlik çoğaltması nesnesi oluşturun.

  3. İkincil çoğaltmaların her biri için bellek içi kullanılabilirlik çoğaltması nesnesi oluşturun.

  4. Kullanılabilirlik grubunu oluşturun.

    Uyarı

    Kullanılabilirlik grubu adı için uzunluk üst sınırı 128 karakterdir.

  5. Yeni ikincil çoğaltmayı kullanılabilirlik grubuna ekleyin, bkz. İkincil Çoğaltmayı Bir Kullanılabilirlik Grubuna (SQL Server) Ekleme.

  6. Kullanılabilirlik grubundaki her veritabanı için NORECOVERY ile RESTORE komutunu kullanarak birincil veritabanının son yedeklemelerini geri yükleyerek ikincil bir veritabanı oluşturun.

  7. Her yeni ikincil veritabanını kullanılabilirlik grubuna ekleyin, bkz. İkincil Çoğaltmayı Kullanılabilirlik Grubuna (SQL Server) Birleştirme.

  8. (isteğe bağlı) Yeni kullanılabilirlik grubunun içeriğini doğrulamak için Windows dir komutunu kullanın.

Uyarı

Sunucu örneklerinin SQL Server hizmet hesapları farklı etki alanı kullanıcı hesapları altında çalıştırılırsa, her sunucu örneğinde diğer sunucu örneği için bir oturum açma oluşturun ve yerel veritabanı yansıtma uç noktasına bu oturum açma BAĞLAN iznini verin.

Example

Aşağıdaki PowerShell örneği, <myAvailabilityGroup> adlı basit bir kullanılabilirlik grubu oluşturur ve iki kullanılabilirlik çoğaltması ile bir kullanılabilirlik veritabanını yapılandırır. Örnek:

  1. ve işlem günlüğünü yedekler <myDatabase> .

  2. <myDatabase> ve işlem günlüğünü -NoRecovery seçeneğini kullanarak geri yükler.

  3. Sql Server'ın yerel örneği (adlı PrimaryComputer\Instance) tarafından barındırılacak olan birincil çoğaltmanın bellek içi bir gösterimini oluşturur.

  4. bir SQL Server örneği (adlı SecondaryComputer\Instance) tarafından barındırılacak olan ikincil çoğaltmanın bellek içi bir gösterimini oluşturur.

  5. adlı <myAvailabilityGroup>bir kullanılabilirlik grubu oluşturur.

  6. İkincil çoğaltmayı kullanılabilirlik grubuna ekler.

  7. İkincil veritabanını kullanılabilirlik grubuna ekler.

# Backup my database and its log on the primary  
Backup-SqlDatabase `  
    -Database "<myDatabase>" `  
    -BackupFile "\\share\backups\<myDatabase>.bak" `  
    -ServerInstance "PrimaryComputer\Instance"  
  
Backup-SqlDatabase `  
    -Database "<myDatabase>" `  
    -BackupFile "\\share\backups\<myDatabase>.log" `  
    -ServerInstance "PrimaryComputer\Instance" `  
    -BackupAction Log   
  
# Restore the database and log on the secondary (using NO RECOVERY)  
Restore-SqlDatabase `  
    -Database "<myDatabase>" `  
    -BackupFile "\\share\backups\<myDatabase>.bak" `  
    -ServerInstance "SecondaryComputer\Instance" `  
    -NoRecovery  
  
Restore-SqlDatabase `  
    -Database "<myDatabase>" `  
    -BackupFile "\\share\backups\<myDatabase>.log" `  
    -ServerInstance "SecondaryComputer\Instance" `  
    -RestoreAction Log `  
    -NoRecovery  
  
# Create an in-memory representation of the primary replica.  
$primaryReplica = New-SqlAvailabilityReplica `  
    -Name "PrimaryComputer\Instance" `  
    -EndpointURL "TCP://PrimaryComputer.domain.com:5022" `  
    -AvailabilityMode "SynchronousCommit" `  
    -FailoverMode "Automatic" `  
    -Version 12 `  
    -AsTemplate  
  
# Create an in-memory representation of the secondary replica.  
$secondaryReplica = New-SqlAvailabilityReplica `  
    -Name "SecondaryComputer\Instance" `  
    -EndpointURL "TCP://SecondaryComputer.domain.com:5022" `  
    -AvailabilityMode "SynchronousCommit" `  
    -FailoverMode "Automatic" `  
    -Version 12 `  
    -AsTemplate  
  
# Create the availability group  
New-SqlAvailabilityGroup `  
    -Name "<myAvailabilityGroup>" `  
    -Path "SQLSERVER:\SQL\PrimaryComputer\Instance" `  
    -AvailabilityReplica @($primaryReplica,$secondaryReplica) `  
    -Database "<myDatabase>"  
  
# Join the secondary replica to the availability group.  
Join-SqlAvailabilityGroup -Path "SQLSERVER:\SQL\SecondaryComputer\Instance" -Name "<myAvailabilityGroup>"  
  
# Join the secondary database to the availability group.  
Add-SqlAvailabilityDatabase -Path "SQLSERVER:\SQL\SecondaryComputer\Instance\AvailabilityGroups\<myAvailabilityGroup>" -Database "<myDatabase>"  

İlgili Görevler

Always On Kullanılabilirlik Grupları için bir sunucu örneği yapılandırmak için

Kullanılabilirlik grubu ve çoğaltma özelliklerini yapılandırmak için

Kullanılabilirlik grubu yapılandırmasını tamamlamak için

Kullanılabilirlik grubu oluşturmanın alternatif yolları

Always On Kullanılabilirlik Grupları yapılandırmasıyla ilgili sorunları gidermek için

İlgili İçerik

Ayrıca Bkz.

Veritabanı Yansıtma Uç Noktası (SQL Server)
Always On Kullanılabilirlik Grupları (SQL Server) Genel Bakış