ID Artikel: 820675 - Kajian Terakhir: 04 Oktober 2011 - Revisi: 2.0

Bagaimana menerapkan Bidirectional Transactional Replication with scripts

Tips SistemThis article applies to a different operating system than the one you are using. Article content that may not be relevant to you is disabled.

Pada Halaman ini

Perbesar semua | Perkecil semua

RINGKASAN

Artikel ini selangkah demi selangkah menjelaskan bagaimana menerapkan bidirectional transactional replication. Artikel ini juga membahas isu-isu yang terlibat dalam melaksanakan bidirectional transaksional replikasi.

Bidirectional Transactional Replication with scripts

Bidirectional transactional replication, juga dikenal sebagai dua arah Transactional replication, mengizinkan server untuk kedua penerbit dan a pelanggan untuk data yang sama. Karena server yang berpartisipasi dalam replikasi akan mengulangi setiap perubahan ke server lain, perubahan tidak dapat disebarkan kembali ke server berasal.

Sebagai contoh, jika Anda memiliki dua server (Server A dan Server B), server dikatakan dalam bidirectional transactional replication jika kedua kondisi berikut benar:
  • Perubahan yang dibuat ke meja T1 pada Server A direplikasi ke meja T1 pada Server B.
  • Perubahan yang dibuat ke meja T1 Server b direplikasi ke meja T1 pada Server A.
Oleh karena itu, jika perubahan berasal dari Server A, perubahan adalah direplikasi ke Server B, tapi Server B tidak menyebarkan perubahan sama kembali ke Server A. replikasi menggunakan mekanisme deteksi loopback yang distributor menggunakan untuk menentukan apakah akan mengirim perubahan kembali ke berasal server.

Rencana topologi untuk Bidirectional Transactional Replication with scripts

Untuk bidirectional transactional replication, salah satu server dapat bertindak sebagai pusat pelanggan, dan semua server lain berlangganan ke pelanggan tengah. Oleh karena itu, setiap perubahan yang berasal di server direplikasi ke pelanggan tengah, dan kemudian pelanggan tengah, pada gilirannya, bereplikasi perubahan untuk semua server yang berpartisipasi dalam replikasi. Namun, dengan bantuan loopback mekanisme deteksi, distributor berhenti perubahan dari yang disebarkan ke server berasal.

Sebagai contoh, jika tiga server (Server A, Server B, dan Server C) berpartisipasi dalam bidirectional transactional replication with scripts dan Server A pelanggan tengah, penerbit dan pelanggan dikelola dengan cara berikut:
  • Server a menerbitkan Server B dan Server C.
  • Server a berlangganan dari Server B dan Server C.
  • Server b menerbitkan untuk dan berlangganan dari hanya Server A.
  • Server c menerbitkan untuk dan berlangganan dari hanya Server A.
Oleh karena itu, setiap perubahan yang berasal pada Server B direplikasi untuk Server A dan Server C.

Konflik di Bidirectional Transactional Replication with scripts

