Home » Administration, MS SqlServer, MS SqlServer Code, Tips Scripts

SQL Server 2005: Peer to Peer Transactional Replication Setup

23 November 2009 1,059 views No Comment

These scripts have been created to set up a peer to peer system.

The settings I’ve used:

Login: PAULSDOMAIN\Administrator
Password: password
Database name: peertopeerPublisher
Table with PK: PITest
Server1 HOME-SERVER
Server2  HOME-SERVER\FIRSTINSTANCE

You’ll need to create an identically named database on 2 servers (called peertopeerPublisher for me) or on a default and a named instance (this is because the publication names must be identical, so we can’t do this on the same instance). After that you’ll need to enable distribution on each server and publishing of the database. This is much the same as before, albeit in a different part of the GUI. There are 2 scripts below – (1) and (2) and all you need to do is use find and replace to modify them according to your settings. 

(1) On First Server
use peertopeerPublisher
go

sp_addlogreader_agent 
@job_login = ‘PAULSDOMAIN\Administrator’
, @job_password = ‘password’
, @publisher_security_mode = 1 
, @publisher_login = ‘PAULSDOMAIN\Administrator’ 
, @publisher_password = ‘password’ 
, @publisher = null 
go

exec sp_addpublication 
@publication = ‘PeerToPeer1′, 
@description = ‘test peer to peer’, 
@sync_method = ‘concurrent’, 
@retention = 0, 
@allow_push = ‘true’, 
@allow_pull = ‘true’, 
@allow_anonymous = ‘false’, 
@enabled_for_internet = ‘false’, 
@snapshot_in_defaultfolder = ‘true’, 
@compress_snapshot = ‘false’, 
@ftp_port = 21, 
@ftp_login = ‘anonymous’, 
@allow_subscription_copy = ‘false’, 
@add_to_active_directory = ‘false’, 
@repl_freq = ‘continuous’, 
@status = ‘active’, 
@independent_agent = ‘true’, 
@immediate_sync = ‘true’, 
@allow_sync_tran = ‘false’, 
@autogen_sync_procs = ‘false’, 
@allow_queued_tran = ‘false’, 
@allow_dts = ‘false’, 
@replicate_ddl = 1, 
@allow_initialize_from_backup = ‘false’, 
@enabled_for_p2p = ‘true’
go

exec sp_addarticle 
@publication = N’PeerToPeer1′, 
@article = N’PITest’, 
@source_owner = N’dbo’, 
@source_object = N’PITest’, 
@type = N’logbased’, 
@description = N”, 
@creation_script = N”, 
@pre_creation_cmd = N’none’, 
@schema_option = 0×00000000000044F7, 
@identityrangemanagementoption = N’manual’, 
@destination_table = N’PITest’, 
@destination_owner = N’dbo’, 
@status = 16, 
@vertical_partition = N’false’, 
@ins_cmd = N’CALL [sp_MSins_PITest]‘, 
@del_cmd = N’CALL [sp_MSdel_PITest]‘, 
@upd_cmd = N’MCALL [sp_MSupd_PITest]‘
go

exec sp_addsubscription 
@publication = ‘PeerToPeer1′, 
@subscriber = ‘HOME-SERVER\FIRSTINSTANCE’, 
@destination_db = ‘peertoPeerPublisher’, 
@sync_type = ‘replication support only’ 
go

exec sys.sp_addpushsubscription_agent 
@publication = N’PeerToPeer1′, 
@subscriber = N’HOME-SERVER\FIRSTINSTANCE’, 
@subscriber_db = N’PeerToPeerSubscriber’, 
@job_login = N’PAULSDOMAIN\Administrator’,
@job_password = ‘password’, 
@subscriber_security_mode = 1, 
@frequency_type = 64, 
@frequency_interval = 1, 
@frequency_relative_interval = 1, 
@frequency_recurrence_factor = 0, 
@frequency_subday = 4, 
@frequency_subday_interval = 5, 
@active_start_time_of_day = 0, 
@active_end_time_of_day = 235959, 
@active_start_date = 0, 
@active_end_date = 0, 
@dts_package_location = N’Distributor’

