我有一个奇怪的场景,我似乎无法找到使其工作的最佳方式。MySQL自定义复制
我有一个库存应用程序存储在Linode服务器上。这个程序处理不同的公司。每家公司都有自己的数据库。
所有公司都有多个商店位于不同的位置。 所有商店都需要使用相同的应用程序,同时数据必须同步。
我需要复制数据,但所有商店/应用程序都需要能够同时写入/读取和复制。问题是,他们中的大多数几个小时都没有互联网连接。他们完全脱离了世界(只是局域网)。
传统的MySQL复制不会起作用,因为它需要互联网连接才能保持运行。
我该怎么做?
有我自己的软件解决方案,在更高层次上复制数据是一个好主意吗?如果是的话,我应该遵循哪些最佳做法?
我也不能使用mysql auto_increment步骤和偏移ID生成,因为一些客户不断打开越来越多的商店。我是否需要为每个实体生成自己的GUID,以确保ID不会通过在商店唯一标识(STOREID-UNIQUEID)前添加前缀来冲突?
你如何处理重复的ID,并发重写,冲突,int溢出?它可能会弄乱你的数据库,并且你最终会得到脏数据。 –
您通过不生成重复项(例如GUID)来处理重复的ID。我不知道并发覆盖是什么意思,我假设你的客户是独立工作的。 Int溢出可以通过更大的整数(或字符串/二进制)来处理。 – Vatev
如果您为每个客户有1000个商店,那么您将有巨大的差距。并发覆盖意味着2家商店试图更新相同的数据。两家商店都没有连接到互联网并进行不同的更改时,就会出现问题。你要怎么处理真正的变化? –