BUAT GRUP KETERSEDIAAN (Transact-SQL)

Berlaku untuk:SQL Server

Membuat grup ketersediaan baru, jika instans SQL Server diaktifkan untuk fitur grup ketersediaan AlwaysOn.

Penting

Jalankan CREATE AVAILABILITY GROUP pada instans SQL Server yang ingin Anda gunakan sebagai replika utama awal grup ketersediaan baru Anda. Instans server ini harus berada di simpul Pengklusteran Failover Windows Server (WSFC).

Konvensi sintaks transact-SQL

Sintaksis

  
CREATE AVAILABILITY GROUP group_name  
   WITH (<with_option_spec> [ ,...n ] )  
   FOR [ DATABASE database_name [ ,...n ] ]  
   REPLICA ON <add_replica_spec> [ ,...n ]  
   AVAILABILITY GROUP ON <add_availability_group_spec> [ ,...2 ]  
   [ LISTENER 'dns_name' ( <listener_option> ) ]  
[ ; ]  
  
<with_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 }  
  | [ BASIC | DISTRIBUTED | CONTAINED [ REUSE_SYSTEM_DATABASES ] ]
  | REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT = { integer }
  | CLUSTER_TYPE = { WSFC | EXTERNAL | NONE }
 
  
<add_replica_spec>::=  
  <server_instance> WITH  
    (  
       ENDPOINT_URL = 'TCP://system-address:port',  
       AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT | CONFIGURATION_ONLY },  
       FAILOVER_MODE = { AUTOMATIC | MANUAL | EXTERNAL }  
       [ , <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 = { ( '<server_instance>' ) ] 
     } )  
     | SESSION_TIMEOUT = integer  
  
<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 }  
    )  
  
<listener_option> ::=  
   {  
      WITH DHCP [ ON ( <network_subnet_option> ) ]  
    | WITH IP ( { ( <ip_address_option> ) } [ , ...n ] ) [ , PORT = listener_port ]  
   }  
  
  <network_subnet_option> ::=  
     'ip4_address', 'four_part_ipv4_mask'    
  
  <ip_address_option> ::=  
     {   
        'ip4_address', 'pv4_mask'  
      | 'ipv6_address'  
     }  
  

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

group_name

Menentukan nama grup ketersediaan baru. group_name harus merupakan pengidentifikasi SQL Serveryang valid, dan harus unik di semua grup ketersediaan di kluster WSFC. Panjang maksimum untuk nama grup ketersediaan adalah 128 karakter.

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

Menentukan preferensi tentang bagaimana pekerjaan pencadangan harus 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 berdampak pada cadangan ad hoc.

Nilai yang didukung adalah sebagai berikut:

PRIMARY

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

Penting

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

SECONDARY_ONLY

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

SECONDARY

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

NONE

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 pengaturan AUTOMATED_BACKUP_PREFERENCE. Interpretasi preferensi ini tergantung pada logika, jika ada, yang Anda skrip ke dalam pekerjaan belakang untuk database dalam grup ketersediaan tertentu. Pengaturan preferensi pencadangan otomatis tidak berdampak pada pencadangan ad hoc. Untuk informasi selengkapnya, lihat Mengonfigurasi Pencadangan pada Replika Ketersediaan (SQL Server).

Catatan

Untuk melihat preferensi pencadangan otomatis dari grup ketersediaan yang ada, pilih kolom automated_backup_preference atau automated_backup_preference_desc tampilan katalog sys.availability_groups. Selain itu, sys.fn_hadr_backup_is_preferred_replica (Transact-SQL) dapat digunakan untuk menentukan replika cadangan pilihan. Fungsi ini mengembalikan 1 untuk setidaknya salah 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 = OTOMATIS) dan replika sekunder saat ini disinkronkan dengan 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 tingkat.

Tingkat Kondisi Kegagalan
1 Menentukan bahwa failover otomatis harus 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 harus dimulai ketika salah satu hal berikut terjadi:

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

-Replika ketersediaan dalam status gagal.
3 Menentukan bahwa failover otomatis harus 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 harus dimulai pada kesalahan internal SQL Server sedang, seperti kondisi kehabisan memori persisten di kumpulan sumber daya internal SQL Server.
5 Menentukan bahwa failover otomatis harus dimulai pada kondisi kegagalan yang memenuhi syarat, termasuk:

-Kelelahan Utas pekerja Mesin SQL.

