I need to have 2 or 3 synchronized sql database instances at different locations. Which of FREE databases can do that?
mysql can do it and also postgresql
I only have experience with mysql, for more info, just look into the documentation:
It can help you set up the base cluster and replication.
you can do that with mysql
check these links:
http://dev.mysql.com/tech-resources/articles/syncman/index.html
http://www.sitepoint.com/article/mysql-data-sqlyog-job-agent/
PostgreSQL is excellent, it would be my top candidate. There are a number of replication options that you can choose for it. One well-known and mature tool is slony (Slony-I), but it may not be the very best for remote locations. However, there are other add-ons that might be better.
Replication can mean many different things ... it might be best to decide in more detail what your needs are. Are you just looking for local copies to avoid the network delays when querying? Is it important that they be up-to-date fast, or can there be a moderate lag? Do you want high-availability, performance, failover to other locations if one fails, clustering ...? All of these might affect your decision, or not. Note that with some replication solutions (e.g., Sequoia), you can use it with your choice of several database back-ends.
We use master master circle replication for 2 servers in different locations using MySQL 5.1 and row based replication. It's pretty easy to setup but the biggest thing is making sure you don't have conflicts :)
You will also want to look into the types of replication (The two that MySQL uses are statement based and row-based replication. row-based is only available in MySQL 5.1). There are a heap of differences between row and statement based which can be seen here http://www.linuxtopia.org/online_books/database_guides/mysql_5.1_database_reference_guide/replication-sbr-rbr.html. But generally row based is considered the safest.