简体   繁体   中英

Database synchronization

Recently my clients have asked me if they can use they're application remotely, disconnected from the local network and the company server.

One solution is to place the database in the cloud, but a connection to the database, and the cloud and an internet connection must be always available. There not always the case.

So my question is - Is there any database sync system, or a synchronization library so that I can work disconnected with local database and when I connect synchronize the changes I have made and receive changes others have made?

Update:

The application is under Windows (7/xp) ( for now )

It's in Delphi 2007 win32

All client need to have Read/Write access

All Clients have internet connection, but not always ON

Security is not critical, but the Sync service should encrypt the communication

When in the presence of the companies network the system should sync and use the Server Database and not the local one.

You have a host of issues with thinking about such a solution. First, there are lots of possible solutions, such as:

  • Using database replication within a database, to mimic every update (like a "hot" backup)
  • Building an application to copy the database periodically (every night)
  • Using a third-party tool (which is what you are asking, I think)

With replication services, the connection does not have to always be up. Changes to the database are logged when the connection is not available and then applied when they can be sent.

However, there are lots of other issues when you leave a corporate network. What about security of the data and access rights? Do you have other options, such as making it easier to access the database from within the network? Do the users need only read-access to the database or read-write access? Would both versions need to be accessed at the same time. Would there be updates to both at the same time?

You may have other options that are more secure than just moving a database to the cloud.

I believe RemObjects DataAbstract allows offline mode and synchronization by using what they call Briefcases . All your other requirements (security, encrypted connections, etc.) are also covered.

This is not a drop-in replacement, thought, and may need extensive rewrite/refactoring of your application. There are lots of upsides, thought; business rules can/should be enforced on the server (real security), scriptable business rules, multiplatform architecture, etc.

There are some products available in the Java world (SymmetricDS lgpl license) - apart from actually being a working system it is documents how it achieved synchronization. Connects to any db with jdbc support. . There is a pro version but the user guide (downloadable pdf) gives you the db schema plus rules on push pull syncing. Useful if you want to build your own.

Btw there is a data replication so tag that would help.

One possibility that is free is the Microsoft Sync Framework: http://msdn.microsoft.com/en-us/sync/bb736753.aspx

It may be possible for you to use it, but you would need to provid some more detail about your application and operating environment to be sure.

IS it possible to share a database like .mdb and work fine? i try but sometimes the file where the databse is changes from DB to DB1 i use delphi Xe4 and Google Drive . Thank´s

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM