Bagikan melalui


UBAH GRUP KETERSEDIAAN (Transact-SQL)

Berlaku untuk:SQL Server

Mengubah grup ketersediaan AlwaysOn yang ada di SQL Server. Sebagian besar ALTER AVAILABILITY GROUP argumen hanya didukung pada replika utama saat ini. Namun, JOINargumen , FAILOVER, dan FORCE_FAILOVER_ALLOW_DATA_LOSS hanya didukung pada replika sekunder.

Konvensi sintaks transact-SQL

Sintaks

ALTER AVAILABILITY GROUP group_name
  {
     SET ( <set_option_spec> )
   | ADD DATABASE database_name
   | REMOVE DATABASE database_name
   | ADD REPLICA ON <add_replica_spec>
   | MODIFY REPLICA ON <modify_replica_spec>
   | REMOVE REPLICA ON <server_instance>
   | JOIN
   | JOIN AVAILABILITY GROUP ON <add_availability_group_spec> [ , ...2 ]
   | MODIFY AVAILABILITY GROUP ON <modify_availability_group_spec> [ , ...2 ]
   | GRANT CREATE ANY DATABASE
   | DENY CREATE ANY DATABASE
   | FAILOVER
   | FORCE_FAILOVER_ALLOW_DATA_LOSS
   | ADD LISTENER 'dns_name' ( <add_listener_option> )
   | MODIFY LISTENER 'dns_name' ( <modify_listener_option> )
   | RESTART LISTENER 'dns_name'
   | REMOVE LISTENER 'dns_name'
   | OFFLINE
  }
[ ; ]

<set_option_spec> ::=
    AUTOMATED_BACKUP_PREFERENCE = { PRIMARY | SECONDARY_ONLY | SECONDARY | NONE }
  | FAILURE_CONDITION_LEVEL  = { 1 | 2 | 3 | 4 | 5 }
  | HEALTH_CHECK_TIMEOUT = milliseconds
  | DB_FAILOVER  = { ON | OFF }
  | DTC_SUPPORT  = { PER_DB | NONE }
  | REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = { integer }
  | ROLE = SECONDARY
  | CLUSTER_CONNECTION_OPTIONS = 'key_value_pairs> [ ;... ] '

<server_instance> ::=
 { 'system_name [ \instance_name ] ' | 'FCI_network_name [ \instance_name ] ' }

<add_replica_spec>::=
  <server_instance> WITH
    (
       ENDPOINT_URL = 'TCP://system-address:port' ,
       AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT | CONFIGURATION_ONLY } ,
       FAILOVER_MODE = { AUTOMATIC | MANUAL }
       [ , <add_replica_option> [ , ...n ] ]
    )

  <add_replica_option>::=
       SEEDING_MODE = { AUTOMATIC | MANUAL }
     | BACKUP_PRIORITY = n
     | SECONDARY_ROLE ( {
            [ ALLOW_CONNECTIONS = { NO | READ_ONLY | ALL } ]
        [ , ] [ READ_ONLY_ROUTING_URL = 'TCP://system-address:port' ]
     } )
     | PRIMARY_ROLE ( {
            [ ALLOW_CONNECTIONS = { READ_WRITE | ALL } ]
        [ , ] [ READ_ONLY_ROUTING_LIST = { ( '<server_instance>' [ , ...n ] ) | NONE } ]
        [ , ] [ READ_WRITE_ROUTING_URL = 'TCP://system-address:port' ]
     } )
     | SESSION_TIMEOUT = integer

<modify_replica_spec>::=
  <server_instance> WITH
    (
       ENDPOINT_URL = 'TCP://system-address:port'
     | AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT }
     | FAILOVER_MODE = { AUTOMATIC | MANUAL }
     | SEEDING_MODE = { AUTOMATIC | MANUAL }
     | BACKUP_PRIORITY = n
     | SECONDARY_ROLE ( {
          [ ALLOW_CONNECTIONS = { NO | READ_ONLY | ALL }  ]
        | [ READ_ONLY_ROUTING_URL = { 'TCP://system-address:port' | NONE } ]
          } )
     | PRIMARY_ROLE ( {
          [ ALLOW_CONNECTIONS = { READ_WRITE | ALL }   ]
        | [ READ_ONLY_ROUTING_LIST = { ( '<server_instance>' [ , ...n ] ) | NONE } ]
        | [ READ_WRITE_ROUTING_URL = { 'TCP://system-address:port' | NONE }  ]
          } )
     | SESSION_TIMEOUT = seconds
    )

<add_availability_group_spec>::=
 <ag_name> WITH
    (
       LISTENER_URL = 'TCP://system-address:port' ,
       AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT } ,
       FAILOVER_MODE = MANUAL ,
       SEEDING_MODE = { AUTOMATIC | MANUAL }
    )

<modify_availability_group_spec>::=
 <ag_name> WITH
    (
       LISTENER = 'TCP://system-address:port'
       | AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT }
       | SEEDING_MODE = { AUTOMATIC | MANUAL }
    )

<add_listener_option> ::=
   {
      WITH DHCP [ ON ( <network_subnet_option> ) ]
    | WITH IP ( { ( <ip_address_option> ) } [ , ...n ] ) [ , PORT = listener_port ]
   }

  <network_subnet_option> ::=
     'ipv4_address' , 'ipv4_mask'

  <ip_address_option> ::=
     {
        'four_part_ipv4_address' , 'four_part_ipv4_mask'
      | 'ipv6_address'
     }

<modify_listener_option>::=
    {
       ADD IP ( <ip_address_option> )
     | PORT = listener_port
     | REMOVE IP ( 'ipv4_address' | 'ipv6_address')
    }

Argumen

group_name

Menentukan nama grup ketersediaan baru. group_name harus merupakan pengidentifikasi SQL Server yang valid, dan harus unik di semua grup ketersediaan di kluster WSFC.

AUTOMATED_BACKUP_PREFERENCE = { PRIMARY | SECONDARY_ONLY| SEKUNDER | TIDAK ADA }

Menentukan preferensi tentang bagaimana pekerjaan pencadangan mengevaluasi replika utama saat memilih tempat untuk melakukan pencadangan. Anda dapat membuat skrip pekerjaan pencadangan tertentu untuk memperhitungkan preferensi pencadangan otomatis. Penting untuk dipahami bahwa preferensi tidak diberlakukan oleh SQL Server, sehingga tidak berpengaruh pada cadangan ad hoc.

Hanya didukung pada replika utama.

Nilainya adalah sebagai berikut:

UTAMA

Menentukan bahwa cadangan selalu terjadi pada replika utama. Opsi ini berguna jika Anda memerlukan fitur cadangan, seperti membuat cadangan diferensial, yang tidak didukung saat pencadangan berjalan pada replika sekunder.

Penting

Jika Anda berencana menggunakan pengiriman log untuk menyiapkan database sekunder apa pun untuk grup ketersediaan, atur preferensi pencadangan otomatis ke Primary hingga semua database sekunder disiapkan dan bergabung ke grup ketersediaan.

SECONDARY_ONLY

Menentukan bahwa pencadangan tidak pernah terjadi pada replika utama. Jika replika utama adalah satu-satunya replika online, pencadangan tidak terjadi.

