Dampak perubahan tingkat kompatibilitas DB untuk DB yang direplikasi dari 90 menjadi 100

11

Saya memiliki SQL Server 2008 R2 server dengan sekelompok database yang diterbitkan yang saat ini beroperasi di bawah tingkat kompatibilitas 90 (2005).

Database berlangganan juga SQL Server 2008 R2, namun database tujuan diatur ke tingkat kompatibilitas 100 dan replikasi berfungsi dengan baik.

Jika saya mengubah tingkat kompatibilitas untuk database yang diterbitkan, apakah itu akan mempengaruhi replikasi dengan cara apa pun, atau apakah itu hanya kasus menginisialisasi ulang semua langganan dan memulai kembali replikasi?

Saya menduga bahwa mengubah tingkat kompatibilitas basis data yang diterbitkan dapat mengubah cara replikasi menyimpan sedikit fungsi, tapi saya tidak 100% yakin.

Apakah ini masalahnya?

Bob
sumber
Pertanyaan yang menarik, tetapi apakah ada alasan database ini perlu memiliki tingkat kompatibilitas yang berubah? Jika semuanya bekerja dengan baik, saya mungkin akan membiarkannya saja ...
Jon Seigel
Alasan utama saya ingin mengubahnya adalah bahwa DB dan server tempat mereka duduk baru saja ditingkatkan dari kotak 2005 node tunggal ke cluster 2008R2 multi-node. Selain itu, ada beberapa bit fungsionalitas lain (seperti MERGE dll.) Yang ingin saya mulai gunakan.
Bob
1
Anda mungkin ingin membaca pertanyaan ini mengenai apa yang dilakukan tingkat kompatibilitas: dba.stackexchange.com/questions/5166/…
Jon Seigel
Akhir dari peradaban. Kucing dan anjing hidup bersama. Histeria massal. Saya juga harus menyebutkan bahwa itu dapat menyebabkan shutdown pemerintah. Namun, Anda tampaknya jelas tentang hal itu.
swasheck

Jawaban:

4

Anda dapat mengikuti langkah-langkah di bawah ini:

  • Pastikan bahwa Agen Pembaca Log berjalan untuk database. Secara default, agen berjalan terus menerus.
  • Hentikan aktivitas pengguna di tabel yang dipublikasikan.
  • Berikan waktu bagi Agen Pembaca Log untuk menyalin transaksi ke database distribusi, dan kemudian menghentikan agen.
  • Jalankan sp_replcmds untuk memverifikasi bahwa semua transaksi telah diproses. Hasil yang ditetapkan dari prosedur ini harus kosong.
  • Jalankan sp_replflush untuk menutup koneksi dari sp_replcmds.
  • Ubah tingkat kompatibilitas basis data .
  • Mulai Agen Pembaca Log.
Kin Shah
sumber
Saya memiliki pengaturan yang sangat mirip dan ingin melakukan hal yang sama tetapi basis data distribusi saya juga dalam mode kompatibilitas 90. Dari apa yang saya pahami, distributor tidak dapat beroperasi pada mode kompatibilitas yang lebih rendah sebagai penerbit. Jadi, apakah urutan operasi adalah dengan memasukkan "Ubah tingkat kompatibilitas distributor" sebelum "Ubah tingkat kompatibilitas dari basis data (dipublikasikan)" - setelah pembaca log dimatikan?
Antrian Mann
@QueueMann "Change compatibility level of distributor" before "Change the compatibility level of the (published) database"itu benar. Basis data distribusi harus pada tingkat kompatibilitas yang sama atau lebih tinggi dari Penerbit. Penerbit dapat berada pada level yang sama atau lebih rendah dari distributor.
Kin Shah
2

Kami melakukan ini, hanya untuk aman kami berhenti mereplikasi database itu, mengubah tingkat kompatibilitas, lalu menginisialisasi ulang. Kami tidak mengalami masalah. Itu adalah publikasi yang cukup kecil dan hanya ada satu basis data berlangganan. Saya pikir itu mungkin bisa lebih sulit karena skenario replikasi Anda menjadi lebih kompleks. (yaitu, berlangganan db untuk mendapatkan publikasi dari banyak dbs, dll.)

rottengeek
sumber