Bagikan melalui


Menangguhkan Database Ketersediaan (SQL Server)

Berlaku untuk: SQL Server

Anda dapat menangguhkan database ketersediaan di grup ketersediaan AlwaysOn dengan menggunakan SQL Server Management Studio, Transact-SQL, atau PowerShell di SQL Server. Perhatikan bahwa perintah ditangguhkan perlu dikeluarkan pada instans server yang menghosting database untuk ditangguhkan atau dilanjutkan.

Efek perintah ditangguhkan tergantung pada apakah Anda menangguhkan database sekunder atau database utama, sebagai berikut:

Database Yang Ditangguhkan Efek Perintah Tangguhkan
Database sekunder Hanya database sekunder lokal yang ditangguhkan dan status sinkronisasinya menjadi TIDAK MENYINKRONKAN. Database sekunder lainnya tidak terpengaruh. Database yang ditangguhkan berhenti menerima dan menerapkan data (catatan log) dan mulai berada di belakang database utama. 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. Perilaku ini hanya berlaku ketika koneksi dibuka menggunakan pendengar dan perutean baca-saja.

Database utama tetap tersedia. Jika Anda menangguhkan masing-masing database sekunder yang sesuai, database utama akan diekspos.

** 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.
Database utama Database utama menghentikan pergerakan data ke setiap database sekunder yang tersambung. Database utama terus berjalan, dalam mode yang diekspos. Database utama tetap tersedia untuk klien, dan koneksi yang ada pada sekunder yang dapat dibaca tetap dapat digunakan dan koneksi baru dapat dibuat.

Catatan

Menangguhkan database sekunder AlwaysOn tidak secara langsung memengaruhi ketersediaan database utama. Namun, menangguhkan database sekunder dapat memengaruhi kemampuan redundansi dan failover untuk database utama. Ini berbeda dengan pencerminan database, di mana status pencerminan ditangguhkan pada database cermin dan database utama. 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.

Sebelum Anda mulai

Batasan dan Pembatasan

Perintah SUSPEND kembali segera setelah diterima oleh replika yang menghosting database target, tetapi benar-benar menangguhkan database terjadi secara asinkron.

Prasyarat

Anda harus tersambung ke instans server yang menghosting database yang ingin Anda tangguhkan. Untuk menangguhkan database utama dan database sekunder yang sesuai, sambungkan ke instans server yang menghosting replika utama. Untuk menangguhkan database sekunder saat membiarkan database utama tersedia, sambungkan ke replika sekunder.

Rekomendasi

Selama penyempitan, menangguhkan satu atau beberapa database sekunder secara singkat mungkin berguna untuk meningkatkan performa sementara pada replika utama. Selama database sekunder tetap ditangguhkan, log transaksi database utama yang sesuai tidak dapat dipotong. Ini menyebabkan catatan log terakumulasi pada database utama. Oleh karena itu, kami sarankan Anda melanjutkan, atau menghapus, database sekunder yang ditangguhkan dengan cepat. Untuk informasi selengkapnya, lihat Menindaklanjuti: Menghindari Log Transaksi Lengkap, nanti dalam topik ini.

Keamanan

Izin

Memerlukan izin UBAH pada database.

Memerlukan izin UBAH GRUP KETERSEDIAAN pada grup ketersediaan, izin GRUP KETERSEDIAAN KONTROL, izin UBAH GRUP KETERSEDIAAN APA PUN, atau izin SERVER KONTROL.

Menggunakan SQL Server Management Studio

Untuk menangguhkan database

  1. Di Object Explorer, sambungkan ke instans server yang menghosting replika ketersediaan tempat Anda ingin menangguhkan database, dan memperluas pohon server. Untuk informasi selengkapnya, lihat Prasyarat, sebelumnya dalam topik ini.

  2. Perluas node Ketersediaan Tinggi AlwaysOn dan node Grup Ketersediaan.

  3. Perluas grup ketersediaan.

  4. Perluas simpul Database Ketersediaan, klik kanan database, dan klik Tangguhkan Pergerakan Data.

  5. Dalam kotak dialog Tangguhkan Pergerakan Data, klik OK.

    Object Explorer menunjukkan bahwa database ditangguhkan dengan mengubah ikon database untuk menampilkan indikator jeda.

Catatan

Untuk menangguhkan database tambahan di lokasi replika ini, ulangi langkah 4 dan 5 untuk setiap database.

Menggunakan T-SQL

Untuk menangguhkan database

  1. Sambungkan ke instans server yang menghosting replika yang databasenya ingin Anda tangguhkan. Untuk informasi selengkapnya, lihat Prasyarat, sebelumnya dalam topik ini.

  2. Tangguhkan database dengan menggunakan pernyataan ALTER DATABASE berikut:

    ALTER DATABASE database_name SET HADR SUSPEND;

Menggunakan PowerShell

Untuk menangguhkan database

  1. Ubah direktori (cd) ke instans server yang menghosting replika yang databasenya ingin Anda tangguhkan. Untuk informasi selengkapnya, lihat Prasyarat, sebelumnya dalam topik ini.

  2. Gunakan cmdlet Suspend-SqlAvailabilityDatabase untuk menangguhkan grup ketersediaan.

    Misalnya, perintah berikut menangguhkan sinkronisasi data untuk database MyDb3 ketersediaan dalam grup MyAg ketersediaan pada instans server bernama Computer\Instance.

    Suspend-SqlAvailabilityDatabase `   
    -Path SQLSERVER:\Sql\Computer\Instance\AvailabilityGroups\MyAg\AvailabilityDatabases\MyDb3  
    

    Catatan

    Untuk melihat sintaks cmdlet, gunakan cmdlet Get-Help di lingkungan PowerShell SQL Server. Untuk informasi selengkapnya, lihat Mendapatkan Bantuan SQL Server PowerShell.

Untuk menyiapkan dan menggunakan penyedia PowerShell SQL Server

Tindak Lanjut: Menghindari Log Transaksi Penuh

Biasanya, ketika titik pemeriksaan otomatis dilakukan pada database, log transaksinya dipotong ke titik pemeriksaan tersebut setelah pencadangan log berikutnya. Namun, saat database sekunder ditangguhkan, semua catatan log saat ini tetap aktif pada database utama. Jika log transaksi terisi (baik karena mencapai ukuran maksimumnya atau instans server kehabisan ruang), database tidak dapat melakukan pembaruan lagi.

Untuk menghindari masalah ini, Anda harus melakukan salah satu hal berikut:

Untuk memecahkan masalah log transaksi penuh

Tugas Terkait

Lihat Juga

Gambaran Umum Grup Ketersediaan AlwaysOn (SQL Server)
Melanjutkan Database Ketersediaan (SQL Server)