SEKUNDER

Menentukan bahwa pencadangan terjadi pada replika sekunder kecuali ketika replika utama adalah satu-satunya replika online. Dalam hal ini, pencadangan terjadi pada replika utama. Ini adalah perilaku default.

TIDAK

Menentukan bahwa Anda lebih suka pekerjaan cadangan mengabaikan peran replika ketersediaan saat memilih replika untuk melakukan pencadangan. Catatan pekerjaan pencadangan mungkin mengevaluasi faktor lain seperti prioritas cadangan dari setiap replika ketersediaan dalam kombinasi dengan status operasional dan status terhubung.

Penting

Tidak ada penegakan AUTOMATED_BACKUP_PREFERENCE pengaturan. Interpretasi preferensi ini tergantung pada logika, jika ada, yang Anda skrip ke dalam pekerjaan cadangan untuk database dalam grup ketersediaan tertentu. Pengaturan preferensi pencadangan otomatis tidak berpengaruh pada cadangan ad hoc. Untuk informasi selengkapnya, lihat Mengonfigurasi cadangan pada replika sekunder grup ketersediaan AlwaysOn.

Catatan

Untuk melihat preferensi pencadangan otomatis dari grup ketersediaan yang ada, pilih automated_backup_preference kolom atau automated_backup_preference_desc tampilan katalog sys.availability_groups . Selain itu, sys.fn_hadr_backup_is_preferred_replica dapat digunakan untuk menentukan replika cadangan pilihan. Fungsi ini selalu mengembalikan 1 setidaknya satu replika, bahkan ketika AUTOMATED_BACKUP_PREFERENCE = NONE.

FAILURE_CONDITION_LEVEL = { 1 | 2 | 3 | 4 | 5 }

Menentukan kondisi kegagalan apa yang memicu failover otomatis untuk grup ketersediaan ini. FAILURE_CONDITION_LEVEL diatur pada tingkat grup tetapi hanya relevan pada replika ketersediaan yang dikonfigurasi untuk mode ketersediaan penerapan sinkron (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT). Selain itu, kondisi kegagalan dapat memicu failover otomatis hanya jika replika primer dan sekunder dikonfigurasi untuk mode failover otomatis (FAILOVER_MODE = AUTOMATIC) dan replika sekunder saat ini disinkronkan dengan replika utama.

Hanya didukung pada replika utama.

Tingkat kondisi kegagalan (1-5) berkisar dari tingkat paling tidak ketat, tingkat 1, hingga yang paling ketat, tingkat 5. Tingkat kondisi tertentu mencakup semua tingkat yang kurang ketat. Dengan demikian, tingkat kondisi paling ketat, 5, termasuk empat tingkat kondisi yang kurang ketat (1-4), tingkat 4 mencakup tingkat 1-3, dan sebagainya. Tabel berikut ini menjelaskan kondisi kegagalan yang sesuai dengan setiap tingkatan.

Tingkat Kondisi Kegagalan
1 Menentukan bahwa failover otomatis dimulai ketika salah satu hal berikut terjadi:

Layanan SQL Server tidak berfungsi.

Sewa grup ketersediaan untuk menyambungkan ke kluster WSFC kedaluwarsa karena tidak ada ACK yang diterima dari instans server. Untuk informasi selengkapnya, lihat Cara Kerjanya: Batas Waktu Sewa AlwaysOn SQL Server.
2 Menentukan bahwa failover otomatis dimulai ketika salah satu hal berikut terjadi:

Instans SQL Server tidak tersambung ke kluster, dan ambang batas yang ditentukan HEALTH_CHECK_TIMEOUT pengguna dari grup ketersediaan terlampaui.

Replika ketersediaan dalam status gagal.
3 Menentukan bahwa failover otomatis dimulai pada kesalahan internal SQL Server penting, seperti spinlock tanpa induk, pelanggaran akses tulis serius, atau terlalu banyak pembuangan.

Ini adalah perilaku default.
4 Menentukan bahwa failover otomatis dimulai pada kesalahan internal SQL Server sedang, seperti kondisi kehabisan memori persisten di kumpulan sumber daya internal SQL Server.
5 Menentukan bahwa failover otomatis dimulai pada kondisi kegagalan yang memenuhi syarat, termasuk:

Kelelahan utas pekerja Mesin SQL.

Deteksi kebuntuan yang belum terkelola.

Catatan

Kurangnya respons oleh instans SQL Server terhadap permintaan klien tidak relevan dengan grup ketersediaan.

Nilai FAILURE_CONDITION_LEVEL dan HEALTH_CHECK_TIMEOUT , tentukan kebijakan failover yang fleksibel untuk grup tertentu. Kebijakan failover fleksibel ini memberi Anda kontrol terperinci atas kondisi apa yang harus menyebabkan failover otomatis. Untuk informasi selengkapnya, lihat Mengonfigurasi kebijakan failover otomatis yang fleksibel untuk grup ketersediaan AlwaysOn.

HEALTH_CHECK_TIMEOUT = Milidetik

Menentukan waktu tunggu, dalam milidetik, untuk prosedur tersimpan sistem sp_server_diagnostics untuk mengembalikan informasi kesehatan server sebelum kluster WSFC mengasumsikan bahwa instans server lambat atau tidak merespons. Atur HEALTH_CHECK_TIMEOUT di tingkat grup, tetapi hanya relevan pada replika ketersediaan yang Anda konfigurasi untuk mode ketersediaan penerapan sinkron dengan failover otomatis (AVAILABILITY_MODE = SYNCHRONOUS_COMMIT). Selain itu, batas waktu pemeriksaan kesehatan dapat memicu failover otomatis hanya jika replika utama dan sekunder dikonfigurasi untuk mode failover otomatis (FAILOVER_MODE = AUTOMATIC) dan replika sekunder saat ini disinkronkan dengan replika utama.

Nilai defaultnya HEALTH_CHECK_TIMEOUT adalah 30.000 milidetik (30 detik). Nilai minimum adalah 15.000 milidetik (15 detik), dan nilai maksimumnya adalah 4.294.967.295 milidetik.

Hanya didukung pada replika utama.

Penting

sp_server_diagnostics tidak melakukan pemeriksaan kesehatan di tingkat database.

DB_FAILOVER = { AKTIF | NONAKTIF }

Menentukan respons yang akan diambil ketika database pada replika utama offline. Saat diatur ke ON, status apa pun selain ONLINE untuk database dalam grup ketersediaan memicu failover otomatis. Saat Anda mengatur opsi ini ke OFF, hanya kesehatan instans yang memicu failover otomatis.

Untuk informasi selengkapnya mengenai pengaturan ini, lihat Opsi failover deteksi kesehatan tingkat database grup ketersediaan.

DTC_SUPPORT = { PER_DB | TIDAK ADA }

