3

Please bear with me, I'm a developer working with a client without access to a strong DBA. I have a question about bi-directional replication with the following setup and requirements:

  • MSSQL Server Database A: the back-end of a web application in a remote environment
  • MSSQL Server Database B: a mirror of Database A that resides in a DMZ

Databases A and B can be updated independently from each other but need to stay in sync. Normally this would be a good candidate for bi-directional replication because the business rules are such that conflicts will not occur in the replicated tables.

However, the client has a security requirement that no transactions can be initiated from the remote environment into the DMZ.

Can I set up bi-directional replication so that the DMZ Database B pushes its changes to Database A and pulls Database A's changes in? Or do you suggest another strategy - replication or otherwise?

Thanks!

  • Depending on their logic behind reqs, you could potentially have the remote replication data sent to a distributor node that's on the DMZ already? If you can't let Database A alert of its changes, you're going to incur a lot of overhead and issues with a home-grown solution to sync the two. – LowlyDBA - John McCall Jul 27 '15 at 20:20
  • @JohnM - The logic behind the req is that they don't want any inbound transactions, mostly I think to avoid DoS and to generally have explicit control over what data comes in to the DMZ. So, I don't think the remote DB can send data anywhere in the DMZ. I agree that a home-grown solution is going to be tricky, tho. – cbonelli Jul 27 '15 at 20:44
  • The symmetricds solution provides such support for replication in such szenarios. symmetricds.org – André Schild Jul 27 '15 at 21:25
1

Yes you can run all the replication agents from the machine inside the firewall. After everything is setup normally, just disable the SQL Agent jobs that run the agents on the DMZ machine, then create the same jobs on the machine inside the network. Enable the jobs inside the network and start them.

The push and pull terminology with SQL replication just refers to the machine that actually runs the job. There's no other differences besides the job location.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.