Showing posts with label configuration. Show all posts
Showing posts with label configuration. Show all posts

Wednesday, March 28, 2012

Merge Replication Without Merging Client To Server

I want to SYNC the data on the server to the client, but never the client data to the server.

Is such a configuration possible with Merge Replication under SQL CE?

Thanks again!

Merge is designed to be bidirectional but RDA is intended for scenarios like yours.

Remote Data Access (RDA) with tracking turned OFF on your SQL Mobile tables is the way to solve this. You already have the IIS infrastructure in place since you're doing merge today. RDA pull the data to SQL Mobile on some schedule that supports the way your mobile users operate.

-Darren

|||

If you are talking about SQL Mobile 3.0 and SQL Server 9.0. YES :)

Choose the article type as "Download Only". This way you always get changes from SQL Server down to SQL Mobile. However, your changes in SQL Mobile will not be sent to SQL Server.

Useful MSDN URL: http://msdn2.microsoft.com/en-us/library/ms147295.aspx

Thanks,

LaxmI NRO, MSFT, SQL Mobile, Microsoft Corporation

Monday, March 19, 2012

Merge Replication Performance Issues/Trace Files

We have a merge replication configuration with the distributor and subscriber
on one server and the publisher on another. The performance of the merge
slows down more and more as runs. The bandwidth between servers has already
been ruled out because there they run on a Sonet ring and T3 line between
them. We put SQL Profiler trace on the subscriber end of the merge process
using textdata and duration to try to pin point it down to the source of the
problem. However, the Textdata column has unreadable data, for instance
exec([sp_upd_4FAB988B754745CDECFA93F09EC34073]
'8D8EF6A0-8EDA-4C71-934F-0FAE3E79AFFE',
0x000000000000000000000000008007000000000000000000 0000000000000000, 3, 0x00,
296, 0xECFA93F002000000FF,
0xECFA93F001000000ECFA93F001000000ECFA93F001000000 ECFA93F00100000
Does anyone know if there is any way to translate this into the actual query
executed? Otherwise, I don't see how this helps. I got the trace setup
from a Microsoft web site.
This update proc is being run in binary format.
run this query in your subscription database
select name from sysmergearticles where update_proc
='sp_upd_4FAB988B754745CDECFA93F09EC34073'
to determine which table it is updating.
Basically here are the parameters
Rowguid=0x0000000000000000000000000080070000000000 000000000000000000000000,
metadata_type=3,
lineage_old=0x00,
generation=296,
lineage_new=0xECFA93F002000000FF,
colv= 0xECFA93F001000000ECFA93F001000000ECFA93F001000000 ECFA93F00100000
Then there should be a bunch of parameters whose values you have not
supplied me with
Hilary Cotter
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html
"SandiDBA" <SandiDBA@.discussions.microsoft.com> wrote in message
news:4946584E-0713-4190-BC0A-A35998E63CDA@.microsoft.com...
> We have a merge replication configuration with the distributor and
subscriber
> on one server and the publisher on another. The performance of the
merge
> slows down more and more as runs. The bandwidth between servers has
already
> been ruled out because there they run on a Sonet ring and T3 line between
> them. We put SQL Profiler trace on the subscriber end of the merge
process
> using textdata and duration to try to pin point it down to the source of
the
> problem. However, the Textdata column has unreadable data, for instance
> exec([sp_upd_4FAB988B754745CDECFA93F09EC34073]
> '8D8EF6A0-8EDA-4C71-934F-0FAE3E79AFFE',
> 0x000000000000000000000000008007000000000000000000 0000000000000000, 3,
0x00,
> 296, 0xECFA93F002000000FF,
> 0xECFA93F001000000ECFA93F001000000ECFA93F001000000 ECFA93F00100000
> Does anyone know if there is any way to translate this into the actual
query
> executed? Otherwise, I don't see how this helps. I got the trace
setup
> from a Microsoft web site.
|||Thanks so much, that helps. Do you also know where can I translate the
index being used for the update?
"Hilary Cotter" wrote:

> This update proc is being run in binary format.
> run this query in your subscription database
> select name from sysmergearticles where update_proc
> ='sp_upd_4FAB988B754745CDECFA93F09EC34073'
> to determine which table it is updating.
> Basically here are the parameters
> Rowguid=0x0000000000000000000000000080070000000000 000000000000000000000000,
> metadata_type=3,
> lineage_old=0x00,
> generation=296,
> lineage_new=0xECFA93F002000000FF,
> colv= 0xECFA93F001000000ECFA93F001000000ECFA93F001000000 ECFA93F00100000
> Then there should be a bunch of parameters whose values you have not
> supplied me with
> --
> Hilary Cotter
> Looking for a SQL Server replication book?
> http://www.nwsu.com/0974973602.html
> "SandiDBA" <SandiDBA@.discussions.microsoft.com> wrote in message
> news:4946584E-0713-4190-BC0A-A35998E63CDA@.microsoft.com...
> subscriber
> merge
> already
> process
> the
> 0x00,
> query
> setup
>
>
|||What index?
Hilary Cotter
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html
"SandiDBA" <SandiDBA@.discussions.microsoft.com> wrote in message
news:58CF081D-5141-4F87-B9C9-54ACD0D514AE@.microsoft.com...[vbcol=seagreen]
> Thanks so much, that helps. Do you also know where can I translate the
> index being used for the update?
> "Hilary Cotter" wrote:
Rowguid=0x0000000000000000000000000080070000000000 000000000000000000000000,[vbcol=seagreen]
between[vbcol=seagreen]
of[vbcol=seagreen]
instance[vbcol=seagreen]
|||The update statement must have a where clause in it. I would like to know
what columns the where clause use to find the row to update. Then from
there, determine if an index is being used for optimization.
"Hilary Cotter" wrote:

> This update proc is being run in binary format.
> run this query in your subscription database
> select name from sysmergearticles where update_proc
> ='sp_upd_4FAB988B754745CDECFA93F09EC34073'
> to determine which table it is updating.
> Basically here are the parameters
> Rowguid=0x0000000000000000000000000080070000000000 000000000000000000000000,
> metadata_type=3,
> lineage_old=0x00,
> generation=296,
> lineage_new=0xECFA93F002000000FF,
> colv= 0xECFA93F001000000ECFA93F001000000ECFA93F001000000 ECFA93F00100000
> Then there should be a bunch of parameters whose values you have not
> supplied me with
> --
> Hilary Cotter
> Looking for a SQL Server replication book?
> http://www.nwsu.com/0974973602.html
> "SandiDBA" <SandiDBA@.discussions.microsoft.com> wrote in message
> news:4946584E-0713-4190-BC0A-A35998E63CDA@.microsoft.com...
> subscriber
> merge
> already
> process
> the
> 0x00,
> query
> setup
>
>
|||use the index tuning wizard to help you determine this.
Hilary Cotter
Looking for a SQL Server replication book?
http://www.nwsu.com/0974973602.html
"SandiDBA" <SandiDBA@.discussions.microsoft.com> wrote in message
news:732D8E62-ECA5-4D75-B793-6E4F6F0544D6@.microsoft.com...
> The update statement must have a where clause in it. I would like to
know[vbcol=seagreen]
> what columns the where clause use to find the row to update. Then from
> there, determine if an index is being used for optimization.
> "Hilary Cotter" wrote:
Rowguid=0x0000000000000000000000000080070000000000 000000000000000000000000,[vbcol=seagreen]
between[vbcol=seagreen]
of[vbcol=seagreen]
instance[vbcol=seagreen]

Monday, February 20, 2012

Merge replication agent schedules question.

I am using SQL Server 2000 on Windows 2003 Server. I have two identical
machines running this configuration. Machine A is primary, machine B is
backup. I have setup a merge replication as such: Distributor running on B,
publisher on A, pull subscriber on B. These machines are installed at a
customer site on a new network that exeriences outages and errors. I
currently have the schedule for the snapshot agent to start with SQL Server
agent. I had previously had the same schedule set for the Merge agent.
However, whenever an error occured on the network the merge agent would
report an error and stop. The system is not monitored frequently by the
customer so I need the agent to restart/continue. I changed the schedule
for the merge agent to run once a minute. This solved the immediate
problem. However, I seem to have a similar problem on the snapshot agent
where it fails and won't restart. I ran the snapshot agent manually and the
replication picked back up. I am leery of scheduling it to run periodically
(once a minute) due to overhead. I am new to replication so I am not sure
what is a good combination for scheduling merge replication where the agents
need to report errors and continue attempting to replicate. Is there any
way to have these agents run continuously and restart after an error? Any
suggestions would be appreciated.
TIA
relax. Schedule the snapshot agent to run every minute, hour or whatever
schedule you think is best.
The snapshot will only be generated if a subscriber needs one. Otherwise the
agent will very gracefully quit and go back to sleep.
Hilary Cotter
Looking for a SQL Server replication book?
Now available for purchase at:
http://www.nwsu.com/0974973602.html
"Mike M." <nospam@.someplace.com> wrote in message
news:uuE5gPi4EHA.1260@.TK2MSFTNGP12.phx.gbl...
>I am using SQL Server 2000 on Windows 2003 Server. I have two identical
> machines running this configuration. Machine A is primary, machine B is
> backup. I have setup a merge replication as such: Distributor running on
> B,
> publisher on A, pull subscriber on B. These machines are installed at a
> customer site on a new network that exeriences outages and errors. I
> currently have the schedule for the snapshot agent to start with SQL
> Server
> agent. I had previously had the same schedule set for the Merge agent.
> However, whenever an error occured on the network the merge agent would
> report an error and stop. The system is not monitored frequently by the
> customer so I need the agent to restart/continue. I changed the schedule
> for the merge agent to run once a minute. This solved the immediate
> problem. However, I seem to have a similar problem on the snapshot agent
> where it fails and won't restart. I ran the snapshot agent manually and
> the
> replication picked back up. I am leery of scheduling it to run
> periodically
> (once a minute) due to overhead. I am new to replication so I am not sure
> what is a good combination for scheduling merge replication where the
> agents
> need to report errors and continue attempting to replicate. Is there any
> way to have these agents run continuously and restart after an error? Any
> suggestions would be appreciated.
> TIA
>
|||That sounds good. Does the subscriber specify it needs a snapshot using the
synchronization transaction at the distribution database or something? I
don't wan't to add to the network traffic by having the publisher bulk copy
all the data to the distributor (machine B) if it is not needed. Will the
snapshot agent log show that it ran and did not generate any data? I'll
give that a try.
Thanks.
"Hilary Cotter" <hilary.cotter@.gmail.com> wrote in message
news:e02jkqq4EHA.1452@.TK2MSFTNGP11.phx.gbl...
> relax. Schedule the snapshot agent to run every minute, hour or whatever
> schedule you think is best.
> The snapshot will only be generated if a subscriber needs one. Otherwise
the[vbcol=seagreen]
> agent will very gracefully quit and go back to sleep.
> --
> Hilary Cotter
> Looking for a SQL Server replication book?
> Now available for purchase at:
> http://www.nwsu.com/0974973602.html
> "Mike M." <nospam@.someplace.com> wrote in message
> news:uuE5gPi4EHA.1260@.TK2MSFTNGP12.phx.gbl...
on[vbcol=seagreen]
schedule[vbcol=seagreen]
agent[vbcol=seagreen]
sure[vbcol=seagreen]
any[vbcol=seagreen]
Any
>
|||After further review, did I mention that I allow anonymous subscriptions?
When I set the snapshot agent to run once a minute it generates a full
snapshot each time. I am going to disable anonymous subscriptions and see
how that affects it.
"Mike M." <nospam@.someplace.com> wrote in message
news:uhZYeAs4EHA.4092@.TK2MSFTNGP14.phx.gbl...
> That sounds good. Does the subscriber specify it needs a snapshot using
the
> synchronization transaction at the distribution database or something? I
> don't wan't to add to the network traffic by having the publisher bulk
copy[vbcol=seagreen]
> all the data to the distributor (machine B) if it is not needed. Will the
> snapshot agent log show that it ran and did not generate any data? I'll
> give that a try.
> Thanks.
> "Hilary Cotter" <hilary.cotter@.gmail.com> wrote in message
> news:e02jkqq4EHA.1452@.TK2MSFTNGP11.phx.gbl...
> the
identical[vbcol=seagreen]
is[vbcol=seagreen]
> on
a[vbcol=seagreen]
agent.[vbcol=seagreen]
would[vbcol=seagreen]
the[vbcol=seagreen]
> schedule
> agent
and
> sure
> any
> Any
>
|||Pull subscription, not anonymous. Snapshot agent set to run each minute.
Same result. The snapshot was generated each minute.
"Mike M." <nospam@.someplace.com> wrote in message
news:uJXn7Vs4EHA.524@.TK2MSFTNGP09.phx.gbl...[vbcol=seagreen]
> After further review, did I mention that I allow anonymous subscriptions?
> When I set the snapshot agent to run once a minute it generates a full
> snapshot each time. I am going to disable anonymous subscriptions and see
> how that affects it.
> "Mike M." <nospam@.someplace.com> wrote in message
> news:uhZYeAs4EHA.4092@.TK2MSFTNGP14.phx.gbl...
> the
I[vbcol=seagreen]
> copy
the[vbcol=seagreen]
whatever[vbcol=seagreen]
Otherwise[vbcol=seagreen]
> identical
B[vbcol=seagreen]
> is
running[vbcol=seagreen]
at[vbcol=seagreen]
> a
I[vbcol=seagreen]
> agent.
> would
> the
> and
not[vbcol=seagreen]
the[vbcol=seagreen]
there[vbcol=seagreen]
error?
>
|||for anonymous the snapshot generated every time the snapshot agent is run.
For named it is not.
Hilary Cotter
Looking for a SQL Server replication book?
Now available for purchase at:
http://www.nwsu.com/0974973602.html
"Mike M." <nospam@.someplace.com> wrote in message
news:%23%23vIIcs4EHA.1396@.tk2msftngp13.phx.gbl...
> Pull subscription, not anonymous. Snapshot agent set to run each minute.
> Same result. The snapshot was generated each minute.
> "Mike M." <nospam@.someplace.com> wrote in message
> news:uJXn7Vs4EHA.524@.TK2MSFTNGP09.phx.gbl...
> I
> the
> whatever
> Otherwise
> B
> running
> at
> I
> not
> the
> there
> error?
>