| | | |
| --- Replication Installation Script |
| |
| print '' |
| print 'Replication installation script' |
| print '' |
| |
| -- Temporary table to store the names of the regional servers |
| use master |
| GO |
| SET NOCOUNT ON |
| GO |
| |
| drop table tempdb.#Servers |
| GO |
| create table tempdb.#Servers (srv_id int, srv_name nvarchar(20)) |
| GO |
| |
| insert into #Servers values ( 1, N'BANGALOREAHD' ) |
| insert into #Servers values ( 2, N'CALCUTTAAHD' ) |
| insert into #Servers values ( 3, N'CHENNAIAHD' ) |
| insert into #Servers values ( 4, N'DELHIAHD' ) |
| insert into #Servers values ( 5, N'MUMBAIAHD' ) |
| GO |
| |
| ----------------------------------- Start Replication Setup ----------------------------------- |
| PRINT 'Starting Replication Setup...' |
| |
| -- Get local install path |
| declare @install_path nvarchar (255) |
| exec master.dbo.xp_regread
|
| | N'HKEY_LOCAL_MACHINE', |
| | N'SOFTWARE\Microsoft\MSSQLServer\Setup', |
| | N'SQLPath', |
| | @param = @install_path OUTPUT |
| |
| -- Adding the distributor |
| exec sp_adddistributor @distributor = @@servername |
| |
| print 'Server Name : ' + @@servername |
| |
| -- Adding the distributor database |
| declare @data_folder nvarchar(255) |
| set @data_folder = @install_path + N'\DATA' |
| exec sp_adddistributiondb |
| | @database = N'distribution', |
| | @security_mode = 1, |
| | @data_folder = @data_folder, |
| | @data_file = N'distribution_Data', |
| | @data_file_size = 5, |
| | @log_folder = @data_folder, |
| | @log_file = N'distribution_Log', |
| | @log_file_size = 2 |
| |
| -- Adding the distribution publisher |
| declare @working_folder nvarchar(255) |
| set @working_folder = @install_path + N'\REPLDATA' |
| exec sp_adddistpublisher |
| | @publisher = @@servername, |
| | @security_mode = 1, |
| | @encrypted_password = 1, |
| | @distribution_db = N'distribution', |
| | @working_directory = @working_folder |
| |
| -- Enabling the replication database |
| exec sp_replicationdboption AHD, N'publish', true |
| exec sp_replicationdboption AHD, N'merge publish', true |
| |
| use [AHD] |
| GO |
| declare @desc nvarchar(255) |
| set @desc = N'AHD Replication from ' + @@servername |
| if @@servername <> N'NOIDAAHD' |
| | set @desc = @desc + N' Region to Head Office.' |
| else |
| | set @desc = @desc + N' to Regions.' |
| |
| print '' |
| print 'About Replication : ' + @desc |
| print '' |
| print 'Adding Publication' |
| print '' |
| |
| -- Adding the transactional publication |
| exec sp_addpublication |
| | @publication = N'AHD', |
| | @restricted = N'false', |
| | @sync_method = N'character', |
| | @repl_freq = N'continuous', |
| | @description = @desc, |
| | @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'false', |
| | @retention = 72 |
| |
| print 'After add publication' |
| |
| |
| -- Set the snapshot agent |
| exec sp_addpublication_snapshot |
| | @publication = N'AHD', |
| | @frequency_type = 4, |
| | @frequency_interval = 1, |
| | @frequency_relative_interval = 1, |
| | @frequency_recurrence_factor = 0, |
| | @frequency_subday = 4, |
| | @frequency_subday_interval = 1, |
| | @active_start_date = 0, |
| | @active_end_date = 99991231, |
| | @active_start_time_of_day = 0, |
| | @active_end_time_of_day = 235959 |
| GO |
| |
| -- Adding linked server(s) |
| if @@servername <> N'NOIDAAHD' |
| | BEGIN |
| | exec sp_addlinkedserver |
| | | @server = N'NOIDAAHD', |
| | | @srvproduct = N' ', |
| | | @provider = N'SQLOLEDB', |
| | | @datasrc = N'NOIDAAHD', |
| | | @catalog = N'AHD' |
| | END |
| else |
| | BEGIN |
| | @srv_num integer |
| | set @srv_num = (select count(*) from #Servers) |
| | while (@srv_num >= 1) |
| | BEGIN |
| | | declare @srv_name varchar(20) |
| | | set @srv_name = (select srv_name from #Servers where srv_id = @srv_num) |
| | | exec sp_addlinkedserver |
| | | | @server = @srv_name, |
| | | | @srvproduct = N' ', |
| | | | @provider = N'SQLOLEDB', |
| | | | @datasrc = @srv_name, |
| | | | @catalog = N'AHD' |
| | | set @srv_num = @srv_num - 1 |
| | END |
| END |
| GO |
| |
| -- Adding the articles |
| DECLARE @article_name varchar(20), @set_article_filter varchar(50) |
| |
| if @@servername <> N'NOIDAAHD' |
| BEGIN |
| | DECLARE i cursor FOR |
| | | SELECT name from AHD..sysobjects where xtype = N'U' and uid = 5 |
| | | | and name not in N'options', N'seqctl', N'dlgtsrv', N'dlgtsta', N'dlgtxpt', |
| | | | N'zcat', N'zclassification', N'zdesignation', N'zlob', N'zmanufacturer', |
| | | | N'zpayment_mode', N'zqualifications', N'zregion_office', N'zskill', N'zsolve_mode', |
| | | | N'zstate', N'zstation', N'zstatus', N'ztech', N'ct_ty', N'net_res', N'nr_com', N'pri', |
| | | | N'prob_ctg', N'srv_desc', N'tr_cde', N'tt', N'urgncy', N'zrepair_code') |
| | | SELECT @set_article_filter = 'c_ctp_id != 2309' |
| END |
| |
| if @@servername = N'NOIDAAHD' |
| BEGIN |
| | DECLARE i cursor FOR |
| | | SELECT name from AHD..sysobjects where xtype = N'U' and uid = 5 |
| | | | and name in (N'zcat', N'zclassification', N'zdesignation', N'zlob', N'zmanufacturer', |
| | | | N'zpayment_mode', N'zqualifications', N'zregion_office', N'zskill', N'zsolve_mode', |
| | | | N'zstate', N'zstation', N'zstatus', N'ztech', N'ct_ty', N'net_res', N'nr_com', N'pri', |
| | | | N'prob_ctg', N'srv_desc', N'tr_cde', N'tt', N'urgncy', N'zrepair_code',N'ctct') |
| | | SELECT @set_article_filter = 'c_ctp_id = 2309' |
| END |
| |
| print '' |
| print 'Article Filter Clause : ' + @set_article_filter |
| |
| OPEN i |
| FETCH NEXT FROM i INTO @article_name |
| | WHILE @@FETCH_STATUS = 0 |
| | BEGIN |
| |
| | | print '' |
| | | print 'Article Name : ' + @article_name |
| |
| | | if @article_name = 'ctct' |
| | | exec sp_addarticle |
| | | | @publication = N'AHD', |
| | | | @article = @article_name, |
| | | | @source_owner = N'AHD', |
| | | | @source_object = @article_name, |
| | | | @destination_table = @article_name, |
| | | | @type = N'logbased', |
| | | | @creation_script = null, |
| | | | @description = null, |
| | | | @pre_creation_cmd = N'none', |
| | | | @schema_option = 0x00000000000000F3, |
| | | | @status = 0, |
| | | | @vertical_partition = N'false', |
| | | | @ins_cmd = null, |
| | | | @del_cmd = null, |
| | | | @upd_cmd = null, |
| | | | @filter = null, |
| | | | @sync_object = null, |
| | | | @filter_clause = @set_article_filter |
| | | else |
| | | exec sp_addarticle |
| | | | @publication = N'AHD', |
| | | | @article = @article_name, |
| | | | @source_owner = N'AHD', |
| | | | @source_object = @article_name, |
| | | | @destination_table = @article_name, |
| | | | @type = N'logbased', |
| | | | @creation_script = null, |
| | | | @description = null, |
| | | | @pre_creation_cmd = N'none', |
| | | | @schema_option = 0x00000000000000F3, |
| | | | @status = 0, |
| | | | @vertical_partition = N'false', |
| | | | @ins_cmd = null, |
| | | | @del_cmd = null, |
| | | | @upd_cmd = null, |
| | | | @filter = null, |
| | | | @sync_object = null |
| |
| | | exec sp_changearticle |
| | | | @publication = N'AHD', |
| | | | @article = @article_name, |
| | | | @property = N'destination_owner', |
| | | | @value = N'AHD' |
| |
| | | FETCH NEXT FROM i INTO @article_name |
| | END |
| CLOSE i |
| DEALLOCATE i |
| |
| if @@servername = N'NOIDAAHD' |
| | EXEC sp_articlefilter N'AHD', N'ctct', N'dbo.FLTR_ctct_1__9', N'[AHD].[ctct].[c_ctp_id] = 2309' |
| else |
| | EXEC sp_articlefilter N'AHD', N'ctct', N'dbo.FLTR_ctct_1__9', N'[AHD].[ctct].[c_ctp_id] != 2309' |
| |
| -- Adding the Server(s) as a registered subscriber |
| if @@servername <> N'NOIDAAHD' |
| BEGIN |
| | exec sp_addsubscriber |
| | | @subscriber = N'NOIDAAHD', |
| | | @description = N'', |
| | | @encrypted_password = 1, |
| | | @type = 3, |
| | | @login = N'sa', |
| | | @security_mode = 0, |
| | | @frequency_type = 4, |
| | | @frequency_interval = 1, |
| | | @frequency_relative_interval = 1, |
| | | @frequency_recurrence_factor = 0, |
| | | @frequency_subday = 4, |
| | | @frequency_subday_interval = 1, |
| | | @active_start_date = 0, |
| | | @active_end_date = 99991231, |
| | | @active_start_time_of_day = 0, |
| | | @active_end_time_of_day = 235959, |
| | | @status_batch_size = 100, |
| | | @commit_batch_size = 100 |
| |
| | exec sp_changesubscriber_schedule |
| | | @subscriber = N'NOIDAAHD', |
| | | @agent_type = N'0' |
| |
| | exec sp_addsubscription |
| | | @publication = N'AHD', |
| | | @subscriber = N'NOIDAAHD', |
| | | @destination_db = N'distribution', |
| | | @update_mode = N'read only', |
| | | @sync_type = N'none', |
| | | @subscription_type = N'push' |
| | END |
| else |
| BEGIN |
| | declare @srv_num integer |
| | set @srv_num = (select count(*) from #Servers) |
| | while (@srv_num >= 1) |
| | BEGIN |
| | | declare @srv_name varchar(20) |
| | | set @srv_name = (select srv_name from #Servers where srv_id = @srv_num) |
| | | exec sp_addsubscriber |
| | | | @subscriber = @srv_name, |
| | | | @description = N'', |
| | | | @encrypted_password = 1, |
| | | | @type = 3, |
| | | | @login = N'sa', |
| | | | @security_mode = 0, |
| | | | @frequency_type = 4, |
| | | | @frequency_interval = 1, |
| | | | @frequency_relative_interval = 1, |
| | | | @frequency_recurrence_factor = 0, |
| | | | @frequency_subday = 4, |
| | | | @frequency_subday_interval = 1, |
| | | | @active_start_date = 0, |
| | | | @active_end_date = 99991231, |
| | | | @active_start_time_of_day = 0, |
| | | | @active_end_time_of_day = 235959, |
| | | | @status_batch_size = 100, |
| | | | @commit_batch_size = 100 |
| |
| | | exec sp_changesubscriber_schedule |
| | | | @subscriber = @srv_name, |
| | | | @agent_type = N'0' |
| |
| | | exec sp_addsubscription |
| | | | @publication = N'AHD', |
| | | | @subscriber = @srv_name, |
| | | | @destination_db = N'distribution', |
| | | | @update_mode = N'read only', |
| | | | @sync_type = N'none', |
| | | | @subscription_type = N'push' |
| | | set @srv_num = @srv_num - 1 |
| | END |
| END |
| GO |
| |
| exec master.dbo.xp_regwrite N'HKEY_LOCAL_MACHINE', N'SOFTWARE\ComputerAssociates\CA Service Desk\4.0', |
| | N'Replication', N'REG_SZ', N'installed' |
| |
| PRINT 'Replication Setup Complete...' |