Lokasi ejen, bukan lokasi data, ialah keputusan yang membentuk langganan SQL Server. Mesin yang menjalankan ejen membuka sambungan, berjalan di bawah akaun tertentu dan memikul kesalahan apabila penyegerakan terhenti. Pada VPN antara tapak, perbezaan itu ialah reka bentuk, bukan butiran. Lukis sambungan ejen sebelum anda melukis rangkaian.

Tiga peranan, bukan dua

Publisher memiliki data artikel, Distributor memiliki pangkalan data pengedaran, dan Subscriber menerima perubahan. Log Reader Agent berjalan di Distributor untuk replikasi transaksi. Distribution Agent ialah ejen yang lokasinya berubah mengikut jenis langganan, dan itulah sebabnya ia menentukan reka bentuk rangkaian. Jelaskan peranan itu sebelum anda bercakap tentang peraturan VPN.

Langganan push menjalankan Distribution Agent di Distributor, dan langganan pull menjalankannya di Subscriber, seperti yang dinyatakan oleh dokumentasi langganan Microsoft. Semua dalam perbualan rangkaian bergantung pada mesin mana itu. Catat empat fakta bagi setiap langganan: hos ejen, identiti prosesnya, log masuk pangkalan data yang digunakannya dan sumber yang mesti dicapainya. Fakta itu, bukan anak panah rajah, memberitahu anda arah mana yang mesti berfungsi.

push bermakna ejen tinggal di Distributor

Dengan langganan push, Distributor membuka sambungan kepada Subscriber merentas VPN. Pendengar, firewall dan log masuk SQL di pihak pelanggan mesti menerima sambungan yang datang dari pihak jauh. Akaun perkhidmatan Distributor juga memerlukan kebenaran pada pangkalan data pelanggan. Rancang laluan masuk itu sebelum anda mencipta langganan, kerana menemukannya kemudian biasanya bermakna menciptanya semula.

Penghantaran snapshot menambah laluan yang tidak pernah digunakan oleh replikasi mantap. Jika snapshot diletakkan pada perkongsian fail, Distribution Agent membaca daripada perkongsian itu dan akaun pelanggan mesti mencapai laluan UNC yang sama. Aliran perubahan yang berjalan berminggu-minggu tidak mengatakan apa-apa tentang sama ada permulaan semula akan berfungsi. Itulah sebabnya perkongsian snapshot tergolong dalam pelan sejak awal.

Jangan baca push sebagai trafik satu arah. Ejen memerlukan balasan, pengesahan dan pertukaran pengesahan sendiri. Laluan mesti dua arah pada peringkat sambungan walaupun data bergerak dalam satu arah.

pull bermakna ejen tinggal di Subscriber

Langganan pull menterbalikkan sambungan: Subscriber menjalankan Distribution Agent dan menghubungi Distributor. Susunan itu sesuai dengan dasar VPN yang membenarkan sambungan keluar dari cawangan dan menyekat sambungan masuk. Ia juga meletakkan keputusan penjadualan di tangan sesiapa yang menjaga pelayan cawangan. Pilihnya apabila pasukan cawangan harus memiliki penyegerakannya sendiri dan menyedari kegagalannya sendiri.

Akaun perkhidmatan SQL Server Agent pelanggan memerlukan akses baca kepada pangkalan data pengedaran dan perkongsian snapshot. Akaun itu ialah identiti yang muncul dalam ralat replikasi, dan akaun perkhidmatan tempatan tanpa hak domain gagal pada titik yang kelihatan seperti kerosakan rangkaian tetapi sebenarnya kerosakan bukti kelayakan. Semak akaun itu sebelum nyahpepijat terowong. Membaiki log masuk biasanya lebih cepat daripada membuktikan rangkaian tidak bersalah.

Pemilikan mengikut ejen. Pilih push apabila pasukan pusat harus memiliki jadual dan kegagalan sekali gus. Apa pun yang anda pilih, tulisnya di sebelah langganan supaya jurutera seterusnya tahu ke mana hendak melihat dahulu.

Penerbitan semula mengubah taburan, bukan pemilikan

Pelanggan boleh dikonfigurasikan untuk menerbitkan semula kepada pelanggan selanjutnya, membolehkan satu pangkalan data cawangan melayani beberapa pengguna tempatan tanpa setiap satu menarik merentas WAN. Pangkalan data tengah kini menyimpan penerbitan dan ejennya sendiri. Ia juga mewarisi kebenaran, pemantauan dan pelan pemulihan yang tidak dimilikinya sebelum ini. Peranan tambahan itu ialah harga untuk menghapuskan penghantaran WAN berulang.

Susunan yang didokumenkan penting: mulakan langganan masuk sebelum mencipta penerbitan hiliran. Anggapnya sebagai langkah kitaran hayat dengan pengesahan, bukan kerja kertas yang dilangkau. Membalikkannya menghasilkan rantaian yang kelihatan dikonfigurasikan dan tidak menghantar apa-apa.

Nyatakan model penulisan secara eksplisit. Mereplikasi set data baca sahaja kepada pengguna tempatan ialah reka bentuk berbeza daripada menerima tulisan di beberapa tapak, dan rantaian anak panah tidak mencipta penyelesaian konflik. Jika cawangan mesti menulis, itu keputusan berasingan dengan topologinya sendiri. Jadikan kebergantungan itu kelihatan juga: apabila penerbit semula tidak berjalan, setiap pengguna di bawahnya sudah lapuk.

Buktikan kedudukan dari hujung ke hujung

Baca jenis langganan daripada pangkalan data pengedaran daripada mempercayai ingatan, kemudian semak sama ada perubahan benar-benar tiba:

USE distribution;
SELECT publication, subscriber_db, subscription_type
FROM dbo.MSsubscriptions;
EXEC sp_replmonitorsubscriptionpendingcmds
  @publisher = 'PUB1', @publisher_db = 'Sales',
  @publication = 'SalesPub', @subscriber = 'BR1',
  @subscriber_db = 'Sales';

subscription_type bernilai 0 ialah push dan 1 ialah pull, dan ia tidak boleh diubah di tempat, jadi ketidakpadanan bermakna mencipta semula langganan dan bukan menyuntingnya. Panggilan arahan tertunda memberitahu anda sama ada ejen yang dipilih memindahkan kerja atau hanya berjalan. Langganan yang melaporkan sifar arahan tertunda sementara jadual pelanggan kekal kosong ialah kerosakan berbeza daripada yang melaporkan tunggakan yang bertambah, dan kedua-duanya membawa kepada pemilik yang berbeza.

Tamatkan dengan perubahan sebenar: masukkan atau kemas kini satu baris di Publisher, tunggu ejen melaporkan dan baca baris itu di Subscriber. Lakukan sekali lagi merentas gangguan VPN yang singkat untuk melihat bagaimana ejen pulih. Langganan yang bertahan dalam ujian itu mempunyai kedudukan yang boleh anda dokumenkan dan pertahankan.

Artikel berkaitan