Bagikan melalui


Tanya Jawab Umum untuk Administrator Replikasi

Pertanyaan dan jawaban berikut memberikan panduan tentang berbagai tugas yang dihadapi oleh administrator database yang direplikasi.

Mengonfigurasi Replikasi

Apakah aktivitas perlu dihentikan pada database saat diterbitkan?

Nomor. Aktivitas dapat berlanjut pada database saat publikasi sedang dibuat. Ketahuilah bahwa memproduksi rekam jepret dapat intensif sumber daya, jadi yang terbaik adalah menghasilkan rekam jepret selama periode aktivitas yang lebih rendah pada database (secara default rekam jepret dihasilkan saat Anda menyelesaikan Panduan Publikasi Baru).

Apakah tabel dikunci selama pembuatan rekam jepret?

Lamanya waktu penguncian diambil tergantung pada jenis replikasi yang digunakan:

  • Untuk publikasi gabungan, Agen Rekam Jepret tidak mengambil kunci apa pun.

  • Untuk publikasi transaksional, secara default Agen Rekam Jepret hanya mengambil kunci selama fase awal pembuatan rekam jepret.

  • Untuk publikasi rekam jepret, Agen Rekam Jepret mengambil kunci selama seluruh proses pembuatan rekam jepret.

Karena kunci mencegah pengguna lain memperbarui tabel, Agen Rekam Jepret harus dijadwalkan untuk dijalankan selama periode aktivitas yang lebih rendah pada database, terutama untuk publikasi rekam jepret.

Kapan langganan tersedia; kapan database langganan dapat digunakan?

Langganan tersedia setelah rekam jepret diterapkan ke database langganan. Meskipun database langganan dapat diakses sebelum ini, database tidak boleh digunakan sampai setelah rekam jepret diterapkan. Gunakan Monitor Replikasi untuk memeriksa status pembuatan rekam jepret dan aplikasi:

  • Rekam jepret dihasilkan oleh Agen Rekam Jepret. Lihat status pembuatan rekam jepret pada tab Agen untuk publikasi di Monitor Replikasi. Untuk informasi selengkapnya, lihat Menampilkan Informasi dan Melakukan Tugas menggunakan Monitor Replikasi.

  • Rekam jepret diterapkan oleh Agen Distribusi atau Agen Penggabungan. Lihat status aplikasi rekam jepret di halaman Agen Distribusi atau Gabungkan Agen dari Monitor Replikasi.

Apa yang terjadi jika Agen Rekam Jepret belum selesai saat Agen Distribusi atau Penggabungan dimulai?

Ini tidak akan menyebabkan kesalahan jika Agen Distribusi atau Agen Penggabungan berjalan pada saat yang sama dengan Agen Rekam Jepret. Namun, Anda harus mengetahui hal-hal berikut:

  • Jika Agen Distribusi atau Agen Penggabungan dikonfigurasi untuk berjalan terus menerus, agen menerapkan rekam jepret secara otomatis setelah Agen Rekam Jepret selesai.

  • Jika Agen Distribusi atau Agen Penggabungan dikonfigurasi untuk berjalan sesuai jadwal atau sesuai permintaan, dan tidak ada rekam jepret yang tersedia saat agen berjalan, agen akan dimatikan dengan pesan yang menyatakan bahwa rekam jepret belum tersedia. Anda harus menjalankan agen lagi untuk menerapkan rekam jepret setelah Agen Rekam Jepret selesai. Untuk informasi selengkapnya tentang agen yang sedang berjalan, lihat Menyinkronkan Langganan Push, Menyinkronkan Langganan Pull, dan Konsep Executables Agen Replikasi.

Haruskah saya membuat skrip konfigurasi replikasi saya?

Ya. Membuat skrip konfigurasi replikasi adalah bagian penting dari rencana pemulihan bencana untuk topologi replikasi. Untuk informasi selengkapnya tentang pembuatan skrip, lihat Replikasi Pembuatan Skrip.

Model pemulihan apa yang diperlukan pada database yang direplikasi?