Deteksi kebuntuan yang tak terkelola.

Catatan

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

Nilai FAILURE_CONDITION_LEVEL dan HEALTH_CHECK_TIMEOUT, menentukan 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 Kebijakan Failover Fleksibel untuk Failover Otomatis grup ketersediaan (SQL Server).

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. HEALTH_CHECK_TIMEOUT diatur pada tingkat grup tetapi hanya relevan pada replika ketersediaan yang dikonfigurasi 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 = OTOMATIS) dan replika sekunder saat ini disinkronkan dengan replika utama.

Nilai HEALTH_CHECK_TIMEOUT default adalah 30000 milidetik (30 detik). Nilai minimum adalah 15000 milidetik (15 detik), dan nilai maksimumnya adalah 4294967295 milidetik.

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 AKTIF, status apa pun selain ONLINE untuk database dalam grup ketersediaan memicu failover otomatis. Ketika opsi ini diatur ke NONAKTIF, hanya kesehatan instans yang digunakan untuk memicu failover otomatis.

Untuk informasi selengkapnya mengenai pengaturan ini, lihat Opsi Deteksi Kesehatan Tingkat Database

DTC_SUPPORT = { PER_DB | TIDAK ADA }

Berlaku untuk: SQL Server (Dimulai dengan SQL Server 2016 (13.x))

Menentukan apakah transaksi lintas database didukung melalui koordinator transaksi terdistribusi (DTC). Transaksi lintas database hanya didukung mulai dari SQL Server 2016 (13.x). PER_DB membuat grup ketersediaan dengan dukungan untuk transaksi ini. Untuk informasi selengkapnya, lihat Transaksi Lintas Database dan Transaksi Terdistribusi untuk grup ketersediaan AlwaysOn dan Pencerminan Database (SQL Server).

BASIC

Berlaku untuk: SQL Server (Dimulai dengan SQL Server 2016 (13.x))

Digunakan untuk membuat grup ketersediaan dasar. Grup ketersediaan dasar terbatas pada satu database dan dua replika: replika utama dan satu replika sekunder. Opsi ini adalah pengganti fitur pencerminan database yang tidak digunakan lagi pada SQL Server Standard Edition. Untuk informasi selengkapnya, lihat Grup ketersediaan dasar (grup ketersediaan AlwaysOn). Grup ketersediaan dasar didukung mulai dari SQL Server 2016 (13.x).

DIDISTRIBUSIKAN

Berlaku untuk: SQL Server (Dimulai dengan SQL Server 2016 (13.x))

Digunakan untuk membuat grup ketersediaan terdistribusi. Opsi ini digunakan dengan parameter AVAILABILITY GROUP ON untuk menyambungkan dua grup ketersediaan di Kluster Failover Windows Server terpisah. Untuk informasi selengkapnya, lihat Grup ketersediaan terdistribusi (grup ketersediaan AlwaysOn). Grup ketersediaan terdistribusi didukung mulai dari SQL Server 2016 (13.x).

TERKANDUNG [REUSE_SYSTEM_DATABASES]

Diperkenalkan di SQL Server 2022 (16.x).

Buat 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.
Opsi REUSE_SYSTEM_DATABASES menyebabkan terkandung master dan msdb database dari versi sebelumnya dari grup ketersediaan digunakan dalam pembuatan grup ketersediaan baru ini. Untuk informasi selengkapnya tentang grup ketersediaan yang terkandung, lihat Gambaran Umum grup ketersediaan yang terkandung (Grup ketersediaan AlwaysOn).

REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT

Berlaku untuk: SQL Server (Dimulai dengan SQL Server 2017 (14.x))

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.

  • Default: 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 TIDAK DISINKRONKAN dan melanjutkan. Ketika database yang tidak responsif kembali online, database akan berada 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.

Tidak didukung untuk CREATE AVAILABILITY GROUP. Dimulai dengan SQL Server 2022 (16.x), Anda dapat menggunakan ALTER AVAILABILITY GROUP untuk mengatur REQUIRED_SYNCHRONIZED_SECONDARIES_TO_COMMIT pada grup ketersediaan terdistribusi. Lihat MENGUBAH GRUP KETERSEDIAAN (Transact-SQL).

CLUSTER_TYPE

Berlaku untuk: SQL Server (Dimulai dengan SQL Server 2017 (14.x)).

