Select to view content in your preferred language

ArcGIS SQL Server SDE Database Replication

6467
6
Jump to solution
09-22-2015 09:28 PM
DeanHowell1
Frequent Contributor

I need some advice on setting up database replication for our remote GIS users.

We currently have the GIS data stored in SQL Server sitting in our Data Centre locally.

There are around six users in the GIS team in another state editing data in two sde databases.

I would like to create a local replication for these two sde databases to be stored on the interstate server.

The final set-up should allow the six users interstate to edit data in the local sde instances and then manually or automatically synchronise with the main SQL Server database in head office each day/night.

I have added Global Ids to all datasets that will be edited and now need to figure out the next steps in the process.

1. What sort of replica do I need to create i.e. two way, one way, check out for the interstate users to be able to edit each day and then synchronise at night (or when they finish their edits).

2. What is the best practice for users to be editing in a multi-edit environment?

3. Do I need to create the replica on a regular basis or is it just a set and forget process?

4. How do I automate the synchronisation process?

5. Is there anything else that I need to know to ensure a simple implementation?

Any assistance would be greatly appreciated.

Regards

Dean Howell

0 Kudos
1 Solution

Accepted Solutions
by Anonymous User
Not applicable

Hello Dean

I will try to answer some of your questions:

1. What sort of replica do I need to create i.e. two way, one way, check out for the interstate users to be able to edit each day and then synchronise at night (or when they finish their edits).

It depends... If editions will be done in both central and replicated geodatabases, you will need a "two-way" replica. However, if editions will be done only by those editors against the replicated database.. I will recommend one-way, child to parent replica (replica is permanent, editions move from child to parent).

3. Do I need to create the replica on a regular basis or is it just a set and forget process?

With one-way or two-way replicas, it will be a "set and forget" process....

4. How do I automate the synchronisation process?

You can create a Python script and schedule it. The Python script can launch the "Synchronize..." tool in ArcToolBox.

5. Is there anything else that I need to know to ensure a simple implementation?

- it is not needed to create a replica with all the feature classes in the geodatabase; however, once you have created the replica there is no way for "editing" the replica including or removing new datasets; so be careful about which feature classes you include/exclude in the replica.... If you need to change these, you will need to "unregister" the replica and recreate again.

- use the ArcMap toolbar better than the ArcToolBox tools for replica creation . You can create an mxd with all the feature classes you are going to replicate; error messages are more descriptive using the ArcMap toolbar.

- if you create a python script for automate the sync. process. try to log the result.

Hope this helps

Jesús de Diego

View solution in original post

6 Replies
by Anonymous User
Not applicable

Hello Dean

I will try to answer some of your questions:

1. What sort of replica do I need to create i.e. two way, one way, check out for the interstate users to be able to edit each day and then synchronise at night (or when they finish their edits).

It depends... If editions will be done in both central and replicated geodatabases, you will need a "two-way" replica. However, if editions will be done only by those editors against the replicated database.. I will recommend one-way, child to parent replica (replica is permanent, editions move from child to parent).

3. Do I need to create the replica on a regular basis or is it just a set and forget process?

With one-way or two-way replicas, it will be a "set and forget" process....

4. How do I automate the synchronisation process?

You can create a Python script and schedule it. The Python script can launch the "Synchronize..." tool in ArcToolBox.

5. Is there anything else that I need to know to ensure a simple implementation?

- it is not needed to create a replica with all the feature classes in the geodatabase; however, once you have created the replica there is no way for "editing" the replica including or removing new datasets; so be careful about which feature classes you include/exclude in the replica.... If you need to change these, you will need to "unregister" the replica and recreate again.

- use the ArcMap toolbar better than the ArcToolBox tools for replica creation . You can create an mxd with all the feature classes you are going to replicate; error messages are more descriptive using the ArcMap toolbar.

- if you create a python script for automate the sync. process. try to log the result.

Hope this helps

Jesús de Diego

AsrujitSengupta
Deactivated User

Just a small edit in the above reply...once a Replica is created, you cannot add new data to the Replica using standard Desktop tools. You can however remove data from participating in the Replica if needed.

0 Kudos
by Anonymous User
Not applicable

Oh, yes.. you are right Asrujit...

Regards

Jesús

0 Kudos
DeanHowell1
Frequent Contributor

Thanks you for the great tips. I will try and get it done today.

0 Kudos
KenCarrier
Deactivated User

Another useful tip since you mentioned users in different states. If the projection of the data ever becomes an issue or if you ever wanted to replicate your data to a file geodatabase in Web Mercator (WKID: 3857) for use in ArcGIS Server this article shows how to register a replica in a different projection.

34129 - Create a replica where the child replica data is in a different coordinate system than the p...

JoeBorgione
MVP Emeritus

I wish I had seen this a few weeks ago!  I did it in a round about way:

1. Create replica and sync to a FGDB

2. Unregister replica on both ends (parent & child)

3. Project child data to desired parameters

4. Delete original replicated data and rename the projected data accordingly

5. Create replica using existing features

(Replicate to different Projection Parameters )

That should just about do it....
0 Kudos