Showing posts with label instance. Show all posts
Showing posts with label instance. Show all posts

Friday, March 30, 2012

Merge republish Schema changes

Hello,

I'm working on a replication topology that is completely merge. We have a single consolidated instance (SQL 2005 SP1 Standard) that holds all data and is a continuous push merge publication filtered by region to regional instances (SQL 2005 SP1 Standard). Then we have individual user instances (SQL Express SP1) that pulls from the republished regional instances which is filtered by user. Both publications have Replicate Schema Changes set to true.

I'm testing out changes to tables and sps on a test system I've been using this process:

1-Run Snapshot on the Consolidated instance

2-Verify all published articles have a status of 2 in sysmergearticles

3-Run Regional Snapshot

4-Verify all published articles have a status of 2 in sysmergearticles

5-Run alter table scripts

6-Once all three levels have the table changes, run the alter sp scripts

I've gotten to step 5 and and the changes get replicated to the regional instance just fine however only the existing column changes get replicated to the SQLExpress instance, not the new columns. Looking at the articles in the regional publication it shows the new columns, but they are not selected. I know I can manually select them (or probably write a script that adds them to the publication although sp_repladdcolumn has been depreciated), but isn't there a way to make this a completely automated process since it's just a republished database? Also is the process I'm using the correct one?

Thank you,

Aaron Lowe

Is your publication property replication_ddl set to true?|||I apologize for not being clearer in my original post. I had said that replicate schema changes was set to true, this is the replication_ddl property that I was referring to. Thanks, Aaron|||when you add a new column, the column should get replicated to all nodes in your topology. Is the new column not getting replicated at all? Where in your topology are you adding the new columns - publisher, republisher or subscriber?|||I'm adding the columns at my original publisher (the consolidated one). As I said it is pushed down to my subscribers that republish the data (the regional ones that are pushed from the consolidated one), it just doesn't get all the way down to my final subscribers (the individual sqlexpress ones that pull the data). Looking at the properties of the publication on the republisher it shows the columns in the publication but they are not selected.|||if replicate_ddl option is truly enabled at both the publisher and the republisher, then I'm not sure what the problem is. You verified the replicate_ddl column is set to 1 in sysmergepublications table in the published database at both the publisher and republisher?|||

Well, I believe it's correct, here's what is in the sysmergepublications:

Consolidated database (original publisher)

publication name, replicate_ddl

Consolidated, 1

Region, 0

Regional database (republisher)

publication name, replicate_ddl

Consolidated, 1

Region, 1

SQL Express database (subscriber)

publication name, replicate_ddl

Consolidated, 0

Region, 1

Also the status in sysmergearticles in the consolidated db is 2 (active). There are two sets of articles in the sysmergearticles table in the regional db, one for each the consolidated and regional publication. The records in sysmergearticles for the consolidated publication has a status of 1 (Unsynced) while the records for the regional publication have a status of 2 (active). The status in the SQLExpress pull subscriptions is all 1 (Unsynced).

Thanks,

Aaron

|||Can you try your scenario with SP2? We fixed somewhat similar issue in SP2.sql

Friday, March 23, 2012

Merge Replication SQL Server 2005 and SQL Express

