Pengantar
Replikasi SQL Server adalah fitur SQL Server yang memungkinkan kami mentransfer data dari satu instance ke instance lain untuk tujuan seperti mengkonsolidasikan data ke dalam lingkungan pelaporan atau migrasi. Saya pribadi tidak akan menganggap Replikasi SQL Server sebagai teknologi ketersediaan tinggi meskipun beberapa orang menganggapnya demikian.
Replikasi SQL Server menggunakan istilah yang mirip dengan yang ada di industri penerbitan untuk menjelaskan cara data ditangani dari sumber ke tujuan. Istilah kuncinya adalah sebagai berikut:
- Publisher – sebuah instance SQL Server yang membuat data tersedia untuk direplikasi ke instance lain (dikemas sebagai publikasi).
- Publikasi – unit yang siap untuk diteruskan ke instance penerima yang terdiri dari kumpulan artikel yang sebenarnya merupakan objek database.
- Distributor – contoh SQL Server yang bertanggung jawab untuk menyimpan data yang terkait dengan satu atau lebih penerbit dalam database yang disebut database distribusi . Distributor Lokal disimpan di tempat yang sama dengan Penerbit saat Distributor Jarak Jauh terletak di tempat lain.
- Pelanggan – sebuah instance yang menerima database yang direplikasi. Langganan pelanggan adalah permintaan salinan publikasi yang diharapkan diterima dari Penerbit.
- Snapshot.
Dalam artikel ini, saya akan membagikan beberapa poin yang saya pelajari dari konfigurasi replikasi SQL Server untuk mendukung pelanggan yang heterogen. Saya akan membuat publikasi dan selanjutnya berlangganan Oracle yang akan bergantung pada publikasi ini. Saya juga akan mendemonstrasikan beberapa poin beserta alur proses yang sangat penting untuk pemecahan masalah.
Langkah-langkah untuk mengonfigurasi sesi replikasi snapshot adalah sebagai berikut:
- Konfigurasikan distributor
- Konfigurasikan penerbit (bersama dengan publikasi termasuk artikel yang diterbitkan)
- Mengonfigurasi pelanggan
Saya akan memberikan penjelasan singkat untuk setiap langkahnya.
Mengonfigurasi Distributor
Distributor adalah instans yang bertanggung jawab untuk menyimpan informasi yang digunakan selama replikasi. Saat Anda mencoba membuat publikasi dalam instans untuk pertama kalinya, SQL Server akan menyarankan Anda untuk mengonfigurasi Distributor. Dalam artikel ini, Distributor kami adalah Distributor Lokal .
Membuat Publikasi
Mari kita mengidentifikasi database yang berisi objek yang ingin kita tiru. Ini akan menjadi Basis Data Publikasi .
Untuk membuat database publikasi, ikuti petunjuk pada tangkapan layar di bawah.
Langkah ini memungkinkan Anda untuk memilih jenis publikasi yang ingin Anda konfigurasikan. Setiap tipe publikasi dijelaskan di panel bawah. Untuk alasan kesederhanaan dan kompatibilitas, kami memilih publikasi snapshot. Harap dicatat bahwa kami bermaksud untuk mereplikasi objek ke instance Oracle. Dalam hal ini, Transaksional dan Publikasi Cuplikan didukung. Ada kasus penggunaan bagus lainnya untuk replikasi peer-to-peer dan merge.
Pada langkah ini, kita memilih artikel yang ingin kita terbitkan. SQL Server memungkinkan kita untuk mempublikasikan empat jenis objek utama seperti:
- Tabel
- Prosedur Tersimpan
- Tampilan
- Fungsi Buatan Pengguna
Seperti yang Anda lihat, kami akan menerbitkan dua tabel:Pesanan dan BarisPesanan. Untuk tujuan menunjukkan fleksibilitas replikasi SQL Server, kami akan memfilter catatan seperti yang ditunjukkan di bawah ini.
Catatan: Kami tertarik dengan jumlah OrderID yang lebih besar dari 1000.
Untuk mengecualikan baris yang tidak diinginkan dari tabel yang dipublikasikan, klik Tambahkan… lalu Selanjutnya .
Tangkapan layar di bawah ini menampilkan cara memfilter kolom untuk tabel OrderLines.
Selanjutnya, konfigurasikan properti Snapshot Agent. Kami mendefinisikan snapshot awal dan interval selama snapshot baru dihasilkan. Data yang diekstraksi pada langkah ini disimpan dalam direktori yang ditentukan saat pertama kali mengonfigurasi distributor.
Pertama, atur jadwal untuk memulai agen snapshot. Klik Berikutnya .
Untuk setiap agen snapshot, tentukan akun yang akan menjalankannya.
Kemudian, konfigurasikan pengaturan keamanan Agen Snapshot. Tabel Pengaturan Keamanan membuka jendela lain tempat kami menentukan siapa yang menjalankan proses Agen Snapshot serta menentukan detail login SQL Server untuk dihubungkan ke penerbit. Ada izin tertentu yang diperlukan oleh prinsipal ini yang bisa sedikit cerdik dalam produksi. Menggunakan akun Layanan Agen Server SQL adalah solusi untuk menghindari komplikasi tetapi sebenarnya TIDAK direkomendasikan oleh Microsoft.
Menjelang akhir, Anda harus memutuskan apakah Anda ingin menyimpan konfigurasi sebagai skrip untuk digunakan nanti atau segera membuat publikasi.
Langkah berikutnya (Gbr. 16) merangkum semua opsi yang telah Anda pilih. Disarankan untuk membuat tinjauan singkat sebelum mengeklik tombol Selesai tombol.
Proses Membuat Publikasi dimulai. Anda dapat mengeklik Berhenti untuk menghentikan proses.
Setelah proses selesai, publikasi Anda akan terlihat di panel Object Explorer di SQL Server Management Studio.
Menambahkan Pelanggan
Pelanggan menerima publikasi yang disediakan oleh Penerbit . Salinan publikasi yang akan dikirimkan ke pelanggan disebut Langganan . Penerbit dapat memiliki banyak pelanggan. Setiap
pelanggan menerima artikel yang diterbitkan oleh Penerbit ini sebagai satu kesatuan yang disebut publikasi sejauh menyangkut penerbit dan dianggap sebagai langganan Pelanggan.
Dengan membuat langganan, kami hanya memberi tahu Penerbit, "Saya ingin memiliki salinan publikasi ini". Sebanyak Penerbit dapat memiliki banyak publikasi, mungkin juga ada banyak pelanggan untuk satu
publikasi. Dengan demikian, hubungan Penerbit dengan Pelanggan adalah hubungan satu-ke-banyak.
Wizard Langganan Baru memungkinkan kami memutuskan publikasi apa yang ingin kami langgani. Kami dapat memilih dari daftar publikasi yang dibuat sebelumnya seperti yang ditunjukkan pada Gambar. 20.
Selanjutnya, kami memutuskan apakah kami ingin menjalankan Langganan Dorong alih-alih Langganan Tarik. Meskipun Langganan Tarik lebih baik untuk kinerja ketika Anda membayangkan beberapa pelanggan, itu tidak akan
berfungsi untuk replikasi database yang heterogen. Pelanggan Non-SQL Server harus menggunakan Langganan Tarik. Perlu disebutkan bahwa artikel yang diterbitkan dalam skenario ini juga terbatas pada tabel dan tampilan yang diindeks.
Tambahkan pelanggan Oracle menggunakan nama sumber data (DSN). DSN ini harus sudah dibuat, diuji, dan ternyata berfungsi dalam hal dapat terhubung ke instance Oracle melalui Oracle Net. Ini berarti Anda memerlukan klien Oracle yang diinstal pada host SQL Server dengan entri ke file bernama tnsnames.ora menentukan tujuan koneksi. Entri TNS ini selanjutnya digunakan untuk mengonfigurasi nama sumber data yang diminta oleh Wizard Berlangganan Baru pada tahap ini.
Entri yang saya buat di file tnsnames.ora saya terlihat seperti ini:
ORCL10G = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = IGIRI-LP)(PORT = 1522)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl10g) ) )
Bagian yang disorot adalah alias sedangkan detail lainnya menentukan tujuan koneksi. Kami dapat mengonfirmasi apakah entri ini berfungsi dengan baik dan apakah Variabel Lingkungan Oracle saya dikonfigurasi dengan benar dengan menggunakan tnsping utilitas seperti yang ditunjukkan di bawah ini.
Setelah dikonfirmasi, Entri TNS ini digunakan untuk mengonfigurasi DSN yang ingin kami gunakan. Nama Layanan TNS kami disebut ORCL10G sedangkan DSN disebut ORCLDC . Ini adalah DSN yang kami gunakan di Wizard Berlangganan Baru.
Perhatikan bahwa kami telah menggunakan ODBC versi 64-Bit untuk mengkonfigurasi DSN dan ini adalah DSN sistem, bukan DSN pengguna. Konfigurasi tidak bergantung pada siapa yang masuk ke komputer.
Pilih jenis pelanggan yang akan ditambahkan dan masukkan nama sumber data. Klik Oke .
Pilih satu atau beberapa pelanggan, serta tentukan database untuk setiap langganan.
Setelah DSN ditambahkan, kita dapat melanjutkan dengan mengkonfigurasi keamanan agen distribusi. Kami menemukan bahwa ini mirip dengan kasus ketika kami mengonfigurasi Keamanan Agen Snapshot di Wizard Publikasi Baru.
Namun, di sini, kami memiliki bagian di mana kami membuat koneksi ke Pelanggan daripada ke Penerbit (ingat bahwa ini adalah langganan push). Akun pengguna ini harus telah dibuat pada instance Oracle dan harus memiliki hak istimewa untuk membuat tabel dan kuota pada tablespace defaultnya (di sini Anda mungkin memerlukan Oracle DBA).
Tambahkan parameter ke keamanan agen distribusi dan klik OK .
Tentukan akun dan opsi koneksi untuk setiap agen distribusi dan klik Berikutnya .
Tentukan jadwal sinkronisasi untuk setiap agen. Dalam kasus kami, kami memilih untuk menyinkronkan terus menerus. Klik Berikutnya .
Pilih opsi untuk menginisialisasi langganan segera yang berarti menyalin SEMUA data yang tersedia di folder Snapshot lagi. Disarankan bagi pelanggan NoSQL Server untuk menginisialisasi ulang langganan ketika ada artikel baru yang ditambahkan ke Publikasi. Klik Berikutnya .
Pilih opsi yang akan dilakukan setelah proses selesai dengan sukses. Klik Berikutnya .
Verifikasi informasi yang Anda tambahkan dan klik Selesai .
Proses Membuat Langganan berjalan.
Langganan yang baru saja kita buat menunjukkan entri di Object Explorer (di Publisher) yang dipetakan ke publikasi induknya. Perhatikan bahwa itu tidak muncul di node Langganan Lokal yang memberi Anda daftar langganan yang dibuat pada instans saat ini yang tidak ada dalam kasus ini.
Pemantauan dan Pemecahan Masalah
SQL Server menyediakan Monitor Replikasi untuk meninjau dan memantau detail semua sesi replikasi pada instans. Monitor Replikasi dapat memberi tahu administrator saat Agen Snapshot berjalan dan selesai. Itu juga dapat menunjukkan kepada kita apakah Langganan diinisialisasi dan apakah Agen Distribusi berjalan dengan lancar.
Ada delapan pekerjaan Agen Server SQL yang terkait dengan konfigurasi kami saat ini. Melihat riwayat pekerjaan ini juga memberikan detail tentang apakah semuanya baik-baik saja.
Kesalahan Oracle yang sebenarnya terdaftar di Monitor Replikasi dan di log kesalahan SQL Server saat ditemui. Tingkat detail ini membuat Replikasi SQL Server menarik untuk dipecahkan. Memiliki pengetahuan tentang Oracle (untuk SQL Server DBA) akan sangat membantu dalam memahami kesalahan yang mungkin muncul.
Lihat contoh kesalahan pada Gambar 34. Kesalahan ini terjadi sebelum lingkungan Oracle Net dan ODBC dikonfigurasi dengan benar. Kesalahan memberikan indikasi yang sangat jelas tentang di mana masalahnya.
Tampilan Job Activity Monitor juga memberi tahu kami pekerjaan apa yang berhasil dan pekerjaan apa yang kami butuhkan untuk memecahkan masalah secara mendetail dengan memeriksa Riwayat Pekerjaan.
Setelah semua kesalahan sebelumnya teratasi, membuka langganan dengan mengklik dua kali itu memberi kami tampilan terperinci dari semua sesi, kesalahan, dan hasil yang kami harapkan untuk dilihat ketika semuanya baik-baik saja. Perhatikan bahwa Agen Massal menyalin data dari Penerbit ke Pelanggan dalam batch. Kami juga dapat menanyakan tabel yang telah dibuat di instance Oracle dan membandingkan catatan. (Gbr. 37).
Seperti yang Anda lihat, SQL Server menyiapkan tabel tidak termasuk skema sumber (Penjualan) sebelum membuat tabel di Oracle dan menyalin data.
Jumlah record dalam instance Oracle cocok dengan yang ada di tabel sumber dan memperhitungkan fakta bahwa kami memfilter tabel OrderLines untuk OrderID yang lebih besar dari 1000.
Kesimpulan
Kami telah secara singkat menjalankan proses konfigurasi replikasi database heterogen dengan instance Oracle sebagai Pelanggan. Meskipun opsi ini secara bertahap tidak digunakan lagi oleh Microsoft, ada kasus penggunaan yang masih dapat memanfaatkan kemampuan yang disediakan oleh fitur SQL Server lama ini. Bagian Referensi menyediakan bacaan yang lebih luas tentang subjek yang saya yakini akan berguna bagi mereka yang ingin berlatih lebih banyak.
Referensi
Konfigurasikan Replikasi untuk Grup Ketersediaan Selalu Aktif
Pelanggan Non-Oracle
Replikasi Basis Data Heterogen
Pelanggan Oracle