Menentukan apakah transaksi terdistribusi diaktifkan untuk grup ketersediaan ini. Transaksi terdistribusi hanya didukung untuk database grup ketersediaan yang dimulai di SQL Server 2016 (13.x), dan transaksi lintas database hanya didukung mulai dari SQL Server 2016 (13.x) SP2. PER_DB membuat grup ketersediaan dengan dukungan untuk transaksi ini, dan secara otomatis mempromosikan transaksi lintas database yang melibatkan database dalam grup ketersediaan ke dalam transaksi terdistribusi. NONE mencegah promosi otomatis transaksi lintas database ke transaksi terdistribusi dan tidak mendaftarkan database dengan RMID yang stabil di DTC. Transaksi terdistribusi tidak dicegah saat NONE pengaturan digunakan, tetapi kegagalan database dan pemulihan otomatis mungkin tidak berhasil dalam beberapa keadaan. Untuk informasi selengkapnya, lihat Transaksi - grup ketersediaan dan pencerminan database.

Catatan

Dukungan untuk mengubah DTC_SUPPORT pengaturan grup ketersediaan diperkenalkan di Paket Layanan SQL Server 2016 (13.x) 2. Opsi ini tidak dapat digunakan dengan versi yang lebih lama. Untuk mengubah pengaturan ini di versi SQL Server yang lebih lama, Anda harus DROP dan CREATE grup ketersediaan lagi.

Penting

DTC memiliki batas 32 pendaftaran per transaksi terdistribusi. Karena setiap database dalam grup ketersediaan mendaftar dengan DTC secara terpisah, jika transaksi Anda melibatkan lebih dari 32 database, Anda bisa mendapatkan kesalahan berikut saat SQL Server mencoba mendaftarkan database ke-33:

Enlist operation failed: 0x8004d101(XACT_E_TOOMANY_ENLISTMENTS). SQL Server could not register with Microsoft Distributed Transaction Coordinator (MS DTC) as a resource manager for this transaction. The transaction may have been stopped by the client or the resource manager.

Untuk detail selengkapnya tentang transaksi terdistribusi di SQL Server, lihat Transaksi terdistribusi.

REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT

Diperkenalkan di SQL Server 2017 (14.x). Menetapkan jumlah minimum replika sekunder sinkron yang diperlukan untuk diterapkan sebelum replika utama melakukan transaksi. Menjamin bahwa transaksi SQL Server menunggu hingga log transaksi diperbarui pada jumlah minimum replika sekunder.

  • Bawaan: 0. Menyediakan perilaku yang sama seperti SQL Server 2016 (13.x).
  • Minimum: 0.
  • Maksimum: Jumlah replika dikurangi 1.

REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT berkaitan dengan replika dalam mode penerapan sinkron. Ketika replika berada dalam mode penerapan sinkron, penulisan pada replika utama menunggu hingga menulis pada replika sinkron yang diterapkan ke log transaksi database replika. Jika SQL Server yang menghosting replika sinkron sekunder berhenti merespons, SQL Server yang menghosting replika utama menandai replika sekunder tersebut sebagai NOT SYNCHRONIZED dan melanjutkan. Ketika database yang tidak responsif kembali online, database tersebut dalam status "tidak disinkronkan" dan replika ditandai sebagai tidak sehat sampai primer dapat menyinkronkannya lagi. Pengaturan ini menjamin bahwa replika utama tidak dilanjutkan hingga jumlah minimum replika telah melakukan setiap transaksi. Jika jumlah minimum replika tidak tersedia, maka penerapan pada primer gagal. Untuk jenis EXTERNAL kluster, pengaturan diubah saat grup ketersediaan ditambahkan ke sumber daya kluster. Lihat Ketersediaan tinggi dan perlindungan data untuk konfigurasi grup ketersediaan.

Dimulai dengan SQL Server 2022 (16.x), Anda dapat mengatur REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT grup ketersediaan terdistribusi. Pengaturan ini tidak didukung untuk CREATE AVAILABILITY GROUP. Anda dapat menggunakan ALTER AVAILABILITY GROUP untuk mengatur REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT. Contohnya:

ALTER AVAILABILITY GROUP [<name>]
  SET (REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = <integer>);

PERAN

Satu-satunya parameter yang valid adalah SECONDARY, dan opsi ini SET hanya valid dalam grup ketersediaan terdistribusi. Gunakan untuk melakukan failover pada grup ketersediaan terdistribusi.

CLUSTER_CONNECTION_OPTIONS

Berlaku untuk: SQL Server 2025 (17.x) dan versi yang lebih baru

CLUSTER_CONNECTION_OPTIONS Gunakan klausa untuk menerapkan enkripsi TLS 1.3 untuk komunikasi antara Kluster Failover Windows Server dan replika grup ketersediaan Anda. Tentukan opsi sebagai daftar pasangan kunci-nilai, dipisahkan oleh titik koma. Gunakan pasangan kunci-nilai untuk mengonfigurasi enkripsi string koneksi untuk grup ketersediaan.

Untuk kembali ke enkripsi default, atur CLUSTER_CONNECTION_OPTIONS klausa ke string kosong. SQL Server 2025 (17.x) default ke Encrypt=Mandatory, dan TrustServerCertificate=Yes untuk koneksi ke replika dan pemroses grup ketersediaan.

Untuk informasi selengkapnya, tinjau menyambungkan ke grup ketersediaan dengan enkripsi ketat dan TDS 8.0.

Tabel berikut ini menjelaskan pasangan kunci-nilai yang bisa Anda gunakan dalam CLUSTER_CONNECTION_OPTIONS klausa:

Key Nilai yang Didukung Description
Encrypt Mandatory, , StrictOptional Menentukan bagaimana enkripsi ke grup ketersediaan diberlakukan. Jika server tidak mendukung enkripsi, koneksi gagal. Jika Anda mengatur enkripsi ke Mandatory, maka TrustServerCertificate harus diatur ke ya. Jika Anda mengatur enkripsi ke Strict, maka TrustServerCertificate diabaikan.

Catatan: Pasangan nilai kunci ini diperlukan.
HostNameInCertificate Nama replika atau nama pendengar AG Menentukan nama replika atau nama pendengar grup ketersediaan dalam sertifikat yang digunakan untuk enkripsi. Nilai ini harus cocok dengan nilai dalam Nama Alternatif Subjek sertifikat. Jika nama server tercantum dalam sertifikat, maka Anda dapat menghilangkan HostNameInCertificate pasangan kunci-nilai. Jika nama server tidak tercantum dalam sertifikat, maka Anda harus menentukan HostNameInCertificate pasangan kunci-nilai dengan nama server.

Catatan: Pasangan nilai kunci ini bersifat opsional.
TrustServerCertificate Yes, No Atur ke yes untuk menentukan bahwa driver tidak memvalidasi sertifikat TLS/SSL server. Jika no, driver memvalidasi sertifikat. Untuk informasi selengkapnya, tinjau TDS 8.0.

Catatan: Pasangan nilai kunci ini bersifat opsional.
ServerCertificate Jalur ke sertifikat Anda Jika Anda tidak ingin menggunakan HostNameInCertificate, Anda dapat meneruskan jalur ke sertifikat Anda. Akun layanan kluster harus memiliki izin untuk membaca sertifikat dari lokasi yang diberikan.