Ketika Anda membuat perubahan pada server yang berpartisipasi dalam replikasi, perubahan direplikasi ke semua server lain berpartisipasi. Selama ini replikasi, konflik dapat terjadi dan replikasi mungkin gagal. The Daftar berikut ini menjelaskan kemungkinan konflik dan cara-cara yang Anda dapat menghindari konflik ini:
  • Jika Anda memasukkan catatan yang memiliki kunci ke dalam tabel pada satu server dan catatan lain yang memiliki tombol yang sama sudah ada di server lain yang berpartisipasi dalam replikasi, replikasi tidak menyebarkan perubahan ke server lain.

    Menyarankan Tindakan Untuk menghindari masalah ini, pastikan bahwa Anda menggunakan kunci berbeda pada setiap server yang berpartisipasi dalam replikasi. Untuk melakukannya, mengalokasikan kisaran kunci untuk setiap server yang berpartisipasi dalam yang telah ditetapkan replikasi. Anda juga dapat menggunakan kunci komposit pada setiap server.
  • Ketika Anda memperbarui data yang telah dihapus lain server, UPDATE pernyataan mempengaruhi nol baris pada server di mana catatan telah dihapus, dan replikasi gagal dengan kesalahan.

    Menyarankan tindakan Untuk menghindari masalah ini, lakukan salah satu langkah berikut:
    • Menghapus @@ ROWCOUNT Periksa setelah pernyataan UPDATE sebenarnya dalam pembaruan prosedur yang tersimpan.

      -atau-
    • Penggunaan -Skiperrors parameter untuk agen distribusi untuk mengabaikan kesalahan ini. Untuk lebih informasi tentang melompat-lompat kesalahan dalam transactional replication, kunjungi Web site Microsoft berikut:
      .aspx http://msdn2.Microsoft.com/en-us/library/aa178842 (SQL.80) (http://msdn2.microsoft.com/en-us/library/aa178842(SQL.80).aspx)
      -atau-
    • Mencari record sebelum UPDATE pernyataan di Update prosedur yang tersimpan. Jika tidak ada catatan yang ada, memotong UPDATE pernyataan, dan record telah dihapus pada semua pelanggan.
  • Ketika Anda memperbarui kolom dalam catatan yang diperbarui pada bersamaan pada server lain, data mungkin berbeda di kedua server.

    Menyarankan tindakan Untuk menghindari masalah ini, menentukan jika data sedang diperbarui pada sama waktu pada server lain, dan kemudian mengambil tindakan bila diperlukan. Untuk melakukannya, memodifikasi disimpan prosedur kustom pembaruan dan menggunakan sintaks XCALL untuk memanggil Update prosedur yang tersimpan. Sintaks XCALL menyediakan nilai-nilai untuk semua kolom sebelum prosedur pembaruan disebut dan memberikan nilai-nilai diperbarui di kolom. Anda dapat membandingkan nilai sekarang dari kolom terhadap nilai sebelum update disimpan prosedur yang disebut. Jika Anda melihat berbeda nilai-nilai, kolom ini sedang diperbarui pada saat yang sama oleh server yang berbeda. Anda dapat menyesuaikan prosedur yang tersimpan untuk memilih nilai yang tetap. Untuk lebih informasi tentang cara menggunakan XCALL, kunjungi Website Microsoft berikut situs:
    .aspx http://msdn2.Microsoft.com/en-us/library/Aa237133 (SQL.80) (http://msdn2.microsoft.com/en-us/library/Aa237133(SQL.80).aspx)
    Catatan Anda dapat menentukan sintaks XCALL untuk memanggil update sesuai prosedur yang disimpan atau menghapus disimpan prosedur dengan menggunakan sp_addarticle selama publikasi. Anda juga dapat menentukan sintaks XCALL oleh menggunakan SQL Server Enterprise Manager. Untuk melakukannya, ikuti langkah berikut ini:
    1. Dalam SQL Server Enterprise Manager, Cari publikasi yang Anda inginkan.
    2. Klik kanan publikasi, dan kemudian klik Properti.
    3. Klik Artikel tab, Cari Artikel, dan kemudian klik tombol properti artikel (...) sebelah artikel.
    4. Dalam Tabel artikel properti dialog kotak, klik Perintah tab.
    5. Dalam Menggantikan perintah UPDATE dengan ini disimpan prosedur panggilan kotak teks, ketik XCALL, dan kemudian Klik Oke.
    6. Dalam Publikasi properti dialog kotak, klik Oke.
  • Ketika Anda memperbarui kolom yang berbeda dalam catatan, simultan Pembaruan dari kolom catatan yang berbeda kadang-kadang dapat mengakibatkan konflik.

    Menyarankan tindakan Untuk menghindari masalah ini, menentukan apakah kolom berbeda dalam rekaman sama Diperbarui pada saat yang sama, dan kemudian mengambil tindakan bila diperlukan. Untuk melakukannya, memodifikasi disimpan prosedur kustom pembaruan, dan kemudian menggunakan XCALL sintaks untuk memanggil update disimpan prosedur. Karena XCALL syntax menyediakan nilai-nilai sebelum update disimpan prosedur yang disebut, Anda dapat menambahkan salah satu mengakses pilihan berikut untuk update disimpan prosedur sebelum update sebenarnya dilakukan:
    • Membandingkan nilai-nilai saat ini semua kolom terhadap nilai-nilai mereka sebelum update disimpan prosedur yang disebut.
    • Menambahkan kolom untuk mewakili versi baris dan membandingkan nilai saat ini dengan nilai sebelum prosedur pembaruan yang disimpan disebut.
    Nilai-nilai yang berbeda menunjukkan bahwa kolom berbeda sedang Diperbarui pada waktu yang sama. Anda kemudian dapat memutuskan apakah akan memperbarui kolom.
  • Ketika Anda menghapus baris yang sedang diperbarui oleh orang lain server pada saat yang sama, replikasi mungkin gagal.

    Menyarankan tindakan Untuk menentukan apakah berturut-turut diperbarui dan dihapus pada saat yang sama, gunakan sintaks XCALL di Hapus disimpan prosedur. Bandingkan setiap kolom baris yang menjadi dihapus terhadap nilai-nilai sebelum menghapus yang disimpan prosedur yang disebut. Nilai-nilai yang berbeda menunjukkan bahwa pembaruan ini sedang dilakukan pada waktu yang sama. Anda dapat menghapus atau mempertahankan diperbarui baris.

    Catatan Bahkan jika Anda tidak menghapus catatan pelanggan, Catatan tidak ada lagi di server yang berasal dari Hapus pernyataan.
  • Ketika Anda menghapus baris yang menjadi dihapus pada saat yang sama waktu pada server lain yang berpartisipasi dalam replikasi, replikasi gagal karena Hapus pernyataan tidak mempengaruhi setiap baris pada beberapa pelanggan.

    Menyarankan Tindakan Untuk menghindari masalah ini, lakukan salah satu langkah berikut:
    • Menghapus @@ ROWCOUNT Periksa setelah pernyataan Hapus sebenarnya dalam pembaruan prosedur yang tersimpan.

      -atau-
    • Penggunaan -Skiperrors parameter di agen distribusi untuk mengabaikan kesalahan ini. Untuk lebih informasi tentang melompat-lompat kesalahan dalam transactional replication, kunjungi Web site Microsoft berikut:
      .aspx http://msdn2.Microsoft.com/en-us/library/aa178842 (SQL.80) (http://msdn2.microsoft.com/en-us/library/aa178842(SQL.80).aspx)
