找回密码
 立即注册

QQ登录

只需一步,快速开始

einsnian

中级会员

25

主题

78

帖子

507

积分

中级会员

积分
507
einsnian
中级会员   /  发表于:2020-11-20 08:53  /   查看:2319  /  回复:8
10金币
本帖最后由 einsnian 于 2020-11-20 11:09 编辑

场景是这样的,我有A,B,C三个服务器,把B,C链接到了A上,做了个统计BC数据的视图,问题来了,B,C服务器所处环境恶劣,停电、宕机时有发生。
我新建了个表用来同步视图上的数据,需求是通过定时+服务器端命令 判断 如果表中和视图中的数据是相同的就不同步,如果表中缺少数据,就一次性的把缺少的数据同步过来。

最佳答案

查看完整内容

如果你只是查看数据的话,那你直接使用活字格的这个机智功能就行,次功能就是专门同步别的数据的 外联数据库副本; https://help.grapecity.com.cn/pages/viewpage.action?pageId=53349397 上述功能的劣势是:你同步进来以后,不能增删改数据;不过就您的需求看起来并不需要担心 如果您确实希望,使用活字格的定时+服务器端命令的话,我们建议您 1.创建一个私有的服务端命令,用于同步数据 >注:此步骤中关键的点在于增量 ...

8 个回复

倒序浏览
最佳答案
最佳答案
Simon.hu讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2020-11-20 08:53:36
来自 5#
如果你只是查看数据的话,那你直接使用活字格的这个机智功能就行,次功能就是专门同步别的数据的
外联数据库副本;
https://help.grapecity.com.cn/pa ... ion?pageId=53349397
上述功能的劣势是:你同步进来以后,不能增删改数据;不过就您的需求看起来并不需要担心

如果您确实希望,使用活字格的定时+服务器端命令的话,我们建议您
1.创建一个私有的服务端命令,用于同步数据
>注:此步骤中关键的点在于增量同步(已经存在的数据不同步),所以我们需要循环B,C的数据表中的数据,将所有的内容的都保存到A中,但是我们要将BC中的ID在A中保存,以后每次新加的时候,都看看目前希望从BC中加的数据,A中是不是已经有了
2.创建一个定时任务,调用上面的私有服务端命令
不过我觉得这样的做法不是长久之计,主要是这样你的数据库就保存了很多份

感觉正解是,你应该如何将您的数据库环境变的稳定一些,不关是放到一个牛逼的机器还是咋,反正保证数据库稳定才是终极解决方案
回复 使用道具 举报
Eric.Liang讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2020-11-20 10:15:18
2#
1.为什么不搞个单独的数据库服务器,使用外联数据库,所有应用都访问这个外联数据库;既方便管理,也保证数据的一致性
2.按你的说法也可以,不过代价要很大
1)首先你需要在A上创建服务端命令(做一个webService接口,用于接收其他系统抛给你的数据),接到之后在服务端命令中去循环校验数据是否存在,存在即更新,不存在即添加
2)在B,C服务器上设置定时任务去调用A服务器的接口地址,定时将数据库的数据推送给A服务器去做解析~
回复 使用道具 举报
COLD悬赏达人认证
高级会员   /  发表于:2020-11-20 10:19:02
3#
没你说的那么复杂,这是数据库集群概念,自动同步与容灾,数据冗余。但是最简单的方法就是楼上所说的,共用一个数据服务器,应用全部外联,但是这还要看使用什么软件,有些软件你想外联都不行。
回复 使用道具 举报
Eric.Liang讲师达人认证 悬赏达人认证 活字格认证
超级版主   /  发表于:2020-11-20 10:26:03
4#
COLD 发表于 2020-11-20 10:19
没你说的那么复杂,这是数据库集群概念,自动同步与容灾,数据冗余。但是最简单的方法就是楼上所说的,共用 ...

老板我们想法很一致呀
回复 使用道具 举报
einsnian
中级会员   /  发表于:2020-11-20 10:57:40
6#
本帖最后由 einsnian 于 2020-11-20 11:08 编辑
Eric.Liang 发表于 2020-11-20 10:15
1.为什么不搞个单独的数据库服务器,使用外联数据库,所有应用都访问这个外联数据库;既方便管理,也保证数 ...

BC是独立的系统,这真没办法把数据库放一起。我做了个简单的例子
我想要定时从“视图检测数据”里把“同步后检测数据”没有的数据更新进去





###########################################

刚看到胡大的回复了,貌似可以解决问题,给个赞

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
Lucas.Su讲师达人认证 悬赏达人认证 活字格认证
葡萄城公司职员   /  发表于:2020-11-20 14:35:54
7#
您好,接楼上Simon.hu的跟帖,需要和您明确几点:
1.您的视图检测数据表可以添加一个标记字段吗?
该字段记录是否进行过同步,
打个比方,如果同步过就记录为1,未同步就记录为0,
这样就可以对数据是否同步过做个区分,
能提升增量同步的效率,关键是看您能否给待同步的表添加标记字段;

2、举个例子,B库中的数据需要同步到A库中,如果B库中数据已经同步到了A库中,
那么可以删除B库中已同步过的数据吗?
如果可以,那么后期增量同步会减少很多的判断成本

3、您数据同步的频率如何
回复 使用道具 举报
einsnian
中级会员   /  发表于:2020-11-20 20:53:14
8#
Lucas.Su 发表于 2020-11-20 14:35
您好,接楼上Simon.hu的跟帖,需要和您明确几点:
1.您的视图检测数据表可以添加一个标记字段吗?
该字段 ...

这个……我会了
回复 使用道具 举报
Timothy.Xu讲师达人认证 悬赏达人认证 活字格认证
论坛元老   /  发表于:2020-11-23 09:09:05
9#
感谢各位的支持~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部