New-SqlAvailabilityGroup
Membuat grup ketersediaan.
Sintaks
ByPath (Default)
New-SqlAvailabilityGroup
[-Name] <String>
[[-Path] <String>]
-AvailabilityReplica <AvailabilityReplica[]>
[-Database <String[]>]
[-AutomatedBackupPreference <AvailabilityGroupAutomatedBackupPreference>]
[-FailureConditionLevel <AvailabilityGroupFailureConditionLevel>]
[-HealthCheckTimeout <Int32>]
[-BasicAvailabilityGroup]
[-ContainedAvailabilityGroup]
[-ReuseSystemDatabases]
[-DatabaseHealthTrigger]
[-DtcSupportEnabled]
[-ClusterType <AvailabilityGroupClusterType>]
[-RequiredSynchronizedSecondariesToCommit <Int32>]
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
ByObject
New-SqlAvailabilityGroup
[-Name] <String>
[-InputObject] <Server>
-AvailabilityReplica <AvailabilityReplica[]>
[-Database <String[]>]
[-AutomatedBackupPreference <AvailabilityGroupAutomatedBackupPreference>]
[-FailureConditionLevel <AvailabilityGroupFailureConditionLevel>]
[-HealthCheckTimeout <Int32>]
[-BasicAvailabilityGroup]
[-ContainedAvailabilityGroup]
[-ReuseSystemDatabases]
[-DatabaseHealthTrigger]
[-DtcSupportEnabled]
[-ClusterType <AvailabilityGroupClusterType>]
[-RequiredSynchronizedSecondariesToCommit <Int32>]
[-Script]
[-AccessToken <PSObject>]
[-TrustServerCertificate]
[-HostNameInCertificate <String>]
[-Encrypt <String>]
[-WhatIf]
[-Confirm]
[<CommonParameters>]
Deskripsi
Cmdlet New-SqlAvailabilityGroup membuat grup ketersediaan di Grup Ketersediaan AlwaysOn.
Parameter InputObject atau Path menentukan server yang menghosting replika utama awal.
Module requirements: version 21+ on PowerShell 5.1; version 22+ on PowerShell 7.x.
Contoh
Contoh 1: Membuat Grup Ketersediaan
PS C:\> $PrimaryServer = Get-Item "SQLSERVER:\SQL\PrimaryServer\Instance22"
PS C:\> $SecondaryServer = Get-Item "SQLSERVER:\SQL\SecondaryServer\Instance22"
PS C:\> $PrimaryReplica = New-SqlAvailabilityReplica -Name "PrimaryServer\Instance22" -EndpointUrl "TCP://PrimaryServer.domain:5022" -FailoverMode "Automatic" -AvailabilityMode "SynchronousCommit" -AsTemplate -Version ($PrimaryServer.Version)
PS C:\> $SecondaryReplica = New-SqlAvailabilityReplica -Name "SecondaryServer\Instance22" -EndpointUrl "TCP://SecondaryServer.domain:5022" -FailoverMode "Automatic" -AvailabilityMode "SynchronousCommit" -AsTemplate -Version ($SecondaryServer.Version)
PS C:\> New-SqlAvailabilityGroup -InputObject $PrimaryServer -Name "MainAG" -AvailabilityReplica ($PrimaryReplica, $SecondaryReplica) -Database @("Database01","Database02")
Perintah pertama mendapatkan instans SQL Server di server utama, lalu menyimpannya dalam variabel $PrimaryServer.
Perintah keempat membuat replika yang menyertakan instans server sekunder dengan menggunakan New-SqlAvailabilityReplica, lalu menyimpannya dalam variabel $SecondaryReplica.
Perintah menentukan versi instans server dengan menggunakan properti Versi $SecondaryServer.
Contoh 2: Membuat Grup Ketersediaan yang didukung oleh WSFC
# Get server
PS C:\> cd 'SQLSERVER:\SQL\some-hostname\Default'
PS SQLSERVER:\SQL\some-hostname\Default> $server = Get-Item $PWD
# Create primary replica
PS SQLSERVER:\SQL\some-hostname\Default> $primaryReplica = New-SqlAvailabilityReplica -Name 'some-hostname' -EndpointUrl 'tcp://some-hostname:5022' -FailoverMode Automatic -AvailabilityMode SynchronousCommit -AsTemplate
# Create AG with explicit cluster type WSFC (same as not passing -ClusterType, since it is the default value)
PS SQLSERVER:\SQL\some-hostname\Default> $server | New-SqlAvailabilityGroup -Name 'ag1' -AvailabilityReplica $PrimaryReplica -Script -ClusterType Wsfc
Contoh 3: Membuat kluster grup ketersediaan independen
# Get server
PS C:\> CD 'SQLSERVER:\SQL\some-hostname\Default'
PS SQLSERVER:\SQL\some-hostname\Default> $server = Get-Item $PWD
# Create primary replica
PS SQLSERVER:\SQL\some-hostname\Default> $primaryReplica = New-SqlAvailabilityReplica -Name 'some-hostname' -EndpointUrl 'tcp://some-hostname:5022' -FailoverMode Automatic -AvailabilityMode SynchronousCommit -AsTemplate
# Create AG cluster group independent
PS SQLSERVER:\SQL\some-hostname\Default> $server | New-SqlAvailabilityGroup -Name 'ag1' -AvailabilityReplica $PrimaryReplica -Script -ClusterType None
Contoh 4: Membuat grup ketersediaan yang mengatur jumlah sekunder SYNCHRONOUS_COMMIT yang harus tersedia untuk transaksi yang akan diterapkan pada primer
# Get server
PS C:\> Get-Item 'SQLSERVER:\SQL\some-hostname\Default'
# Create primary replica
PS C:\> $primaryReplica = New-SqlAvailabilityReplica -Name 'some-hostname' -EndpointUrl 'tcp://some-hostname:5022' -FailoverMode Automatic -AvailabilityMode SynchronousCommit -AsTemplate
# Create AG with RequiredSynchronizedSecondariesToCommit = 3
PS C:\> $server | New-SqlAvailabilityGroup -Name 'ag1' -AvailabilityReplica $PrimaryReplica -RequiredSynchronizedSecondariesToCommit 3
Catatan: Pengecualian akan dilemparkan jika parameter -RequiredSynchronizedSecondariesToCommit digunakan saat versi server target adalah SQL Server 2016 atau lebih rendah.
Parameter
-AccessToken
Token akses yang digunakan untuk mengautentikasi ke SQL Server, sebagai alternatif untuk pengguna/kata sandi atau Autentikasi Windows.
Ini dapat digunakan, misalnya, untuk menyambungkan ke SQL Azure DB dan SQL Azure Managed Instance menggunakan Service Principal atau Managed Identity.
Parameter yang digunakan dapat berupa string yang mewakili token atau objek seperti yang PSAccessToken dikembalikan dengan menjalankan Get-AzAccessToken -ResourceUrl https://database.windows.net.
Parameter ini baru dalam v22 modul.
Properti parameter
| Jenis: | PSObject |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-AutomatedBackupPreference
Menentukan preferensi pencadangan otomatis untuk grup ketersediaan.
Nilai yang dapat diterima untuk parameter ini adalah:
- Utama. Menentukan bahwa cadangan selalu terjadi pada replika utama. Opsi ini mendukung penggunaan fitur yang tidak tersedia saat pencadangan berjalan pada replika sekunder, seperti cadangan diferensial.
- SecondaryOnly. Menentukan bahwa cadangan tidak pernah dilakukan pada replika utama. Jika replika utama adalah satu-satunya replika online, pencadangan tidak terjadi.
- Sekunder. Menentukan bahwa pencadangan terjadi pada replika sekunder, kecuali replika utama adalah satu-satunya replika online. Kemudian pencadangan terjadi pada replika utama.
- Tidak ada. Menentukan bahwa status primer atau sekunder tidak diperhitungkan saat memutuskan replika mana yang melakukan pencadangan. Sebagai gantinya, prioritas pencadangan dan status online menentukan replika mana yang melakukan pencadangan.
Properti parameter
| Jenis: | AvailabilityGroupAutomatedBackupPreference |
| Nilai default: | None |
| Nilai yang diterima: | Primary, SecondaryOnly, Secondary, None, Unknown |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-AvailabilityReplica
Menentukan array replika ketersediaan yang disertakan cmdlet ini dalam grup ketersediaan. Untuk mendapatkan AvailabilityReplica, gunakan cmdlet New-SqlAvailabilityReplica . Tentukan parameter AsTemplate .
Properti parameter
| Jenis: | AvailabilityReplica[] |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-BasicAvailabilityGroup
Menentukan apakah akan membuat advanced (default) atau basic grup ketersediaan.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-ClusterType
Jenis kluster yang mendukung AG. Nilai yang mungkin adalah:
- Wsfc. AG akan diintegrasikan dalam Kluster Failover Windows Server. Ini adalah bagaimana AG di SQL Server 2016 dan di bawah ini dibuat. Ini adalah default.
- Tidak ada. AG akan independen kluster.
- Eksternal. AG akan dikelola oleh manajer kluster yang bukan Kluster Failover Windows Server, seperti Pacemaker di Linux. Ini didukung di SQL Server 2017 ke atas. Saat menargetkan SQL Server di Linux, Anda harus menentukan nilai ini atau kesalahan akan terjadi.
Catatan: Pengecualian akan dilemparkan jika parameter -ClusterType digunakan saat server target adalah SQL Server 2016 dan di bawahnya.
Properti parameter
| Jenis: | AvailabilityGroupClusterType |
| Nilai default: | Wsfc |
| Nilai yang diterima: | Wsfc, None, External |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Confirm
Meminta konfirmasi sebelum menjalankan cmdlet.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | False |
| Mendukung wildcard: | False |
| DontShow: | False |
| Alias: | Cf |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-ContainedAvailabilityGroup
Digunakan untuk membuat grup ketersediaan yang terkandung. Opsi ini digunakan untuk membuat grup ketersediaan dengan sendirinya master dan msdb database, yang tetap sinkron di seluruh set replika dalam grup ketersediaan. Parameter ini dapat digunakan dengan pendampingnya -ReuseSystemDatabases.
Parameter ini hanya diperbolehkan ketika SQL Server target mendukung Grup Ketersediaan Terkandung (SQL 2022 ke atas). Mencoba menggunakan bertentangan dengan versi SQL yang tidak mendukung Grup Ketersediaan Terkandung akan menyebabkan cmdlet melemparkan kesalahan.
Parameter ini hanya tersedia dalam modul versi 22+.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Database
Menentukan array database pengguna lokal, baca/tulis. Database ini harus menggunakan model pemulihan penuh dan tidak boleh menggunakan AUTO_CLOSE. Database ini tidak dapat termasuk dalam grup ketersediaan lain dan tidak dapat dikonfigurasi untuk pencerminan database. Anda harus menentukan nilai untuk parameter ini.
Properti parameter
| Jenis: | String[] |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-DatabaseHealthTrigger
Menentukan apakah akan memicu failover otomatis grup ketersediaan jika ada replika database pengguna dalam grup ketersediaan yang mengalami kondisi kegagalan database.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-DtcSupportEnabled
Menentukan apakah database dalam grup ketersediaan mendaftar dengan MSDTC di tingkat instans (default) atau di tingkat per database.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Encrypt
Jenis enkripsi yang akan digunakan saat menyambungkan ke SQL Server.
Nilai ini memetakan ke Encrypt properti SqlConnectionEncryptOption pada objek SqlConnection dari driver Microsoft.Data.SqlClient.
Dalam v22 modul, defaultnya adalah Optional (untuk kompatibilitas dengan v21). Dalam v23+ modul, nilai defaultnya adalah 'Wajib', yang dapat membuat perubahan yang melanggar untuk skrip yang ada.
Parameter ini baru dalam v22 modul.
Properti parameter
| Jenis: | String |
| Nilai default: | None |
| Nilai yang diterima: | Mandatory, Optional, Strict |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-FailureConditionLevel
Menentukan perilaku failover otomatis dari grup ketersediaan. Nilai yang dapat diterima untuk parameter ini adalah:
- OnServerDown. Failover atau mulai ulang jika layanan SQL Server berhenti.
- OnServerUnresponsive. Failover atau mulai ulang jika ada kondisi nilai yang lebih rendah terpenuhi, ditambah ketika layanan SQL Server terhubung ke kluster dan ambang batas HealthCheckTimeout terlampaui, atau jika replika ketersediaan yang saat ini berada dalam peran utama dalam status gagal.
- OnCriticalServerError. Failover atau mulai ulang jika ada kondisi nilai yang lebih rendah terpenuhi, ditambah ketika kesalahan Server penting internal terjadi, yang mencakup kondisi memori, pelanggaran akses tulis yang serius, atau terlalu banyak pembuangan.
- OnModerateServerError. Failover atau mulai ulang jika ada kondisi nilai yang lebih rendah terpenuhi, ditambah jika terjadi kesalahan Server sedang, yang mencakup kondisi memori yang persisten.
- OnAnyQualifiedFailureConditions. Failover atau mulai ulang jika ada kondisi nilai yang lebih rendah terpenuhi, ditambah jika kondisi kegagalan yang memenuhi syarat terjadi, yang mencakup kelelahan utas pekerja mesin dan kebuntuan yang tidak terselesaikan terdeteksi.
Properti parameter
| Jenis: | AvailabilityGroupFailureConditionLevel |
| Nilai default: | None |
| Nilai yang diterima: | OnServerDown, OnServerUnresponsive, OnCriticalServerErrors, OnModerateServerErrors, OnAnyQualifiedFailureCondition, Unknown |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-HealthCheckTimeout
Menentukan lamanya waktu, dalam milidetik, setelah itu grup ketersediaan AlwaysOn menyatakan server yang tidak responsif menjadi tidak sehat.
Properti parameter
| Jenis: | Int32 |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-HostNameInCertificate
Nama host yang akan digunakan dalam memvalidasi sertifikat SQL Server TLS/SSL. Anda harus meneruskan parameter ini jika instans SQL Server Anda diaktifkan untuk Enkripsi Paksa dan Anda ingin terhubung ke instans menggunakan nama host/nama pendek. Jika parameter ini dihilangkan, maka meneruskan Nama Domain yang Sepenuhnya Memenuhi Syarat (FQDN) ke -ServerInstance diperlukan untuk terhubung ke instans SQL Server yang diaktifkan untuk Enkripsi Paksa.
Parameter ini baru dalam v22 modul.
Properti parameter
| Jenis: | String |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-InputObject
Menentukan instans SQL Server yang menghosting replika utama grup ketersediaan yang dibuat cmdlet ini.
Properti parameter
| Jenis: | Server |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
ByObject
| Position: | 2 |
| Wajib: | True |
| Nilai dari alur: | True |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Name
Menentukan nama grup ketersediaan yang dibuat cmdlet ini.
Properti parameter
| Jenis: | String |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | 1 |
| Wajib: | True |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Path
Menentukan jalur instans SQL Server yang menghosting replika utama awal grup ketersediaan yang dibuat cmdlet ini. Jika Anda tidak menentukan parameter ini, cmdlet ini menggunakan lokasi kerja saat ini. Jika Anda menentukan nilai, jalur saat ini harus ada.
Properti parameter
| Jenis: | String |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
ByPath
| Position: | 2 |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-RequiredSynchronizedSecondariesToCommit
Jumlah sekunder penerapan sinkron yang harus tersedia untuk dapat diterapkan pada primer.
Jika sekunder SYNCHRONOUS_COMMIT terputus dari primer selama beberapa waktu, primer menurunkannya untuk ASYNCHRONOUS_COMMIT menghindari pemblokiran penerapan. Jika primer kemudian menjadi tidak tersedia dan pengguna ingin melakukan failover ke salah satu sekunder ini, mereka mungkin mengalami kehilangan data. Dengan mengatur RequiredSynchronizedSecondariesToCommit ke beberapa angka, pengguna dapat mencegah kehilangan data karena primer akan mulai memblokir penerapan jika terlalu banyak sekunder diturunkan ke ASYNCHRONOUS_COMMIT.
Nilai default pengaturan ini adalah 0, yang berarti primer tidak akan pernah memblokir penerapan. Ini identik dengan perilaku sebelum SQL Server 2017.
Properti parameter
| Jenis: | Int32 |
| Nilai default: | 0 |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-ReuseSystemDatabases
Parameter ini menyebabkan terkandung master dan msdb database dari versi AG sebelumnya digunakan dalam pembuatan grup ketersediaan baru ini.
Mencoba menggunakan parameter ini tanpa menentukan -ContainedAvailabilityGroup tidak diizinkan akan menyebabkan cmdlet melempar kesalahan.
Parameter ini hanya tersedia dalam modul versi 22+.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-Script
Menunjukkan bahwa cmdlet ini mengembalikan skrip Transact-SQL yang melakukan tugas yang dilakukan cmdlet ini.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-TrustServerCertificate
Menunjukkan apakah saluran akan dienkripsi saat melewati rantai sertifikat untuk memvalidasi kepercayaan.
Dalam v22 modul, defaultnya adalah $true (untuk kompatibilitas dengan v21). Dalam v23+ modul, nilai defaultnya adalah '$false', yang dapat membuat perubahan yang melanggar untuk skrip yang ada.
Parameter ini baru dalam v22 modul.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | None |
| Mendukung wildcard: | False |
| DontShow: | False |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
-WhatIf
Menunjukkan apa yang akan terjadi ketika cmdlet dijalankan. Cmdlet tidak dijalankan.
Properti parameter
| Jenis: | SwitchParameter |
| Nilai default: | False |
| Mendukung wildcard: | False |
| DontShow: | False |
| Alias: | wi |
Set parameter
(All)
| Position: | Named |
| Wajib: | False |
| Nilai dari alur: | False |
| Nilai dari alur berdasarkan nama properti: | False |
| Nilai dari argumen yang tersisa: | False |
CommonParameters
Cmdlet ini mendukung parameter umum: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction, dan -WarningVariable. Untuk informasi selengkapnya, lihat about_CommonParameters.
Input
Microsoft.SqlServer.Management.Smo.Server
Anda dapat meneruskan instans server ke cmdlet ini.
Output
Microsoft.SqlServer.Management.Smo.AvailabilityGroup
Cmdlet ini mengembalikan grup ketersediaan.