Catatan: Pasangan nilai kunci ini bersifat opsional.
CLUSTER_CONNECTION_OPTIONS String kosong ('') Menghapus konfigurasi yang ada dan kembali ke pengaturan Encrypt=Mandatory enkripsi default dan TrustServerCertificate=Yes.

Periksa contoh untuk mempelajari cara menggunakan CLUSTER_CONNECTION_OPTIONS klausa.

MENAMBAHKAN database_name DATABASE

Menentukan daftar satu atau beberapa database pengguna yang ingin Anda tambahkan ke grup ketersediaan. Database ini harus berada di instans SQL Server yang menghosting replika utama saat ini. Anda dapat menentukan beberapa database untuk grup ketersediaan, tetapi setiap database hanya bisa termasuk dalam satu grup ketersediaan. Untuk informasi tentang jenis database yang dapat didukung grup ketersediaan, lihat Prasyarat, pembatasan, dan rekomendasi untuk grup ketersediaan AlwaysOn. Untuk mengetahui database lokal mana yang sudah termasuk dalam grup ketersediaan, lihat replica_id kolom dalam tampilan katalog sys.databases .

Hanya didukung pada replika utama.

Catatan

Setelah membuat grup ketersediaan, Anda perlu terhubung ke setiap instans server yang menghosting replika sekunder. Kemudian siapkan setiap database sekunder dan gabungkan ke grup ketersediaan. Untuk informasi selengkapnya, lihat Memulai Pergerakan Data pada Database Sekunder Always On (SQL Server).

MENGHAPUS database_name DATABASE

Menghapus database utama yang ditentukan dan database sekunder yang sesuai dari grup ketersediaan. Hanya didukung pada replika utama.

Untuk informasi tentang langkah-langkah yang direkomendasikan setelah menghapus database ketersediaan dari grup ketersediaan, lihat Menghapus database utama dari grup ketersediaan AlwaysOn.

TAMBAHKAN REPLIKA AKTIF

Menentukan dari satu hingga delapan instans SQL Server untuk menghosting replika sekunder dalam grup ketersediaan. Setiap replika ditentukan oleh alamat instans servernya diikuti oleh WITH (...) klausa.

Hanya didukung pada replika utama.

Anda perlu menggabungkan setiap replika sekunder baru ke grup ketersediaan. Untuk informasi selengkapnya, lihat deskripsi JOIN opsi, nanti di bagian ini.

<server_instance>

Menentukan alamat instans SQL Server yang merupakan host untuk replika. Format alamat tergantung pada apakah instans adalah instans default atau instans bernama dan apakah itu instans mandiri atau instans kluster failover (FCI). Sintaksisnya adalah sebagai berikut:

{ 'system_name[\instance_name]' | 'FCI_network_name[\instance_name]' }

Komponen alamat ini adalah sebagai berikut:

system_name

Nama NetBIOS sistem komputer tempat instans target SQL Server berada. Komputer ini harus merupakan simpul WSFC.

FCI_network_name

Nama jaringan yang Anda gunakan untuk mengakses kluster failover SQL Server. Gunakan nama ini jika instans server berpartisipasi sebagai mitra failover SQL Server. SELECT @@SERVERNAME Menjalankan pada instans server FCI mengembalikan seluruh string 'FCI_network_name[\instance_name]' (yang merupakan nama replika lengkap).

Untuk informasi selengkapnya, lihat @@SERVERNAME.

instance_name

Nama instans SQL Server yang system_name atau host FCI_network_name dan yang mengaktifkan Always On. Untuk instans server default, instance_name bersifat opsional. Nama instans tidak peka huruf besar/kecil. Pada instans server yang berdiri sendiri, nama nilai ini sama dengan nilai yang dikembalikan dengan menjalankan SELECT @@SERVERNAME.

\

Pemisah hanya digunakan saat menentukan instance_name, untuk memisahkannya dari system_name atau FCI_network_name.

Untuk informasi tentang prasyarat untuk simpul WSFC dan instans server, lihat Prasyarat, pembatasan, dan rekomendasi untuk grup ketersediaan AlwaysOn.

ENDPOINT_URL = '*TCP:// system-address:*port'

Menentukan jalur URL untuk titik akhir pencerminan database pada instans SQL Server yang menghosting replika ketersediaan yang Anda tambahkan atau ubah.

ENDPOINT_URL diperlukan dalam ADD REPLICA ON klausa dan opsional dalam MODIFY REPLICA ON klausa. Untuk informasi selengkapnya, lihat Menentukan URL Titik Akhir - Menambahkan atau Memodifikasi Replika Ketersediaan.

'TCP:// system-address:port'

Menentukan URL untuk menentukan URL titik akhir atau URL perutean baca-saja. Parameter URL adalah sebagai berikut:

alamat sistem

String, seperti nama sistem, nama domain yang sepenuhnya memenuhi syarat, atau alamat IP, yang secara tidak ambigu mengidentifikasi sistem komputer tujuan.

pelabuhan

Nomor port yang terkait dengan titik akhir pencerminan instans server (untuk ENDPOINT_URL opsi) atau nomor port yang digunakan oleh Mesin Database instans server (untuk READ_ONLY_ROUTING_URL opsi ).

AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT | CONFIGURATION_ONLY }

Menentukan apakah replika utama menunggu replika sekunder untuk mengakui penguatan (penulisan) rekaman log ke disk sebelum replika utama dapat melakukan transaksi pada database utama tertentu. Transaksi pada database yang berbeda pada replika utama yang sama dapat diterapkan secara independen.

SYNCHRONOUS_COMMIT

Menentukan bahwa replika utama menunggu untuk melakukan transaksi sampai diperkuat pada replika sekunder ini (mode penerapan sinkron). Anda dapat menentukan SYNCHRONOUS_COMMIT hingga tiga replika, termasuk replika utama.

ASYNCHRONOUS_COMMIT

Menentukan bahwa replika utama melakukan transaksi tanpa menunggu replika sekunder ini untuk mengeraskan log (mode ketersediaan penerapan sinkron). Anda dapat menentukan ASYNCHRONOUS_COMMIT hingga lima replika ketersediaan, termasuk replika utama.

CONFIGURATION_ONLY

Menentukan bahwa replika utama secara sinkron menerapkan metadata konfigurasi grup ketersediaan ke master database pada replika ini. Replika tidak berisi data pengguna. Opsi ini:

AVAILABILITY_MODE diperlukan dalam ADD REPLICA ON klausa dan opsional dalam MODIFY REPLICA ON klausa. Untuk informasi selengkapnya, lihat Perbedaan antara mode ketersediaan untuk grup ketersediaan Always On.

FAILOVER_MODE = { OTOMATIS | MANUAL }

Menentukan mode failover replika ketersediaan yang Anda tentukan.

OTOMATIS

Mengaktifkan failover otomatis. AUTOMATIC hanya didukung jika Anda juga menentukan AVAILABILITY_MODE = SYNCHRONOUS_COMMIT. Anda dapat menentukan AUTOMATIC untuk tiga replika ketersediaan, termasuk replika utama.