Catatan Setiap penggunaan mungkin memerlukan pendekatan yang berbeda untuk menyelesaikan ini konflik, tergantung pada kebutuhan bisnis. Konflik ini lebih mudah untuk menyelesaikan ketika hanya dua server terlibat. Ketika lebih dari dua server yang terlibat, Anda dapat menggunakan prosedur yang tersimpan untuk menentukan yang server berasal dari perubahan. Update disimpan prosedur yang digunakan untuk memperbarui Catatan di Server C tidak tahu jika perubahan berasal dalam Server A atau di Server B. Tidak seperti gabungan replikasi, transactional replication with scripts tidak dirancang untuk menyelesaikan konflik. Menyebarkan transactional replication with scripts hanya dalam skenario di mana konflik dapat dihindari bukan diselesaikan.

Menerapkan Bidirectional Transactional Replication with scripts

Untuk menerapkan bidirectional transactional replication, semua Setelah kondisi harus benar:
  • Data disinkronisasi antara mereplikasi server.
  • Disimpan prosedur yang digunakan oleh replikasi berada di semua database berpartisipasi.
  • Berlangganan didirikan dengan menggunakan @ loopback_detection = 'benar' parameter.

    Catatan Opsi untuk mengatur @ loopback_detection = 'benar' saat ini tidak tersedia di antarmuka pengguna. Oleh karena itu, Anda harus berlangganan dengan menggunakan sp_addsubscription prosedur yang tersimpan.
