ALTER DATABASE (Transact-SQL) SET HADR

Berlaku untuk:SQL Server

Topik ini berisi sintaks ALTER DATABASE untuk mengatur opsi grup ketersediaan AlwaysOn pada database sekunder. Hanya satu opsi SET HADR yang diizinkan per pernyataan ALTER DATABASE. Opsi ini hanya didukung pada replika sekunder.

Konvensi sintaks transact-SQL

Sintaksis

ALTER DATABASE database_name  
   SET HADR   
   {  
        { AVAILABILITY GROUP = group_name | OFF }  
   | { SUSPEND | RESUME }  
   }  
[;]  

Catatan

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

Argumen

database_name
Adalah nama database sekunder yang akan dimodifikasi.

SET HADR
Menjalankan perintah grup ketersediaan AlwaysOn yang ditentukan pada database yang ditentukan.

{ AVAILABILITY GROUP = group_name | NONAKTIF }
Menggabungkan atau menghapus database ketersediaan dari grup ketersediaan yang ditentukan, sebagai berikut:

group_name
Menggabungkan database yang ditentukan pada replika sekunder yang dihosting oleh instans server tempat Anda menjalankan perintah ke grup ketersediaan yang ditentukan oleh group_name.

Prasyarat untuk operasi ini adalah sebagai berikut:

  • Database harus sudah ditambahkan ke grup ketersediaan pada replika utama.

  • Replika utama harus aktif. Untuk informasi tentang cara memecahkan masalah replika utama yang tidak aktif, lihat Pemecahan Masalah Konfigurasi Grup Ketersediaan AlwaysOn (SQL Server).

  • Replika utama harus online, dan replika sekunder harus terhubung ke replika utama.

  • Database sekunder harus telah dipulihkan menggunakan WITH NORECOVERY dari database terbaru dan pencadangan log database utama, berakhir dengan cadangan log yang cukup baru-baru ini untuk mengizinkan database sekunder mengejar database utama.

    Catatan

    Untuk menambahkan database ke grup ketersediaan, sambungkan ke instans server yang menghosting replika utama, dan gunakan pernyataan ALTER AVAILABILITY GROUPgroup_name TAMBAHKAN DATABASE database_name .

Untuk informasi selengkapnya, lihat Menggabungkan Database Sekunder ke Grup Ketersediaan (SQL Server).

TIDAK AKTIF
Menghapus database sekunder yang ditentukan dari grup ketersediaan.

Menghapus database sekunder dapat berguna jika telah berada jauh di belakang database utama, dan Anda tidak ingin menunggu database sekunder mengejar ketinggalan. Setelah menghapus database sekunder, Anda dapat memperbaruinya dengan memulihkan urutan cadangan yang berakhiran dengan pencadangan log terbaru (menggunakan RESTORE ... DENGAN NORECOVERY).

Penting

Untuk menghapus database ketersediaan sepenuhnya dari grup ketersediaan, sambungkan ke instans server yang menghosting replika utama, dan gunakan pernyataan ALTER AVAILABILITY GROUPgroup_name REMOVE DATABASE availability_database_name . Untuk informasi selengkapnya, lihat Menghapus Database Utama dari Grup Ketersediaan (SQL Server).

MENANGGUHKAN
Menangguhkan pergerakan data pada database sekunder. Perintah SUSPEND kembali segera setelah diterima oleh replika yang menghosting database target, tetapi benar-benar menangguhkan database terjadi secara asinkron.

Cakupan dampak tergantung pada tempat Anda menjalankan pernyataan ALTER DATABASE:

  • Jika Anda menangguhkan database sekunder pada replika sekunder, hanya database sekunder lokal yang ditangguhkan. Koneksi yang ada pada sekunder yang dapat dibaca tetap dapat digunakan. Koneksi baru ke database yang ditangguhkan pada sekunder yang dapat dibaca tidak diizinkan sampai pergerakan data dilanjutkan.

  • Jika Anda menangguhkan database pada replika utama, pergerakan data ditangguhkan ke database sekunder yang sesuai pada setiap replika sekunder. Koneksi yang ada pada sekunder yang dapat dibaca tetap dapat digunakan, dan koneksi niat baca baru tidak akan terhubung ke replika sekunder yang dapat dibaca.

  • Ketika pergerakan data ditangguhkan karena failover manual paksa, koneksi ke replika sekunder baru tidak diizinkan saat pergerakan data ditangguhkan.