Catatan

  • Sebelum SQL Server 2016 (13.x), Anda dibatasi untuk dua replika failover otomatis, termasuk replika utama.
  • SQL Server Failover Cluster Instances (FCI) tidak mendukung failover otomatis oleh grup ketersediaan, sehingga replika ketersediaan apa pun yang hanya dapat dikonfigurasi oleh host FCI untuk failover manual.

MANUAL

Mengaktifkan failover manual atau failover manual paksa (failover paksa) oleh administrator database.

Anda harus menentukan FAILOVER_MODE dalam ADD REPLICA ON klausa. Anda dapat secara opsional menentukannya dalam MODIFY REPLICA ON klausa. Ada dua jenis failover manual: failover manual tanpa kehilangan data, dan failover paksa (dengan kemungkinan kehilangan data). Kondisi yang berbeda mendukung jenis ini. Untuk informasi selengkapnya, lihat Mode Failover dan Failover (Grup Ketersediaan AlwaysOn).

SEEDING_MODE = { OTOMATIS | MANUAL }

Menentukan bagaimana replika sekunder awalnya disemai.

OTOMATIS

Mengaktifkan seeding langsung. Metode ini menyemai replika sekunder melalui jaringan. Metode ini tidak mengharuskan Anda untuk mencadangkan dan memulihkan salinan database utama pada replika.

Catatan

Untuk seeding langsung, Anda harus mengizinkan pembuatan database pada setiap replika sekunder dengan memanggil ALTER AVAILABILITY GROUP dengan GRANT CREATE ANY DATABASE opsi .

MANUAL

Menentukan seeding manual (default). Metode ini mengharuskan Anda membuat cadangan database pada replika utama dan memulihkan cadangan tersebut secara manual pada replika sekunder.

BACKUP_PRIORITY = n

Menentukan prioritas Anda untuk melakukan pencadangan pada replika ini relatif terhadap replika lain dalam grup ketersediaan yang sama. Nilainya adalah bilangan bulat dalam rentang 0,.100. Nilai-nilai ini memiliki arti berikut:

  • 1..100 menunjukkan bahwa replika ketersediaan dapat dipilih untuk melakukan pencadangan. 1 menunjukkan prioritas terendah, dan 100 menunjukkan prioritas tertinggi. Jika BACKUP_PRIORITY = 1, replika ketersediaan dipilih untuk melakukan pencadangan hanya jika tidak ada replika ketersediaan prioritas yang lebih tinggi yang saat ini tersedia.

  • 0 menunjukkan bahwa replika ketersediaan ini tidak pernah dipilih untuk melakukan pencadangan. Opsi ini berguna, misalnya, untuk replika ketersediaan jarak jauh tempat Anda tidak pernah ingin pencadangan gagal.

untuk informasi selengkapnya, lihat Mengalihkan cadangan yang didukung ke replika sekunder dari grup ketersediaan.

SECONDARY_ROLE ( ... )

Menentukan pengaturan khusus peran yang berlaku jika replika ketersediaan ini saat ini memiliki peran sekunder (setiap kali replika sekunder). Dalam tanda kurung, tentukan salah satu atau kedua opsi peran sekunder. Jika Anda menentukan keduanya, gunakan daftar yang dipisahkan koma.

Opsi peran sekunder adalah sebagai berikut:

ALLOW_CONNECTIONS = { TIDAK | READ_ONLY | SEMUA }

Menentukan apakah database replika ketersediaan tertentu yang melakukan peran sekunder (bertindak sebagai replika sekunder) dapat menerima koneksi dari klien, salah satu dari:

TIDAK

Tidak ada koneksi pengguna yang diizinkan ke database sekunder dari replika ini. Mereka tidak tersedia untuk akses baca. Ini adalah perilaku default.

Hanya Baca

Hanya koneksi yang diizinkan ke database di replika sekunder tempat properti Niat Aplikasi diatur ke ReadOnly. Untuk informasi selengkapnya tentang properti ini, lihat Menggunakan Kata Kunci String Koneksi dengan SQL Server Native Client.

SEMUA

Semua koneksi diizinkan ke database di replika sekunder untuk akses baca-saja.

Untuk informasi selengkapnya, lihat Memindahkan beban kerja hanya-baca ke replika sekunder grup ketersediaan Always On.

READ_ONLY_ROUTING_URL = { '*TCP:// system-address:*port' | TIDAK ADA }

Menentukan URL yang akan digunakan untuk merutekan permintaan koneksi baca-niat ke replika ketersediaan ini. URL ini adalah tempat Mesin Database SQL Server mendengarkan. Biasanya, instans default Mesin Database SQL Server mendengarkan port TCP 1433.

Dimulai dengan SQL Server 2025 (17.x), Anda dapat menentukan NONE sebagai READ_ONLY_ROUTING_URL tujuan untuk mengembalikan perutean baca-saja yang ditentukan untuk replika ketersediaan, dan merutekan lalu lintas berdasarkan perilaku default.

Untuk instans bernama, kueri port kolom dan type_desc tampilan manajemen dinamis sys.dm_tcp_listener_states untuk mendapatkan nomor port. Instans server menggunakan pendengar Transact-SQL (type_desc='TSQL').

Untuk informasi selengkapnya tentang menghitung URL perutean baca-saja untuk replika ketersediaan, lihat Menghitung read_only_routing_url untuk AlwaysOn.

Catatan

Untuk instans SQL Server bernama, konfigurasikan pendengar Transact-SQL untuk menggunakan port tertentu. Untuk informasi selengkapnya, lihat Mengonfigurasi SQL Server untuk mendengarkan port TCP tertentu.

PRIMARY_ROLE ( ... )

Menentukan pengaturan khusus peran yang berlaku jika replika ketersediaan ini saat ini memiliki peran utama (kapan pun replika utama). Dalam tanda kurung, tentukan salah satu atau kedua opsi peran utama. Jika Anda menentukan keduanya, gunakan daftar yang dipisahkan koma.

Opsi peran utama adalah sebagai berikut:

ALLOW_CONNECTIONS = { READ_WRITE | SEMUA }

Menentukan jenis koneksi yang dapat diterima database replika ketersediaan tertentu yang melakukan peran utama (bertindak sebagai replika utama) dari klien, salah satu dari:

BACA_TULIS

Koneksi tempat properti koneksi Niat Aplikasi diatur ke ReadOnly tidak diizinkan. Ketika properti Niat Aplikasi diatur ke ReadWrite atau properti koneksi Niat Aplikasi tidak diatur, koneksi diizinkan. Untuk informasi selengkapnya tentang properti koneksi Niat Aplikasi, lihat Menggunakan Kata Kunci String Koneksi dengan Klien Asli SQL Server.

SEMUA

Semua koneksi diizinkan ke database di replika utama. Ini adalah perilaku default.

READ_ONLY_ROUTING_LIST = { ('<server_instance>' [ , ... n ] ) | TIDAK ADA }

Menentukan daftar instans server yang dipisahkan koma yang menghosting replika ketersediaan untuk grup ketersediaan ini yang memenuhi persyaratan berikut saat berjalan di bawah peran sekunder:

  • Dikonfigurasi untuk mengizinkan semua koneksi atau koneksi baca-saja (lihat ALLOW_CONNECTIONS argumen SECONDARY_ROLE opsi, sebelumnya dalam artikel ini).

  • Tentukan URL perutean baca-saja (lihat READ_ONLY_ROUTING_URL argumen SECONDARY_ROLE opsi, sebelumnya dalam artikel ini).