Jika Anda melakukan backup dan restore, ingat yang berbeda situs memerlukan kendala yang berbeda pada tombol utama untuk memastikan bahwa kunci primer duplikat tidak diciptakan. Juga ingat untuk membuat semua kendala dengan tidak untuk REPLIKASI klausa.

Anda dapat menggunakan berikut contoh untuk mengatur bidirectional transactional replication di komputer yang menjalankan SQL Server 2000.

Catatan Transact-SQL pernyataan terdaftar untuk masing-masing berikut langkah-langkah. Menjalankan Transact-SQL pernyataan untuk melakukan tugas yang disebutkan dalam langkah sebelumnya.
  1. Membuat distributor, penerbit, dan pelanggan pada komputer yang menjalankan SQL Server. Untuk melakukannya, ikuti langkah berikut ini:
    1. Buat database dua:
      use master
      go
      
      create database test1
      go
      
      create database test2
      go
      
    2. Membuat dua tabel yang IDENTITAS kolom dengan pilihan tidak untuk REPLIKASI mengatur:
      use test1
      go
      
      create table two_way_test1 
      (
      	pkcol		INTEGER PRIMARY KEY NOT NULL,
      	intcol		INTEGER IDENTITY(1,1) NOT FOR REPLICATION,
       	charcol		CHAR(100),
      	timestampcol 	TIMESTAMP
      )
      
      use test2
      go
      
      create table two_way_test2 
      (
      	pkcol 		INTEGER PRIMARY KEY NOT NULL,
      	intcol 		INTEGER IDENTITY(1000000000,1) NOT FOR REPLICATION,
       	charcol 	CHAR(100),
       	timestampcol 	TIMESTAMP
      )
      go
    3. Mengalokasikan ditentukan berbagai nilai-nilai untuk utama kunci kolom sehingga nilai-nilai pada server yang berbeda tidak sama dalam satu jangkauan. Sebagai contoh, Anda dapat menerapkan 1-1000 sebagai rentang kunci untuk two_way_test1 Tabel di test1 database, dan kemudian menerapkan 1001-2000 sebagai rentang kunci untuk two_way_test2 Tabel di Uneltele Mele nelu57 database. Untuk melakukannya, gunakan kode berikut:
      	-- Constraint to enforce a range of values between 1 and 1000 in database test1 
      use test1
      go
      
      alter table 
      	two_way_test1 
      with nocheck 
      add constraint 
      	checkprimcol check NOT FOR REPLICATION 
      	(
      		pkcol BETWEEN 1 and 1000
      	) 
      go 
      
      
      use test2
      go
      
      	-- Constraint to enforce a range of values between 1001 and 2000 in the database test2 
      
      alter table 
      	two_way_test2
      with nocheck 
      add constraint 
      	checkprimcol check NOT FOR REPLICATION 
      	(
      		pkcol BETWEEN 1001 and 2000
      	) 
      go 
      
      
  2. Mengaktifkan server Anda sebagai distributor, dan kemudian membuat distribusi database:
    use master
    go
    sp_adddistributor @distributor = '<distributor name>' 
    go
    use master
    go
    sp_adddistributiondb @database='distribution'
    go
  3. Mengaktifkan semua komputer yang menjalankan SQL Server yang berpartisipasi dalam replikasi sebagai Penerbit:
    use master
    go
    
    exec sp_adddistpublisher 
    	@publisher = '<Your Server Name>', 
    	@distribution_db ='distribution', 
    	@security_mode = 0, 
    	@login = 'sa', 
    	@password = 'sa',
    	@working_directory ='<Location of Directory>'
  4. Mengaktifkan semua database diidentifikasi untuk replikasi:
    use master
    go
    
    exec sp_replicationdboption N'test1', N'publish', true
    go
    
    exec sp_replicationdboption N'test2', N'publish', true
    go
    
  5. Membuat kustom disimpan prosedur untuk INSERT, UPDATE, dan MENGHAPUS operasinya pada semua database untuk menerapkan perubahan yang dibuat selama replikasi.

    Catatan Biasanya, ketika Anda memasukkan nilai ke dalam kolom identitas, IDENTITY_INSERT pilihan untuk meja harus ON. Tugas ini dicapai dengan TIDAK untuk REPLIKASI pilihan untuk masuk replikasi agen.

    Anda tidak dapat memperbarui nilai-nilai di kolom identitas. Oleh karena itu, ketika Anda memperbarui nilai-nilai selama replikasi, Anda harus menghapus nilai-nilai lama dan masukkan nilai-nilai baru. Untuk membuat disimpan prosedur kustom, ikuti langkah berikut:
    1. Membuat kustom disimpan prosedur di test1 database:
      use test1
      go
      
      -- INSERT Stored Procedure
      
      create procedure sp_ins_two_way_test1	
      	@pkcol int, 
      	@intcol int, 
      	@charcol char(100), 
      	@timestampcol timestamp,
      	@rowidcol uniqueidentifier
      as
      	insert into two_way_test1 
      	(
      		pkcol,
      		intcol,
      		charcol
      	) 
      	values
      	(
      		@pkcol, 
      		@intcol, 
      		@charcol
      	)
      go
      
      --UPDATE Stored Procedure
      
      create procedure sp_upd_two_way_test1	
      	@pkcol int, 
          	@intcol int, 
          	@charcol char(100), 
          	@timestampcol timestamp,
      	@rowidcol uniqueidentifier,
          	@old_pkcol int
      as
      	declare @x int
      	declare @y int
      	declare @z char(100)
       
      	select 
      		@x=pkcol, 
      		@y=intcol, 
      		@z=charcol 
      	from 
      		two_way_test1 
      	where 
      		pkcol = @pkcol
      
      
      
      	delete 
      		two_way_test1 
      	where 
      		pkcol=@pkcol
      
      
      
      	insert into two_way_test1 
      	(
      		pkcol, 
      		intcol, 
      		charcol
      	) 
      	values
      	(
      		case isnull(@pkcol,0) when 0 then @x else @pkcol end,
      		case isnull(@intcol,0) when 0 then @y else @intcol end,
      		case isnull(@charcol,'N') when 'N' then @z else @charcol end
      	)
      go
      
      --  DELETE Stored Procedure
      
      create procedure sp_del_two_way_test1 
      	@old_pkcol int
      as
      	delete 
      		two_way_test1 
      	where 
      		pkcol = @old_pkcol
      go
      
      
    2. Membuat kustom disimpan prosedur di Uneltele Mele nelu57 database:
      use test2
      go
      
      -- INSERT Stored Procedure
      
      create procedure sp_ins_two_way_test2	
      	@pkcol int, 
      	@intcol int, 
      	@charcol char(100), 
      	@timestampcol timestamp,
      	@rowidcol uniqueidentifier
      as
      	insert into two_way_test2 
      	(
      		pkcol,
      		intcol,
      		charcol
      	) 
      	values
      	(
      		@pkcol, 
      		@intcol, 
      		@charcol
      	)
      go
      
      --UPDATE Stored Procedure
      
      create procedure sp_upd_two_way_test2	
      	@pkcol int, 
          	@intcol int, 
          	@charcol char(100), 
          	@timestampcol timestamp,
      	@rowidcol uniqueidentifier,
          	@old_pkcol int
      as
      	declare @x int
      	declare @y int
      	declare @z char(100)
       
      	select 
      		@x=pkcol, 
      		@y=intcol, 
      		@z=charcol 
      	from 
      		two_way_test2 
      	where 
      		pkcol = @pkcol
      
      
      
      	delete 
      		two_way_test2 
      	where 
      		pkcol=@pkcol
      
      
      
      	insert into two_way_test2 
      	(
      		pkcol, 
      		intcol, 
      		charcol
      	) 
      	values
      	(
      		case isnull(@pkcol,0) when 0 then @x else @pkcol end,
      		case isnull(@intcol,0) when 0 then @y else @intcol end,
      		case isnull(@charcol,'N') when 'N' then @z else @charcol end
      	)
      go
      
      
      --  DELETE Stored Procedure
      
      create procedure sp_del_two_way_test2 
      	@old_pkcol int
      as
      	delete 
      		two_way_test2 
      	where 
      		pkcol = @old_pkcol
      go
      
  6. Menciptakan publikasi transaksional, dan kemudian tambahkan artikel publikasi di kedua test1 dan Uneltele Mele nelu57 database:
    --In the database test1.
    
    use test1
    go
    
    --  Adding the transactional publication.
    exec sp_addpublication 
    	@publication = N'two_way_pub_test1', 
    	@restricted = N'false',
    	@sync_method = N'native', 
    	@repl_freq = N'continuous',
    	@description = N'Transactional publication of database test1.',
    	@status = N'active', 
    	@allow_push = N'true', 
    	@allow_pull = N'true',
    	@allow_anonymous = N'false', 
    	@enabled_for_internet = N'false',
    	@independent_agent = N'false', 
    	@immediate_sync = N'false',
    	@allow_sync_tran = N'true', 
    	@autogen_sync_procs = N'true',
    	@retention = 72
    go
    
    exec sp_addpublication_snapshot 
    	@publication = N'two_way_pub_test1',
    	@frequency_type = 4,
    	@frequency_interval = 1, 
    	@frequency_relative_interval = 0,
    	@frequency_recurrence_factor = 1, 
    	@frequency_subday = 1,
    	@frequency_subday_interval = 0, 
    	@active_start_date = 0,
    	@active_end_date = 0, 
    	@active_start_time_of_day = 233000,
    	@active_end_time_of_day = 0
    go
    
    --  Adding the transactional articles.
    
    exec sp_addarticle 
    	@publication = N'two_way_pub_test1', 
    	@article = N'two_way_test1',
    	@source_owner = N'dbo', 
    	@source_object = N'two_way_test1',
    	@destination_table = N'two_way_test1', 
    	@type = N'logbased',
    	@creation_script = null, 
    	@description = null, 
    	@pre_creation_cmd = N'drop',
            @schema_option = 0x00000000000000F1, 
    	@status = 16,
    	@vertical_partition = N'false', 
    	@ins_cmd = N'CALL sp_ins_two_way_test2',
    	@del_cmd = N'CALL sp_del_two_way_test2',
    	@upd_cmd = N'CALL sp_upd_two_way_test2', 
    	@filter = null,
    	@sync_object = null
    go
    
    --  In the database test2
    use test2
    go
    
    --  Adding the transactional publication.
    
    exec sp_addpublication 
    	@publication = N'two_way_pub_test2', 
    	@restricted = N'false',
    	@sync_method = N'native', 
    	@repl_freq = N'continuous',
    	@description = N'Transactional publication of database test2',
    	@status = N'active', 
    	@allow_push = N'true', 
    	@allow_pull = N'true',
    	@allow_anonymous = N'false', 
    	@enabled_for_internet = N'false',
    	@independent_agent = N'false', 
    	@immediate_sync = N'false',
    	@allow_sync_tran = N'true', 
    	@autogen_sync_procs = N'true',
    	@retention = 72
    go
    
    exec sp_addpublication_snapshot 
    	@publication = N'two_way_pub_test2',
    	@frequency_type = 4,
    	@frequency_interval = 1, 
    	@frequency_relative_interval = 0,
    	@frequency_recurrence_factor = 1, 
    	@frequency_subday = 1,
    	@frequency_subday_interval = 0, 
    	@active_start_date = 0,
    	@active_end_date = 0, 
    	@active_start_time_of_day = 233000,
    	@active_end_time_of_day = 0
    go
    
    --  Adding the transactional articles.
    exec sp_addarticle 
    	@publication = N'two_way_pub_test2', 
    	@article = N'two_way_test2',
    	@source_owner = N'dbo', 
    	@source_object = N'two_way_test2',
    	@destination_table = N'two_way_test2', 
    	@type = N'logbased',
    	@creation_script = null, 
    	@description = null, 
    	@pre_creation_cmd = N'drop',
    	@schema_option = 0x00000000000000F1, 
    	@status = 16,
    	@vertical_partition = N'false', 
    	@ins_cmd = N'CALL sp_ins_two_way_test1',
    	@del_cmd = N'CALL sp_del_two_way_test1',
    	@upd_cmd = N'CALL sp_upd_two_way_test1', 
    	@filter = null,
    	@sync_object = null
    go
    
  7. Mengaktifkan sebagai pelanggan semua server yang berpartisipasi dalam replikasi:
    exec sp_addsubscriber 
    	@subscriber = '<Your Server Name>', 
    	@login = '<login name>', 
    	@password = '<password>'
    go
    
    
  8. Mengidentifikasi satu database sebagai pelanggan tengah. Membuat transaksional langganan di semua database yang berpartisipasi dalam replikasi sehingga semua database berlangganan ke pelanggan tengah dan pelanggan tengah berlangganan semua database.

    Untuk contoh, dalam skenario ini, test1 database yang pelanggan tengah. Membuat transaksional langganan di Uneltele Mele nelu57 database yang berlangganan publikasi di test1 dan dalam test1 database yang berlangganan publikasi di Uneltele Mele nelu57.

    Catatan Membuat semua langganan dengan pilihan LOOPBACK_DETECTION diaktifkan.

    Untuk melakukannya, gunakan kode berikut:
    --Adding the transactional subscription in test1.
    
    use test1
    go
    exec sp_addsubscription 
    	@publication = N'two_way_pub_test1', 
    	@article = N'all', 
    	@subscriber = '<Your Server Name>', 
    	@destination_db = N'test2', 
    	@sync_type = N'none', 
    	@status = N'active', 
    	@update_mode = N'sync tran', 
    	@loopback_detection = 'true'
    go
    
    -- Adding the transactional subscription in test2.
    
    use test2
    go
    exec sp_addsubscription 
    	@publication = N'two_way_pub_test2', 
    	@article = N'all', 
    	@subscriber = '<Your Server Name>', 
    	@destination_db = N'test1', 
    	@sync_type = N'none', 
    	@status = N'active', 
    	@update_mode = N'sync tran', 
    	@loopback_detection = 'true'
    go
    
