To choose replication type: I am confused

  • Hi,

    I have these requirements:

    a) I must to replicate a table with a image type column (tipically in this column I will have 2 or 3 MB).

    b) This table can be modified some times in day hours (image column can be updated) before replication starts (replication starts during night).

    c) I must to replication over WAN network with many timeout problem.

    I analyzed 3 replication types (transactional/snapshot/merge) but:

    1) Transactional cannot be used because I don't want to replicate same row 2 or more times if I changed some column before replication start

    2) Snapshot cannot be used because I want to replicate only rows really modified in each day (i.e. if I modify only a single row how I can send only modified rows with snapshot replication?)

    3)  Merge replication: this type seend perfect for my needs but can I to stop replication from Subscriber to Publisher?

     

    Can you help me, please?

     

    Thanks in advance

  • if this is a one way process (from pub to sub) then have you considered using log shipping ?

    MVDBA

  • In merge replication you can specify the -ExchangeType  parameters to specify the direction of the replication.

    A value of 1 is from the subscriber to the publisher, 2 from the publisher to the subscriber, and 3 both of them.

  • Thanks for your response.

    I don't want to use log shipping because if I modify two times same row I must to transfer two times same column value and first it's useless (one of my columns it's image column type and it can be very large).

    With merge replication (and with ExchangeType parameter setting, thanks racosta for your help) I should avoid this performance problem.

    But with merge I can commit single row replication?

    For example if I must to replicate 3 rows insert from publisher server to subscriber server and network link between two servers goes down after transfer first two rows, what's happened when I restart merge replication agent?

    It's re-transfer 3 rows or only last row?

    Thanks

  • Dependes of how the inserts where made.

    If you executed three diferents inserts,

    INSERT INTO ...

    GO

    INSERT INTO ...

    GO

    INSERT INTO ...

    Then, they are three diferents transactions and should apply t he two first ones. Leaving the last one for the next sincronization.

    But if you have all the inserts into one transaction:

    INSERT INTO Table

    SELECT Top 3 * FROM Table2

    Then it will cancel all.

Viewing 5 posts - 1 through 5 (of 5 total)

You must be logged in to reply to this topic. Login to reply