Digunakan untuk mengidentifikasi apakah grup ketersediaan berada di Kluster Failover Windows Server (WSFC). Atur ke WSFC saat grup ketersediaan berada pada instans kluster failover pada kluster failover Windows Server. Atur ke EXTERNAL ketika kluster dikelola oleh manajer kluster yang bukan kluster failover Windows Server, seperti Linux Pacemaker. Atur ke NONE saat grup ketersediaan tidak menggunakan WSFC untuk koordinasi kluster. Misalnya, ketika grup ketersediaan menyertakan server Linux tanpa manajer kluster.

database database_name

Menentukan daftar satu atau beberapa database pengguna pada instans SQL Server lokal (yaitu, instans server tempat Anda membuat grup ketersediaan). 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 (SQL Server). Untuk mengetahui database lokal mana yang sudah termasuk dalam grup ketersediaan, lihat kolom replica_id dalam tampilan katalog sys.databases .

Klausa DATABASE bersifat opsional. Jika Anda menghilangkannya, grup ketersediaan baru kosong.

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

Catatan

Nantinya, Anda dapat menambahkan database yang memenuhi syarat pada instans server yang menghosting replika utama saat ini ke grup ketersediaan. Anda juga bisa menghapus database dari grup ketersediaan. Untuk informasi selengkapnya, lihat MENGUBAH GRUP KETERSEDIAAN (Transact-SQL).

REPLIKA AKTIF

Menentukan dari satu hingga lima instans SQL Server untuk menghosting replika ketersediaan di grup ketersediaan baru. Setiap replika ditentukan oleh alamat instans servernya diikuti dengan klausa WITH (...). Minimal, Anda harus menentukan instans server lokal Anda, yang menjadi replika utama awal. Secara opsional, Anda juga dapat menentukan hingga empat replika sekunder.

Anda perlu menggabungkan setiap replika sekunder ke grup ketersediaan. Untuk informasi selengkapnya, lihat MENGUBAH GRUP KETERSEDIAAN (Transact-SQL).

Catatan

Jika Anda menentukan kurang dari empat replika sekunder saat membuat grup ketersediaan, Anda dapat replika sekunder tambahan kapan saja dengan menggunakan pernyataan ALTER AVAILABILITY GROUPTransact-SQL. Anda juga dapat menggunakan pernyataan ini untuk menghapus replika sekunder dari grup ketersediaan yang ada.

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 adalah instans mandiri atau instans kluster failover (FCI), sebagai berikut:

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

Komponen alamat ini adalah sebagai berikut:

system_name

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

FCI_network_name

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

instance_name

Adalah nama instans SQL Server yang dihosting oleh system_name atau FCI_network_name dan yang mengaktifkan layanan HADR. Untuk instans server default, instance_name bersifat opsional. Nama instans tidak peka huruf besar/kecil. Pada instans bernama, nama nilai ini sama dengan nilai yang dikembalikan dengan menjalankan select ServerProperty(N'InstanceName');.

\

Adalah pemisah yang 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 (SQL Server).

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

Menentukan jalur URL untuk titik akhir pencerminan database pada instans SQL Server yang menghosting replika ketersediaan yang Anda tentukan dalam klausul REPLICA ON Anda saat ini.

Klausa ENDPOINT_URL diperlukan. Untuk informasi selengkapnya, lihat Menentukan URL Titik Akhir Saat Menambahkan atau Memodifikasi Replika Ketersediaan (SQL Server).

'TCP:// system-address:port'

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

alamat sistem

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

pelabuhan

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

AVAILABILITY_MODE = {SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT | CONFIGURATION_ONLY }

SYNCHRONOUS_COMMIT atau ASYNCHRONOUS_COMMIT menentukan apakah replika utama harus 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. SQL Server 2017 (14.x) CU1 memperkenalkan CONFIGURATION_ONLY. CONFIGURATION_ONLY replika hanya berlaku untuk grup ketersediaan dengan CLUSTER_TYPE = EXTERNAL atau CLUSTER_TYPE = NONE.

SYNCHRONOUS_COMMIT