Fungsi replikasi dengan benar menggunakan salah satu model pemulihan: sederhana, dicatat secara massal, atau penuh. Replikasi gabungan melacak perubahan dengan menyimpan informasi dalam tabel metadata. Replikasi transaksional melacak perubahan dengan menandai log transaksi, tetapi proses penandaan ini tidak terpengaruh oleh model pemulihan.

Mengapa replikasi menambahkan kolom ke tabel yang direplikasi; apakah tabel akan dihapus jika tabel tidak diterbitkan?

Untuk melacak perubahan, replikasi penggabungan dan replikasi transaksional dengan langganan pembaruan antrean harus dapat mengidentifikasi setiap baris secara unik di setiap tabel yang diterbitkan. Untuk mencapai hal ini:

  • Replikasi penggabungan menambahkan rowguid kolom ke setiap tabel, kecuali tabel sudah memiliki kolom pengidentifikasi unik tipe data dengan kumpulan properti ROWGUIDCOL (dalam hal ini kolom ini digunakan). Jika tabel dihilangkan dari publikasi, kolom rowguid akan dihapus; jika kolom yang ada digunakan untuk pelacakan, kolom tidak dihapus.

  • Jika publikasi transaksional mendukung pembaruan langganan antrean, replikasi menambahkan kolom msrepl_tran_version ke setiap tabel. Jika tabel dihilangkan dari publikasi, kolom msrepl_tran_version tidak dihapus.

  • Filter tidak boleh menyertakan yang rowguidcol digunakan oleh replikasi untuk mengidentifikasi baris. Secara default ini adalah kolom yang ditambahkan pada saat Anda menyiapkan replikasi penggabungan dan diberi nama rowguid.

Bagaimana cara mengelola batasan pada tabel yang diterbitkan?

Ada sejumlah masalah yang perlu dipertimbangkan mengenai batasan pada tabel yang diterbitkan:

  • Replikasi transaksional memerlukan batasan kunci utama pada setiap tabel yang diterbitkan. Replikasi penggabungan tidak memerlukan kunci primer, tetapi jika ada, replikasi harus direplikasi. Replikasi rekam jepret tidak memerlukan kunci primer.

  • Secara default, batasan kunci primer, indeks, dan batasan pemeriksaan direplikasi ke Pelanggan.

  • Opsi NOT FOR REPLICATION ditentukan secara default untuk batasan kunci asing dan batasan pemeriksaan; batasan diberlakukan untuk operasi pengguna tetapi bukan operasi agen.

Untuk informasi tentang mengatur opsi skema yang mengontrol apakah batasan direplikasi, lihat Menentukan Opsi Skema.

Bagaimana cara mengelola kolom identitas?

Replikasi menyediakan manajemen rentang identitas otomatis untuk topologi replikasi yang menyertakan pembaruan di Pelanggan. Untuk informasi selengkapnya, lihat Mereplikasi Kolom Identitas.

Bisakah objek yang sama diterbitkan dalam publikasi yang berbeda?

Ya, tapi dengan beberapa batasan. Untuk informasi selengkapnya, lihat bagian "Menerbitkan Tabel di Lebih dari Satu Publikasi" dalam topik Menerbitkan Data dan Objek Database.

Bisakah beberapa publikasi menggunakan database distribusi yang sama?

Ya. Tidak ada batasan jumlah atau jenis publikasi yang dapat menggunakan database distribusi yang sama. Semua publikasi dari Penerbit tertentu harus menggunakan database Distributor dan distribusi yang sama.

Jika Anda memiliki beberapa publikasi, Anda dapat mengonfigurasi beberapa database distribusi di Distributor untuk memastikan bahwa data yang mengalir melalui setiap database distribusi berasal dari satu publikasi. Gunakan kotak dialog Properti Distributor atau sp_adddistributiondb (Transact-SQL) untuk menambahkan database distribusi. Untuk informasi selengkapnya tentang mengakses kotak dialog, lihat Menampilkan dan Mengubah Properti Distributor dan Penerbit.

Bagaimana cara menemukan informasi tentang Distributor dan Penerbit, seperti objek mana dalam database yang diterbitkan?

