社区
Oracle 高级技术
帖子详情
如何知道数据库内容的变化?
ahphone
2003-06-04 11:19:53
现在用了快照形式,每隔一段时间(若干小时)就向另外一台机器发送消息,同时通过发送变化的内容,去更新另外一太机器的数据库内容。
请问各位大侠,如何知道数据库变化的内容,并且组织这些内容呢?通过日志吗?那该如何做?
先谢谢大家了!~
...全文
204
23
打赏
收藏
如何知道数据库内容的变化?
现在用了快照形式,每隔一段时间(若干小时)就向另外一台机器发送消息,同时通过发送变化的内容,去更新另外一太机器的数据库内容。 请问各位大侠,如何知道数据库变化的内容,并且组织这些内容呢?通过日志吗?那该如何做? 先谢谢大家了!~
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
23 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ahphone
2003-07-06
打赏
举报
回复
谢谢大家,我好久没有上来了。想不到大家这样热心。
我这边已经找了一堆高级复制的资料,包括楼上贴的。
不知道朋友能不能用到,不过现在看来1的心思可能放到我这边来了
这个问题不知道1什么时候可以解决
LGQDUCKY
2003-06-26
打赏
举报
回复
Oracle高级复制
在开始之前,需要简单说明一下,目前公司有几个项目都采用Oracle作为数据库平台,并且有的项目使用到了Oracle的数据库复制技术,其中也遇到了一些问题,因此在这里,我对Oracle的复制技术谈一下我个人的理解,希望能够对采用Oracle数据库的项目组有所帮助。其中在文中使用到的SQL脚本都是经过检验可以运行的。
首先简单介绍和数据库复制有关的基本概念,然后探讨Oracle数据复制技术中的几个重要模型,最后介绍Oracle的数据复制管理器以及如何利用它来配置和维护复制环境。
在文章的开头,我想首先简单谈一下复制的基本概念,也就是什么是复制?复制简单地说就是在由两个或者多个数据库系统构成的一个分布式数据库环境中拷贝数据的过程。Oracle高级复制,也称为对称复制,第一次是在Oracle 7.1.6版本中出现的,在这之前的Oracle版本中,Oracle数据复制方法仅有只读快照形式的基本复制一种方法。随着Oracle版本的每一次升级,数据复制的功能、管理以及速度等方面都得到了很大的改进和完善。目前,由于对分布式数据环境需求的不断增长,越来越多的应用提出了数据复制的需求。
1.基本概念
1. 分布式数据库技术
分布式数据库技术是目前我们经常提及的分布式计算的一个重要组成部分,该技术允许数据在多个服务器端共享。采用分布式数据库技术,一个本地服务器可以存取不同物理地点的远程服务器上的数据;也可以使所有的服务器均可以持有数据的拷贝/复制,这样分布式系统中的所有服务器均可进行本地存取。
设计一个分布式计算解决方案首先需要考虑的问题就是应用的完整性、复杂性、性能和可用性以及响应时间等,同时还需要考虑的是对于不同的应用需求是采用实时存取远程数据还是采用延迟存取远程数据。这对于数据复制来讲就是采取实时更新复制方案还是延迟数据复制方案。
2. 同步和异步的概念
同步分发数据库技术是一种实时远程存取和实时更新数据的技术。这种技术可以保证应用的完整性降低了应用的复杂性,但是如果系统存在网络存取速度很慢这样的问题,相应响应时间就会很慢。
异步分发数据库技术是一种延迟远程存取和延迟传播对数据更新的技术。这种技术具有很高的可用性和很短的响应时间。相比同步分发数据库技术就显得复杂一些,为了确保应用的完整性需要仔细考虑和设计。
对于实际的商业问题,必须权衡这两种技术的利弊最终选择最佳的解决方案,有些问题选用同步技术比较适合,也有一些问题采用异步技术是比较好的解决方案,还有一些问题必须综合这两种技术。
3. 复制的概念
复制,顾名思义就是将数据库中的数据拷贝到不同物理地点的数据库中以支持分布式应用,它是整个分布式计算解决方案的一个重要组成部分。上面介绍了同步和异步的概念,这里针对复制也存在同步复制和异步复制的问题。
同步复制,复制数据在任何时间在任何复制节点均保持一致。如果复制环境中的任何一个节点的复制数据发生了更新操作,这种变化会立刻反映到其他所有的复制节点。这种技术适用于那些对于实时性要求较高的商业应用中。
异步复制,所有复制节点的数据在一定时间内是不同步的。如果复制环境中的其中的一个节点的复制数据发生了更新操作,这种改变将在不同的事务中被传播和应用到其他所有复制节点。这些不同的事务间可以间隔几秒,几分种,几小时,也可以是几天之后。复制节点之间的数据临时是不同步的,但传播最终将保证所有复制节点间的数据一致。
4. 更新冲突
在异步复制环境中,对于所有应用最关键的就是要确保数据的一致性。我们来看下面这种情况会有什么后果发生呢?在同一时间对同一个表的同一行数据的同一列在两个不同的地点作更新。这种情况就会发生称之为更新冲突的错误。为保证数据的一致性,更新冲突必须被检测到并且处理以确保在不同地点的数据元素保持同样的值。更新冲突可以通过限制"所有权" 到单一节点或者将更新某个特定数据元素的权利限制到某一具体节点的方法来避免。
2.Oracle数据复制应用模型
为确保实际应用数据的一致性,必须在异步复制应用模型中考虑冲突避免或者冲突检测和消除的方法。例如,对于一个实际商业应用,首先必须在逻辑上了解该商业应用采取的冲突避免方法和在某个节点有那些数据以及这些数据中那些是可更新的,而那些又是不可更新的。在下面的这一部分中,我们首先将详细讨论两种常用的冲突避免方法:主站点所有权模型和动态所有权模型。然后,讨论共享所有权模型以及这种模型引起的冲突检测和处理问题,最后,讨论针对Fail-over的复制配置,这种复制方案同时考虑了冲突避免和冲突检测与消除两种情况。
radish
2003-06-24
打赏
举报
回复
jiezhi(浪子) 有高级复制的更多资料吗?
jiezhi
2003-06-24
打赏
举报
回复
高級復制不是你去編程實現的。
oracle自己來完成,你做的是進行設置。
搜索:高級復制。
我以前參預一個項目就成功地使用了高級復制來實現數據同步。
icedian
2003-06-24
打赏
举报
回复
建议使用松散的数据复制,不要用触发器,因为这样事务处理对网络的要求太高了,若网络出现异常,将影响本地的事务处理
ahphone
2003-06-21
打赏
举报
回复
!
ahphone
2003-06-15
打赏
举报
回复
!
Tom_Tan
2003-06-13
打赏
举报
回复
我觉得用触发器比较好,因为触发器可以得到改动的每一条记录,在对这些记录坐处理就可以了
ahphone
2003-06-12
打赏
举报
回复
up
Pearll
2003-06-11
打赏
举报
回复
可以用高级复制中的master to master,写个脚本来实现多简单呀
zxiangh
2003-06-08
打赏
举报
回复
ORACLE实现数据复制是基于DML的日志文件实现的,是否可以考虑基于数据变化
的数据复制呢? 基本方法在需要复制的数据表中增加两个字段,一个是逻辑删除
标志,一个是时间戳,前者表示本记录已被删除,但仅是逻辑上删除,至于物理删除
可以在适当时候进行批处理,之所以这样,以确保复制方知道该记录已被删除,
时间戳字段说明该记录修改的时间,当然怎样设置该值,必须精心考虑.该复制方法
是按一定预设时间周期性将上次复制时间戳值之后发生的记录数据按关键字覆盖
与远程数据库服务器中相应的数据记录,当然新增记录同样会新增插入.于是实现
数据同步.这样本人只是简单描述目前正研究的一种数据同步方法.其实真正实现它,
确需很大精力,若有兴趣,可与本人共同探讨.E-MAIL:ZXIANGH@SINA.COM
ahphone
2003-06-08
打赏
举报
回复
如果想自己编程实现Oracle的高级复制呢?
zzok1
2003-06-08
打赏
举报
回复
可以用Oracle的高级复制来同步变化。
ahphone
2003-06-08
打赏
举报
回复
up
czhai
2003-06-06
打赏
举报
回复
然后用作业来完成传递!
czhai
2003-06-06
打赏
举报
回复
这个我做过,你可以对一些主要的表建触发器。这样就可以取到增量数据,当然还是有其它方法的让我再想想!
ahphone
2003-06-06
打赏
举报
回复
谢谢 czhai(横扫千军) ,大家还又没有办法?
某鸟
2003-06-05
打赏
举报
回复
如何知道数据库变化的内容
不是有触发器吗???
某鸟
2003-06-05
打赏
举报
回复
不知道oracle那有没有这个概念:-$
某鸟
2003-06-05
打赏
举报
回复
非用快照吗???不能用动态集吗???
加载更多回复(3)
database.db 文件详解:
数据库
文件在 SQLite 中的作用与使用
本文解析了Python项目中自动生成的database.db文件的作用和使用方法。该文件是SQLite
数据库
的默认存储文件,包含表结构、数据记录和索引等信息。文章详细介绍了SQLite的存储原理、查看和操作方法(命令行与可视化工具)、备份策略及常见问题解决方案,并强调
数据库
管理需严谨,避免数据丢失。掌握.db文件的特性能帮助开发者更高效地进行项目调试和
数据库
维护。
数据仓库中的慢
变化
维度和快
变化
维度
数据仓库中的事实表总是在
变化
中,通常是新的业务数据不断装载入DW。事实表数据的增加是正常现象,也无需特别处理。但很多时候维度表的数据也会发生
变化
,且维度表的数据
变化
会导致维度表和事实表的关系发生
变化
。因此对于维度
变化
,该如何设计维度表,是本文要讨论的问题。 例如一个订单事实表和一个客户维度表,每个订单有一个对应的客户。在今年5月17日之前,客户维度表中某客户的类别是corporate,5月18日
数据仓库缓慢
变化
维度SCD?你想
知道
的都在这里
点击上方蓝色字体,选择“设为星标”回复”资源“获取更多资源大数据技术与架构点击右侧关注,大数据开发领域最强公众号!大数据真好玩点击右侧关注,大数据真好玩!大家
知道
平时我对SQL Boy ...
数据库
与数据仓库区别
在具体学习数据仓库之前先看一下数据中心的整体构架以及数据流向。 DB 是现有的数据来源,可以为mysql、SQLserver、文件日志等,为数据仓库提供数据来源的一般存在于现有的业务系统之中。 ETL 是 Extract-Transform-Load 的缩写,用来描述将数据从来源迁移到目标的几个过程: Extract,数据抽取,也就是把数据从数据源读出来。 Transform,数据转换,把原始数据转换成期望的格式和维度。如果用在数据仓库的场景下,Transform也包含数据清洗,清
数据仓库——环境
数据仓库是一个面向主题的、集成的、非易失的、随时间
变化
的用来支持管理人员决策的数据集合。
Oracle 高级技术
3,499
社区成员
18,709
社区内容
发帖
与我相关
我的任务
Oracle 高级技术
Oracle 高级技术相关讨论专区
复制链接
扫一扫
分享
社区描述
Oracle 高级技术相关讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章