Menentukan bahwa replika utama menunggu untuk melakukan transaksi hingga diperkeras 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 database master pada replika ini. Replika tidak akan berisi data pengguna. Opsi ini:

  • Dapat dihosting di SQL Server edisi apa pun, termasuk Edisi Ekspres.

  • Mengharuskan titik akhir pencerminan data dari replika CONFIGURATION_ONLY menjadi jenis WITNESS.

  • Tidak dapat diubah.

  • Tidak valid ketika CLUSTER_TYPE = WSFC.

  • Opsi failover_mode dan seeding_mode tidak didukung ketika availability_mode diatur ke configuration_only untuk replika. Sampel ditampilkan di sini.

    Untuk informasi selengkapnya, lihat Replika konfigurasi saja.

Klausa AVAILABILITY_MODE diperlukan. Untuk informasi selengkapnya, lihat Mode Ketersediaan (Grup ketersediaan AlwaysOn).

FAILOVER_MODE = { OTOMATIS | MANUAL }

Menentukan mode failover replika ketersediaan yang Anda tentukan.

OTOMATIS

Mengaktifkan failover otomatis. Opsi ini hanya didukung jika Anda juga menentukan AVAILABILITY_MODE = SYNCHRONOUS_COMMIT. Anda dapat menentukan OTOMATIS untuk dua replika ketersediaan, termasuk replika utama.

Catatan

SQL Server Failover Cluster Instances (FCI) tidak mendukung failover otomatis oleh grup ketersediaan, sehingga replika ketersediaan apa pun yang dihosting oleh FCI hanya dapat dikonfigurasi untuk failover manual.

MANUAL

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

Klausa FAILOVER_MODE diperlukan. Dua jenis failover manual, failover manual tanpa kehilangan data dan failover paksa (dengan kemungkinan kehilangan data), didukung dalam kondisi yang berbeda. 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 opsi GRANT CREATE ANY DATABASE .

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 akan dipilih untuk melakukan pencadangan hanya jika tidak ada replika ketersediaan prioritas yang lebih tinggi yang saat ini tersedia.

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

Untuk informasi selengkapnya, lihat Sekunder Aktif: Pencadangan pada Replika Sekunder (Grup ketersediaan AlwaysOn).

SECONDARY_ROLE ( ... )