Catatan Anda juga dapat membuat kustom disimpan prosedur untuk semua publikasi dengan menggunakan sp_scriptpublicationcustomprocs sistem disimpan prosedur. Untuk informasi lebih lanjut tentang sp_scriptpublicationcustomprocs sistem disimpan prosedur, melihat "sp_scriptpublicationcustomprocs" topik dalam buku yang diperbarui SQL Server 2000 Online.

Catatan SQL Query Analyzer kembali hanya 256 karakter per kolom. Anda dapat mengubah pilihan ini untuk maksimum yang diizinkan nilai.



REFERENSI

Untuk informasi tambahan, klik artikel berikut nomor ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
320499  (http://support.microsoft.com/kb/320499/EN-US/ ) Bagaimana untuk secara manual melakukan sinkronisasi replikasi langganan oleh menggunakan cadangan atau pemulihan
299903  (http://support.microsoft.com/kb/299903/ ) FIX: sp_scriptpublicationcustomprocs menghasilkan replikasi disimpan prosedur
327817  (http://support.microsoft.com/kb/327817/ ) INF: Menggunakan "-SkipErrors" Parameter di agen distribusi hati-hati
Untuk informasi tambahan tentang pelaksanaan bidirectional transaksional replikasi di SQL Server 7.0, klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
300164  (http://support.microsoft.com/kb/300164/EN-US/ ) INF: Cara Set Up identitas kolom pada kedua penerbit dan Pelanggan dengan Transactional Replication with scripts
240235  (http://support.microsoft.com/kb/240235/ ) BUG: "menerapkan Nonpartitioned, Bi-directional, transaksional replikasi" sampel di buku Online berisi kesalahan

Berlaku bagi:
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
Kata kunci: 
kbreplication kbcode kbtsql kbhowtomaster kbmt KB820675 KbMtid
Penerjemahan MesinPenerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:820675  (http://support.microsoft.com/kb/820675/en-us/ )