oracle rac 实现本地数据库与服务器数据库的选择性数据同步问题

时间:2022-09-13 21:18:03
我在做一个收银的项目,因为是连锁店,收银和货品数据都要在服务器处理,但是考虑到断网的可能,所以想在本地数据库做个数据备份,保证在断网的时候也能继续收银.
服务器和本地的表结构是一样的,服务器的货品比如有两件,分别给了两家店,本地的数据库只取给自己家店的,然后每天固定时间或者数据有更新的时候,对数据同步.但是在断网的时候,数据可能在服务器和本地都有更新(更新的字段不同).
业务大致就这样的,在网上看到有人说 oracle rac 能实现数据同步,但是没接触过rac,不知道我现在的业务能实现吗,或者用其他的方法实现,请大神们指点下

8 个解决方案

#1


每个店的系统是否是独立的?   另外 有一套系统送到总部?  为何不另外拿一个程序去执行同步,这样,就不会影响各自的业务了。 
rac应该没有办法支持这样的。 

#2


RAC是同一个数据库两个实例,既然是同一个数据库,就无所谓同步
你这里要做选择性的同步,那么就只能做逻辑同步。方式有goldengate, oracle streams 等,前者要单独安装和收费

#3


oracle rac 能实现数据同步--RAC是同一个数据库两个实例,不是同步的概念。
你这个需求用rac的话肯定是不合理的。建议考虑goldengate等专业同步工具。

#4


1、这个同步的逻辑在应用程序中实现就可以了,实现起来应该也不是很复杂
再借助其他的工具进行同步就显得很乱,也没啥必要
2、也可以考虑在数据库中通过建立数据库链和定时任务的方式进行同步

#5


引用 1 楼 huangdh12 的回复:
每个店的系统是否是独立的?   另外 有一套系统送到总部?  为何不另外拿一个程序去执行同步,这样,就不会影响各自的业务了。 
rac应该没有办法支持这样的。 

系统是同一套,主要是考虑到断网的时候收银能查到数据库中的货品等数据,自己在程序里做同步的时候要去匹配两个库的数据,感觉自己做的话性能不是很好,就想想数据库是不是有自己匹配功能

#6


引用 4 楼 bw555 的回复:
1、这个同步的逻辑在应用程序中实现就可以了,实现起来应该也不是很复杂
再借助其他的工具进行同步就显得很乱,也没啥必要
2、也可以考虑在数据库中通过建立数据库链和定时任务的方式进行同步

因为数据量比较大,两个数据库互相匹配怕影响性能,所以就想找找数据库是不是自己有这个功能

#7


引用 2 楼 wildwave 的回复:
RAC是同一个数据库两个实例,既然是同一个数据库,就无所谓同步
你这里要做选择性的同步,那么就只能做逻辑同步。方式有goldengate, oracle streams 等,前者要单独安装和收费

多谢了,我看下oracle streams 

#8


引用 7 楼 hanxiao1224 的回复:
Quote: 引用 2 楼 wildwave 的回复:

RAC是同一个数据库两个实例,既然是同一个数据库,就无所谓同步
你这里要做选择性的同步,那么就只能做逻辑同步。方式有goldengate, oracle streams 等,前者要单独安装和收费

多谢了,我看下oracle streams 

用oracle stream 也会有问题的。 除非你只是追加部分记录。 如果有设计修改之类或者说数量统计之类的,估计就可能出现统计错误了

#1


每个店的系统是否是独立的?   另外 有一套系统送到总部?  为何不另外拿一个程序去执行同步,这样,就不会影响各自的业务了。 
rac应该没有办法支持这样的。 

#2


RAC是同一个数据库两个实例,既然是同一个数据库,就无所谓同步
你这里要做选择性的同步,那么就只能做逻辑同步。方式有goldengate, oracle streams 等,前者要单独安装和收费

#3


oracle rac 能实现数据同步--RAC是同一个数据库两个实例,不是同步的概念。
你这个需求用rac的话肯定是不合理的。建议考虑goldengate等专业同步工具。

#4


1、这个同步的逻辑在应用程序中实现就可以了,实现起来应该也不是很复杂
再借助其他的工具进行同步就显得很乱,也没啥必要
2、也可以考虑在数据库中通过建立数据库链和定时任务的方式进行同步

#5


引用 1 楼 huangdh12 的回复:
每个店的系统是否是独立的?   另外 有一套系统送到总部?  为何不另外拿一个程序去执行同步,这样,就不会影响各自的业务了。 
rac应该没有办法支持这样的。 

系统是同一套,主要是考虑到断网的时候收银能查到数据库中的货品等数据,自己在程序里做同步的时候要去匹配两个库的数据,感觉自己做的话性能不是很好,就想想数据库是不是有自己匹配功能

#6


引用 4 楼 bw555 的回复:
1、这个同步的逻辑在应用程序中实现就可以了,实现起来应该也不是很复杂
再借助其他的工具进行同步就显得很乱,也没啥必要
2、也可以考虑在数据库中通过建立数据库链和定时任务的方式进行同步

因为数据量比较大,两个数据库互相匹配怕影响性能,所以就想找找数据库是不是自己有这个功能

#7


引用 2 楼 wildwave 的回复:
RAC是同一个数据库两个实例,既然是同一个数据库,就无所谓同步
你这里要做选择性的同步,那么就只能做逻辑同步。方式有goldengate, oracle streams 等,前者要单独安装和收费

多谢了,我看下oracle streams 

#8


引用 7 楼 hanxiao1224 的回复:
Quote: 引用 2 楼 wildwave 的回复:

RAC是同一个数据库两个实例,既然是同一个数据库,就无所谓同步
你这里要做选择性的同步,那么就只能做逻辑同步。方式有goldengate, oracle streams 等,前者要单独安装和收费

多谢了,我看下oracle streams 

用oracle stream 也会有问题的。 除非你只是追加部分记录。 如果有设计修改之类或者说数量统计之类的,估计就可能出现统计错误了