We are going to be implementing merge replication between a main instance of
SQL Server 2005 and potentially a hundred or so instances of SQL Express
subscribers. Our business model is such that the SQL Express users will not
be online all the time and when they are the merge replication will take
place over an HTTPS connection, which I understand is supported. Since data
changes can occur on either or both ends does the fact that SQL Express is
only a subscriber mean that the changes made on that end won't be propogated
back to the SQL Server unless SQL Server requests them? Is it best to
schedule the replications? Is HTTPS or FTP the better mechanism for
transport?
Where can I find some examples or tutorials of setting up replication
between SQL Server 2005 and SQL Express?
Thanks!
RSH
I also noticed that when performing a DDL change, I could do it at the
Publisher level and the change propogated to the subscribers...IF and only
IF when I added columns I didn't insert them BEFORE the RowGuid. Is this a
bug or is this correct behaviour?
"RSH" <way_beyond_oops@.yahoo.com> wrote in message
news:Of%23IsMD9FHA.4036@.TK2MSFTNGP11.phx.gbl...
> We are going to be implementing merge replication between a main instance
> of SQL Server 2005 and potentially a hundred or so instances of SQL
> Express subscribers. Our business model is such that the SQL Express
> users will not be online all the time and when they are the merge
> replication will take place over an HTTPS connection, which I understand
> is supported. Since data changes can occur on either or both ends does
> the fact that SQL Express is only a subscriber mean that the changes made
> on that end won't be propogated back to the SQL Server unless SQL Server
> requests them? Is it best to schedule the replications? Is HTTPS or FTP
> the better mechanism for transport?
> Where can I find some examples or tutorials of setting up replication
> between SQL Server 2005 and SQL Express?
> Thanks!
> RSH
>
|||Data flow is in each direction even though SQL Express is limited to being a
subscriber. FTP is used for initialization while the HTTPS transport is for
the subsequent synchronizations. The info in BOL is pretty comprehensive for
this new functionality and AFAIK there are no articles outside of BOL on the
setup.
Cheers,
Paul Ibison SQL Server MVP, www.replicationanswers.com
(recommended sql server 2000 replication book:
http://www.nwsu.com/0974973602p.html)
|||Can you run sp_helpmergepublication and let us know the value of
replicate_ddl.
Cheers,
Paul Ibison SQL Server MVP, www.replicationanswers.com
(recommended sql server 2000 replication book:
http://www.nwsu.com/0974973602p.html)
|||I simply get "
Command(s) completed successfully."
"Paul Ibison" <Paul.Ibison@.Pygmalion.Com> wrote in message
news:ebzCtSD9FHA.808@.TK2MSFTNGP09.phx.gbl...
> Can you run sp_helpmergepublication and let us know the value of
> replicate_ddl.
> Cheers,
> Paul Ibison SQL Server MVP, www.replicationanswers.com
> (recommended sql server 2000 replication book:
> http://www.nwsu.com/0974973602p.html)
>
|||This needs to be executed at the Publisher on the publication database.
Cheers,
Paul Ibison SQL Server MVP, www.replicationanswers.com
(recommended sql server 2000 replication book:
http://www.nwsu.com/0974973602p.html)
|||replicate_ddl = 1
"Paul Ibison" <Paul.Ibison@.Pygmalion.Com> wrote in message
news:ebzCtSD9FHA.808@.TK2MSFTNGP09.phx.gbl...
> Can you run sp_helpmergepublication and let us know the value of
> replicate_ddl.
> Cheers,
> Paul Ibison SQL Server MVP, www.replicationanswers.com
> (recommended sql server 2000 replication book:
> http://www.nwsu.com/0974973602p.html)
>

Monday, March 12, 2012

Merge Replication in Enterprise 2005 to Express 2005

I implemented a merge replication publication on a SQL Server 2005
Enterprise instance on a test server. On my laptop I have VS.NET 2005
installed with SQL Server 2005 Express.
It's my understanding that I can subscribe to a publication with
Express. I also have SQL Server Workgroup installed on my laptop so I'm
able to use Management Studio to control the Express instance.
The first issue I encountered was that you cannot subscribe to a
publication if you are not on the same network as the publishing
instance (it requires the actual server name). And in lieu of this I
tried to implement Web synchronization, but had problems with SSL
(which is my problem since I'm not entirely familiar with how to
implement SSL certs so they don't show the security warning on the
client without purchasing a certificate).
So then I decided to go ahead and create an account on my laptop and
add it to the domain of the test publishing server. I was then able to
subscribe to the published replication.
So then I look at my Express instance and the synchronization never
runs. In the documentation it says that you're supposed to be able to
right-click on the subscription and "View Synchronization" and force it
to run. This is not available in the Express instance, but it is
available in the Workgroup instance.
So I'm looking at cleaning up my web synchronization issues to make
that work, but I see two issues here.
1) Why do I have to specify the "real name" of the publishing database?
Why can't I access it like any other sql server via an IP address? This
seems like a highly restrictive implementation of replication to me.
2) Why do I have to implement SSL for replication? I understand the
need for security, but that should be left to me to implement. I
shouldn't be forced to use SSL as my security layer.
3) Why doesn't Express have "View Synchronization"?
Any help here is greatly appreciated.
David CornelsonRetry #1
Anyone?

Merge Replication in Enterprise 2005 to Express 2005

I implemented a merge replication publication on a SQL Server 2005
Enterprise instance on a test server. On my laptop I have VS.NET 2005
installed with SQL Server 2005 Express.
It's my understanding that I can subscribe to a publication with
Express. I also have SQL Server Workgroup installed on my laptop so I'm
able to use Management Studio to control the Express instance.
The first issue I encountered was that you cannot subscribe to a
publication if you are not on the same network as the publishing
instance (it requires the actual server name). And in lieu of this I
tried to implement Web synchronization, but had problems with SSL
(which is my problem since I'm not entirely familiar with how to
implement SSL certs so they don't show the security warning on the
client without purchasing a certificate).
So then I decided to go ahead and create an account on my laptop and
add it to the domain of the test publishing server. I was then able to
subscribe to the published replication.
So then I look at my Express instance and the synchronization never
runs. In the documentation it says that you're supposed to be able to
right-click on the subscription and "View Synchronization" and force it
to run. This is not available in the Express instance, but it is
available in the Workgroup instance.
So I'm looking at cleaning up my web synchronization issues to make
that work, but I see two issues here.
1) Why do I have to specify the "real name" of the publishing database?
Why can't I access it like any other sql server via an IP address? This
seems like a highly restrictive implementation of replication to me.
2) Why do I have to implement SSL for replication? I understand the
need for security, but that should be left to me to implement. I
shouldn't be forced to use SSL as my security layer.
3) Why doesn't Express have "View Synchronization"?
Any help here is greatly appreciated.
David Cornelson
Retry #1
Anyone?

