关于 ORACLE 数据库 数据同步(实时同步和异步同步)

关于 ORACLE 数据库 数据同步(实时同步和异步同步),第1张

做个数据链接,A表插入数据以后就往B表插入,用触发器实现

在任何实时数据同步和复制中,需要考虑如下几个关键问题:

事务一致性:在复制目标端需要按照源端相同的事务环境进行提交,确保目标上数据一致性。

检查点机制:在抽取和负责时都需要记录检查点位置,确保网络故障或GG本身故障下仍然能够完整复制。

可靠数据传输:需要保证数据传输的完整性,请求和应答,同时提供数据加密和传输过程中的压缩。

datagurd:

主要备库的方式,就是数据库对数据库的备份方式,主要是解决容灾的。

流复制:

主要是利用oracle的归档日志,进行增量备份来实现的,不仅可以配置只复制某些表,还可以配置仅复制某些表上的ddl或dml。可以复制到表,用户,数据库级别。

高级复制:

主要是基于触发器的原理来触发数据同步的,因此,高级复制无法实现用户,数据库级别的对象复制,只能做些表、索引和存储过程的复制。

用ESB工具吧,金蝶中间件、IBM都有这种,可以进行数据同步的 *** 作。

当然,他们是收费的。金蝶中间件的便宜点,IBM的贵点,同样,性能上有些区别,不过区别不是很大。

不想花钱,就修改你的应用系统呗。

Oracle Golden Gate和Oracle Data Intergator 集成使用。基本上可以做到无停机、双机AA模式、库备份

客户案例:中国联通,海关总署等。。

如有问可以和我联系

能实现,

sqlserver 到oracle可以用触发器实现,前提是你需要先在sql server上创建到oracle的连接。

之后oracle 到外网你可用通过程序或别的方法实现。

软件说明

通过etl工具定时将SqlServer指定的表数据同步到oracle数据库

在数据库建立增删改的触发器。触发器将变更放到临时表里。

通过etl工具读取临时表同步给oracle

优点:比较实时

缺点:影响到业务系统,因为需要在业务系统建立触发器

实例说明:

例如在sqlserver有一张用户表(sys_user)需定时同步oracle数据库的用户表,

包括新增、删除、修改同步

给同步的表建三类触发器:

insert触发器:向表中插入数据时被触发;

update触发器:修改表中数据时被触发;

delete触发器:从表中删除数据时被触发。

以sqlserver的用户表举例,

Sqlserver的sys_user表,有两个字段id,name

具体流程:

以新增数据举例

Ø 一、在sqlserver新建触发器trigger_sysuser_insert

if (object_id('trigger_sysuser_insert') is not null)

drop trigger trigger_sysuser_insert

go

create trigger trigger_sysuser_insert

on sys_user --表名

for insert --插入后触发

--instead of insert --插入前触发,使用插入前触发时,不执行默认插入

as

--开始执行逻辑

declare @id int, @name varchar(20);

select @id = id, @name = name from sys_user; -------------- inserted 存放了当前插入的值

--select @name,@age

---创建临时表

if not exists (select from sysobjects where id = object_id('##sys_user_insert')

and OBJECTPROPERTY(id, 'IsUserTable') = 1)

create table ##sys_user_insert

(

id int,

name varchar(32)

);

insert into ##sys_user_insert (id,name) values(@id,@name);

go

在sys_user新增数据时会被触发,将新增的数据加入临时表##sys_user_insert,此时

的临时表 ##sys_user_insert会增加一条记录

Ø 二、配置elt流程

节点1 从临时表读取数据,写入数据流

节点2 从数据流获取数据写入oracle

节点3 从sqlserver的临时表删除已经被同步的记录

Ø 三、建立作业调度

设置调度周期

适用增量数据同步

在要同步的源表里有时间戳字段,每当数据发生新增,时间戳会记录发生变化的时间,etl工具根据时间范围定时同步数据

优点:基本不影响业务系统

缺点:要求源表必须有时间戳这一列,适用增量场景,修改、删除不太适用

定时清空oracle数据源,将sqlserver的数据全盘拷贝到oracle数据源。一般用于数据量不大,实时性要求不高的场景。

优点:基本不影响业务系统,开发、部署都很简单

缺点:效率低

Etl流程

结论

准能现场数据同步,涉及增、删、改的同步,比较适用触发器的方式进行数据同步,但触发器仍会存在失效的情况,若现场有数据质量系统,定期数据稽核,查缺补漏,保证两边数据库的一致性;

引言

作为资深的DBA同胞你是否在工作中也存在这样的情况呢?公司要搭建数据平台,首要的工作就是把旧库的数据导入到新库中,虽然各种数据库都提供了导入导出的工具,但是数据需要存储到各个地方,MongoDB、HBase、MySQL、Oracle等各种各样的不同数据库,同步起来就有一些困难了。那么如何做好两个数据库之间、不同类型的数据库之间的相互迁移转换呢?

今天小编就常用的数据库同步、迁移转换工具进行一个汇总,以便大家在需要的时候,选择到合适的工具完成自己的工作~

一、SQLyog

SQLyog简介

SQLyog是业界著名的Webyog公司出品的一款简洁高效、功能强大的图形化MySQL数据库管理工具。使用SQLyog可以快速直观地让你从世界的任何角落通过网络来维护远端的MySQL数据库。它也是小编工作一直使用的MySQL管理客户端工具哦。

SQLyog特点

方便快捷的数据库同步与数据库结构同步工具;

易用的数据库、数据表备份与还原功能;

支持导入与导出XML、HTML、CSV等多种格式的数据;

直接运行批量SQL脚本文件,速度极快;

新版本更是增加了强大的数据迁移

二、Navicat

Navicat简介

Navicat是一套快速、可靠并且价格相当便宜的数据库管理工具,Navicat提供多达 7 种语言供客户选择,被认为是最受欢迎的数据库前端用户界面工具。它可以用来对本地或远程的 MySQL、SQL Server、SQLite、Oracle 及 PostgreSQL 数据库进行管理及开发。

Navicat支持功能

数据模型

数据传输

数据同步

结构同步

导入、导出、备份、还原、报表创建工具及计划以协助管理数据

三、Ottor

Ottor简介

Otttor是由阿里巴巴开源的一个数据同步产品,它的最初的目的是为了解决跨国异地整个机房的架构为双A,两边均可写。开发时间长达7年,并持续到现在。目前阿里巴巴B2B内部的本地/异地机房的同步需求基本全上了Otter。Otter基于数据库增量日志解析,支持mysql/oracle数据库进行同步,在最新的v4213已经支持mysql57以及阿里云提供的RDS数据库。小编已经在实际项目中使用。

Ottor特点

基于Canal开源产品,获取数据库增量日志数据。 (什么是Canal,详情查看>

以上就是关于关于 ORACLE 数据库 数据同步(实时同步和异步同步)全部的内容,包括:关于 ORACLE 数据库 数据同步(实时同步和异步同步)、两个oracle数据库之间的数据同步、Oracle 和 SQL 两个数据库,实时同步数据,可以怎么做等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/10179688.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-06
下一篇 2023-05-06

发表评论

登录后才能评论

评论列表(0条)

保存