Informasi ini tersedia melalui SQL Server Management Studio, dan sejumlah prosedur tersimpan replikasi. Untuk informasi selengkapnya, lihat Distributor dan Skrip Informasi Penerbit.

Apakah replikasi mengenkripsi data?

Nomor. Replikasi tidak mengenkripsi data yang disimpan dalam database atau ditransfer melalui jaringan. Untuk informasi selengkapnya, lihat bagian "Enkripsi" dari topik SQL Server Keamanan Replikasi.

Bagaimana cara mereplikasi data melalui Internet?

Replikasi data melalui Internet menggunakan:

Semua jenis replikasi Microsoft SQL Server dapat mereplikasi data melalui VPN, tetapi Anda harus mempertimbangkan sinkronisasi Web jika Anda menggunakan replikasi penggabungan.

Apakah replikasi dilanjutkan jika koneksi terputus

Ya. Pemrosesan replikasi dilanjutkan pada titik yang ditinggalkannya jika koneksi terputus. Jika Anda menggunakan replikasi penggabungan melalui jaringan yang tidak dapat diandalkan, pertimbangkan untuk menggunakan rekaman logis, yang memastikan perubahan terkait diproses sebagai unit. Untuk informasi selengkapnya, lihat Perubahan Grup pada Baris Terkait dengan Rekaman Logis.

Apakah replikasi berfungsi melalui koneksi bandwidth rendah? Apakah menggunakan kompresi?

Ya, replikasi bekerja melalui koneksi bandwidth rendah. Untuk koneksi melalui TCP/IP, ia menggunakan pemadatan yang disediakan oleh protokol tetapi tidak memberikan pemadatan tambahan. Untuk koneksi sinkronisasi Web melalui HTTPS, ia menggunakan pemadatan yang disediakan oleh protokol dan juga pemadatan tambahan dari file XML yang digunakan untuk mereplikasi perubahan.

Login dan Kepemilikan Objek

Apakah login dan kata sandi direplikasi?

Nomor. Anda dapat membuat paket DTS untuk mentransfer login dan kata sandi dari Penerbit ke satu atau beberapa Pelanggan.

Apa itu skema dan bagaimana mereka direplikasi?

Dimulai dengan Microsoft SQL Server 2005, skema memiliki dua arti:

  • Definisi objek, seperti pernyataan CREATE TABLE. Secara default, replikasi menyalin definisi semua objek yang direplikasi ke Pelanggan.

  • Namespace tempat objek dibuat: <Database>.<Skema>.<Objek>. Skema didefinisikan menggunakan pernyataan CREATE SCHEMA.

  • Replikasi memiliki perilaku default berikut dalam Panduan Publikasi Baru sehubungan dengan skema dan kepemilikan objek:

  • Untuk artikel dalam publikasi gabungan dengan tingkat kompatibilitas 90 atau lebih tinggi, publikasi rekam jepret, dan publikasi transaksi: secara default, pemilik objek di Pelanggan sama dengan pemilik objek yang sesuai di Penerbit. Jika skema yang memiliki objek tidak ada di Pelanggan, skema tersebut dibuat secara otomatis.

  • Untuk artikel dalam publikasi gabungan dengan tingkat kompatibilitas yang lebih rendah dari 90: secara default, pemilik dibiarkan kosong dan ditentukan sebagai dbo selama pembuatan objek pada Pelanggan.

  • Untuk artikel dalam publikasi Oracle: secara default, pemilik ditentukan sebagai dbo.

  • Untuk artikel dalam publikasi yang menggunakan rekam jepret mode karakter (yang digunakan untuk Pelanggan non-SQL Server dan Pelanggan SQL Server Compact): secara default, pemilik dibiarkan kosong. Pemilik default ke pemilik yang terkait dengan akun yang digunakan oleh Agen Distribusi atau Agen Penggabungan untuk terhubung ke Pelanggan.

Pemilik objek dapat diubah melalui kotak dialog Properti Artikel - <Artikel> dan melalui prosedur tersimpan berikut: sp_addarticle, sp_addmergearticle, sp_changearticle, dan sp_changemergearticle. Untuk informasi selengkapnya, lihat Menampilkan dan Mengubah Properti Publikasi, Menentukan Artikel, dan Menampilkan dan Mengubah Properti Artikel.

