A community project sponsored by JumpMind Facebook Twitter Feed

About SymmetricDS

SymmetricDS is open source software for database replication, with support for one-way replication, multi-master replication, filtered synchronization, and transformations. Using web and database technologies, it can replicate data asynchronously as a scheduled or near real-time operation. Designed to scale to a large number of databases and operate between different platforms, it works across low-bandwidth connections and can withstand periods of network outage.

What are some examples of using database replication?

  • Remote offices replicated to a central office
  • Cross platform database replication between different databases
  • Replication between on-premise databases and cloud databases
  • Consolidation of multiple databases into a data warehouse
  • Regional database replication to improve access times for local users
  • High availability of a database using a primary and secondary instance

Which operating systems are supported?

SymmetricDS is compatible with most operating systems since it is based on Java. It can run on Windows, Linux, Unix, Mac OS X and other operating systems. For mobile applications using SQLite, the Java client libraries work on Android, and a minimal C library works with iOS applications.

Which databases are supported?

SymmetricDS supports many databases and can replicate across different databases, including Oracle, MySQL, MariaDB, PostgreSQL, MS SQL Server (including Azure), IBM DB2 (UDB, iSeries, and zSeries), H2, HSQLDB, Derby, Firebird, Interbase, Informix, Greenplum, SQLite, Sybase ASE, Sybase ASA (SQL Anywhere), Amazon Redshift, MongoDB, and VoltDB databases. Support for databases is provided through a thin dialect layer, which was designed to make it easy to add support for new databases.

I'm a developer. What are some advanced ways I can use SymmetricDS?

SymmetricDS has published APIs that allow for extension, embedding into applications, and remote management. The extension API allows a developer to write custom code that is used by the server at runtime. Extensions can change how different subsystems behave, including registration, routing, data loading, transformation, and acknowledgements. The embedding API allows a developer to include SymmetricDS in an application so it can control when replication happens and give feedback to the user. Embedding is the only way to sync SQLite on Android and iOS due to their sandbox environments. The remote management API is available through REST, JMX, and command line tools. Remote management lets you perform operational tasks like registering new databases, sending data loads, and querying the system status.