Search code examples
sqlsql-serverreplication

Is database replication the way to go to keep production and development databases in sync?


I am not a DBA; however, my small company is using SQL Server for a project that we are working on. On the same SQL Server instance there is a MS Great Plains (Dynamics GP) database - as we pass data back and forth between the two databases (mainly a scribe process getting our data and transferring it into GP).

We are using database replication (snapshot) as a means of syncing our production and development (and soon DR) environments. Right now its set to replicate every three hours during core business hours - mainly to keep production and development up to date for us while we are working.

1) Is this the correct way of doing such a thing? Is there a better way? 2) Does this stress the server or the SQL Server? Is this a possible cause of GP database issues because they are on the same server and instance? 3) Replication only occurs on the non GP database - this shouldn't affect the GP database at all right?

Our database should stay rather small. In doing the snapshot, it is my understanding that tables get locked while the replication is going on. Do the tables stay locked until the entire replication is done or are they off loading after they are completed as the process continues?


Solution

  • There are many ways to sync a SQL Server with another. There is replication which you are currently using, log shipping, backup/restore, mirroring, and Always On to name a few methods.

    The "best" method depends on your requirements. If you're concerned about disaster recovery, snapshot replication is not a great option and I would look into AlwaysOn Availability Groups.

    If load on your production system is a concern I would look into nightly restoring a backup of the production system.

    To answer your specific questions:
    1) Is this the correct way of doing such a thing? Is there a better way?
    This answer depends on your exact requirements

    2) Does this stress the server or the SQL Server?
    Doing something is always more work than doing nothing. Depending on many factors this could affect your production server.

    3) Replication only occurs on the non GP database - this shouldn't affect the GP database at all right?
    Your server only has a finite amount of hardware resources. It could affect the performance of queries against the GP database