Bagaimana pemberian pada database langganan dikonfigurasi untuk mencocokkan pemberian pada database publikasi?

Secara default, replikasi tidak menjalankan pernyataan GRANT pada database langganan. Jika Anda ingin izin pada database langganan cocok dengan yang ada di database publikasi, gunakan salah satu metode berikut ini:

Apa yang terjadi pada izin yang diberikan dalam database langganan jika langganan diinisialisasi ulang?

Secara default, objek di Pelanggan dihilangkan dan dibuat ulang ketika langganan diinisialisasi ulang, yang menyebabkan semua izin yang diberikan untuk objek tersebut dihilangkan. Ada dua cara untuk menangani hal ini:

  • Terapkan kembali pemberian setelah reinisialisasi menggunakan teknik yang dijelaskan di bagian sebelumnya.

  • Tentukan bahwa objek tidak boleh dihilangkan saat langganan diinisialisasi ulang. Sebelum reinisialisasi, baik:

    • Jalankan sp_changearticle atau sp_changemergearticle. Tentukan nilai 'pre_creation_cmd' (sp_changearticle) atau 'pre_creation_command' (sp_changemergearticle) untuk parameter @property dan nilai 'none', 'delete' atau 'truncate' untuk parameter @value.

    • Dalam kotak dialog Properti Artikel - <Artikel> di bagian Objek Tujuan , pilih nilai Pertahankan objek yang sudah ada tidak berubah, Hapus data. Jika artikel memiliki filter baris, hapus hanya data yang cocok dengan filter. atau Memotong semua data di objek yang ada untuk opsi Tindakan jika nama sedang digunakan. Untuk informasi selengkapnya tentang mengakses kotak dialog ini, lihat Menampilkan dan Mengubah Properti Publikasi.

Pemeliharaan Database

Mengapa saya tidak bisa menjalankan TRUNCATE TABLE pada tabel yang diterbitkan?

TRUNCATE TABLE adalah operasi yang tidak dicatat yang tidak mengaktifkan pemicu. Ini tidak diizinkan karena replikasi tidak dapat melacak perubahan yang disebabkan oleh operasi: replikasi transaksional melacak perubahan melalui log transaksi; replikasi penggabungan melacak perubahan melalui pemicu pada tabel yang diterbitkan.

Apa efek menjalankan perintah sisipan massal pada database yang direplikasi?

Untuk replikasi transaksional, sisipan massal dilacak dan direplikasi seperti sisipan lainnya. Untuk replikasi penggabungan, Anda harus memastikan bahwa metadata pelacakan perubahan diperbarui dengan benar.

Apakah ada pertimbangan replikasi untuk pencadangan dan pemulihan?

Ya. Ada sejumlah pertimbangan khusus untuk database yang terlibat dalam replikasi. Untuk informasi selengkapnya, lihat Mencadangkan dan Memulihkan Database yang Direplikasi.

Apakah replikasi memengaruhi ukuran log transaksi?

Replikasi penggabungan dan replikasi rekam jepret tidak memengaruhi ukuran log transaksi, tetapi replikasi transaksional dapat. Jika database menyertakan satu atau beberapa publikasi transaksional, log tidak dipotok sampai semua transaksi yang relevan dengan publikasi telah dikirimkan ke database distribusi. Jika log transaksi tumbuh terlalu besar, dan Agen Pembaca Log berjalan secara terjadwal, pertimbangkan untuk mempersingkat interval antara eksekusi. Atau, atur untuk berjalan dalam mode berkelanjutan. Jika diatur untuk berjalan dalam mode berkelanjutan (default), pastikan dijalankan. Untuk informasi selengkapnya tentang memeriksa status Agen Pembaca Log, lihat Menampilkan Informasi dan Melakukan Tugas menggunakan Monitor Replikasi.