Nilainya READ_ONLY_ROUTING_LIST adalah sebagai berikut:

<server_instance>

Menentukan alamat instans SQL Server yang merupakan host untuk replika ketersediaan yang merupakan replika sekunder yang dapat dibaca saat berjalan di bawah peran sekunder.

Gunakan daftar yang dipisahkan koma untuk menentukan semua instans server yang mungkin menghosting replika sekunder yang dapat dibaca. Perutean baca-saja mengikuti urutan di mana instans server ditentukan dalam daftar. Jika Anda menyertakan instans server host replika pada daftar perutean baca-saja replika, menempatkan instans server ini di akhir daftar biasanya merupakan praktik yang baik, sehingga koneksi niat baca masuk ke replika sekunder, jika tersedia.

Dimulai dengan SQL Server 2016 (13.x), Anda dapat menyeimbangkan beban permintaan baca-niat di seluruh replika sekunder yang dapat dibaca. Anda menentukan ini dengan menempatkan replika dalam sekumpulan tanda kurung berlapis dalam daftar perutean baca-saja. Untuk informasi dan contoh selengkapnya, lihat Mengonfigurasi penyeimbangan beban di seluruh replika baca-saja.

TIDAK

Menentukan bahwa ketika replika ketersediaan ini adalah replika utama, perutean baca-saja tidak akan didukung. Ini adalah perilaku default. Saat digunakan dengan MODIFY REPLICA ON, nilai ini menonaktifkan daftar yang ada, jika ada.

{ READ_WRITE_ROUTING_URL = '*TCP:// system-address:*port' | TIDAK ADA }

Berlaku untuk: SQL Server 2019 (15.x) dan versi yang lebih baru

Menentukan instans server yang menghosting replika ketersediaan untuk grup ketersediaan ini yang memenuhi persyaratan berikut saat berjalan di bawah peran utama:

  • Spesifikasi replika PRIMARY_ROLE mencakup READ_WRITE_ROUTING_URL.
  • string koneksi adalah ReadWrite baik dengan menentukan ApplicationIntent sebagai ReadWrite atau dengan tidak mengatur ApplicationIntent dan membiarkan default (ReadWrite) berlaku.

Dimulai dengan SQL Server 2025 (17.x), Anda dapat menentukan NONE sebagai READ_WRITE_ROUTING_URL tujuan untuk mengembalikan perutean baca-tulis yang ditentukan untuk replika ketersediaan, dan merutekan lalu lintas berdasarkan perilaku default.

Untuk informasi selengkapnya, lihat Pengalihan koneksi baca/tulis replika sekunder ke primer (Grup Ketersediaan AlwaysOn).

SESSION_TIMEOUT = detik

Menentukan periode batas waktu sesi dalam detik. Jika Anda tidak menentukan opsi ini, periode waktu default adalah 10 detik. Nilai minimum adalah 5 detik.

Penting

Pertahankan periode batas waktu pada 10 detik atau lebih tinggi.

Untuk informasi selengkapnya tentang periode batas waktu sesi, lihat Apa itu grup ketersediaan AlwaysOn?

UBAH REPLIKA AKTIF

Memodifikasi salah satu replika grup ketersediaan. Daftar replika yang akan dimodifikasi berisi alamat instans server dan WITH (...) klausa untuk setiap replika.

Hanya didukung pada replika utama.

HAPUS REPLIKA AKTIF

Menghapus replika sekunder yang ditentukan dari grup ketersediaan. Anda tidak dapat menghapus replika utama saat ini dari grup ketersediaan. Saat Anda menghapus replika, replika berhenti menerima data. Database sekunder replika dihapus dari grup ketersediaan dan masukkan status RESTORING .

Hanya didukung pada replika utama.

Catatan

Jika Anda menghapus replika saat tidak tersedia atau gagal, ketika kembali online, replika menemukan bahwa replika tersebut tidak lagi termasuk dalam grup ketersediaan.

IKUTI

Menyebabkan instans server lokal menghosting replika sekunder dalam grup ketersediaan yang ditentukan.

Hanya didukung pada replika sekunder yang belum bergabung ke grup ketersediaan.

Untuk informasi selengkapnya, lihat Menggabungkan replika sekunder ke grup ketersediaan AlwaysOn.

pemulihan otomatis

Memulai failover manual grup ketersediaan tanpa kehilangan data ke replika sekunder tempat Anda terhubung. Replika yang menghosting replika utama adalah target failover. Target failover mengambil alih peran utama dan memulihkan salinannya dari setiap database, membuatnya online sebagai database utama baru. Replika utama sebelumnya secara bersamaan beralih ke peran sekunder, dan databasenya menjadi database sekunder dan segera ditangguhkan. Berpotensi, peran ini dapat beralih bolak-balik oleh serangkaian kegagalan.

Failover hanya didukung ke replika sekunder penerapan sinkron yang saat ini disinkronkan dengan replika utama. Agar replika sekunder disinkronkan, replika utama juga harus berjalan dalam mode penerapan sinkron.

Untuk dua instans SQL Server dalam grup ketersediaan, Anda dapat mengeluarkan perintah failover pada replika primer atau sekunder. Untuk instans yang direplikasi melalui tautan Instans Terkelola, Anda harus mengeluarkan perintah failover pada replika utama.

Catatan

  • Untuk grup ketersediaan, perintah failover akan kembali segera setelah target failover menerima perintah. Namun, pemulihan database terjadi secara asinkron setelah grup ketersediaan selesai gagal.
  • Untuk failover tautan Instans Terkelola, perintah failover kembali setelah failover berhasil di mana peran pengalihan sumber dan target, atau jika perintah failover gagal setelah pemeriksaan prasyarat failover gagal.
  • Anda tidak dapat menggunakan perintah failover untuk failover yang direncanakan dari grup ketersediaan terdistribusi antara dua instans SQL Server.

Untuk informasi tentang batasan, prasyarat, dan rekomendasi untuk melakukan failover manual yang direncanakan, lihat Melakukan failover manual yang direncanakan dari grup ketersediaan AlwaysOn (SQL Server).

FORCE_FAILOVER_ALLOW_DATA_LOSS

Perhatian

Hanya memulai failover paksa sebagai langkah pemulihan bencana, karena dapat mengakibatkan kehilangan data. Kegagalan paksa harus dilakukan hanya ketika replika utama tidak tersedia, Anda siap untuk menerima potensi kehilangan data, dan Anda harus segera memulihkan layanan ke grup ketersediaan.

Hanya didukung pada replika yang perannya berada dalam status SECONDARY atau RESOLVING . Replika tempat Anda memasukkan perintah failover adalah target failover.

Memaksa failover grup ketersediaan, dengan kemungkinan kehilangan data, ke target failover. Target failover mengambil alih peran utama dan memulihkan salinannya dari setiap database, membuatnya online sebagai database utama baru. Pada replika sekunder yang tersisa, setiap database sekunder ditangguhkan hingga dilanjutkan secara manual. Ketika replika utama sebelumnya tersedia, replika beralih ke peran sekunder, dan databasenya menjadi database sekunder yang ditangguhkan.

