我有两个MySQL数据库。一个是在本地PC&另一个是在线服务器。现在我必须将本地数据库与在线数据库同步。我用curl来做这件事。有没有更好的方法来做到这一点,而不会丢失从本地数据库到在线数据库的任何数据?是否有任何建议使用任何工具或库来完成同步过程?
在我的本地数据库中,我使用触发器来跟踪每个插入&更新每个表。我们不会删除任何东西。同步表用于保留触发历史记录。这是我的'同步'表的屏幕截图。
同步表说明:
基于此同步表,我从本地数据库中获取所有未同步的数据。使用curl将这些数据的发布请求提交到在线数据库以插入&更新在线数据库。如果此过程成功,则同步表的状态列的行将同步,否则将保持默认值不同。
这个过程对于同步过程是否足够好?如何确保成功传输所有数据&大数据的数据完整性?这个过程可能会出现什么问题?
答案 0 :(得分:0)
为了与托管服务器交换信息,我更喜欢使用TXT或XML等中间文件。
我假设你的请求不需要实时解决(syncro),它可以支持在几分钟内解决(asyncro)。
一个想法。
比解释起来更难解释。
为了进行查询,您可以使用: http://www.phpclasses.org/package/1803-PHP-Synchronize-MySQL-database-copies.html
您必须创建一个cron,每5分钟或您想要的时间运行此查询。
关注新内容也非常重要:一个明确定义的触发器,显示哪些内容是新内容是在此过程中成功的基准。
我希望它适合你。
答案 1 :(得分:0)
如果您使用的是PHP,那么这里是一个简单的解决方案。
include "sync.php";
$sync = new SyncronizeDB();
//serverSet(dbserver,user,password,db,table,index)
$sync->masterSet("localhost", "root", "", "localdatabase","localtable", "localtable.pk");
$sync->slaveSet("onlinehostip", "username", "pass", "remotedbname", "remotetable", "remotetable.pk");
$sync->slaveSyncronization();
您可以从PHP CLASSES
下载sync.php文件。