我要说的两个数据库指ORACLE和MYSQL间的数据同步。
应用场景如下:
一个公司下有很多地市都有业务,每个地市有很多销售店面,公司内部有一套自己的系统,使用ORACLE,公司和地市都是用这个ORACLE系统,而每个店面也有一套自己的销售系统,每个门店都使用各自的MYSQL数据库,因此产生了ORACLE和MYSQL间的数据同步问题。公司负责生产资料维护,店面组织管理,人员管理,物流配货,采购,财务统计,库存管理等,而店面主要是销售和自己的库存管理,店面需要从ORACLE获取最新基本资料,同时上传最新销售信息,本店库存变化和调货申请等。
基本资料只能由公司和地市录入,各个店面只需下载自己店面的资料或者店面所在地市的资料即可;
销售资料,有时店面会将票价直接给公司或地市,由公司或地市录入,这种情况主要是些特殊情况,因此销售数据会在两端都被修改;以店面的为准;
库存资料,每个门店用一个自己的仓库,地市由多个仓库,地市和门店间通过物流配货,调货等流程形成出入库,一般都是门店自己管理,然后上传店面库存,特殊情况下地市也会帮门店申请调货,配货等,因此库存也在两端都会修改,也是以店面为准。
有个别资料是两端都修改的,但是以公司的为准;
上面的“以XX为准”也就是如果有数据冲突就以XX的数据覆盖另外一方的数据。
数据同步在互联网环境下进行。
由于互联网环境下运行,因此不考虑用RMI,对web service的效率不满意,直接使用SOCKET开发的工作量比较大,因此也不考虑用web service,我们选定用hessian+tomcat,以HTTP协议通信,当然也可以以HTTPS协议通信。
由于业务还在不断变化,因此考虑整个同步过程不以业务为单位,而是以表为单位,极个别的需要以业务为单位的额外处理,因此我们将表间的数据都采用MAP存储。
分享到:
相关推荐
- 使用system身份登录两个数据库,创建并管理名为repadmin的用户,赋予必要的权限。 - 创建私有的数据库链接并测试。 4. **创建并配置reporacle用户**: - 使用sys身份登录两个数据库,创建reporacle用户并授予...
其次,系统开发的目标主要包括资源共享和科学管理两个方面。资源共享是分布式数据库建设的核心特征,尤其是在档案数据库信息系统的场景下。系统设计时,应考虑如何打破信息孤岛,通过统一、开放和兼容的设计,使得...
在备份结束时,Oracle会更新数据文件头和控制文件中的SCN号,使其与数据库的当前SCN同步。 4. **逻辑备份** 逻辑备份通常是指通过导出(EXP)和导入(IMP)工具来备份和恢复数据库对象,如表、视图、存储过程等。...
数据库镜像的基本原理是,通过在两台SQL Server实例之间实时地复制数据变更,确保两个服务器上的数据库保持同步状态。当主服务器(镜像)不可用时,备用服务器(镜像)可以立即接管,成为主服务器。 在无域控环境中...
"浅谈分布式事务实现技术及应用场景探讨" 分布式事务是指在分布式系统中,多个节点之间的数据访问和更新操作集合,需要保证事务的原子性、一致性、隔离性和持久性。随着软件系统支持用户数的不断提高,对其架构的...
在Oracle RAC中,多个数据库实例(节点)共享同一物理数据库,从而实现对数据库的并发访问和负载均衡。 在Oracle RAC中,节点间的时间同步至关重要,以确保数据一致性。这通常通过NTP(网络时间协议)来实现,让...
分布式锁是解决分布式系统中多个进程间共享资源互斥访问的一种方法,它保证了即使在分布式环境下,也能维持数据的一致性。随着互联网公司业务的不断扩展和技术的进步,分布式系统的数据量和业务复杂性大幅增加,...
- **数据共享**:通过触发器,可以在不同系统之间实现数据同步,例如在两个数据库之间设置触发器,当一方数据更新时,另一方的数据也会实时更新,避免数据延迟和冗余输入。 4. **复杂数据完整性** 触发器能实现更...
浅谈JAVA语言的多线程技术 一、多线程技术的概述 JAVA语言作为一种面向对象的编程语言,它具有平台独立性、安全性、网络化、多线程、面向对象等特点。其线程机制在实践中广泛应用而受到编程者的极大关心。本文就...
在这个过程中,EAI(企业应用集成)中间件起到了重要作用,它能够实现不同系统间的信息集成和流程协同。 数据中心的服务器端采用了JBoss5.0企业版,以集群部署的方式确保了系统的高可用性和负载均衡。集群部署可以...
"浅谈对数据迁移及割接的研究报告.pdf" 本报告对数据迁移及割接的研究进行了深入探讨,旨在保障新系统的正常运行和大量历史数据的正常使用。数据迁移是指将原信息化管理系统中的大量有效的历史数据导入到新版应用...
- **定义**:当两个或更多线程因争夺资源而互相等待对方释放资源时,系统无法继续执行,形成死锁。 - **产生条件**:互斥条件、请求和保持条件、不剥夺条件(线程已获取的资源在未释放前无法被强制收回)、循环...
这种方法允许在两个表之间进行关联更新,将表2中的某个字段值复制到表1的相应字段上,常用于同步数据或合并信息。 总结来说,MySQL的子查询和高级应用为数据库管理和数据分析提供了强大的工具。熟练掌握这些技巧,...
【IBM WebSphere MQ】是IBM推出的一款强大的消息中间件,其在ASP.NET网络程序开发中扮演着关键角色,尤其在处理数据库驱动的Web应用程序时,能够有效地解决不同系统间的通信问题,消除信息孤岛,提高企业内部的协作...
它确保了在多个人协作的环境中,每个开发者的更改都能够被记录并管理,避免了冲突和数据丢失的问题。本文主要探讨的是Subversion(简称SVN),一个作为CVS替代品的开源版本控制系统。 为何需要版本控制?在协同开发...
这些技术能够采集关系型数据库、日志文本文件等不同类型的数据。数据的存储主要采用HDFS(Hadoop Distributed File System)分布式文件系统,可以有效地存储大量的历史数据。同时,数据的同步过程中采用了一些流行的...
这种方式存在几个问题:依赖单一数据库、无锁超时、非阻塞、非重入和非公平。为解决这些问题,可以采取如数据同步、定时清理、使用while循环尝试插入、添加主机和线程信息字段以及建立等待锁队列等策略。 另一种...
### 浅谈Python锁与死锁问题 #### 一、引言 锁是多线程编程中的重要概念,用于同步不同线程之间的访问,确保共享资源的安全性。Python中的锁机制能够有效地帮助开发者处理并发环境下的资源共享问题。本文将详细...
这一要求意味着系统需支持两种形式的档案并行运作,同时保证物理访问和存储的独立性,以满足“双套制”管理需求。 2. 系统功能要求: - 建档管理:系统应能建立教职工、博士后等各类人员的基础档案数据库,支持...
1. **模型定义**:首先,你需要为每个数据库表创建一个对应的模型。这通常涉及定义模型的属性(列)及其数据类型,例如`name: Sequelize.STRING`。 2. **关联关系设置**:然后,通过调用模型的方法,如`belongsTo`,...