㈠ 数据库同步软件和数据库复制的区别
数据库同步偏重于数据的同步,包括历史数据及实时数据变化同步。用于业务数据共享或集成需求,支持异构数据库同步(如sql Server同步到Oracle、Oracle同步到DB2)。
数据库同步软件如OGG、BeeDI。
数据库复制偏重于数据库整体结构内容复制,包括DDL及DML操作。一般用于灾备或读写分离环境,仅用于同构数据库。
数据库复制软件如DG、Beep。
㈡ 怎样利用Oracle golden gate 分发数据库同步消息至ActiveMQ
怎样利用Oracle golden gate 分发数据库同步消息至ActiveMQ
Oracle golden gate是甲骨文推出的一款数据库同步软件,可以实现异构数据库之间的亚秒级同步,它不仅仅支持Oracle,还支持Mysql和一些业界常用数据库。Ogg可以自动抽取表级数据的动态变化,直接将同步信息作用于目标数据库。
㈢ dop是什么
DOP技术
背景
从上世纪90年代末开始,IT界就开始重新审视大型、复杂信息系统的架构问题和信息化的技术策略问题。其主要的驱动力来自企业对信息共享、实时协同(Collaboration)、流程重构等需求的快速增长,跨企业甚至大规模区域协同信息化市场的形成,而传统信息系统的架构、设计和开发模式明显不能适应这些新型应用的规模和复杂性。ERP(Enterprise Resources Planning)在推动企业信息化发展的进程中扮演了重要的角色,但大型ERP项目的失败率高达40%,在一些业务逻辑复杂、具有大量遗存异构系统的应用领域很少有成功案例;英国医疗信息现代化项目严重超时、超预算,被称为IT史上的灾难等客观现实从一个侧面反映出传统信息技术和软件架构技术在复杂应用领域的局限性。
大量遗存(Legacy)信息系统的异构性(Heterogeneity)和由此引起的信息孤岛(Information Island)问题是造成这些新型应用项目复杂性高、风险大主要原因之一,也是企业、跨企业复杂应用领域的共性问题。其次,跨企业、跨区域等复杂应用领域业务流程复杂多变,信息共享、互联协同等需求导致业务逻辑复杂化、信息表达的复杂性大幅增高也是这类新型应用领域的普遍问题。传统的软件技术架构、各种通用的中间件和企业级软件开发平台、甚至包括近年来倍受关注的SOA(Service Oriented Architecture)、Web2.0等技术也未能对上述共性问题提供有效的技术解决路线。医疗健康行业信息化所面对的挑战、绝大多数解决方案成本高、风险大、需求满足度低、不能适应长远发展等问题反映了这一领域的现状。
DOP(Domain Operating Platform),也称为领域操作平台,就是在这样的背景下形成的。
DOP技术理念
[传统的垂直分割技术路线]
传统的垂直分割技术路线
按照传统系统软件和应用软件的定义,无论是信息孤岛问题,还是新型应用领域业务流程、业务逻辑、信息表达复杂性问题,都属于“应用软件” 范畴。而传统的应用软件架构基本上都遵循对问题域垂直分割的技术路线。如右图所示,应用系统基本上都是独立地架构于系统软件平台之上,应用系统通常都有独立的数据库、业务逻辑层、用户界面等垂直而封闭的架构。即便信息技术一直在不停地进化,甚至像互联网技术等革命性技术的冲击、企业软件平台、中间件等技术的普遍应用,这一基本格局并没有根本性的动摇。恰恰是这一传统的技术路线,制造了如今普遍存在于各行各业的信息孤岛现象。
信息孤岛之所以成为一个难以解决的问题是由于应用系统的异构性(Heterogeneity)。所谓异构是指不同的应用系统,架构于不同的硬件、系统软件平台,采用了不同的系统架构、不同的编程语言、不同的数据库等。更为关键的是不同产品在表达相同领域概念、业务逻辑的时候,可能采用完全不同的表达方式,也就是在数据模型和数据层面的异构。当共享、整合、协同成为企业信息化的主流需求时,系统异构造成的信息不能互通共享、系统间不能协同互操作的问题就突显出来。
系统异构和信息孤岛问题并非新问题,各种基于互联(Interconnection)和数据交换(Data Exchange)等集成手段已存在了几十年。只是由于信息孤岛经过长期累积,而今天的主流需求发生根本改变的情况下,问题由量变到质变,发展为新型企业级和区域规模信息化的主要障碍。当基于互联或数据交换的集成技术要对付成百上千异构系统的集成的时候,项目的成本、功能、性能、质量、运行和维护都成为风险很高的问题。如果继续坚持这一传统的技术路线,其结果只能是信息孤岛越来越多,互联集成越来越复杂。
随着共享、整合、协同成为企业信息化的主流需求,业务逻辑、信息表达复杂性可能成倍增高。特别是像医疗健康领域等知识密集型应用领域。医疗健康信息系统复杂性表现在很多方面,最典型的是系统所涉及的信息的复杂性。一个现代临床医学中心覆盖几十种临床医学学科,其信息系统涉及三十万以上的医学概念和专用词汇,医学概念间的相互联系不下百万,业务逻辑多不胜数,业务流程复杂又极具个性化,更为复杂的是,医学知识、概念、流程和方法由于医学研究的发展、新技术的出现持续不断地更新,这些复杂性是导致医疗健康领域信息化程度显着落后于其它领域的重要原因之一。
[DOP技术原理]
DOP技术原理
综合上述分析结果,如果延续传统的系统软件和应用软件的划分模式,坚持传统应用软件架构和发展的思维定势,信息孤岛问题的解决将陷入一个怪圈,而应用领域业务逻辑、知识表达的复杂性也难以解决。鉴于上述两个核心问题的症结基本都集中在信息模型和数据层,DOP首先提出将系统软件的边界向上扩展到传统应用领域的数据层,但这一新的“系统软件” 的适用范畴缩小到一个特定应用领域。换句话说,在传统的应用软件和系统软件中间增加一个数据模型和数据层一体化(Unifying)的数据和应用服务平台,这个平台就是右图所示的DOP,针对于一个特定应用领域的系统支撑平台。
DOP的技术理念可以简单概括为:
(1)从数据层面和数据建模入手,通过技术创新从根本上削弱大型复杂软件应用领域的复杂性;
(2)将操作系统的理念和技术向上扩展到传统应用软件的数据层,将适用范畴缩小到一个特定应用领域,将系统设备管理扩大到应用领域的常用设备;
(3) 通过领域数据一体化整合异构信息孤岛,逐渐消除信息孤岛产生的温床;
(4)支持独立于应用软件系统的一体化数据层(Unified Data Layer),使得数据和具体应用软件松耦合,新的应用系统可以架构在一体化数据层上,使数据的生命周期和具体的应用系统脱钩;
(5)将特定应用领域信息系统中重复、可共享的部分从传统应用系统中剥离出来,从而进一步削弱企业级系统的复杂性。
DOP技术核心
DOP的技术核心可以简要地归结为:一个新的建模体系(包括方法学,实现技术,工具软件,应用软件框架等) 两个核心引擎(模型引擎、数据引擎)和一系列核心功能和服务模块。
MDT建模体系
[领域动态建模原理]
领域动态建模原理
DOP 的领域动态建模体系,也简称为MDT(Meta Data Type)建模是DOP的创新技术之一。MDT建模体系主要由模型引擎、MDT建模及模型管理服务、MDT建模工具软件(MDT Designer, MDT Browser)等构成。具体细节可参见相关文档。
DOP的领域动态建模技术是在二阶建模(Two-Level Modeling) 技术基础上的再创新。所有的传统模型,包括应用广泛的关系数据库的模型,面向对象(Object Oriented)模型等都是所谓的一阶静态模型。由于一阶模型和数据紧耦合的特点,对模型的修改往往牵一发而动全身,在小型软件系统中,其影响并不显着,但对于大型一体化数据整合,涉及大量异构应用系统的集成,复杂的业务流程,在系统分析和设计阶段,系统分析师和架构师须花费至少70%的时间与领域专家进行交流和沟通,如果涉及很多异构系统供应商的话,常常使得这类的项目成为风险大、难协调、难管理、质量难保证的多难项目。右图简要描述了领域动态建模的原理。
DOP的领域动态建模技术实现了如下几个目标:
(1)用类似于应用领域的自然语言来描述信息模型,即领域概念直接用简单易懂、所见即所得的 MDT来表达。直接由领域专家主导建模,省去大量交流时间,避免最易出错的环节;
(2)领域概念建模和数据松耦合是实现动态建模,或所谓后建模的关键。这一动态特性使复杂应用领域模型具有进化能力,是削弱一阶静态模型牵一发而动全身问题的关键;
(3)DOP通过完整的建模、模型管理、数据管理体系自动生成和管理物理模型,屏蔽了从概念/逻辑模型到物理模型的人为干预环节,避免人为解读/翻译造成的信息模型异构;
(4)领域概念模型独立于任何数据库和编程语言,使得信息模型完全开放成为可能;
(5)领域概念模型可以携带实用的信息和知识,是知识建模的基础;
(6)可交叉支持各种国家、国际标准。
基于领域概念建模、一体化数据层的软件平台实际上是开创了一个新的软件领域。下表对领域动态建模和其它常用的建模技术作了一个简要的比较:
可比性 数据库E-R模型 面向对象模型 动态MDT建模
建模主角 数据库建模专家 UML/OO专家 领域专家
适合应用领域 传统应用系统 传统应用系统 一体化(Unified)企业或行业应用
小模型复杂性 低 低 不高,但没有优势
复杂应用领域建模复杂性 随领域概念数量和业务逻辑的复杂性增加而指数式增高 随领域概念数量和业务逻辑的复杂性增加快速增高,比E-R模型低 特别适合复杂应用领域建模,即便非常复杂的应用领域,仍可保持线性复杂性
知识模型支持 不适合 可以携带知识 非常容易数据模型关联相关知识,但仍然不属于语义网类知识建模
开放性 封闭模型 可以构建参考模型 完全可开放
可进化性 很困难 困难 目前最好的可进化性
两个核心引擎
DOP的内核是由实现领域动态建模体系的模型引擎、基于MDT模型的数据管理引擎及相关的辅助服务和管理模块构成的。
[DOP的两个核心引擎]
DOP的两个核心引擎
如右图所示,模型引擎是领域动态建模体系的核心。它实现了MDT属性模板管理、MDT对象创建管理、数据物理模型的创建和管理、物理模型和MDT 模型映射。同时,模型引擎负责DOP运行支持(Runtime)的数据和模型的映射。换句话说,数据的意义需要和相应的MDT相结合、通过数据引擎和模型引擎的“恢复” 才有意义。这一机制具有内在的安全性。通过特别的建模,DOP可以用于对数据安全要求极高的应用领域。因为,通过网络截取数据,甚至侵入到DOP数据中心,如果没有获得相应的MDT模型,或没有模型引擎和数据引擎的支持,那些数据可能没有任何意义,也不可能通过任何解密手段破译。
数据引擎是DOP运行支持(Runtime)系统的核心。和其它企业级软件平台和中间件不同,DOP实际上“接管” 了目标应用领域的数据层,包括一体化数据/信息模型、数据、各种数据操作服务调用。从这各角度来看,DOP更接近于一个新型数据库系统。
数据引擎支持独立于关系数据库、独立于文件系统的海量数据存储管理。数据引擎也是分布计算、数据缓存、异构系统数据集成、数据中心间实时数据同步的核心。
作为DOP内核,除MDT建模体系、两个核心引擎外,还有多个核心支撑模块和服务,比如细粒度一体化数据安全管理体系等。具体请见相关技术文档。
㈣ 数据库同步,同步表和同步数据库的区别
表同步偏重于数据的同步,包括历史数据及实时数据变化同步。用于业务数据共享或集成需求,支持异构数据库同步(如SQL Server同步到Oracle、Oracle同步到DB2)
表同步软件产品工具 如OGG、BeeDI
库同步偏重于数据库整体结构内容复制,包括DDL及DML操作。一般用于灾备或读写分离环境,仅用于同构数据库 (如Oracle同步到Oracle、DB2同步到DB2)
库同步工具软件产品工具 如ODG、Beep
㈤ 如何进行异构数据库同步
数据库同步有很多方法,这里不讨论了,我这里只针对异构数据库.那什么是异构数据库呢,我们先看下定义(引用)
异构数据库系统是相关的多个数据库系统的集合,可以实现数据的共享和透明访问,每个数据库系统在加入异构数据库系统之前本身就已经存在,拥有自己的DMBS。异构数据库的各个组成部分具有自身的自治性,实现数据共享的同时,每个数据库系统仍保有自己的应用特性、完整性控制和安全性控制。异构数据库系统的异构性主要体现在以下几个方面:
计算机体系结构的异构
各个参与的数据库可以分别运行在大型机、小型机、工作站、PC或嵌入式系统中。
基础操作系统的异构
各个数据库系统的基础操作系统可以是Unix、Windows NT、 Linux等。
DMBS本身的异构
可以是同为关系型数据库系统的Oracle、 SQL Server等,也可以是不同数据模型的数据库,如关系、模式、层次、网络、面向对象,函数型数据库共同组成一个异构数据库系统。
在转换的过程中,有时要想实现严格的等价转换是比较困难的。首先要确定两种模型中所存在的各种语法和语义上的冲突,这些冲突可能包括:
命名冲突:即源模型中的标识符可能是目的模型中的保留字,这时就需要重新命名。
格式冲突:同一种数据类型可能有不同的表示方法和语义差异,这时需要定义两种模型之间的变换函数。
结构冲突:如果两种数据库系统之间的数据定义模型不同,如分别为关系模型和层次模型,那么需要重新定义实体属性和联系,以防止属性或联系信息的丢失。
异构数据库同步的解决方法主要有以下几种:
1.建立触发器记录表的变化情况,在源数据库建立增、删、改触发器,然后根据变化登记表进行处理.优点是充分结合业务进行处理,保持数据的一致性、完整性,实时性较强,对多个数据源合并有非常大的优势,我们现在也是采用这种方式来同步的。
2.日志:通过分析源数据库日志,来获得源数据库中的变化的数据。ORCLE 的 异步 CDC (Asynchronized CDC) 就是使用这种方式,但缺点是有一定延时.
㈥ DataX框架的设计、运行原理详解
什么是DataX
DataX 是阿里巴巴开源的一个异构数据源离线同步工具,致力于实现包括关系型数据库(MySQL、Oracle等)、HDFS、Hive、ODPS、HBase、FTP等各种异构数据源之间稳定高效的数据同步功能。
方法/步骤
DataX的设计
为了解决异构数据源同步问题,DataX将复杂的网状的同步链路变成了星型数据链路,DataX作为中间传输载体负责连接各种数据源。当需要接入一个新的数据源的时候,只需要将此数据源对接到DataX,便能跟已有的数据源做到无缝数据同步。
框架设计
DataX本身作为离线数据同步框架,采用Framework + plugin架构构建。将数据源读取和写入抽象成为Reader/Writer插件,纳入到整个同步框架中。
Reader:数据采集模块,负责采集数据源的数据,将数据发送给Framework。
Writer:数据写入模块,负责不断向Framework取数据,并将数据写入到目的端。
Framework:用于连接reader和writer,作为两者的数据传输通道,并处理缓冲,流控,并发,数据转换等核心技术问题。
运行原理
① DataX完成单个数据同步的作业,我们称之为Job,DataX接受到一个Job之后,将启动一个进程来完成整个作业同步过程。DataX Job模块是单个作业的中枢管理节点,承担了数据清理、子任务切分(将单一作业计算转化为多个子Task)、TaskGroup管理等功能。
②DataXJob启动后,会根据不同的源端切分策略,将Job切分成多个小的Task(子任务),以便于并发执行。Task便是DataX作业的最小单元,每一个Task都会负责一部分数据的同步工作。
③切分多个Task之后,DataX Job会调用Scheler模块,根据配置的并发数据量,将拆分成的Task重新组合,组装成TaskGroup(任务组)。每一个TaskGroup负责以一定的并发运行完毕分配好的所有Task,默认单个任务组的并发数量为5。
④每一个Task都由TaskGroup负责启动,Task启动后,会固定启动Reader—>Channel—>Writer的线程来完成任务同步工作。
⑤DataX作业运行起来之后, Job监控并等待多个TaskGroup模块任务完成,等待所有TaskGroup任务完成后Job成功退出。否则,异常退出,进程退出值非0
㈦ 比较好用的数据库同步软件又哪些
可以试试DBSync,主要特点:
●独立运行
不需要在数据库中设置程序或脚本,不需要更改库结构,是一款独立的应用程序,因此不影响现有系统的运行,简单易用。
●支持各种数据源
既支持常规数据库,如Access、SQL Server、Oracle、MySQL、DB2等,又支持Excel、txt、csv等文件数据,任何可用OLE DB或ODBC连接的数据,均可参与同步。
●异型数据库同步
既支持相同类型数据库之间的同步,如Access到Access、SQL Server到SQL Server,又支持异型数据库之间的同步,如Excel到Access、Access到SQL Server、SQL Server到Oracle等。
●无人值守同步
软件具有定期自动同步的功能,只需预先设置好时间间隔,就可长期自动同步;支持系统重启后自动继续同步,防止意外关机重启而造成同步中断,从而实现无人值守同步。
●支持增量同步
既支持简单的全部复制式同步(Insert),又支持增量同步。软件能快速扫描数据库,找出相互间的差异(即增量),只对增量进行同步。
●支持断点续传
当同步中断后,再次同步时能从中断位置继续同步,避免每次都需要从头开始。
●秒级实时同步
重复同步的时间间隔最短可设置为1秒,源数据库发生变更后,1秒后就同步过去,几乎等同于实时同步。
●支持同步后处理
可设置同步后的SQL执行语句,实现同步之后的数据转换、公式计算等额外任务。
㈧ 怎样利用Oracle golden gate 分发数据库同步消息至ActiveMQ
利用Oracle golden gate 分发数据库同步消息至ActiveMQ 引言
Oracle golden gate是甲骨文推出的一款数据库同步软件,可以实现异构数据库之间的亚秒级同步,它不仅仅支持Oracle,还支持Mysql和一些业界常用数据库。Ogg可以自动抽取表级数据的动态变化,直接将同步信息作用于目标数据库。然而,在某一些场景之中,我们并不需要将同步信息直接作用于目标数据库,而是将其保存在队列中,然后在队列中取出这些信息,完成一些下游系统的业务需求,这样可以让增量同步更加灵活。本篇文章主要讲述如何,配置Ogg来抽取源表的同步信息生成trail文件(Ogg专属同步文件),并利用分发器读取trail文件,适配成可以解析的xml,将其作为消息发送给队列。本文将不再讲诉一下关于安装的步骤,直接上干货。
OGG数据同步的重要概念 oracle归档和日志
Oacle归档模式是ORACLE热备份的必要条件,特别是7X24生产的数据库。可以这么认为:归档日志是增量同步的数据源,因此必须开启。可以通过下面的的指令查看是否开了归档:
SQL> archive log list
Ogg抽取进程
开启了归档和日志,ogg就有数据源来获取同步信息。而具体的工作是由Ogg抽取进程
㈨ GoldenGate在异构环境下的数据库备份
表结构不同好像不能同步数据吧
最好是源端备份一下然后到目标端恢复一下 使源库和目标库一致后再整golden gate同步数据
有条件的话整个dataguard做备份更方便主库出故障切换一下就o了
㈩ etl是什么
ETL,是英文Extract-Transform-Load的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。ETL一词较常用在数据仓库,但其对象并不限于数据仓库。
数据仓库是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。
ETL是将业务系统的数据经过抽取、清洗转换之后加载到数据仓库的过程,目的是将企业中的分散、零乱、标准不统一的数据整合到一起,为企业的决策提供分析依据, ETL是BI(商业智能)项目重要的一个环节。
(10)异构数据库同步软件扩展阅读:
ETL与ELT:
ETL所描述的过程,一般常见的作法包含ETL或是ELT(Extract-Load-Transform),并且混合使用。通常愈大量的数据、复杂的转换逻辑、目的端为较强运算能力的数据库,愈偏向使用ELT,以便运用目的端数据库的平行处理能力。
ETL(orELT)的流程可以用任何的编程语言去开发完成,由于ETL是极为复杂的过程,而手写程序不易管理,有愈来愈多的企业采用工具协助ETL的开发,并运用其内置的metadata功能来存储来源与目的的对应(mapping)以及转换规则。
工具可以提供较强大的连接功能(connectivity)来连接来源端及目的端,开发人员不用去熟悉各种相异的平台及数据的结构,亦能进行开发。当然,为了这些好处,付出的代价便是金钱。