Selain itu, jika Anda telah mengatur opsi 'sinkronkan dengan pencadangan' pada database publikasi atau database distribusi, log transaksi tidak terpotok sampai semua transaksi telah dicadangkan. Jika log transaksi tumbuh terlalu besar, dan Anda memiliki opsi ini yang ditetapkan, pertimbangkan untuk mempersingkat interval antara pencadangan log transaksi. Untuk informasi selengkapnya tentang mencadangkan dan memulihkan database yang terlibat dalam replikasi transaksional, lihat Strategi untuk Mencadangkan dan Memulihkan Rekam Jepret dan Replikasi Transaksional.

Bagaimana cara membangun ulang indeks atau tabel dalam database yang direplikasi?

Ada berbagai mekanisme untuk membangun kembali indeks. Semuanya dapat digunakan tanpa pertimbangan khusus untuk replikasi, dengan pengecualian berikut: kunci primer diperlukan pada tabel dalam publikasi transaksional, sehingga Anda tidak dapat menghilangkan dan membuat ulang kunci primer pada tabel ini.

Bagaimana cara menambahkan atau mengubah indeks pada database publikasi dan langganan?

Indeks dapat ditambahkan di Penerbit atau Pelanggan tanpa pertimbangan khusus untuk replikasi (ketahuilah bahwa indeks dapat memengaruhi performa). CREATE INDEX dan ALTER INDEX tidak direplikasi, jadi jika Anda menambahkan atau mengubah indeks di, misalnya, Publisher, Anda harus membuat penambahan atau perubahan yang sama di Pelanggan jika Anda ingin indeks tersebut tercermin di sana.

Bagaimana cara memindahkan atau mengganti nama file untuk database yang terlibat dalam replikasi?

Dalam versi SQL Server sebelum SQL Server 2005, memindahkan atau mengganti nama file database diperlukan untuk mencopot dan memasang ulang database. Karena database yang direplikasi tidak dapat dilepas, replikasi harus dihapus dari database ini terlebih dahulu. Dimulai dengan SQL Server 2005, Anda dapat memindahkan atau mengganti nama file tanpa melepaskan dan melampirkan ulang database, tanpa berpengaruh pada replikasi. Untuk informasi selengkapnya tentang memindahkan dan mengganti nama file, lihat MENGUBAH DATABASE (Transact-SQL).

Bagaimana cara menjatuhkan tabel yang sedang direplikasi?

Pertama-tama letakkan artikel dari publikasi menggunakan sp_droparticle, sp_dropmergearticle, atau kotak dialog Properti Publikasi - <Publikasi> , lalu letakkan dari database menggunakan DROP <Object>. Anda tidak dapat menghapus artikel dari rekam jepret atau publikasi transaksi setelah langganan ditambahkan; Anda harus menghapus langganan terlebih dahulu. Untuk informasi selengkapnya, lihat Menambahkan Artikel ke dan Menghapus Artikel dari Publikasi yang Ada.

Bagaimana cara menambahkan atau meletakkan kolom pada tabel yang diterbitkan?

SQL Server mendukung berbagai perubahan skema pada objek yang diterbitkan, termasuk menambahkan dan menghilangkan kolom. Misalnya, jalankan ALTER TABLE ... DROP COLUMN di Publisher, dan pernyataan direplikasi ke Pelanggan lalu dijalankan untuk menjatuhkan kolom. Pelanggan yang menjalankan versi SQL Server sebelum dukungan SQL Server 2005 menambahkan dan menghilangkan kolom melalui prosedur tersimpan sp_repladdcolumn dan sp_repldropcolumn. Untuk informasi selengkapnya, lihat Membuat Perubahan Skema pada Database Publikasi.

Pemeliharaan Replikasi

Bagaimana cara menentukan apakah data di Pelanggan disinkronkan dengan data di Publisher?

Gunakan validasi. Laporan validasi tentang apakah Pelanggan tertentu disinkronkan dengan Penerbit. Untuk informasi selengkapnya, lihat Memvalidasi Data yang Direplikasi. Validasi tidak memberikan informasi tentang baris mana jika ada yang tidak disinkronkan dengan benar, tetapi utilitas tablediff tidak.

Bagaimana cara menambahkan tabel ke publikasi yang sudah ada?

