Membuat grup ketersediaan AlwaysOn menggunakan PowerShell

Berlaku untuk:SQL Server

Topik ini menjelaskan cara menggunakan cmdlet PowerShell untuk membuat dan mengonfigurasi grup ketersediaan AlwaysOn dengan menggunakan PowerShell di SQL Server. Grup ketersediaan mendefinisikan sekumpulan database pengguna yang akan gagal sebagai satu unit dan sekumpulan mitra failover, yang dikenal sebagai replika ketersediaan, yang mendukung failover.

Catatan

Untuk pengenalan grup ketersediaan, lihat Gambaran Umum Grup Ketersediaan AlwaysOn (SQL Server).

Catatan

Sebagai alternatif untuk menggunakan cmdlet PowerShell, Anda bisa menggunakan wizard Buat Grup Ketersediaan atau Transact-SQL. Untuk informasi selengkapnya, lihat Menggunakan Kotak Dialog Grup Ketersediaan Baru (SQL Server Management Studio) atau Membuat Grup Ketersediaan (Transact-SQL).

Sebelum Anda mulai

Prasyarat, Pembatasan, dan Rekomendasi

  • Sebelum membuat grup ketersediaan, verifikasi bahwa instans host SQL Server masing-masing berada pada node Windows Server Failover Clustering (WSFC) yang berbeda dari satu kluster failover WSFC. Selain itu, verifikasi bahwa instans server Anda memenuhi prasyarat instans server lainnya dan bahwa semua persyaratan grup ketersediaan AlwaysOn lainnya terpenuhi dan Anda mengetahui rekomendasi tersebut. Untuk informasi selengkapnya, kami sangat menyarankan Anda membaca Prasyarat, Pembatasan, dan Rekomendasi untuk Grup Ketersediaan AlwaysOn (SQL Server).

Izin

Memerlukan keanggotaan dalam peran server tetap sysadmin dan izin BUAT server GRUP KETERSEDIAAN, UBAH izin GRUP KETERSEDIAAN APA PUN, atau izin SERVER KONTROL.

Menggunakan PowerShell untuk Membuat dan Mengonfigurasi Grup Ketersediaan

Tabel berikut mencantumkan tugas dasar yang terlibat dalam mengonfigurasi grup ketersediaan dan menunjukkan tugas yang didukung oleh cmdlet PowerShell. Tugas grup ketersediaan AlwaysOn harus dilakukan secara berurutan di mana tugas tersebut disajikan dalam tabel.

Task Cmdlet PowerShell (jika Tersedia) atau Pernyataan Transact-SQL Tempat Melakukan Tugas
Membuat titik akhir pencerminan database (sekali per instans SQL Server) New-SqlHadrEndPoint Jalankan pada setiap instans server yang tidak memiliki titik akhir pencerminan database.

Untuk mengubah titik akhir pencerminan database yang sudah ada, gunakan Set-SqlHadrEndpoint.
Membuat grup ketersediaan Pertama, gunakan cmdlet New-SqlAvailabilityReplica dengan parameter -AsTemplate untuk membuat objek replika ketersediaan dalam memori untuk masing-masing dari dua replika ketersediaan yang Anda rencanakan untuk disertakan dalam grup ketersediaan.

Kemudian, buat grup ketersediaan dengan menggunakan cmdlet New-SqlAvailabilityGroup dan referensikan objek replika ketersediaan Anda.
Jalankan pada instans server yang akan menghosting replika utama awal.
Bergabunglah dengan replika sekunder ke grup ketersediaan Join-SqlAvailabilityGroup Jalankan pada setiap instans server yang menghosting replika sekunder.
Menyiapkan database sekunder Backup-SqlDatabase dan Restore-SqlDatabase Buat cadangan pada instans server yang menghosting replika utama.

Pulihkan cadangan pada setiap instans server yang menghosting replika sekunder, menggunakan parameter pemulihan NoRecovery . Jika jalur file berbeda antara komputer yang menghosting replika utama dan replika sekunder target, gunakan juga parameter pemulihan RelocateFile .
Mulai sinkronisasi data dengan menggabungkan setiap database sekunder ke grup ketersediaan Add-SqlAvailabilityDatabase Jalankan pada setiap instans server yang menghosting replika sekunder.

Catatan

Untuk melakukan tugas yang diberikan, ubah direktori (cd) ke instans atau instans server yang ditunjukkan.

Menggunakan PowerShell

Siapkan dan gunakan Penyedia PowerShell SQL Server.

Catatan

Untuk melihat sintaksis dan contoh cmdlet tertentu, gunakan cmdlet Get-Help di lingkungan PowerShell SQL Server. Untuk informasi selengkapnya, lihat Mendapatkan Bantuan SQL Server PowerShell.

  1. Ubah direktori (cd) ke instans server yaitu menghosting replika utama.

  2. Buat objek replika ketersediaan dalam memori untuk replika utama.

  3. Buat objek replika ketersediaan dalam memori untuk setiap replika sekunder.

  4. Buat grup ketersediaan.

    Catatan

    Panjang maksimum untuk nama grup ketersediaan adalah 128 karakter.

  5. Bergabunglah dengan replika sekunder baru ke grup ketersediaan, lihat Bergabung dengan Replika Sekunder ke Grup Ketersediaan (SQL Server).

  6. Untuk setiap database dalam grup ketersediaan, buat database sekunder dengan memulihkan cadangan terbaru dari database utama, menggunakan RESTORE WITH NORECOVERY.

  7. Bergabunglah dengan setiap database sekunder baru ke grup ketersediaan, lihat Bergabung dengan Replika Sekunder ke Grup Ketersediaan (SQL Server).

  8. (opsional) Gunakan perintah Windows dir untuk memverifikasi konten grup ketersediaan baru.

Catatan

Jika akun layanan SQL Server instans server berjalan di bawah akun pengguna domain yang berbeda, pada setiap instans server, buat login untuk instans server lain dan berikan izin CONNECT masuk ini ke titik akhir pencerminan database lokal.

Contoh

Contoh PowerShell berikut membuat dan mengonfigurasi grup ketersediaan sederhana bernama <myAvailabilityGroup> dengan dua replika ketersediaan dan satu database ketersediaan. Contohnya:

  1. Mencadangkan <myDatabase> dan log transaksinya.

  2. <myDatabase> Memulihkan dan log transaksinya, menggunakan opsi -NoRecovery.

  3. Membuat representasi dalam memori dari replika utama, yang akan dihosting oleh instans lokal SQL Server (bernama PrimaryComputer\Instance).

  4. Membuat representasi dalam memori dari replika sekunder, yang akan dihosting oleh instans SQL Server (bernama SecondaryComputer\Instance).

  5. Membuat grup ketersediaan bernama <myAvailabilityGroup>.

  6. Menggabungkan replika sekunder ke grup ketersediaan.

  7. Menggabungkan database sekunder ke grup ketersediaan.

# 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>"  

Tugas Terkait

Untuk mengonfigurasi instans server untuk Grup Ketersediaan AlwaysOn

Untuk mengonfigurasi grup ketersediaan dan properti replika

Untuk menyelesaikan konfigurasi grup ketersediaan

Cara alternatif untuk membuat grup ketersediaan

Untuk memecahkan masalah konfigurasi Grup Ketersediaan AlwaysOn

Konten Terkait

Lihat Juga

Titik Akhir Pencerminan Database (SQL Server)
Gambaran Umum Grup Ketersediaan AlwaysOn (SQL Server)