Configuring Replication without delivering a snapshot to preserve archive data

Version 4

    Verified Product Versions

    AppSense Environment Manager 8.6AppSense Environment Manager 8.5AppSense Environment Manager 8.4AppSense Environment Manager 8.3AppSense Environment Manager 8.2AppSense Environment Manager 8.1AppSense Environment Manager 8.0

    This information is now considered Outdated. Please refer to the latest 'Ivanti Environment Manager Replication Guide' for guidance on how to Enable Replication without Snapshot Delivery.

     

    Introduction

    After upgrading the Personalization Server database and reconfiguring SQL merge replication, the delivery of the initial snapshot to each subscriber causes the archive data on that subscriber to be cleared.

    In addition, when replicating a large database it may be beneficial to skip the delivery of the snapshot if the databases are guaranteed to be consistent at the time replication is enabled.

     

    Detail

    The archives are cleared due to a "delete" pre-creation command setting on the ApplicationProfile table. Because this table is cleared prior to applying the snapshot, the related archive profiles are also deleted due to a direct relationship between the two tables.

    Additionally, the delivery of a large snapshot can take a considerable amount of time depending on row count and network link speed. This operation can also fail due to a number of factors (such as timeout values being exceeded)

     

    This solution requires that database integrity is kept in place by the administrator and assumes that at the point between removing and re-instating replication no user activity or configuration changes are taking place on either the publisher and/or subscriber databases.

    This method can also be followed if restoring a backup of the publisher database onto the subscriber.

    Warning: If you are upgrading from a version of Enviroment Manager Personalization Server prior to 8.3.253.0 to a version of 8.3.253.0 or higher then step 6 MUST be followed to ensure data consistency.


    1. Ensure users are disconnected from Personalization
    2. Perform a manual synchronization of the 'Config' and 'Data' merge publications. This may need to be executed multiple times to ensure all rows have correctly propagated to the publisher and each subscriber (The databases can be considered in sync once the number of update/insert/delete changes reaches 0 in the replication summary). There must be no conflicting rows (if conflicts exist due to primary/foreign key violations then a new snapshot must be delivered, or a backup of the publisher must be restored, instead)
    3. As per the Environment Manager Upgrade Guide, remove replication using the RemoveReplication.cmd script that is supplied with the upgrade media.
    4. Upgrade all Personalization Servers on the publisher and subscriber sites. When prompted, upgrade the databases when asked.
    5. Modify the CreateConfigSubscription.sql file (ConfigureSubscriber.sql on older versions of EM) within the replication scripts folder (typically "%Program Files%\AppSense\Environment Manager\Personalization Server\Support\Replication" or "%Program Files%\AppSense\Environment Manager\Personalization Server\Replication" on older versions) and replace all lines containing:
    @sync_type = N'Automatic'

    to:

     

    @sync_type = N'none'

    NOTE: There will be two entries to change (one for each of the config and data publications)

    6.  Versions prior to 8.3.253.0 ONLY. Environment Manager versions 8.3.253.0 and above include an extra stage in the SetMasterUp scripts that performs a one-time hash conversion of Application Data RowGuids in order to avoid future primary key conflicts during replication cycles. Because under normal conditions a full snapshot is delivered this process is NOT typically performed on the subscriber database(s). In order to retain database consistency when upgrading to this version or greater (from a version prior to 8.3.253.0) and a snapshot is not being delivered it is vital that the "ConvertRowGuids.sql" script (included in the Replication folder) is also manually executed on all subscribers against the Personalization Database.
    7. Execute the SetMasterUp and AddSubscriber scripts as normal (Please see the Environment Manager Installation Guide for further information)
    You will find that after the creation of the initial snapshot, the snapshot is NOT delivered to each subscriber and replication continues as normal. The subscriber archives are also left in place.