Tidak perlu menghentikan aktivitas pada database publikasi atau langganan untuk menambahkan tabel (atau objek lain). Tambahkan tabel ke publikasi melalui kotak dialog Properti Publikasi - <Publikasi> atau prosedur tersimpan sp_addarticle dan sp_addmergearticle. Untuk informasi selengkapnya, lihat Menambahkan Artikel ke dan Menghapus Artikel dari Publikasi yang Ada.

Bagaimana cara menghapus tabel dari publikasi?

Hapus tabel dari publikasi menggunakan sp_droparticle, sp_dropmergearticle, atau kotak dialog Properti Publikasi - <Publikasi> . Anda tidak dapat menghapus artikel dari rekam jepret atau publikasi transaksi setelah langganan ditambahkan; Anda harus menghapus langganan terlebih dahulu. Untuk informasi selengkapnya, lihat Menambahkan Artikel ke dan Menghapus Artikel dari Publikasi yang Ada.

Tindakan apa yang mengharuskan langganan diinisialisasi ulang?

Ada sejumlah perubahan artikel dan publikasi yang mengharuskan langganan diinisialisasi ulang. Untuk informasi selengkapnya, lihat Mengubah Publikasi dan Properti Artikel.

Tindakan apa yang menyebabkan rekam jepret tidak valid?

Ada sejumlah perubahan artikel dan publikasi yang membatalkan rekam jepret dan memerlukan rekam jepret baru untuk dibuat. Untuk informasi selengkapnya, lihat Mengubah Publikasi dan Properti Artikel.

Bagaimana cara menghapus replikasi?

Tindakan yang diperlukan untuk menghapus replikasi dari database bergantung pada apakah database berfungsi sebagai database publikasi, database langganan, atau keduanya.

Bagaimana cara menentukan apakah ada transaksi atau baris yang akan direplikasi?

Untuk replikasi transaksional, gunakan prosedur tersimpan atau tab Perintah yang Tidak Didistribusikan di Monitor Replikasi. Untuk informasi selengkapnya, lihat Menampilkan Perintah yang Direplikasi dan Informasi Lainnya dalam Database Distribusi (Pemrograman Transact-SQL Replikasi) dan Menampilkan Informasi dan Melakukan Tugas menggunakan Monitor Replikasi.

Untuk replikasi penggabungan, gunakan prosedur tersimpan sp_showpendingchanges. Untuk informasi selengkapnya, lihat sp_showpendingchanges (Transact-SQL).

Seberapa jauh di belakang Agen Distribusi? Haruskah saya menginisialisasi ulang?

Gunakan prosedur tersimpan sp_replmonitorsubscriptionpendingcmds atau tab Perintah yang Tidak Didistribusikan di Monitor Replikasi. Prosedur tersimpan dan tampilan tab:

  • Jumlah perintah dalam database distribusi yang belum dikirimkan ke Pelanggan yang dipilih. Perintah terdiri dari satu pernyataan bahasa manipulasi data (DML) Transact-SQL atau satu pernyataan bahasa definisi data (DDL).

  • Perkiraan jumlah waktu untuk mengirimkan perintah kepada Pelanggan. Jika nilai ini lebih besar dari jumlah waktu yang diperlukan untuk menghasilkan dan menerapkan rekam jepret ke Pelanggan, pertimbangkan untuk menginisialisasi ulang Pelanggan. Untuk informasi selengkapnya, lihat Menginisialisasi Ulang Langganan.

Untuk informasi selengkapnya, lihat sp_replmonitorsubscriptionpendingcmds (Transact-SQL) dan Menampilkan Informasi dan Melakukan Tugas menggunakan Monitor Replikasi.

Replikasi dan Fitur Database Lainnya

Apakah replikasi berfungsi bersama dengan pengiriman log dan pencerminan database?

Ya. Untuk informasi selengkapnya, lihat Pengiriman log dan Replikasi (SQL Server) dan Pencerminan dan Replikasi Database (SQL Server).

Apakah replikasi berfungsi bersama dengan pengklusteran?

Ya. Tidak ada pertimbangan khusus yang diperlukan karena semua data disimpan pada satu set disk pada kluster.

Lihat juga

FAQ Administrasi Replikasi
Praktik Terbaik untuk Administrasi Replikasi