Any SymmetricDS replacement framework? - symmetricds

We were using symmetric DS for database replication, but we are checking if there's any other tool or framework which can do the same thing. We want application level database replication, not db level, because db level need do a lot manual configurations.

Related

database tool with versioning and rollback features with tracking tables needs to be created on a specific database

I'm trying to implement Database versioning and Rollback features to my springboot project and I have explored some of the database versioning tools like Flyway, Liquibase, DB Geni and almost all the tools are creating the tracking tables in the database itself. For example If I'm connecting to Database1 which is integrated with flyway and tracking tables are getting created in the Database1 itself but I need a tool which Performs script execution on Database1 but tracking tables needs to be created in Database2.
Can you please help me with any of the tools which will do like this?
Thanks in advance.

JPA eclipselink cache and DB replication

we currently have a java based application which uses JPA via eclipselink against a single MS sql server, this is running on a system in the internal network.
This works fine.
Now we need to add a second instance of the sql database in a DMZ with it's own application and JPA eclipselink. (External access to a subset of the application)
Both applications should see the same data, which means I will have to do some replication between the two.
MS SQL has a merge replication system for this which would cover our needs.
But here I struggle with the JPA cache.
When the data is changed directly by the db replication, how/when do I invalidate the local jpa cache?
Or is there a java/jpa/jdbc based replication available for such setups?
Any other ideas on how to handle such a situation?
EMF L2 cache is cleared using
emf.getCache().evictAll()

Remote DataBase Links

My team and I are developing a program for a bank and need to synchronize data with an existing system that is deployed on the internal network of the bank's clients. Any update made to the data in our system should be replicated to their system and vice-versa. The database used by our system is Oracle 11g and the existing system used Oracle 10g. We had initially considered using web services for this but the developers of the existing system don't want to build the web services. So we are left with the option of using database links to synchronize data.
What are the pros and cons of using database links to replicate data?
Since it's a banking application handling monetary transactions, how do we encrypt the data sent across the networks?
You wouldn't use database links to replicate data-- at least not alone. You would want to configure either Oracle Streams, Oracle GoldenGate, or Advanced Replication to handle your bidirectional replication. Streams would be the preferred choice since you're dealing with Oracle to Oracle replication since it's a newer and more efficient architecture than Advanced Replication. Both options are included with the enterprise edition license. GoldenGate is a product that Oracle purchased relatively recently that would be more appropriate if you were trying to replicate data from Oracle to non-Oracle databases and requires additional licensing.
If you want to encrypt the data in transit between the two databases, you would need to license the Oracle Advanced Security option on both databases. That is an extra cost option on top of the enterprise edition license. The alternative would be to configure a VPN or secure port forwarding between the servers.

What can I do to encrypt data at database level in an MVC3/EF application?

I have an MVC3 + EF 4.1 application, against a SQL Server 2008 database, with a requirement that the 'entire table is encrypted' for sensitive data. What are my options for implementing this?
NOTE: I am using the Repository Pattern, with DI swappable concrete repositories, so EF data access is not an absolute requirement here.
You might want to consider using Transparent Data Encryption. This encrypts the entire database and it much easier to use than cell level encryption.
MS SQL does not provide a table based encryption.
See http://msdn.microsoft.com/en-us/library/bb934049.aspx for more detail.

DataBase support in NHibernate vs Entity Framework 4.1

I am investigating for different ORMs to use in a new Web Application I have to develop.
I hesitate between NHibernate and EntityFramework 4.1.
I know that NHibernate does support different databases (like SQL Server, MySQL, Oracle, and so on.) isn't it?
What about Entity Framework? I cannot find which databases it supports (I suppose it is database agnostic but I am not very sure). For example, I was not able to make it run with MySQL (with MySQL Connector 6.4.3).
The answer I want is only regarding on the support of differents databases. There are some information in stackoverflow about "NHibernate vs Entity Framework".
Entity Framework query is translated into final form (sent to DB) by three "layers":
1. Object Services
2. EntityClient Data Provider
3. ADO .NET Data Provider.
The Object Services layer is a component of the Entity Framework that enables you to
query, insert, update, and delete data, using common language runtime (CLR) objects that
are instances of entity types.
The Entity Framework includes the EntityClient data provider, which manages connections, translates entity queries into data source-specific queries, and returns a data reader the Entity
Framework uses to materialize entity data into objects.
Traditional ADO.NET is still used to communicate to the underlying database.
What does it mean? It means Entity Framework was designed to be database independed. You can use it with every database if database provider has created provider for ADO .NET (which exists for MySQL, Oracle etc.).
For MySQL you should be able to use EF with connector that you've mentioned (more info: http://dev.mysql.com/doc/refman/4.1/en/connector-net-visual-studio-entity-framework.html)
Out of the box NHibernate supports following:
Microsoft SQL Server (including Compact Edition)
Oracle
Microsoft Access
Firebird
PostgreSQL
DB2 UDB
MySQL
SQLite
Corresponding ADO.NET provider needs to be installed. In addition to ADO.NET provider, NHibernate needs its own 'driver' and 'dialect' if you want to extend it to support the database that is not on the list.

Resources