Untuk instans yang direplikasi melalui tautan Instans Terkelola, Anda harus mengeluarkan FORCE_FAILOVER_ALLOW_DATA_LOSS perintah pada replika sekunder (target failover).

Catatan

Perintah failover kembali segera setelah target failover menerima perintah . Namun, pemulihan database terjadi secara asinkron setelah grup ketersediaan selesai gagal.

Untuk informasi tentang batasan, prasyarat, dan rekomendasi untuk memaksa failover dan efek failover paksa pada database utama sebelumnya dalam grup ketersediaan, lihat Melakukan failover manual paksa grup ketersediaan AlwaysOn (SQL Server).

TAMBAHKAN LISTENER 'dns_name' ( <add_listener_option> )

Menentukan pendengar grup ketersediaan baru untuk grup ketersediaan ini. Hanya didukung pada replika utama.

Penting

Sebelum Anda membuat pendengar pertama Anda, baca Mengonfigurasi pendengar untuk grup ketersediaan AlwaysOn.

Setelah Anda membuat pendengar untuk grup ketersediaan tertentu, lakukan langkah-langkah berikut:

  • Minta administrator jaringan Anda untuk memesan alamat IP pendengar untuk penggunaan eksklusifnya.
  • Berikan nama host DNS pendengar kepada pengembang aplikasi untuk digunakan dalam string koneksi saat meminta koneksi klien ke grup ketersediaan ini.

dns_name

Menentukan nama host DNS pendengar grup ketersediaan. Nama DNS pendengar harus unik di domain dan di NetBIOS.

dns_name adalah nilai string. Nama ini hanya dapat berisi karakter alfanumerik, tanda hubung (-), dan tanda hubung (_), dalam urutan apa pun. Nama host DNS tidak peka huruf besar/kecil. Panjang maksimum adalah 63 karakter.

Tentukan string yang bermakna. Misalnya, untuk grup ketersediaan bernama AG1, nama host DNS yang bermakna adalah ag1-listener.

Penting

NetBIOS hanya mengenali 15 karakter pertama dalam dns_name. Jika Anda memiliki dua kluster WSFC yang dikontrol oleh Direktori Aktif yang sama dan Anda mencoba membuat pendengar grup ketersediaan di kedua kluster menggunakan nama dengan lebih dari 15 karakter dan awalan 15 karakter yang identik, Anda mendapatkan pelaporan kesalahan bahwa sumber daya Nama Jaringan Virtual tidak dapat dibawa online. Untuk informasi tentang aturan penamaan awalan untuk nama DNS, lihat Menetapkan Nama Domain.

BERGABUNG DENGAN GRUP KETERSEDIAAN AKTIF

Bergabung ke grup ketersediaan terdistribusi. Saat Anda membuat grup ketersediaan terdistribusi, grup ketersediaan pada kluster tempat Anda membuatnya adalah grup ketersediaan utama. Grup ketersediaan yang bergabung dengan grup ketersediaan terdistribusi adalah grup ketersediaan sekunder.

<ag_name>

Menentukan nama grup ketersediaan yang membentuk setengah dari grup ketersediaan terdistribusi.

LISTENER = '*TCP:// system-address:*port'

Menentukan jalur URL untuk pendengar yang terkait dengan grup ketersediaan.

Klausa LISTENER diperlukan.

'*TCP:// system-address:*port'

Menentukan URL untuk pendengar yang terkait dengan grup ketersediaan. Parameter URL adalah sebagai berikut:

alamat sistem

String, seperti nama sistem, nama domain yang sepenuhnya memenuhi syarat, atau alamat IP, yang secara tidak ambigu mengidentifikasi pendengar.

pelabuhan

Nomor port yang terkait dengan titik akhir pencerminan grup ketersediaan. Ini bukan port pendengar.

MODE_KESEDIAAN = { KOMITMEN_SINKRONIS | KOMITMEN_ASINKRONIS }

Menentukan apakah replika utama menunggu grup ketersediaan sekunder untuk mengakui penguatan (penulisan) rekaman log ke disk sebelum replika utama dapat melakukan transaksi pada database utama tertentu.

SYNCHRONOUS_COMMIT

Menentukan bahwa replika utama menunggu untuk melakukan transaksi sampai menerima konfirmasi bahwa transaksi diperkuat pada grup ketersediaan sekunder. Anda dapat menentukan SYNCHRONOUS_COMMIT hingga dua grup ketersediaan, termasuk grup ketersediaan utama.

ASYNCHRONOUS_COMMIT

Menentukan bahwa replika utama melakukan transaksi tanpa menunggu grup ketersediaan sekunder ini mengeraskan log. Anda dapat menentukan ASYNCHRONOUS_COMMIT hingga dua grup ketersediaan, termasuk grup ketersediaan utama.

Klausa AVAILABILITY_MODE diperlukan.

FAILOVER_MODE = { MANUAL }

Menentukan mode failover dari grup ketersediaan terdistribusi.

MANUAL

Mengaktifkan failover manual yang direncanakan atau failover manual paksa (biasanya disebut failover paksa) oleh administrator database.

Failover otomatis ke grup ketersediaan sekunder tidak didukung.

SEEDING_MODE = { OTOMATIS | MANUAL }

Menentukan bagaimana grup ketersediaan sekunder awalnya disemai.

OTOMATIS

Mengaktifkan seeding otomatis. Metode ini menyemai grup ketersediaan sekunder melalui jaringan. Metode ini tidak mengharuskan Anda untuk mencadangkan dan memulihkan salinan database utama pada replika grup ketersediaan sekunder.

MANUAL

Menentukan seeding manual. Metode ini mengharuskan Anda membuat cadangan database pada replika utama dan memulihkan cadangan tersebut secara manual pada replika grup ketersediaan sekunder.

UBAH GRUP KETERSEDIAAN AKTIF

Memodifikasi salah satu pengaturan grup ketersediaan grup ketersediaan terdistribusi. Daftar grup ketersediaan yang akan dimodifikasi berisi nama grup ketersediaan dan WITH (...) klausul untuk setiap grup ketersediaan.

Penting

Anda harus menjalankan perintah ini pada grup ketersediaan utama dan instans grup ketersediaan sekunder.

MEMBERIKAN BUAT DATABASE APA PUN

Mengizinkan grup ketersediaan untuk membuat database atas nama replika utama, yang mendukung seeding langsung (SEEDING_MODE = AUTOMATIC). Jalankan parameter ini pada setiap replika sekunder yang mendukung seeding langsung setelah sekunder tersebut bergabung dengan grup ketersediaan. Memerlukan CREATE ANY DATABASE izin.

TOLAK BUAT DATABASE APA PUN

Menghapus kemampuan grup ketersediaan untuk membuat database atas nama replika utama.

<add_listener_option>

ADD LISTENER mengambil salah satu opsi berikut:

DENGAN DHCP [ ON { ('four_part_ipv4_address','four_part_ipv4_mask') } ]

