Cara mengembalikan replikasi setelah server crash

8

Kami memiliki dua database pada satu contoh SQL Server 2005 dengan replikasi transaksional di antara mereka (3 tabel sebagai artikel). Server ini bertindak sebagai penerbit dan distributor.

Kemudian RAID di server gagal. Namun kami berhasil melepaskan dan menyalin hampir semua .mdffile sebelum crash.

Setelah sistem dipulihkan, kami menginstal ulang SQL Server, memulihkan basis data sistem (master, model, msdb) dan menempatkan .mdffile ke jalur yang sama. Jadi itu dimulai.

Masalahnya muncul dengan replikasi. The Local Publikasi folder itu kosong, meskipun Langganan lokal folder yang terdapat langganan yang bersangkutan. Ketika saya mencoba menambahkan publikasi baru, saya mendapat:

Wisaya Publikasi Baru menemukan satu atau lebih kesalahan saat mengambil nama publikasi.

Pengecualian terjadi saat menjalankan pernyataan atau kumpulan Transact-SQL. (Microsoft.SqlServer.ConnectionInfo)

Nama objek tidak valid 'dbo.syspublications'. (Microsoft SQL Server, Kesalahan: 208)

Saya memutuskan untuk mencoba menghapus langganan kiri (akhirnya saya berhasil) dan menonaktifkan penerbitan dan distribusi di server, yang memberi saya:

SQL Server tidak dapat menonaktifkan penerbitan dan distribusi di 'someserver'.

Nama objek tidak valid 'dbo.syssubscription'. Hitungan transaksi setelah EXECUTE menunjukkan bahwa pernyataan TRANSAKSI KOMIT atau ROLLBACK tidak ada. Penghitungan sebelumnya = 0, penghitungan saat ini = 1. Penghitungan transaksi setelah EXECUTE mengindikasikan bahwa pernyataan COMMIT atau ROLLBACK TRANSACTION tidak ada. Penghitungan sebelumnya = 0, penghitungan saat ini = 1. Penghitungan transaksi setelah EXECUTE mengindikasikan bahwa pernyataan COMMIT atau ROLLBACK TRANSACTION tidak ada. Penghitungan sebelumnya = 0, penghitungan saat ini = 1. Penghitungan transaksi setelah EXECUTE mengindikasikan bahwa pernyataan COMMIT atau ROLLBACK TRANSACTION tidak ada. Penghitungan sebelumnya = 0, penghitungan saat ini = 1. Penghitungan transaksi setelah EXECUTE mengindikasikan bahwa pernyataan COMMIT atau ROLLBACK TRANSACTION tidak ada. Hitungan sebelumnya = 0, hitungan saat ini = 1. Mengubah konteks basis data ke 'master'. (Microsoft SQL Server, Kesalahan: 208)

Sepertinya beberapa info tidak pulih dari cadangan basis data sistem (mungkin distributionbasis data mungkin ada sesuatu yang hilang).

Saya juga mencoba mengikuti jawaban yang diberikan karena tidak dapat menonaktifkan penerbitan dan distribusi . Tetapi tidak berhasil. Saya mencoba membuat syspublicationskeduanya masterdan distribution, tetapi tidak ada yang berubah.

Jadi, bagaimana saya bisa membuat replikasi bekerja di server ini?

Mencoba untuk menerbitkan beberapa database lain di server dan berhasil. Jadi masalahnya tampaknya terhubung dengan database yang diterbitkan. Bagaimana saya bisa menjernihkannya untuk mengelola membuat publikasi baru di atasnya?

System Tables subfolder dari database masalah melewatkan tabel replikasi, yang dibuat, ketika database diterbitkan.

Di monitor replikasi saya bisa melihat langganan lama itu, sementara mereka tidak tersedia di folder Replikasi .

horgh
sumber

Jawaban:

4

Pada akhirnya saya hanya melakukan apa yang diinginkan server, yaitu membuat semua tabel "publikasi" (* dbo.MSpeer _ ** dan * dbo.sys **) dalam database bermasalah (yang merupakan penerbit), melalui Script Table Sebagai -> CREATE To dialog. Berkat server ini, saya dapat menonaktifkan penerbitan dan distribusi. Maka saya hanya perlu mengkonfigurasi ulang replikasi.

Harapan, lain kali crash (sebenarnya saya harap tidak), kami akan cukup bijaksana untuk membuat cadangan tabel yang terlibat dalam replikasi secara menyeluruh.


Informasi tambahan oleh Zane , aslinya dibiarkan dalam komentar:

Tabel dbo.MSpeer_ * dan dbo.sys * juga dapat dibuat dengan mengkonfigurasi distributor / penerbit di server yang berbeda dengan SQL Server diinstal. Ini akan membuat tabel ini dalam database yang telah Anda tetapkan untuk diterbitkan. Lihat -> Tabel -> Tabel Sistem dalam SSMS.

Kemudian, buat skema untuk semua tabel ini dan kemudian buat tabel ini dalam database bermasalah yang akan memungkinkan Anda untuk menonaktifkan distribusi dan penerbitan dan mengkonfigurasi ulang distributor.

horgh
sumber