SQL Server Replication Using FTP

I have: SQL A - Publisher (SQL 2008 R2 Dev) SQL B - Subscriber (SQL 2008 R2 Standard)

SQL A and SQL B are on different networks, not a direct connection.

I allow FTP publishing to SQL A. SQL B subscription has been created to receive files from FTP.

But for some reason, when I ran the agent on SQL B, it gives an error, can’t connect to SQL A. Uhmm, duh? Of course, because this is FTP replication, there is no connection.

What am I doing wrong?

-- THIS IS ON PUBLISHER: -- Enabling the replication database use master exec sp_replicationdboption @dbname = N'Publisher_DB', @optname = N'publish', @value = N'true' GO exec [Publisher_DB].sys.sp_addlogreader_agent @job_login = null, @job_password = null, @publisher_security_mode = 1 GO exec [Publisher_DB].sys.sp_addqreader_agent @job_login = null, @job_password = null, @frompublisher = 1 GO -- Adding the snapshot publication use [Publisher_DB] exec sp_addpublication @publication = N'Test_S', @description = N'Snapshot publication of database ''Publisher_DB'' from Publisher ''SQL-A''.', @sync_method = N'native', @retention = 0, @allow_push = N'true', @allow_pull = N'true', @allow_anonymous = N'true', @enabled_for_internet = N'true', @snapshot_in_defaultfolder = N'false', @alt_snapshot_folder = N'\\SQL-A\D$\SqlReplica', @compress_snapshot = N'true', @ftp_address = N'SQL-A', @ftp_port = 21, @ftp_subdirectory = N'\\SQL-A\D$\SqlReplica', @ftp_login = N'anonymous', @allow_subscription_copy = N'true', @add_to_active_directory = N'false', @repl_freq = N'snapshot', @status = N'active', @independent_agent = N'true', @immediate_sync = N'true', @allow_sync_tran = N'false', @autogen_sync_procs = N'false', @allow_queued_tran = N'false', @allow_dts = N'false', @replicate_ddl = 1 GO exec sp_addpublication_snapshot @publication = N'Test_S', @frequency_type = 1, @frequency_interval = 0, @frequency_relative_interval = 0, @frequency_recurrence_factor = 0, @frequency_subday = 0, @frequency_subday_interval = 0, @active_start_time_of_day = 0, @active_end_time_of_day = 235959, @active_start_date = 0, @active_end_date = 0, @job_login = null, @job_password = null, @publisher_security_mode = 1 exec sp_grant_publication_access @publication = N'Test_S', @login = N'sa' GO exec sp_grant_publication_access @publication = N'Test_S', @login = N'NT AUTHORITY\SYSTEM' GO exec sp_grant_publication_access @publication = N'Test_S', @login = N'NT AUTHORITY\NETWORK SERVICE' GO exec sp_grant_publication_access @publication = N'Test_S', @login = N'DOMAIN\Developers & Test Admins' GO exec sp_grant_publication_access @publication = N'Test_S', @login = N'distributor_admin' GO -- Adding the snapshot articles use [Publisher_DB] exec sp_addarticle @publication = N'Test_S', @article = N'test_table', @source_owner = N'dbo', @source_object = N'test_table', @type = N'logbased', @description = N'', @creation_script = N'', @pre_creation_cmd = N'drop', @schema_option = 0x000000000803509D, @identityrangemanagementoption = N'none', @destination_table = N'test_table', @destination_owner = N'dbo', @status = 24, @vertical_partition = N'false', @ins_cmd = N'SQL', @del_cmd = N'SQL', @upd_cmd = N'SQL' GO -- Adding the snapshot subscriptions use [Publisher_DB] exec sp_addsubscription @publication = N'Test_S', @subscriber = N'SQL-B', @destination_db = N'Publisher_DB', @subscription_type = N'Pull', @sync_type = N'automatic', @article = N'all', @update_mode = N'read only', @subscriber_type = 0 GO -----------------BEGIN: Script to be run at Publisher 'SQL-A'--------------- use [Publisher_DB] exec sp_addsubscription @publication = N'Test_S', @subscriber = N'SQL-B', @destination_db = N'Publisher_DB', @sync_type = N'Automatic', @subscription_type = N'pull', @update_mode = N'read only' GO -----------------END: Script to be run at Publisher 'SQL-A'----------------- -----------------BEGIN: Script to be run at Subscriber 'SQL-A'-------------- use [Publisher_DB] exec sp_addpullsubscription @publisher = N'SQL-A', @publication = N'Test_S', @publisher_db = N'Publisher_DB', @independent_agent = N'True', @subscription_type = N'pull', @description = N'', @update_mode = N'read only', @immediate_sync = 1 exec sp_addpullsubscription_agent @publisher = N'SQL-A', @publisher_db = N'Publisher_DB', @publication = N'Test_S', @distributor = N'SQL-B', @distributor_security_mode = 1, @distributor_login = N'', @distributor_password = null, @enabled_for_syncmgr = N'False', @frequency_type = 64, @frequency_interval = 0, @frequency_relative_interval = 0, @frequency_recurrence_factor = 0, @frequency_subday = 0, @frequency_subday_interval = 0, @active_start_time_of_day = 0, @active_end_time_of_day = 235959, @active_start_date = 20120622, @active_end_date = 99991231, @alt_snapshot_folder = N'\\SQL-B\D$\SqlReplica\ftp', @working_directory = N'\\SQL-B\D$\SqlReplica\ftp', @use_ftp = N'False', @job_login = null, @job_password = null, @publication_type = 0 GO -----------------END: Script to be run at Subscriber 'SQL-A'--------------- 
+4
source share
1 answer

`Add

 @ftp_address = N'SQL-A', @ftp_port = 21, @ftp_subdirectory = N'\SQL-A\D$\SqlReplica', @ftp_login = N'anonymous' 

into the sp_addpullsubscription_agent command and change @use_ftp to N'True'

0
source

All Articles