@alt_snapshot_folder for PULL Subscribers


–Chris Skorlinski, SQL Server Escalation Services

To improve SQL Distribution agent performance when applying Snapshot, first ZIP then copy the snapshot files locally to the subscriber. This is a great solution for subscribers on WAN international networks as ZIP can be smaller and faster to copy then Replication can move uncompressed Snapshot files.  Testing shows a 1gb file can take > 10 minutes to PUSH via Replication but only 1 minute to ZIP into 25mb file, 1 minute to copy, and 1 minute to unzip resulting in Snapshot being applied in 1/2 time compared Replication to move the data.

Setup the Distribution Agent as a PULL subscriber via new Subscription Wizard or TSQL scripts specifying the @alt_snapshot_folder in the configuration settings. This instructs Distribution Agent running on the Subscriber (PULL) to retrieve local copy of the snapshot files.

— Executed on the Publisher
— Adding the transactional subscriptions
— Flags Snapshot Agent to create run creating Snapshot files.

exec sp_addsubscription @publication = …

— Start the Snapshot Agent, when complete, copy the files to local subscriber. Copy from "\unc\…" including the "unc" folder.
— Target Directory Example: X\ReplData\unc\mypublication\<snapshotdate>

— Executed on the Subscriber
exec sp_addpullsubscription @publisher =…
exec sp_addpullsubscription_agent @publisher = … @alt_snapshot_folder = N’X:\ReplData\’, …

The Subscriber Pull Distribution Agent Job History will show:

2015-11-03 20:00:40.370 Initializing
2015-11-03 20:00:40.417 Snapshot will be applied from the alternate folder ‘C:\Temp\unc\CUSTOMER\20151103145645\’

If you’ve already created a PUSH and want to use a PULL with a local snapshot folder, you can run the Distribution Agent on the subscriber specifying the AltSnapshot folder path as a run-time parameter to the Distribution Agent (distrib.exe) instead of a configuration setting during setup.

http://blogs.msdn.com/b/repltalk/archive/2010/03/07/tips-to-improve-performance-when-applying-snapshot-in-transactional-replication.aspx

You can also change the PULL Distribution Agent Subscription Properties:

image

Comments (0)

Skip to main content