Menentukan pengaturan khusus peran yang berlaku jika replika ketersediaan ini saat ini memiliki peran sekunder (yaitu, setiap kali itu adalah 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 (yaitu, 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.

READ_ONLY

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 Sekunder Aktif: Replika Sekunder yang Dapat Dibaca (grup ketersediaan AlwaysOn).

READ_ONLY_ROUTING_URL ='TCP:// system-address:port'

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

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

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

Catatan

Untuk instans SQL Server bernama, pendengar Transact-SQL harus dikonfigurasi untuk menggunakan port tertentu. Untuk informasi selengkapnya, lihat Mengonfigurasi Server untuk mendengarkan Port TCP Tertentu (Pengelola Konfigurasi SQL Server).

PRIMARY_ROLE ( ... )

Menentukan pengaturan khusus peran yang berlaku jika replika ketersediaan ini saat ini memiliki peran utama (yaitu, setiap kali itu adalah 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 dari replika ketersediaan tertentu yang melakukan peran utama (yaitu, bertindak sebagai replika utama) yang dapat diterima 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 SQL Server Native Client.

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 argumen ALLOW_CONNECTIONS dari opsi SECONDARY_ROLE, di atas).

  • Tentukan URL perutean baca-saja (lihat argumen READ_ONLY_ROUTING_URL opsi SECONDARY_ROLE, di atas).

Nilai READ_ONLY_ROUTING_LIST adalah sebagai berikut:

server_instance

Menentukan alamat instans SQL Server yang merupakan host untuk replika 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.

NONE

Menentukan bahwa ketika replika ketersediaan ini adalah replika utama, perutean baca-saja tidak didukung. Ini adalah perilaku default.

READ_WRITE_ROUTING_URL = { ('server_instance') }

Berlaku untuk: SQL Server (Dimulai dengan SQL Server 2019 (15.x))

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.

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

SESSION_TIMEOUT = bilangan bulat

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

Penting

Kami menyarankan agar Anda menjaga periode waktu habis pada 10 detik atau lebih besar.

Untuk informasi selengkapnya tentang periode batas waktu sesi, lihat Gambaran Umum grup ketersediaan AlwaysOn (SQL Server).

GRUP KETERSEDIAAN AKTIF

Menentukan dua grup ketersediaan yang merupakan grup ketersediaan terdistribusi. Setiap grup ketersediaan adalah bagian dari Kluster Failover Windows Server (WSFC) sendiri. Saat Anda membuat grup ketersediaan terdistribusi, grup ketersediaan pada instans SQL Server saat ini menjadi grup ketersediaan utama. Grup ketersediaan kedua menjadi grup ketersediaan sekunder.

Anda perlu bergabung dengan grup ketersediaan sekunder ke grup ketersediaan terdistribusi. Untuk informasi selengkapnya, lihat MENGUBAH GRUP KETERSEDIAAN (Transact-SQL).

ag_name

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

LISTENER_URL ='TCP:// system-address:port'

Menentukan jalur URL untuk pendengar yang terkait dengan grup ketersediaan.

Klausa LISTENER_URL diperlukan.

'TCP:// system-address:port'

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

alamat sistem

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

pelabuhan

Adalah nomor port yang terkait dengan titik akhir pencerminan grup ketersediaan. Perhatikan bahwa ini bukan port pendengar.

AVAILABILITY_MODE = { SYNCHRONOUS_COMMIT | ASYNCHRONOUS_COMMIT | CONFIGURATION_ONLY }

Menentukan apakah replika utama harus 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 hingga diperkeras 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.

Klausa FAILOVER_MODE diperlukan, dan satu-satunya opsi adalah MANUAL. Failover otomatis ke grup ketersediaan sekunder tidak didukung.

SEEDING_MODE = { OTOMATIS | MANUAL }

Menentukan bagaimana grup ketersediaan sekunder awalnya disemai.

OTOMATIS

Mengaktifkan seeding langsung. 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 (default). Metode ini mengharuskan Anda membuat cadangan database pada replika utama dan memulihkan cadangan tersebut secara manual pada replika grup ketersediaan sekunder.

LISTENER 'dns_name'( listener_option )

Menentukan pendengar grup ketersediaan baru untuk grup ketersediaan ini. LISTENER adalah argumen opsional.

Penting

Sebelum Anda membuat pendengar pertama, kami sangat menyarankan Anda membaca Membuat atau Mengonfigurasi listener grup ketersediaan (SQL Server).

Setelah Anda membuat pendengar untuk grup ketersediaan tertentu, kami sangat menyarankan Anda melakukan hal 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.

Kami menyarankan agar Anda menentukan 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, kesalahan melaporkan bahwa sumber daya Nama Jaringan Virtual tidak dapat dibawa secara online. Untuk informasi tentang aturan penamaan awalan untuk nama DNS, lihat Menetapkan Nama Domain.

listener_option

LISTENER mengambil salah satu opsi listener_option> berikut<:

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

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

Penting

Kami tidak merekomendasikan 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 berdampak pada konektivitas klien. Namun, DHCP baik untuk menyiapkan lingkungan pengembangan dan pengujian Anda untuk memverifikasi fungsi dasar grup ketersediaan dan untuk integrasi dengan aplikasi Anda.

Misalnya:

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

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

Menentukan bahwa, alih-alih menggunakan DHCP, listener 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 untuk grup ketersediaan baru.

Misalnya:

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

ip4_address

Menentukan alamat empat bagian IPv4 untuk pendengar grup ketersediaan. Contohnya, 10.120.19.155.

ipv4_mask

Menentukan masker empat bagian IPv4 untuk pendengar grup ketersediaan. Contohnya, 255.255.254.0.

ipv6_address

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

PORT = listener_port

Menentukan nomor port-listener_port-untuk digunakan oleh pendengar grup ketersediaan yang ditentukan oleh klausul WITH IP. PORT bersifat opsional.

Nomor port default, 1433, didukung. Namun, jika Anda memiliki masalah keamanan, sebaiknya gunakan nomor port yang berbeda.

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

Prasyarat dan pembatasan

Untuk informasi tentang prasyarat untuk membuat grup ketersediaan, lihat Prasyarat, Pembatasan, dan Rekomendasi untuk grup ketersediaan AlwaysOn (SQL Server).

Untuk informasi tentang pembatasan pada pernyataan AVAILABILITY GROUP Transact-SQL, lihat Gambaran Umum Pernyataan Transact-SQL untuk grup ketersediaan AlwaysOn (SQL Server).

Keamanan

Izin

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

Contoh

J. Mengonfigurasi pencadangan pada replika sekunder, kebijakan failover fleksibel, dan akses koneksi

Contoh berikut membuat grup ketersediaan bernama MyAg untuk dua database pengguna, ThisDatabase dan ThatDatabase. Tabel berikut ini meringkas nilai yang ditentukan untuk opsi yang diatur untuk grup ketersediaan secara keseluruhan.

Opsi Grup Pengaturan Deskripsi
AUTOMATED_BACKUP_PREFERENCE SECONDARY Preferensi pencadangan otomatis ini menunjukkan bahwa pencadangan harus terjadi pada replika sekunder kecuali ketika replika utama adalah satu-satunya replika online (ini adalah perilaku default). Agar pengaturan AUTOMATED_BACKUP_PREFERENCE memiliki efek apa pun, Anda perlu membuat skrip pekerjaan pencadangan pada database ketersediaan untuk memperhitungkan preferensi pencadangan otomatis.
FAILURE_CONDITION_LEVEL 3 Pengaturan tingkat kondisi kegagalan ini menentukan bahwa failover otomatis harus dimulai pada kesalahan internal SQL Server penting, seperti spinlock tanpa induk, pelanggaran akses tulis yang serius, atau terlalu banyak pembuangan.
HEALTH_CHECK_TIMEOUT 600000 Nilai batas waktu pemeriksaan kesehatan ini, 60 detik, menentukan bahwa kluster WSFC menunggu 60000 milidetik untuk prosedur tersimpan sistem sp_server_diagnostics untuk mengembalikan informasi kesehatan server tentang instans server yang menghosting replika penerapan sinkron dengan otomatis sebelum kluster mengasumsikan bahwa instans server host lambat atau tidak merespons. (Nilai defaultnya adalah 30000 milidetik).

Tiga replika ketersediaan akan dihosting oleh instans server default di komputer bernama COMPUTER01, , COMPUTER02dan COMPUTER03. Tabel berikut ini meringkas nilai yang ditentukan untuk opsi replika setiap replika.

Opsi Replika Pengaturan aktif COMPUTER01 Pengaturan aktif COMPUTER02 Pengaturan aktif COMPUTER03 Deskripsi
ENDPOINT_URL TCP:// COMPUTER01:5022 TCP:// COMPUTER02:5022 TCP:// COMPUTER03:5022 Dalam contoh ini, sistem adalah domain yang sama, sehingga URL titik akhir dapat menggunakan nama sistem komputer sebagai alamat sistem.
AVAILABILITY_MODE SYNCHRONOUS_COMMIT SYNCHRONOUS_COMMIT ASYNCHRONOUS_COMMIT Dua replika menggunakan mode synchronous-commit. Saat disinkronkan, mereka mendukung failover tanpa kehilangan data. Replika ketiga, yang menggunakan mode ketersediaan penerapan asinkron.
FAILOVER_MODE OTOMATIS OTOMATIS MANUAL Replika penerapan sinkron mendukung failover otomatis dan failover manual yang direncanakan. Replika mode ketersediaan penerapan sinkron hanya mendukung failover manual paksa.
BACKUP_PRIORITY 30 30 90 Prioritas yang lebih tinggi, 90, ditetapkan ke replika penerapan asinkron, daripada replika penerapan sinkron. Pencadangan cenderung terjadi pada instans server yang menghosting replika penerapan asinkron.
SECONDARY_ROLE ( ALLOW_CONNECTIONS = TIDAK,

READ_ONLY_ROUTING_URL = 'TCP://COMPUTER01:1433' )
( ALLOW_CONNECTIONS = TIDAK,

READ_ONLY_ROUTING_URL = 'TCP://COMPUTER02:1433' )
( ALLOW_CONNECTIONS = READ_ONLY,
READ_ONLY_ROUTING_URL = 'TCP://COMPUTER03:1433' )
Hanya replika penerapan asinkron yang berfungsi sebagai replika sekunder yang dapat dibaca.

Menentukan nama komputer dan nomor port Mesin Database default (1433).

Argumen ini bersifat opsional.
PRIMARY_ROLE ( ALLOW_CONNECTIONS = READ_WRITE,
READ_ONLY_ROUTING_LIST = (COMPUTER03) )
( ALLOW_CONNECTIONS = READ_WRITE,
READ_ONLY_ROUTING_LIST = (COMPUTER03) )
( ALLOW_CONNECTIONS = READ_WRITE,
READ_ONLY_ROUTING_LIST = NONE )
Dalam peran utama, semua replika menolak upaya koneksi baca-niat.

Permintaan koneksi baca-niat dirutekan ke COMPUTER03 jika replika lokal berjalan di bawah peran sekunder. Saat replika tersebut berjalan di bawah peran utama, perutean baca-saja dinonaktifkan.

Argumen ini bersifat opsional.
SESSION_TIMEOUT 10 10 10 Contoh ini menentukan nilai batas waktu sesi default (10). Argumen ini bersifat opsional.

Terakhir, contoh menentukan klausa LISTENER opsional untuk membuat listener grup ketersediaan untuk grup ketersediaan baru. Nama DNS unik, MyAgListenerIvP6, ditentukan untuk pendengar ini. Kedua replika berada di subnet yang berbeda, sehingga pendengar harus menggunakan alamat IP statis. Untuk masing-masing dari dua replika ketersediaan, klausa WITH IP menentukan alamat IP statis, 2001:4898:f0:f00f::cf3c dan 2001:4898:e0:f213::4ce2, yang menggunakan format IPv6. Contoh ini juga menentukan penggunaan argumen PORT opsional untuk menentukan port 60173 sebagai port pendengar.

CREATE AVAILABILITY GROUP MyAg   
   WITH (  
      AUTOMATED_BACKUP_PREFERENCE = SECONDARY,  
      FAILURE_CONDITION_LEVEL  =  3,   
      HEALTH_CHECK_TIMEOUT = 600000  
       )  
  
   FOR   
      DATABASE  ThisDatabase, ThatDatabase   
   REPLICA ON   
      'COMPUTER01' WITH   
         (  
         ENDPOINT_URL = 'TCP://COMPUTER01:5022',  
         AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,  
         FAILOVER_MODE = AUTOMATIC,  
         BACKUP_PRIORITY = 30,  
         SECONDARY_ROLE (ALLOW_CONNECTIONS = NO,   
            READ_ONLY_ROUTING_URL = 'TCP://COMPUTER01:1433' ),
         PRIMARY_ROLE (ALLOW_CONNECTIONS = READ_WRITE,   
            READ_ONLY_ROUTING_LIST = (COMPUTER03) ),  
         SESSION_TIMEOUT = 10  
         ),   
  
      'COMPUTER02' WITH   
         (  
         ENDPOINT_URL = 'TCP://COMPUTER02:5022',  
         AVAILABILITY_MODE = SYNCHRONOUS_COMMIT,  
         FAILOVER_MODE = AUTOMATIC,  
         BACKUP_PRIORITY = 30,  
         SECONDARY_ROLE (ALLOW_CONNECTIONS = NO,   
            READ_ONLY_ROUTING_URL = 'TCP://COMPUTER02:1433' ),  
         PRIMARY_ROLE (ALLOW_CONNECTIONS = READ_WRITE,   
            READ_ONLY_ROUTING_LIST = (COMPUTER03) ),  
         SESSION_TIMEOUT = 10  
         ),   
  
      'COMPUTER03' WITH   
         (  
         ENDPOINT_URL = 'TCP://COMPUTER03:5022',  
         AVAILABILITY_MODE = ASYNCHRONOUS_COMMIT,  
         FAILOVER_MODE =  MANUAL,  
         BACKUP_PRIORITY = 90,  
         SECONDARY_ROLE (ALLOW_CONNECTIONS = READ_ONLY,   
            READ_ONLY_ROUTING_URL = 'TCP://COMPUTER03:1433' ),  
         PRIMARY_ROLE (ALLOW_CONNECTIONS = READ_WRITE,   
            READ_ONLY_ROUTING_LIST = NONE ),  
         SESSION_TIMEOUT = 10  
         );
GO  
ALTER AVAILABILITY GROUP [MyAg]
  ADD LISTENER 'MyAgListenerIvP6' ( WITH IP ( ('2001:db88:f0:f00f::cf3c'),('2001:4898:e0:f213::4ce2') ) , PORT = 60173 );   
GO  

Tugas terkait

Baca juga

UBAH GRUP KETERSEDIAAN (Transact-SQL)
ALTER DATABASE SET HADR (Transact-SQL)
DROP AVAILABILITY GROUP (Transact-SQL)
Memecahkan Masalah Konfigurasi grup ketersediaan AlwaysOn (SQL Server)
Gambaran umum grup ketersediaan AlwaysOn (SQL Server)
Pendengar grup ketersediaan, Koneksi ivitas Klien, dan Failover Aplikasi (SQL Server)