服务器和客户端 数据库同步思路

客户端: (放弃)

ID Name    SyncStatus     LastUpdateTime  syncError

1  xxxx  0(已同步)    2014-10-13        null

2  xxxx      1(本地新增)   ..        null

3  xxxx  2(本地修改)   ..        1

4  xxxx  3(本地删除)   ..        null

5  xxxx      4(同步出错)        ..        null

服务端 (启用)

ID Name   LastUpdateTime

1  xxxx  2014-10-13 13:50:44

2  xxxx     ..

3  xxxx   ..

4  xxxx   ..

服务器同步操作:

每次进入, 就把LastUpdateTime > 本地记录最大的LastUpdateTime

LastUpdateTime小于等于当前时间 的所有记录, 下载下来进行 新增/ 修改

把本地同步到服务器上:

获取SyncStatus不为0的记录数组, 发送到服务器

服务器处理:

SyncStatus = 1 : 检查服务器是否有记录, 无: 新增 ,

有:

  如果syncError不为1: false

如果syncError为1: 修改

SyncStatus = 2 : 检查服务器是否有记录 有:修改:

无: 

  如果syncError不为1: false

如果syncError为1: 修改

SyncStatus = 3: 检查服务器是否有记录 有:删除 无:true

服务器返回处理数组:

[

{  ID: "111", syncError:"0(已同步), 1: (同步出错)" msg:"错误报告"  },

{  ID: "112", syncError:"0(已同步), 1: (同步出错)" msg:"错误报告"  }

]

客户端收到处理报告:

修改 ID 下 并且syncError=0 的 记录 下字段SyncStatus 为 0

时间: 2024-11-13 06:31:29

服务器和客户端 数据库同步思路的相关文章

不同服务器的mysql数据库同步

目标: A服务器上自建的数据库同步到B服务器上自建的数据库. 阿里云的RDS数据库A同步到B服务器上自建的数据库. A的数据库名为:mytest 基础:linux,会配置my.cnf 开始: 下面称前者A为主服务器,后者B为从服务器. 先在A服务器查看:sql语句:show master status; 得到File,Position 的值. 'mysql-bin.000039', '1538',  (这个后面要用到) 在B服务器,修改:/etc/my.cnf. 修改前,先停止mysql. 增加

服务器和客户端同步状态,客户端不能依赖服务器的响应

有一类系统,基本上所有操作都要求在线.在客户端产生的数据,直接提交到服务器,本地不存数据,或者仅保存少量缓存数据.这类应用有一个优势,就是客户端和服务器的数据始终是同步的,罕有两端不一致的情况.但是也有缺点,即对网络条件要求高,在网络条件不好的时候,用户操作需要等待,甚至无法正常使用 我们的一个APP,与上述系统不同,是支持离线操作的.数据在本地和服务器各有一份,然后通过同步机制来保持一致.这样做的缺点是提升了系统的复杂性,因为如果设计有缺陷,就很容易发生两端数据不一致的情况:另外就是如果客户端

sqlserver2014两台不同服务器上数据库同步

同步了快一个月了,哈哈,因为途中比较麻烦,第一次,遇到烦的地方就停下了,今天终于同步成功了,哈哈,下面我就来介绍一下我实现两台数据库同步的过程. 首先配置需要注意些东西: 1.打开sqlserver配置管理器,启动sqlserver代理,设置属性中,启动模式为自动启动(两台服务器都需要配置),具体如图: 2.在sqlserver中新建查询,输入sql语句 select @@SERVERNAME,查询到本服务器的别名,(因为一台电脑上的sqlserver连接其他电脑的sqlserver在数据库同步

手机端与服务器数据库同步方案

服务器端: 1, 创建数据表 2, 操作数据库的日志. 定义三个字段(id,操作时间,操作内容,分发到所属手机端的用户id) Id: js uuid值 操作时间:2014/8/21 11:32:10 操作内容:以json格式存放select,delete,update之类的 分发到所属手机端的用户id:手机端并不是每个手机用户都需要,选择性的更新数据. 手机端: 建空库,直接取服务器端的操作数据库的日志运行操作.然后取服务器端的操作日志,过滤时间进行操作. 手机端与服务器数据库同步方案

mysql同一台服务器上不同数据库中个别表内容同步

>>>>>>soft_wsx>>>>>>--数据备份与还原>>同步备用服务器--1.完全备份主数据库--2.使用带SANDBY子句的RESTORE DATABASE语句从主数据库的完全备份中还原生成备用数据库--3.创建作业,使用BACKUP LOG定时对主数据库时行日志备份--4.创建作业,使用带STANDBY子句的RESTORE LOG语句定时从主数据库的日志备份中恢复数据到备用数据库--5.主数据库不可用时,使用带R

Linux两台服务器mysql数据库同步

我们在做web系统部署的时候往往涉及到两台甚至多台数据库的备份,为了数据安全考虑(虽然说到底不过是一堆0 1,但是价值千金啊),所以我们还是乖乖做同步把! 1.准备两台Linux服务器(主.从) 2.安装好Mysql 3.在配置文件/etc/my.cnf(MySQL中为mysql.ini)修改开启二进制日志 log-bin=mysql-bin 修改方法:打开配置文件后在 [mysqld]中添加内容: server-id = 1 #确保在整个MySQL集群中唯一 log-bin=/var/log/

CentOS7搭建NTP服务器及客户端同步时间

一.服务器配置 1.查看服务器.客户端操作系统版本 [[email protected] ~]# cat /etc/redhat-release CentOS Linux release 7.6.1810 (Core) 2.查看服务器是否安装ntp,系统默认安装ntpdate: [[email protected] ~]# rpm -qa | grep ntp fontpackages-filesystem-1.44-8.el7.noarch ntpdate-4.2.6p5-28.el7.cen

通过SQL Server 2008数据库复制实现数据库同步备份

SQL Server 2008数据库复制是通过发布/订阅的机制进行多台服务器之间的数据同步,我们把它用于数据库的同步备份.这里的同步备份指的是备份服务器与主服务器进行 实时数据同步,正常情况下只使用主数据库服务器,备份服务器只在主服务器出现故障时投入使用.它是一种优于文件备份的数据库备份解决方案. 在选择数据库同步备份解决方案时,我们评估了两种方式:SQL Server 2008的数据库镜像和SQL Server 2008数据库复制.数据库镜像的优点是系统能自动发现主服务器故障,并且自动切换至镜

web服务器集群session同步

在做了web集群后,你肯定会首先考虑session同步问题,因为通过负载均衡后,同一个IP访问同一个页面会被分配到不同的服务器上,如果session不同步的话,一个登录用户,一会是登录状态,一会又不是登录状态.所以本文就根据这种情况给出三种不同的方法来解决这个问题: 一.利用数据库同步session 在做多服务器session同步时我没有用这种方法,如果非要用这种方法的话,我想过二种方法: 1,用一个低端电脑建个数据库专门存放web服务器的session,或者,把这个专门的数据库建在文件服务器上