Menentukan bahwa pendengar grup ketersediaan menggunakan Dynamic Host Configuration Protocol (DHCP). Secara opsional, gunakan ON klausul untuk mengidentifikasi jaringan tempat pendengar ini dibuat. DHCP terbatas pada satu subnet yang digunakan untuk setiap instans server yang menghosting replika ketersediaan dalam grup ketersediaan.

Penting

Jangan gunakan DHCP di lingkungan produksi. Jika ada waktu henti dan sewa IP DHCP kedaluwarsa, waktu tambahan diperlukan untuk mendaftarkan alamat IP jaringan DHCP baru yang terkait dengan nama DNS pendengar dan memengaruhi konektivitas klien. Namun, DHCP baik untuk menyiapkan lingkungan pengembangan dan pengujian Anda untuk memverifikasi fungsi dasar grup ketersediaan dan untuk integrasi dengan aplikasi Anda.

Contohnya:

WITH DHCP ON ('10.120.19.0','255.255.254.0')

DENGAN IP ( { ('four_part_ipv4_address','four_part_ipv4_mask') | ('ipv6_address') } [ , ... n ] ) [ , PORT = listener_port ]

Alih-alih menggunakan DHCP, pendengar grup ketersediaan menggunakan satu atau beberapa alamat IP statis. Untuk membuat grup ketersediaan di beberapa subnet, setiap subnet memerlukan satu alamat IP statis dalam konfigurasi pendengar. Untuk subnet tertentu, alamat IP statis dapat berupa alamat IPv4 atau alamat IPv6. Hubungi administrator jaringan Anda untuk mendapatkan alamat IP statis untuk setiap subnet yang menghosting replika ketersediaan untuk grup ketersediaan baru.

Contohnya:

WITH IP ( ('10.120.19.155','255.255.254.0') )

ipv4_address

Alamat empat bagian IPv4 untuk pendengar grup ketersediaan. Contohnya,10.120.19.155.

ipv4_mask

Masker empat bagian IPv4 untuk pendengar grup ketersediaan. Contohnya,255.255.254.0.

ipv6_address

Alamat IPv6 untuk pendengar grup ketersediaan. Contohnya,2001::4898:23:1002:20f:1fff:feff:b3a3.

PELABUHAN = listener_port

Nomor port (listener_port) untuk digunakan oleh pendengar grup ketersediaan yang WITH IP ditentukan klausul. PORT bersifat opsional.

Nomor port default, 1433, didukung. Namun, Anda dapat memilih nomor port yang berbeda.

Misalnya: WITH IP ( ('2001::4898:23:1002:20f:1fff:feff:b3a3') ) , PORT = 7777

UBAH LISTENER 'dns_name' ( <modify_listener_option> )

Memodifikasi pendengar grup ketersediaan yang ada untuk grup ketersediaan ini. Hanya didukung pada replika utama.

<modify_listener_option>

MODIFY LISTENER mengambil salah satu opsi berikut:

TAMBAHKAN IP { ('four_part_ipv4_address','four_part_ipv4_mask') | ('ipv6_address') }

Menambahkan alamat IP yang ditentukan ke pendengar grup ketersediaan yang ditentukan oleh dns_name.

PELABUHAN = listener_port

Lihat deskripsi argumen ini sebelumnya di bagian ini.

HAPUS IP { ('four_part_ipv4_address') | ('ipv6_address') }

Berlaku untuk: SQL Server 2025 (17.x) dan versi yang lebih baru

Menghapus alamat IP yang ditentukan dari pendengar grup ketersediaan yang ditentukan.

MULAI ULANG LISTENER 'dns_name'

Memulai ulang pendengar yang terkait dengan nama DNS yang ditentukan. Hanya didukung pada replika utama.

HAPUS LISTENER 'dns_name'

Menghapus pendengar yang terkait dengan nama DNS yang ditentukan. Hanya didukung pada replika utama.

LURING

Membuat grup ketersediaan online offline. Tidak ada kehilangan data untuk database penerapan sinkron.

Ketika grup ketersediaan offline, databasenya menjadi tidak tersedia untuk klien, dan Anda tidak dapat membawa grup ketersediaan kembali online. Oleh karena itu, gunakan OFFLINE opsi hanya selama migrasi lintas kluster grup ketersediaan AlwaysOn, saat Anda memigrasikan sumber daya grup ketersediaan ke kluster WSFC baru.

Untuk informasi selengkapnya, lihat Mengambil Grup Ketersediaan Offline (SQL Server).

Prasyarat dan pembatasan

Untuk informasi tentang prasyarat dan pembatasan replika ketersediaan dan pada instans server host dan komputer mereka, lihat Prasyarat, pembatasan, dan rekomendasi untuk grup ketersediaan AlwaysOn.

Untuk informasi tentang pembatasan pada AVAILABILITY GROUP pernyataan Transact-SQL, lihat pernyataanTransact-SQL untuk grup ketersediaan AlwaysOn.

Izin

Anda memerlukan ALTER AVAILABILITY GROUP izin pada grup ketersediaan, CONTROL AVAILABILITY GROUP izin, ALTER ANY AVAILABILITY GROUP izin, atau CONTROL SERVER izin. Anda juga memerlukan ALTER ANY DATABASE izin.

Contoh

J. Menggabungkan replika sekunder ke grup ketersediaan

Contoh berikut menggabungkan replika sekunder tempat Anda tersambung ke AccountsAG grup ketersediaan.

ALTER AVAILABILITY GROUP AccountsAG JOIN;
GO

B. Memaksa failover grup ketersediaan

Contoh berikut memaksa AccountsAG grup ketersediaan untuk melakukan failover ke replika sekunder tempat Anda terhubung.

ALTER AVAILABILITY GROUP AccountsAG FORCE_FAILOVER_ALLOW_DATA_LOSS;
GO

C. Paksa enkripsi dalam koneksi ke grup ketersediaan

Contoh di bagian ini memaksa enkripsi dalam koneksi ke AccountsAG grup ketersediaan.

Jika nama server muncul di setiap sertifikat seperti yang ditentukan oleh salah satu metode, Anda dapat menghilangkan HostNameInCertificate opsi:

ALTER AVAILABILITY GROUP [AccountsAG]
   SET (
   CLUSTER_CONNECTION_OPTIONS = 'Encrypt=Strict')

Jika Anda mengikuti metode 1 tetapi tidak mencantumkan nama server sebagai Nama Alternatif Subjek dalam sertifikat, Anda harus menentukan nilai yang muncul di Nama Alternatif Subjek dalam HostNameInCertificate opsi:

ALTER AVAILABILITY GROUP [AccountsAG]
   SET (
   CLUSTER_CONNECTION_OPTIONS = 'Encrypt=Strict;HostNameInCertificate=<Subject Alternative Name>')

Jika Anda mengikuti metode 1 dan ingin menggunakan ServerCertificate properti alih-alih memberikan nilai untuk HostNameInCertificate:

ALTER AVAILABILITY GROUP [AccountsAG]
   SET (
   CLUSTER_CONNECTION_OPTIONS = 'Encrypt=Strict;ServerCertificate=C:\Users\admin\SqlAGCertificate.cer')