Friday, March 9, 2012

Merge Replication in Enterprise 2005 to Express 2005

I implemented a merge replication publication on a SQL Server 2005
Enterprise instance on a test server. On my laptop I have VS.NET 2005
installed with SQL Server 2005 Express.
It's my understanding that I can subscribe to a publication with
Express. I also have SQL Server Workgroup installed on my laptop so I'm
able to use Management Studio to control the Express instance.
The first issue I encountered was that you cannot subscribe to a
publication if you are not on the same network as the publishing
instance (it requires the actual server name). And in lieu of this I
tried to implement Web synchronization, but had problems with SSL
(which is my problem since I'm not entirely familiar with how to
implement SSL certs so they don't show the security warning on the
client without purchasing a certificate).
So then I decided to go ahead and create an account on my laptop and
add it to the domain of the test publishing server. I was then able to
subscribe to the published replication.
So then I look at my Express instance and the synchronization never
runs. In the documentation it says that you're supposed to be able to
right-click on the subscription and "View Synchronization" and force it
to run. This is not available in the Express instance, but it is
available in the Workgroup instance.
So I'm looking at cleaning up my web synchronization issues to make
that work, but I see two issues here.
1) Why do I have to specify the "real name" of the publishing database?
Why can't I access it like any other sql server via an IP address? This
seems like a highly restrictive implementation of replication to me.
2) Why do I have to implement SSL for replication? I understand the
need for security, but that should be left to me to implement. I
shouldn't be forced to use SSL as my security layer.
3) Why doesn't Express have "View Synchronization"?
Any help here is greatly appreciated.
David CornelsonRetry #1
Anyone?