Ketika database pada replika sekunder ditangguhkan, database dan replika menjadi tidak disinkronkan dan ditandai sebagai TIDAK DISINKRONKAN.

Penting

Saat database sekunder ditangguhkan, antrean pengiriman database utama yang sesuai akan mengakumulasi catatan log transaksi yang tidak terkirim. Koneksi ke data pengembalian replika sekunder yang tersedia pada saat pergerakan data ditangguhkan.

Catatan

Menangguhkan dan melanjutkan database sekunder Always On tidak secara langsung memengaruhi ketersediaan database utama, meskipun menangguhkan database sekunder dapat memengaruhi kemampuan redundansi dan failover untuk database utama, hingga database sekunder yang ditangguhkan dilanjutkan. Ini berbeda dengan pencerminan database, di mana status pencerminan ditangguhkan pada database cermin dan database utama hingga pencerminan dilanjutkan. Menangguhkan database utama AlwaysOn menangguhkan pergerakan data pada semua database sekunder yang sesuai, dan kemampuan redundansi dan failover berhenti untuk database tersebut hingga database utama dilanjutkan.

Untuk informasi selengkapnya, lihat Menangguhkan Database Ketersediaan (SQL Server).

MELANJUTKAN
Melanjutkan pergerakan data yang ditangguhkan pada database sekunder yang ditentukan. Perintah RESUME kembali segera setelah diterima oleh replika yang menghosting database target, tetapi sebenarnya melanjutkan database terjadi secara asinkron.

Cakupan dampak tergantung pada tempat Anda menjalankan pernyataan ALTER DATABASE:

  • Jika Anda melanjutkan database sekunder pada replika sekunder, hanya database sekunder lokal yang dilanjutkan. Pergerakan data dilanjutkan kecuali database juga telah ditangguhkan pada replika utama.

  • Jika Anda melanjutkan database pada replika utama, pergerakan data dilanjutkan ke setiap replika sekunder tempat database sekunder yang sesuai belum juga ditangguhkan secara lokal. Untuk melanjutkan database sekunder yang ditangguhkan secara individual pada replika sekunder, sambungkan ke instans server yang menghosting replika sekunder dan melanjutkan database di sana.

    Di bawah mode penerapan sinkron, status database berubah menjadi SYNCHRONIZING. Jika saat ini tidak ada database lain yang ditangguhkan, status replika juga berubah menjadi SYNCHRONIZING.

    Untuk informasi selengkapnya, lihat Melanjutkan Database Ketersediaan (SQL Server).

Status Database

Ketika database sekunder bergabung ke grup ketersediaan, replika sekunder lokal mengubah status database sekunder tersebut dari PEMULIHAN ke ONLINE. Jika database sekunder dihapus dari grup ketersediaan, database tersebut diatur kembali ke status PEMULIHAN oleh replika sekunder lokal. Ini memungkinkan Anda menerapkan cadangan log berikutnya dari database utama ke database sekunder tersebut.

Batasan

Jalankan pernyataan ALTER DATABASE di luar transaksi dan batch.

Keamanan

Izin

Memerlukan izin UBAH pada database. Bergabung dengan database ke grup ketersediaan memerlukan keanggotaan dalam peran database tetap db_owner .

Contoh

Contoh berikut menggabungkan database sekunder, AccountsDb1, ke replika sekunder lokal grup AccountsAG ketersediaan.

ALTER DATABASE AccountsDb1 SET HADR AVAILABILITY GROUP = AccountsAG;  

Catatan

Untuk melihat pernyataan Transact-SQL ini yang digunakan dalam konteks, lihat Membuat Grup Ketersediaan (Transact-SQL).

Lihat Juga

MENGUBAH DATABASE (T-SQL)
UBAH GRUP KETERSEDIAAN (Transact-SQL)
BUAT GRUP KETERSEDIAAN (Transact-SQL)
Gambaran Umum Grup Ketersediaan AlwaysOn (SQL Server)Memecahkan Masalah Konfigurasi Grup Ketersediaan AlwaysOn (SQL Server)