(2) On Second Server
use peertopeerPublisher
go

sp_addlogreader_agent 
@job_login = ‘PAULSDOMAIN\Administrator’
, @job_password = ‘password’
, @publisher_security_mode = 1 
, @publisher_login = ‘PAULSDOMAIN\Administrator’ 
, @publisher_password = ‘password’ 
, @publisher = null 
go

exec sp_addpublication 
@publication = ‘PeerToPeer1′, 
@description = ‘test peer to peer’, 
@sync_method = ‘concurrent’, 
@retention = 0, 
@allow_push = ‘true’, 
@allow_pull = ‘true’, 
@allow_anonymous = ‘false’, 
@enabled_for_internet = ‘false’, 
@snapshot_in_defaultfolder = ‘true’, 
@compress_snapshot = ‘false’, 
@ftp_port = 21, 
@ftp_login = ‘anonymous’, 
@allow_subscription_copy = ‘false’, 
@add_to_active_directory = ‘false’, 
@repl_freq = ‘continuous’, 
@status = ‘active’, 
@independent_agent = ‘true’, 
@immediate_sync = ‘true’, 
@allow_sync_tran = ‘false’, 
@autogen_sync_procs = ‘false’, 
@allow_queued_tran = ‘false’, 
@allow_dts = ‘false’, 
@replicate_ddl = 1, 
@allow_initialize_from_backup = ‘false’, 
@enabled_for_p2p = ‘true’
go

exec sp_addarticle 
@publication = N’PeerToPeer1′, 
@article = N’PITest’, 
@source_owner = N’dbo’, 
@source_object = N’PITest’, 
@type = N’logbased’, 
@description = N”, 
@creation_script = N”, 
@pre_creation_cmd = N’none’, 
@schema_option = 0×00000000000044F7, 
@identityrangemanagementoption = N’manual’, 
@destination_table = N’PITest’, 
@destination_owner = N’dbo’, 
@status = 16, 
@vertical_partition = N’false’, 
@ins_cmd = N’CALL [sp_MSins_PITest]‘, 
@del_cmd = N’CALL [sp_MSdel_PITest]‘, 
@upd_cmd = N’MCALL [sp_MSupd_PITest]‘
go

exec sp_addsubscription 
@publication = ‘PeerToPeer1′, 
@subscriber = ‘HOME-SERVER’, 
@destination_db = ‘peertoPeerPublisher’, 
@sync_type = ‘replication support only’ 
go

exec sys.sp_addpushsubscription_agent 
@publication = N’PeerToPeer1′, 
@subscriber = N’HOME-SERVER’, 
@subscriber_db = N’PeerToPeerSubscriber’, 
@job_login = N’PAULSDOMAIN\Administrator’,
@job_password = ‘password’, 
@subscriber_security_mode = 1, 
@frequency_type = 64, 
@frequency_interval = 1, 
@frequency_relative_interval = 1, 
@frequency_recurrence_factor = 0, 
@frequency_subday = 4, 
@frequency_subday_interval = 5, 
@active_start_time_of_day = 0, 
@active_end_time_of_day = 235959, 
@active_start_date = 0, 
@active_end_date = 0, 
@dts_package_location = N’Distributor’

Source : http://www.replicationanswers.com/Script3.asp

Google : SQL Server 2005: Peer to Peer Transactional Replication Setup
Google Search: SQL Server 2005: Peer to Peer Transactional Replication Setup
DB Error Code: SQL Server 2005: Peer to Peer Transactional Replication Setup

Leave your response!

Add your comment below, or trackback from your own site. You can also subscribe to these comments via RSS.

Be nice. Keep it clean. Stay on topic. No spam.

You can use these tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

This is a Gravatar-enabled weblog. To get your own globally-recognized-avatar, please register at Gravatar.