Mysql – How to Set Up Sync of two thesql databases without master slave

MySQLreplication

The purpose is to create the live database replication for staging server but with masking of personal identifiable information like email, mobile, passwords etc.

This has to be done once daily, not real time like master slave. Also, when the new rows inserted, they all should be masked like previous ones before insertion.

One way i found is using the binary logs of the mysql, but they can be inserted first, and then masked, which is not required.

Any other suggestion?

Database size is more than 40gb

Best Answer

You can use any of the available ETL Tools:

Initial size not important, the most important is the daily number of changes.

You will need to add a timestamp for INSERT/UPDATE or a bit column and triggers to mark the new sync status.

My clients sync millions-row databases (DB2/MySQL/Web) by cron jobs.

An other solution may be SymmetricDS (read the article about transformation of data using it: http://www.symmetricds.org/doc/3.0/html-single/user-guide.html#transform-data).