KB2929193 - PERBAIKI: Instans SQL Server 2012 atau SQL Server 2014 dimatikan saat Anda bergabung dengan database sebagai replika sekunder selama konfigurasi Grup Ketersediaan AlwaysOn

Berlaku Untuk
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

Gejala

Pertimbangkan skenario berikut:

  • Anda menggunakan Microsoft SQL Server 2012 atau SQL Server 2014.
  • Anda memiliki database yang mengaktifkan Service Broker dalam replika utama.
  • Anda mencadangkan database di server utama yang mengaktifkan broker layanan dan memulihkannya di server sekunder.
  • Sebagai bagian dari menentukan grup ketersediaan antara server utama dan sekunder, Anda mencoba menggabungkan database ke grup ketersediaan menggunakan panduan Grup Ketersediaan Baru atau perintah:
    ALTER DATABASE <dbname> SET HADR AVAILABILITY GROUP = <agname>

Dalam skenario ini, kesalahan berikut dicatat dalam log kesalahan SQL Server:

Catatan

{
Kesalahan: 3449, Tingkat Keparahan: 21, Negara: 1.
SQL Server harus dimatikan untuk memulihkan database (ID database 1). Database adalah database pengguna yang tidak dapat dimatikan atau database sistem. Mulai ulang SQL Server. Jika database gagal pulih setelah pengaktifan lagi, perbaiki atau pulihkan
SQL Trace dihentikan karena penonaktifan server. ID Pelacakan = '1'. Ini hanya merupakan pesan informasi; Tidak ada tindakan pengguna yang diperlukan.
}

      

Penyebab

Masalah ini terjadi karena jika database yang diaktifkan untuk broker layanan dicadangkan dan dipulihkan ke server sekunder, broker layanan dalam database yang dipulihkan tidak diaktifkan. Database masih menyimpan id broker layanan secara internal.

Saat Anda menambahkan database yang dipulihkan di server sekunder ke grup ketersediaan, broker layanan diaktifkan. GUID yang sama dalam database ketersediaan terdeteksi, dan kesalahan berikut dimunculkan (secara diam-diam):
9772 "Broker Layanan dalam database "<dbname>" tidak dapat diaktifkan karena sudah ada Broker Layanan yang diaktifkan dengan ID yang sama".

Hal ini mengakibatkan kesalahan 3449 saat database bergabung dengan grup ketersediaan, dan menyebabkan server SQL mati secara tiba-tiba.

Resolusi

Masalah pertama kali diperbaiki dalam pembaruan kumulatif SQL Server berikut.

Pembaruan Kumulatif 1 untuk SQL Server 2014 /en-us/help/2931693

Pembaruan Kumulatif 9 untuk SQL Server 2012 SP1 /en-us/help/2931078

Tentang pembaruan kumulatif untuk SQL Server

Setiap pembaruan kumulatif baru untuk SQL Server berisi semua hotfix dan semua perbaikan keamanan yang disertakan dengan pembaruan kumulatif sebelumnya. Lihat pembaruan kumulatif terbaru untuk SQL Server:

      

Status

Microsoft telah mengonfirmasi bahwa ini adalah masalah dalam produk Microsoft sebagaimana tercantum di bagian "Berlaku untuk".