Oracle数据库高级复制技术的应用
Oracle数据库高级复制技术的应用

D L语 句 ,应 先 将 该表 移 出复 制 环境 删 些 大的信息系统往往 由多地的不 同用户同时使用 , 由相距较 不 加 分 号 。若 直 接执 行 了 D 远 的多 个 站 点构 成 的广 域 网 ,并 且 各 个 站点 之 间 需要 数 据 共享 , 通 掉 , 再重 新建 立 或 复制 表 。 3 . 5 如需 要 在 表 中增 加 字段 并 设 置 默认 值 时 , 在9 i 之前 的版本 常将这些共享 的数据存储在其中一个站点上 , 作 为数据 中心 , 所有 用 户都 从 该站 点 存 取数 据 。这 种 方 案很 容 易 就 能保 证 数 据 一致 性 , 中要 分 成两 部分 执 行 , 不 能一 次执 行 。例 AL TER TABLE o wn e r . t a b l en a me ADD f ie l d nam e 但会造 成数据 中心的负载过大 , 使远程用户 的数据响应很慢 , 甚 至 AL TER TABLE o wne r . t a bl en a me MODI FY f ie l d n a me DE— 造成系统瘫痪 。数据复制技术可 以有效地解决这个问题 , 它通过将 AUL T a b e 这些共享数据复制到多个不同站点的数据库 中, 实现数据的本地访 F 问, 减少 网络负荷 , 并提高数据访 问的性能 , 而且通过数据 同步 , 确 因为在高级复制环境中, 执行任何 D D L语句 , 都需要 S U S P E N D 保 数据 实 时 陛和 一 致 性 _ l _ 。该 技 术 适 用 于用 户 数 较 多 、 地 理分 布较 复制 组 , 此 时 复制 表 只 能查 询 , 不 能再 执 行 D M L语 句 。 如何 在一 个 广、 而 且需 要 实 时地 访 问相 同数据 的应用 模 式 。 S Q L 语句中执行添加字段 同时赋缺省值 , 则添加字段后插入缺省值 O r a c l e 数 据库 的复 制 是 由数 据 库 的后 台进 程 自动 实现 的 , 通 过 的 D ML操作 不 会执 行 , 并且 报 错 。分 成两 步 操作 能 解决 该 问题 。 设 置 数 据库 参 数 ,确 定 后 台 负责 复 制 任 务 的 进 程 数 和 被 激 活 的 时 3 . 6 执行 任何 对 复 制环 境 的管 理命 令 前 ,都 要保 证 此 时没 有堆 E F E R R E D T R A N S 。 间 。数 据库 的后 台进 程 是 由系统 按 设 定 的时 间 问 隔 执 行 预 定 的操 积 的 D 作, 以 实现 数 据 定 期 地从 源数 据 库 到 目标 数 据库 的传 输 , 并 由系 统 3 . 7 A D M I N R E Q U E S T ( 对 复 制环 境 的管 理 命令 ) 须 - - 步 一 步执 E P C A T L O G表保 存 A D MI N R E Q U E S T语 句 , 从 第 一 条 进行控制 。O r a c l e 数据库复制支持基本复制和高级复制两种形式 , 行 。用一 个 R 这 里主 要 讲述 O r a c l e 高级 复 制技 术 在应 用 时 的设 计 , 以及 可 能 遇 到 到最后一条顺序执行 , 只有执行完上一条后才能执行下一条 。每次 的 问题 和 解 决 办法 。 发出 A D M1 N R E Q U E S T后 , 都要 检查 R E P C A T L O G表 是 否 为 空 , 只 1基 本概 念 有当所有的 R E P C A T L O G表都为空后 ,才能将复制组设置为 N O R — O r a c l e 高级复制 , 即对称 复制 , 既可支持整个表 的复制也 可支 M A L , 发 出下 一 条命 令 。 持基于部分表 的复制两种复制方案 , 其主要是通过多主复制和可更 3 . 8如果 R E P C A T L O G表中有无法执行 的命令 , 可以 A P P L Y或 新 快 照复 制 两种 机 制实 现 的 。 同时 还 可 以将这 两 种 复制 机 制结 合起 P U R G E掉 , 再重新执行命令。若只是其 中一个节点上有遗 留命令 , 来 以满 足 不 断变 化 的业 务 需求 。 则可 在该 节 点上 多 执行 几 次 A P P L Y 。 2 高 级复 制设 计 步 骤 3 . 9 当出现死锁 现象时 ,可以先尝试 中断掉该 A D MI N R E — 2 . 1 多主 复制 Q U E S T对 应 的 任务 , 重 新刷 新 命 令 , 若 能 继 续 执行 , 则 恢 复任 务 , 否 ( 1 ) 创建 复制环境 , 明确高级复制的站点和参 与复制 的数据表 ; 则从 V ¥ S E S S I O N和 V ¥ L O C K中查 出 死 锁进 程 , 用A L T E R S Y S T E M 保证各站点具有复制关系的表结构的一致性 ; f 2 ) 使用数据库复制管 K I L L S E S S I O N 将 其 杀掉 。如果 无 法杀 掉 , 则需 查 出类 型为 R Q 的 理器, 定义参加复制的站点 , 在复制的各站点 , 建立包含复制实体的 分 布 式 死锁 , 根据 S I D查 出对应 的后 台进 程, 从 操 作 系统 中杀 掉 后 台 用户和复制 的数据库链路 , 建立复制的管理 用户 , 配置数据更新的 进 程 , 最 后再 阪 复任务 和 相关 复制 环 境 的状 态 。 计划 ; ( 3 ) 建 立主复制组 , 不 同的需参与复制的实体可加入不同的组 4 实际 应用 中; f 4 ) 给用 户 分 配 适 合 的 权 限 , 防 止 由于 用户 权 限过 大 而 造成 的 复 某地下水监测系统由省级主站 、市级分站和县级分站组成 , 数 制 冲突 。 据存储采取省级数据中心和市级数据 中心分布式存储 , 均采用 O r a — 2 . 2可 更 新快 照 复制 c l e 数据库 , 以确保全省数据储存 的快速 、 稳定 、 安全 。 各市分站只为 f 1 ) 创建 复制环境 , 明确高级复制的站点 、 参与复制的数据表和 本市所辖县级分站提供存储服务 , 并将所有测报数据传送汇总到省 可更新快照复制的站点 ; 保证各站点具有复制关系的表结构 的一致 级 主站 数 据 中 心 , 同时 其 为各 市 级 分 站 数 据 实现 异 地 备 份 , 提供 跨 性; ( 2 ) 在 复制 的各 站 点 建 立快 照管 理 用 户 , 建 立 包 含 可 更 新快 照实 地市数据查询 , 当各地市分站数据出现故障时 , 可从省级主站读取 体的用户和复制的数据库链路 ,配置数据更新的时间和间隔; f 3 ) 在 数据 , 恢 复数 据 。 主站点建立快照 日志 ; ( 4 ) 在复制点建立必要的更新组 ; ( 5 ) 建立快照 整 个数 据 同步 机 制 主要 采 用 O r a c l e 复 制 技 术 的 可更 新 快 照 机 组, 快照组可包含表 、 存储过程 、 包、 函数 、 同义词 、 视图等实体 ; ( 6 ) 给 制 。 整个 分 布式 数据 库 系 统采 用 的是 “ 一 主 多从 ” 的 结构 ( 如图 1 ) , 设 用 户分 配 适合 的权 限 , 防止 由于用 户权 限过 大 而造 成 的复 制 冲突 。 [ 3 1 置省 级 主站 的数 据 库 系统 为 主数 据 库 , 各 市分 站 的数据 库系 统 为从 3 需要 注 意事 项 数 据 库 。使 用 O r a c l e 系 统 中的 增量 复 制技 术 , 定 时 或 手 动进 行 主数 3 . 1确 保 网络 连 接 的稳 定 。如 果 服务 器 网络 连 接 中断 ,则 造成 据库 与从 数 据库 的数 据更 新 。 从数 据 库复 制 到主 数 据库 的是 全 部数 数据无 法访 问和传输 ; 网络不稳定 , 会导致数据传输 过程中出现丢 据 , 只要从 数 据 库 中 的数 据有 变 化 , 就 会反 映到 主数 据 库 中 ; 主数 据 包 现象 , 影 响 数据 的完 蛰 陛 。 库复制到从数据库的是与本市分站相关的测报数据。 3 . 2要有较高的网络传输速度。各个站点之间要进行 大量 的、 频 繁 的数 据传 输 , 速 度 过慢 的话 将 影 响其 访 问速 度 。 3 . 3服 务器 应 保 持开 机 状态 或 定 时开 机 。否 则会 造 成 大量 的延 迟 任务 , 无 法 进行 数 据 发布 。 3 . 4 不 能 在 参 与 复制 的表 上 面 直 接 执行 D D L语 句 。因 为 O R — A C L E 自动在 参 与 复制 的表 上建 立 了支持 复 制 的 T R I G G E R 和 P A C K A G E , 在其上面直接执行任何 D D L语 句都会破坏这些复制支 持 。应 该先 S U S P E N D要修改表 所在 的复制 组 ,在 R E P I C A T I O N M A N A G E R中或 调 用 R E P C A T ��
Oracle 9i数据复制技术在教务系统中的应用

4 结语 在跨地域的网 络上构造基于因 的分布 特网
式数据库系统应用时,由于信息分布在不同 的站点上,用户往往要从多个站点获取数据 完成操作,同时保证一定的效率和可用性. 本文提出的分布式数据库系统有一定的可行 性 ,有很好的应用前景。
设计单一中 心站点带来瓶颈向题的可能性。 在每个 的局 内 在多 校区 域网 存 个级别 不同 的管理部门,每个部门对数据的访问要求不 同。中心数据库与各部门 站点间 采用物化视 图站点复制的方法复制全表或者子表,既加 强了数据访问的控制,又减轻了中心站点的 负担。它由 一个主站点和多个视图站点共同
( 1) 复制的数据是否需要更新, 以及 1 引言 ORACLE 数据复制是实现分布式数据环 由谁更新 . (2 ) 数据的分布应考虑其一致性、自 境的一种技术,通过在不同的物理站点拷贝 数据来建立分布式数据环境,数据复制实现 治性和延迟 。 (3 ) 复制环境,其中包括技术基础、 了所有的站点都有相同数据对象的可用拷贝。 本文通过具体的实例,展示了一个异步复制 网络和安全以及数据特征。 存取频繁的数据尽量位于本地数据库。 的过 程 。 如果这些数据由远程数据库进行管理,则需 考虑将其复制到本地 ,可以简化程序的设 2 数据复制的概念 数据复制可分为同步数据复制和异步数据 计,也可提高数据的安全性,降低网络流 提高性能。如果应用程序需要同时存取 复制。同步数据复制是指复制数据在任何复 量, 制节点均保持一致。如果复制环境中的任何 本地和远程的数据库,设计时要通过事务的 一个节点的复制数据发生了更新操作,这种 同时提交和回滚以保证数据的一致性。 变化会立刻反映到其他所有的复制节点。但 3. 2 数据复制的冲突 如果复制的数据破坏完整性约束 (如当 这种方式受带宽影响较大,数据传输距离较 短。异步复制, 所有复制节点的数据在一定 不同站点的事务向参加复制的表中插入主键相 时间内是不同步的。如果复制环境中的其中 同的记录时) 将导致惟一性约束冲突。如果 性约束问 一个节点的复制数据发生了更新操作,这种 复制方在插入和修改时出现违反推一 变化将在不同的事务中 被传播和应用到其他所 题,则复制方检测到惟一性约束冲突。 多站点复制时网络上不同数据库上的用户 有复制节点。复制节点之I 的数据临时是不 J a ’ 同步的,但传播最终将保证所有复制节点间 同时修改或删除同一记录或同时插人主键相同 的数据一致,根据实际应用,在配置复制时 的记录的矛盾,在设计时来避免。 (1 尽量减少需同时更新数据的站点数; ) 可以设置同步的时间间隔。对于所有应用最 (2) 建立不同取值范围的序列生成器生 关键的就是要确保数据的一致性。 按照复制站点的类型,数据复制可分为 成主键,避免主键重复的矛盾。对于站点多 一方法是 多主控站点复制、物化视图复制及混合复 的情况不合适。避免主键重复的另 制。多主控站点复制也称为对等站点复制, 在每一站点采用相同的全范围的序列生成器, 其中每个站点都是主控站点,都需要与其他 将其与站点的惟一性标识作为复合主键。 当不同站点的事务在同一时间修改同一记 站点进行信息交流,各站点之间是平等的。 在设计时需尽可能避免 允许所有主站点对主表有更新操作的权力。 录时将导致更新冲突, 更新冲突. 数据库内建的冲突解决功能不能解 任何一个主站点上的复制表的更新都会被传播 对主键的修改、 违反参考一致性 并被直接应用到其它所有主表。一个主站点 决删除冲突、 出现问题,不会对其它主站点之间变化的传 等冲突。这些需要通过应用的实际解决。 播造成影响。物化视图复制包含一个主控站 3. 3 复制机制的应用设计 考虑到各校区的流动不大,整个系统对 点、 一个或多 个物化视图 站点, 物化视图中 的内容可以为目 标主对象在某个时间 点的全部 数据的实时性要求不高,可以容忍一定的数 拷贝或部分拷贝,其中目 标主对象既可以是 据的延迟和不一致,因此可采用可靠性高、 主 控站点 上的表也可以 是物化视图 站点上的主 资源要求较低的异步复制方案。在具体实施 物化视图。混合复制包含多个主控站点和多 上,采用混合配置来满足不同层次数据复制 个物化视图站点,是主控站点复制和物化视 的 需 求 。 对于系统的全局数据,例如学生的基本 图复制的结合体,适合于复杂的业务情况。 信息等,各校区的局域网均可访问到,任何 校区的局域网 对全局数据的更新都可反映到其 3 数据库复制的设计 他校区的局域网上。考虑到信息量大,在每 3, 数据复制分布设计 1 在各 如何分布和设计数据库需视具体工程应 个校区的局域网内设计一个中心站点, 用的地理分布、组织关系、数据量、资金 中心站点之间采用多主控站点复制模式进行全 和对数据的安全性等情况而定。数据库复制 局数据的共享和复制。这样的设计增加了系 的设计要尽可能简单,关系简化, 减少维护 统的冗余性,大大增加了故障发生时系统的 可用性,且减少了网络通信量,降低了发生 〕 《3丫 } 以刁 A丁0 人 卜〕 EC 冲 ) N「 M 1
浅谈ORACLEEBS系统克隆技术的应用

_
Q e e U U S
a
ST E
a o e n I = c l e . d _ a ,” ) - d - a e rpa ( n e n me ,” n _ n cao ,
an d n m 2rpae .oen m 2 ,”; .o e a e-el ( nd_ a e ,” 】 ca
_
4在/ m / pt t . h e p ls下 o a e 执行脚 本 c ccnsl ml . a q
e h c tl gb c u p e e wd /¥ . ” c o”a o a k p ic p ’i. a t ;
d n o e
slu p/ q ls p s p a *
创建 跟 踪文 件到 共享 存储( S  ̄,但 是在 测试 环境 中,并 没有 A M)a
AS ,所 以需要 取消 bok cag akn 特性 。bokca g M l hn et ci c r g lc h e n
2执行 p ldfcoe lp si ,注 意 回答相 关 问题 。 . r a g n pa e c l . pTe r 3更新 并发管 理器 表 。 .
c < OM M O d C N T OP / ln / i > co ebn
_
恢复 的时 间和 比率 ,执 行完 成后 ,数据 库 的数据 文件 就 已经恢 复
到 了测 试服 务器 下 。 4取 消 b c ag ak g特 性。 因为在 生产 环境 中使用 了 . l kc n erci o h t n R n的新 特性 bokca g ak g l kcag ak g 求 ma lc hn erci .bo ne rci 要 t n c h t n
oracle database replay 原理

oracle database replay 原理摘要:1.Oracle Database Replay 简介2.Oracle Database Replay 原理3.Oracle Database Replay 的应用场景4.Oracle Database Replay 的优势和局限性正文:【Oracle Database Replay 简介】Oracle Database Replay 是Oracle 数据库的一个功能,它可以在不影响生产环境的情况下,对数据库进行测试和实验。
通过复制生产环境的数据和事务,使得测试环境与生产环境保持一致,从而可以在测试环境中进行各种测试和调整,而不会对生产环境造成影响。
【Oracle Database Replay 原理】Oracle Database Replay 的原理是基于Oracle 数据库的复制技术,通过复制生产环境的数据和事务,将其重放(replay)到测试环境中。
具体来说,Oracle Database Replay 通过记录生产环境中的数据变化和事务,然后将这些记录应用到测试环境中,使得测试环境与生产环境保持一致。
这个过程分为两个阶段:第一个阶段是记录生产环境中的数据变化和事务,这个阶段由Oracle Database Replay 的Replay Server 完成。
Replay Server 会监控生产环境中的数据变化和事务,并将这些信息记录下来。
第二个阶段是将记录的信息应用到测试环境中,这个阶段由Oracle DatabaseReplay 的Replay Client 完成。
Replay Client 会读取Replay Server 记录的信息,然后将这些信息应用到测试环境中,使得测试环境与生产环境保持一致。
【Oracle Database Replay 的应用场景】Oracle Database Replay 可以用于以下场景:1.数据库性能测试:通过在测试环境中重放生产环境的数据和事务,可以测试数据库的性能,从而找出性能瓶颈,进行优化。
oracle copy from参数

《深入解析Oracle中的Copy From参数》在Oracle数据库中,Copy From参数是一个非常重要的功能,它可以帮助用户在不同的数据库之间轻松地复制数据。
通过Copy From参数,用户可以将数据从一个数据库复制到另一个数据库,而且操作相对简单,方便快捷。
一、Copy From参数的作用在Oracle数据库中,Copy From参数主要用于实现数据库之间的数据复制。
它可以帮助用户将一个数据库中的数据复制到另一个数据库中,无论是在同一个服务器上,还是在不同的服务器上,都可以轻松搞定。
这对于在不同数据库之间进行数据同步、数据迁移以及备份恢复非常有帮助。
二、使用Copy From参数的步骤1. 连接源数据库和目标数据库在使用Copy From参数进行数据复制之前,首先需要连接源数据库和目标数据库。
用户需要在源数据库中执行一些特定的命令来准备数据,然后连接目标数据库并执行Copy From参数命令来完成数据复制的操作。
2. 执行Copy From参数命令执行Copy From参数命令时,用户需要指定源数据库和目标数据库的连接信息,以及要复制的数据表和字段等相关信息。
在执行命令的过程中,用户还可以根据实际需求进行一些参数配置,如过滤条件、数据转换等,以满足不同的复制需求。
3. 监控复制过程在数据复制过程中,用户需要及时监控复制的进度和状态,以确保复制过程能够顺利进行。
如果在复制过程中出现了一些错误或者异常情况,用户还需要及时处理,以避免数据的丢失或者损坏。
三、Copy From参数的个人观点和理解Copy From参数是Oracle数据库提供的一个非常实用的功能,它可以帮助用户解决数据库之间数据复制的难题,简化了数据迁移和备份恢复的操作流程。
通过Copy From参数,用户可以高效快速地完成数据复制,减少了人工操作的繁琐,提高了工作效率,降低了出错的概率。
总结回顾:通过本文对Oracle数据库中Copy From参数的深入探讨和介绍,相信读者对于该功能有了更全面、更深入的理解。
oracle copy的用法

一、什么是Oracle Copy?Oracle Copy是一种数据备份和复制技术,它可以将数据库中的数据复制到其他存储介质中,以便在需要时进行恢复或迁移。
Oracle Copy 可以用于在同一数据库实例中创建备份,也可以用于将数据复制到其他数据库实例中。
它是Oracle数据库管理中常用的工具之一,可以帮助用户更好地保护数据库中的数据,确保数据的安全和可靠性。
二、Oracle Copy的使用场景1.备份数据使用Oracle Copy可以将数据库中的数据备份到磁盘、磁带或云存储中,以防止数据丢失或损坏。
备份数据可以用于恢复意外删除或损坏的数据,也可以用于数据库迁移或升级。
2. 数据迁移当需要将数据库中的数据迁移到其他数据库实例中时,Oracle Copy可以帮助用户将数据复制到目标数据库中,保证数据的一致性和完整性。
这对于数据库升级、迁移或合并非常有用。
3. 数据复制有时用户需要将数据库中的部分数据复制到其他位置进行分析或处理,Oracle Copy可以帮助用户实现数据的复制和传输,确保目标数据的完整性和准确性。
4. 灾难恢复在数据库遭受灾难性损失时,可以使用Oracle Copy进行数据库恢复,将备份数据恢复到原始状态,以减少损失并确保业务的连续性。
5. 测试和开发在测试和开发环境中,可以使用Oracle Copy复制生产环境中的数据,以便开发人员进行测试和开发工作,而不会影响生产环境中的数据。
三、Oracle Copy的使用方法1. 使用RMAN备份Oracle提供了强大的备份和恢复工具RMAN(Recovery Manager),可以通过RMAN进行数据库备份和复制。
用户可以通过RMAN创建全量备份、增量备份或归档日志备份,以及将备份数据复制到其他位置。
2. 使用expdp和impdp工具expdp和impdp是Oracle提供的数据导出和导入工具,可以通过这些工具将数据库中的数据导出到文件中,然后再将导出的数据文件导入到其他数据库中,实现数据的复制和迁移。
oracle数据库replication功用的实现

高级复制什么是复制?简单地说复制就是在由两个或者多个数据库系统构成的一个分布式数据库环境中拷贝数据的过程。
高级复制,是在组成分布式数据库系统的多个数据库中复制和维护数据库对象的过程。
Oracle 高级复制允许应用程序更新数据库的任何副本,并将这些更改自动传递到其他数据库,同时确保全局事务处理的一致性和数据完整性。
同步复制,复制数据在任何时间在任何复制节点均保持一致。
如果复制环境中的任何一个节点的复制数据发生了更新操作,这种变化会立刻反映到其他所有的复制节点。
这种技术适用于那些对于实时性要求较高的商业应用中。
异步复制,所有复制节点的数据在一定时间内是不同步的。
如果复制环境中的其中的一个节点的复制数据发生了更新操作,这种改变将在不同的事务中被传播和应用到其他所有复制节点。
这些不同的事务间可以间隔几秒,几分种,几小时,也可以是几天之后。
复制节点之间的数据临时是不同步的,但传播最终将保证所有复制节点间的数据一致。
一、实现数据库复制的前提条件1、数据库支持高级复制功能您可以用system身份登录数据库,查看v$option视图,如果其中Advanced replication为TRUE,则支持高级复制功能;否则不支持。
2、数据库初始化参数要求①、db_domain = 指明数据库的域名(默认的是WORLD),这里可以用您公司的域名。
②、global_names = true它要求数据库链接(database link)和被连接的数据库名称一致。
现在全局数据库名:db_name+”.”+db_domain③、有跟数据库job执行有关的参数job_queue_processes = 1job_queue_interval = 60distributed_transactions = 10open_links = 4第一行定义SNP进程的启动个数为n。
系统缺省值为0,正常定义范围为0~36,根据任务的多少,可以配置不同的数值。
Oracle流复制技术的应用

电信 专 线 如 果 中断 ,两 边 的 服 务 器 可 正 常 工 作 ,只是 数 据不能 实时 复 制 。电 信专 线 修 复后 ,再
启 动 数 据 同 步 ,O al rc e将 自动 双 向 复 制 未 同 步 数据 。
方案 说 明 : 总 院与分 院各 自有一 套 独立 的数据 库 系统 ,两 院之 间 的连接采用 电信 专线 连 接 ,正 常 工作 时 两 院 的 工作 站 只 访 问 本地 的数 据 库 ,通 过 O al1 g的 rc 0 e
数 据 容 灾 系统
全面的异地容灾系统意味着除了要实现本地的
看 ,要求系统在几分钟甚至更少的时间恢复正常使 用 ,这就要求有一个备用系统来接替出现故障的系
C ieeJunl fH at Ifr t s n nae et u e 0 8 o. hns ora o el no i dMa gm n ,Jn ,2 0 ,V 1 h mac a 5,N . o3
从 数据安 全上看 ,对 于造 成数 据 损毁 和 破坏 的
宽 的专线 ,但 费用 比较高 ,即使这 样 ,速 度 又怎 能
与本地数据库相 比,最可怕的是 ,一旦分院与分院 之 间的 网络 断 开 ,那 么业 务 系 统 就 只 能 停 止运 行 , 而流复制就能很好的解决这个问题 。要求每个分院 都 使用 自己本地 的数 据库 ,解 决 了性 能 问题 ,这个 分院之间的网络甚至使用 A S D L类似 的低价方案也 可 以达 到 目的 ,避免 了大笔 的 网络费用 。
中 国卫 生 信 息管 理 杂 志 20 0 8年 6月 第 5卷 第 3期
41
切 换保 护外 ,更 要 实现数 据 的实 时异 地 复 制 和业 务 系统 的实时远 程切换 ,在 一定 程 度上 可 以接替 本 地
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle数据库高级复制技术的应用
在简要说明数据库复制技术的基础上,主要探讨了oracle数据库高级复制的几种方法,介绍了多主复制和可更新快照复制两种机制的设计步骤,并将实际应用中可能出现的问题进行列举,最后给出一个可更新快照复制实例。
标签:Oracle数据库;高级复制;应用
一些大的信息系统往往由多地的不同用户同时使用,由相距较远的多个站点构成的广域网,并且各个站点之间需要数据共享,通常将这些共享的数据存储在其中一个站点上,作为数据中心,所有用户都从该站点存取数据。
这种方案很容易就能保证数据一致性,但会造成数据中心的负载过大,使远程用户的数据响应很慢,甚至造成系统瘫痪。
数据复制技术可以有效地解决这个问题,它通过将这些共享数据复制到多个不同站点的数据库中,实现数据的本地访问,减少网络负荷,并提高数据访问的性能,而且通过数据同步,确保数据实时性和一致性[1]。
该技术适用于用户数较多、地理分布较广、而且需要实时地访问相同数据的应用模式。
Oracle数据库的复制是由数据库的后台进程自动实现的,通过设置数据库参数,确定后台负责复制任务的进程数和被激活的时间。
数据库的后台进程是由系统按设定的时间间隔执行预定的操作,以实现数据定期地从源数据库到目标数据库的传输,并由系统进行控制。
Oracle数据库复制支持基本复制和高级复制两种形式,这里主要讲述Oracle高级复制技术在应用时的设计,以及可能遇到的问题和解决办法。
1 基本概念
Oracle高级复制,即对称复制,既可支持整个表的复制也可支持基于部分表的复制两种复制方案,其主要是通过多主复制和可更新快照复制两种机制实现的。
同时还可以将这两种复制机制结合起来以满足不断变化的业务需求。
2 高级复制设计步骤
2.1 多主复制
(1)创建复制环境,明确高级复制的站点和参与复制的数据表;保证各站点具有复制关系的表结构的一致性;(2)使用数据库复制管理器,定义参加复制的站点,在复制的各站点,建立包含复制实体的用户和复制的数据库链路,建立复制的管理用户,配置数据更新的计划;(3)建立主复制组,不同的需参与复制的实体可加入不同的组中;(4)给用户分配适合的权限,防止由于用户权限过大而造成的复制冲突。
2.2 可更新快照复制
(1)创建复制环境,明确高级复制的站点、参与复制的数据表和可更新快照复制的站点;保证各站点具有复制关系的表结构的一致性;(2)在复制的各站点建立快照管理用户,建立包含可更新快照实体的用户和复制的数据库链路,配置数据更新的时间和间隔;(3)在主站点建立快照日志;(4)在复制点建立必要的更新组;(5)建立快照组,快照组可包含表、存储过程、包、函数、同义词、视图等实体;(6)给用户分配适合的权限,防止由于用户权限过大而造成的复制冲突。
[3]
3 需要注意事项
3.1 确保网络连接的稳定。
如果服务器网络连接中断,则造成数据无法访问和传输;网络不稳定,会导致数据传输过程中出现丢包现象,影响数据的完整性。
3.2 要有较高的网络传输速度。
各个站点之间要进行大量的、频繁的数据传输,速度过慢的话将影响其访问速度。
3.3 服务器应保持开机状态或定时开机。
否则会造成大量的延迟任务,无法进行数据发布。
3.4 不能在参与复制的表上面直接执行DDL语句。
因为ORACLE自动在参与复制的表上建立了支持复制的TRIGGER和PACKAGE,在其上面直接执行任何DDL语句都会破坏这些复制支持。
应该先SUSPEND要修改表所在的复制组,在REPICATION MANAGER中或调用REPCAT API执行DDL语句,然后重新GENERATE该表的复制支持,最后将复制组状态恢复为NORMAL。
注意一定要在修改表结构的DDL语句中的表名前带上属主,并且最后不加分号。
若直接执行了DDL语句,应先将该表移出复制环境删掉,再重新建立或复制表。
3.5 如需要在表中增加字段并设置默认值时,在9i之前的版本中要分成两部分执行,不能一次执行。
例
ALTER TABLE owner.table_name ADD field_name
ALTER TABLE owner.table_name MODIFY field_name DEFAULT ‘abc’
因为在高级复制环境中,执行任何DDL语句,都需要SUSPEND复制组,此时复制表只能查询,不能再执行DML语句。
如何在一个SQL语句中执行添加字段同时赋缺省值,则添加字段后插入缺省值的DML操作不会执行,并且报错。
分成两步操作能解决该问题。
3.6 执行任何对复制环境的管理命令前,都要保证此时没有堆积的DEFERRED TRANS。
3.7 ADMIN REQUEST(对复制环境的管理命令)须一步一步执行。
用一个
REPCATLOG表保存ADMIN REQUEST语句,从第一条到最后一条顺序执行,只有执行完上一条后才能执行下一条。
每次发出ADMIN REQUEST后,都要检查REPCATLOG表是否为空,只有当所有的REPCATLOG表都为空后,才能将复制组设置为NORMAL,发出下一条命令。
3.8 如果REPCATLOG表中有无法执行的命令,可以APPL Y或PURGE掉,再重新执行命令。
若只是其中一个节点上有遗留命令,则可在该节点上多执行几次APPL Y。
3.9 当出现死锁现象时,可以先尝试中断掉该ADMIN REQUEST对应的任务,重新刷新命令,若能继续执行,则恢复任务,否则从V$SESSION 和V$LOCK 中查出死锁进程,用ALTER SYSTEM KILL SESSION 将其杀掉。
如果无法杀掉,则需查出类型为’RQ’的分布式死锁,根据SID查出对应的后台进程,从操作系统中杀掉后台进程,最后再恢复任务和相关复制环境的状态。
4 实际应用
某地下水监测系统由省级主站、市级分站和县级分站组成,数据存储采取省级数据中心和市级数据中心分布式存储,均采用Oracle数据库,以确保全省数据储存的快速、稳定、安全。
各市分站只为本市所辖县级分站提供存储服务,并将所有测报数据传送汇总到省级主站数据中心,同时其为各市级分站数据实现异地备份,提供跨地市数据查询,当各地市分站数据出现故障时,可从省级主站读取数据,恢复数据。
整个数据同步机制主要采用Oracle复制技术的可更新快照机制。
整个分布式数据库系统采用的是“一主多从”的结构(如图1),设置省级主站的数据库系统为主数据库,各市分站的数据库系统为从数据库。
使用Oracle系统中的增量复制技术,定时或手动进行主数据库与从数据库的数据更新。
从数据库复制到主数据库的是全部数据,只要从数据库中的数据有变化,就会反映到主数据库中;主数据库复制到从数据库的是与本市分站相关的测报数据。
5 结束语
分布式数据库系统适应于地理上分散而管理上又有不同程度集中的大型信息系统的需求,Oracle高级复制机制提供了高可靠性、高可用性以及改善了系统的性能,同时也提供了很好的各数据中心数据同步实现方案。
在具体应用中,也还有许多比较复杂的问题需要解决,需要逐步探索、深入研究。
参考文献
[1]郑振楣,于戈,郭敏.分布式数据库[M].北京:科学出版社,1998
[2]丁铖.Oracle8/8I数据库系统原理[M].北京:人民邮电出版社,2001
[3]胡桂香.数据库复制的设计和管理[J].电子工程师,2002,(5)
作者简介:李丽(1981-),女,汉族,河南新乡人,焦作师范高等专科学校教师,本科学士学位,研究生学历,研究方向:计算机应用。