Oracle高级复制技术及其实现
Oracle12C新特性之PDB热克隆(本地克隆、远端异机克隆)

Oracle12C新特性之PDB热克隆(本地克隆、远端异机克隆)说明:版本12.2.0.112c r1版本中 clone ⼀份PDB源库需要打开在read only只读模式 , 在12c r2版本中引⼊了local undo mode, 源PDB在read/write 读写模式也可以 clone 。
local undo mode 也是oracle推崇的模式。
说明: shared undo 与 Local undo 模式切换可以参考 /zhang123456456/article/details/71374528要求:1、 Archive Log Enabled2、 Local Undo Enabled3、 destination CDB must have a public database link to the source CDB,have sufficient privileges to use the database link.⼀、克隆本地pdb[oracle@12c ~]$ sqlplus / as sysdba-- 检查是否开启 local undoSQL>col PROPERTY_NAME for a25;col PROPERTY_VALUE for a25;select PROPERTY_NAME,PROPERTY_VALUE from database_properties where property_name='LOCAL_UNDO_ENABLED'; PROPERTY_NAME PROPERTY_VALUE------------------------- -------------------------LOCAL_UNDO_ENABLED TRUESQL> show pdbsCON_ID CON_NAME OPEN MODE RESTRICTED---------- ------------------------------ ---------- ----------2 PDB$SEED READ ONLY NO3 PDB01 READ WRITE NOSQL> show parameter pdb_file_name_convertNAME TYPE VALUE------------------------------------ ----------- ------------------------------pdb_file_name_convert string-- clone pdb 数量为⼀,注意这⾥ pdb_file_name_convert 参数⽣效级别设置的是 session ,如有需要,⾃⾏设置为全局SQL> alter session set pdb_file_name_convert='pdb01','pdb02';Session altered.SQL> create pluggable database pdb02 from pdb01;Pluggable database created.SQL> alter pluggable database pdb02 open;Pluggable database created.SQL> alter pluggable database pdb02 close immediate;Pluggable database altered.-- clone pdb 数量为多SQL> alter session set pdb_file_name_convert='pdb01','pdb02,pdb03';Session altered.SQL> create pluggable database pdb03 from pdb01;Pluggable database created.SQL> show pdbsCON_ID CON_NAME OPEN MODE RESTRICTED---------- ------------------------------ ---------- ----------2 PDB$SEED READ ONLY NO3 PDB01 READ WRITE NO4 PDB02 MOUNTED5 PDB03 MOUNTEDSQL> alter pluggable database pdb02 open;Pluggable database altered.SQL> alter pluggable database pdb03 open;Pluggable database altered.SQL> show pdbsCON_ID CON_NAME OPEN MODE RESTRICTED---------- ------------------------------ ---------- ----------2 PDB$SEED READ ONLY NO3 PDB01 READ WRITE NO4 PDB02 READ WRITE NO5 PDB03 READ WRITE NO⼆、克隆远程pdb--源端SQL> create user c##andy identified by andy container=all;User created.SQL> grant dba to c##andy container=all;Grant succeeded.-- ⽬标端cdb执⾏SQL> create database link clonePdb connect to c##andy identified by andy using '(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP) (HOST = 10.219.24.17)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = pdb01)))';Database link created.-- 源端SQL> show pdbsCON_ID CON_NAME OPEN MODE RESTRICTED---------- ------------------------------ ---------- ----------2 PDB$SEED READ ONLY NO3 PDB01 READ WRITE NO-- ⽬标端cdbSQL> show pdbsCON_ID CON_NAME OPEN MODE RESTRICTED---------- ------------------------------ ---------- ----------2 PDB$SEED READ ONLY NO3 PDB01 READ WRITE NO4 PDB02 READ WRITE NO5 PDB03 READ WRITE NOSQL> alter session set pdb_file_name_convert='pdb01','pdb04';Session altered.-- 通过 dblink 克隆源端的 pdbSQL> create pluggable database pdb04 from pdb01@clonePdb;Pluggable database created.SQL> show pdbsCON_ID CON_NAME OPEN MODE RESTRICTED---------- ------------------------------ ---------- ----------2 PDB$SEED READ ONLY NO3 PDB01 READ WRITE NO4 PDB02 READ WRITE NO5 PDB03 READ WRITE NO6 PDB04 MOUNTEDSQL> alter pluggable database pdb04 open;alter pluggable database pdb04 open*ERROR at line 1:ORA-14694: database must in UPGRADE mode to begin MAX_STRING_SIZE migrationSQL> ho oerr ora 1469414694, 00000, "database must in UPGRADE mode to begin MAX_STRING_SIZE migration"// *Cause: An attempt was made to update the MAX_STRING_SIZE parameter// to EXTENDED when the database was not in UPGRADE mode.//* Action: Restart the database in UPGRADE mode, modify the parameter,// run the utl32k.sql script in $ORACLE_HOME/rdbms/admin, and// restart the database in normal mode.说明:这个报错的原因是⽬标端使⽤了12c的新特性extended data type ,源端没有使⽤这个新特性,从源端克隆过来的pdb需要扩展extended data type 新特性与⽬标端保持⼀致。
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
Oracle数据复制技术研究

1 数据复制类型
复制技术是保持数据库间数据同步的一种机制 , 复制可以分成不同的类型, 主要包括 :
11 同一 数据 库 内的数据 复制 .
根据需要将一个数据库表中的数据复制到同一个数据库中的另一个数据库表中, 在此种情况下 , 复 制的数据 比较有限 , 以说是一种简单情况下的复制. 可 12 不在 同一 数据库 的 两个 表 间的数据 复制 . 此种情况下 , 需要将数据从源数据库表复制到 目标数据库表 , 这样可以有效地使用数据资源. 当目 标数据库存在时 , 可直接将数据复制到 目标数据库中; 当目标数据库不存在时, 可先创建 目标数据库 , 然 后将数据复制过来.
包括语句级触发器 (te etl e 和行级触发器( o — v1两类. S t n-e 1 am v) Rw l e) e 一般来说 , 语句级触发器针对触发 事件只能发生一次 , 而行级触发器可针对每一行进行触发.
如果所需的数据复制十分有限, 就可以使用数据库触发器在表之间复制数据. 通常 , 只有发送到远
圈 1 简 单 快 照
图 2 复 杂 快照
由于快照将在本地数据库中创建一些对象 , 因此 , 创建快照的用户必须要有 c a b 权限和 u — r tt l e ea e n l idt l pc 权限或存储快照对象的表空间的定额. i t be ae me a s 快照在本地数据库中创建并从远程主数据库获
2 数据 复制方法
用于复制的方法有几种 , 具体使用哪种方法取决于用户想要使用的 Oal 功能. r e c 本文主要介绍使
用触发器和使用快照这两种方法.
收稿 日期 :0 1 o 一 O 2 1一9 l
作者简介 : 李颖( 95 ) 女 , 17 一 , 吉林四平人 , 吉林师范大学计算机学院讲师
用ORACLE的高级复制实现内外网数据同步

用ORACLE的高级复制实现内外网数据同步本文简要介绍了ORACLE的高级复制功能,并通过一个实际项目,讨论了在内外网的两级DB 中如何采用高级复制达到内外网的数据统一,最后给出配置脚本供大家参考。
1、基本概念ORACLEORACLE是以高级结构化查询语言(SQL)为基础的大型关系数据库,通俗地讲它是用方便逻辑管理的语言操纵大量有规律数据的集合。
是客户/服务器(CLIENT/SERVER)体系结构的数据库之一。
高级复制什么是复制?简单地说复制就是在由两个或者多个数据库系统构成的一个分布式数据库环境中拷贝数据的过程。
高级复制,是在组成分布式数据库系统的多个数据库中复制和维护数据库对象的过程。
Oracle 高级复制允许应用程序更新数据库的任何副本,并将这些更改自动传递到其他数据库,同时确保全局事务处理的一致性和数据完整性。
同步复制,复制数据在任何时间在任何复制节点均保持一致。
如果复制环境中的任何一个节点的复制数据发生了更新操作,这种变化会立刻反映到其他所有的复制节点。
这种技术适用于那些对于实时性要求较高的商业应用中。
异步复制,所有复制节点的数据在一定时间内是不同步的。
如果复制环境中的其中的一个节点的复制数据发生了更新操作,这种改变将在不同的事务中被传播和应用到其他所有复制节点。
这些不同的事务间可以间隔几秒,几分种,几小时,也可以是几天之后。
复制节点之间的数据临时是不同步的,但传播最终将保证所有复制节点间的数据一致。
2、项目情况需求描述这是一个内外网结构的审批系统。
外网有一个WEB(+APPSERVER),一个DB(ORACLE9.2,双网卡),负责接收申报和反馈审批结果。
内网有一个WEB(+APPSERVER),一个DB(ORACLE9.2,双网卡),负责接收申报和反馈审批结果,以及通过审批流程处理来自外网的审批申报。
由上可知,内网功能包括外网功能,不过外网申报需要CA认证,内网则不需要。
根据国家保密有关规定,政务系统的内外网必须物理隔绝,所以外网接收到的申报并不能马上反应到内网,同理,内网的处理结果也不能迅速反馈到外网。
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高级复制技术及其实现

收稿 日期 : 0-71 2 60.1 0 作者简 介: (99)女 , 王卓 1 -, 山西太原人 , 昌大学软件学院助教 , 7 南 硕士研究生 , 研究方 向 : 分布式 数据库 。
维普资讯
2O 年 第 l期 O6 1
王 卓:r l高级复制技术及其 实 Oae c 现
有 ”这些要复制的数据仅能 被该节 点更新 , 他节点 向拥 有 , 其 该数据 的主节点订阅数据 , 这意 味着他 们在本 地系 统上 只能
够存 取这些复制数据的只读拷贝。
() 2动态所有权 : 步更新将复制数据从 一个节点移 到另 异
一
个 节点 , 而在该 过程 中, 必须保证在 同一 时刻只有一个 特定
数据复制到另一系统, 可以起到对主系统的崩溃提供保护的
作用 , 这也就是所说 的 FiOe系统 , a.v l r 如果 主系统 出现 问题 , 业务依 旧可 以通过复制数据库进行 。
1 O al数据 复制应用模 型 rc e
为确保实际应用数据的一致性 , 必须在异步复制
2 rc O al e高级 复制配置
17 0
起来以满足不断变化的业务需求。
() 主复制 。支持全表在各个 主节点间 的对称 复制 , 1多 允
3 技术实现细节。 .
() 1 在数据库 2 XT ) ( JU 上增加数据库 1R DB ) sncs ( 工 A 的 ede nm , g e 可以直接在 伽 eis rc
ORACLE数据库复制

ORACLE数据库复制ORACLE数据库高级复制一、数据库复制概述复制,顾名思义就是将数据库中的数据拷贝到不同物理地点的数据库中。
在很多生产环境中,经常遇到一些大量得数据,这些数据只用作查询统计功能。
例如:历史告警,历史性能指标,历史事件,等等。
这种数据的特点是:只读不写,数据量相当大,一旦查询大结果集的数据时,对数据库的IO,内存缓存占用相当大,会严重影响同一个数据库的其他会话的操作,表现为整个数据库反应迟缓,业务功能不可用。
采用复制技术后,将这些大型数据复制到另外一个数据库中,对这些大数据的查询统计操作放在另外的一台数据库服务器上进行,即使受影响,也只是影响局部的查询统计功能,其他正常的业务处理不受影响。
但是,使用复制技术的话,意味着一个系统中,至少存在两个数据库(集群的数据库也当成一个数据库),对应的应用程序也需要建立多个数据库连接,能够根据业务需要,访问不同的数据库。
ORACLE数据库自身提供有复制功能,只需要进行配置即可实现。
ORACLE提供有三种复制技术:高级复制(Advanced Replication)流复制(Streams Replication)备库(Dataguard)备库的方式,就是数据库对数据库的备份方式,主要是解决容灾的,不讨论此话题。
流复制主要是利用ORACLE的归档日志,进行增量备份来实现的,不仅可以配置只复制某些表,还可以配置仅复制某些表上的ddl或dml。
可以复制到表,用户,数据库级别。
高级复制主要是基于触发器的原理来触发数据同步的,因此,高级复制无法实现用户,数据库级别的对象复制,只能做些表、索引和存储过程的复制。
如果出于容灾整个数据库的考虑,高级复制相当复杂,而且并不一定能做好,流复制的配置相对简单。
流复制是后来产生的复制技术,是基于日志挖掘技术实现的,对数据库的影响较低。
但在稳定性方面较差,实时性没有高级复制强(因为高级复制是基于触发器的)。
如果系统意外的话,流复制的恢复将会需要较长时间,特别是意外时间越长,恢复时间成倍增长。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
9
引
言
些又是不可更新的。
(!) 主站点 所 有 权: 异步复制数据被一个单一节点 “所 有” , 这些要复制的数 据 仅 能 被 该 节 点 更 新, 其他节点向拥有 该数据的主节点订阅 数 据, 这意味着他们在本地系统上只能 够存取这些复制数据的只读拷贝。 ( %) 动态所有权: 异步更新将复制 数 据 从 一 个 节 点 移 到 另 一个节点, 而在该过程中, 必须保证在同一 时 刻 只 有 一 个 特 定 的节点可以对数据进行更新。 (0) 共享所有 权: 整 个 系 统 可 以 存 在 暂 时 的 不 一 致, 同时 必须使用冲突检测和消除。 (&) 备用 数 据 库 ( N,C.$*D/+) : 异步复制通过将一个主系统 数据复制到另一系统, 可以起到对主系统的崩溃提供保护的 作用, 这也就是 所 说 的 N,C.$*D/+ 系 统, 如 果 主 系 统 出 现 问 题, 业务依旧可以通过复制数据库进行。
可支持基于部 分 表 的 复 制。 这 两 种 复 制 方 案 主 要 是 通过 *+,-./ 的两种复制机制来完成的, 即 多主复 制和 可更新快照复制, 同时还可以将这两种复制机制结合
收稿日期: %""#$"’件学院助教, 硕士研究生, 研究方向: 分布式数据库。
目前, 由于对 分 布 式 数 据 环 境 需 求 的 不 断 增 长, 越来越 多 的 应 用 提 出 了 数 据 复 制 的 需 求。 *+,-./ 数 据复制是实现分布式数据环境的一种技术, 通过在 不 同的物理站点拷贝数据来建立分 布 式 数据 环 境。 *+$ 也 称 为 对 称 复 制, 第 一 次 是 在 *+,-./ ,-./ 高 级 复 制, 在这 之前的 版 本中, ’ L ! L # 版本中出现的, *+,-./ 数 据 复制方法 仅 有 一 种 只 读 快 照 形 式 的 基 本 复 制 方 法。 随着 *+,-./ 版本的 每 一 次 升 级, 数 据 复 制 的 功 能、 管 理以及速度等 方 面 都 得 到 了 很 大 的 改 进 和 完 善。 本 文具体介绍 *+,-./ 高级复制技术及其具体实现方法。
!
复制技术的实现
下面主要介 绍 一 个 3%,*-# 快 照 复 制 的 具 体 实 现
及其技术细节。 ! 7 业务需求描述。
为了维护整个系统 基 本 数 据 表 的 一 致 性, 比如有这样的 而在其他位 业务需求, 对 /89:; 上 的 一 些 表 采 用 统 一 维 护, 置 (如数据库 <=>?, 用户 @A;0) 可 以 直 接 使 用 这 些 表, 也就是 删除和更 新 的 能 力, 而在其他地方 说在位置 ! 具有对表插入、 具有同步查询能力。
:
2%$&-" 数据复制应用模型
为确保实际应用数据的一致性, 必须在异步复 制
;
2%$&-" 高级复制配置
*+,-./ 高级 复 制 即 可 支 持 基 于 整 个 表 的 复 制 也
应用模型中考虑冲 突 避 免 或 者 冲 突 检 测 和 消 除 的 方 法。例如, 对于一 个 实 际 商 业 应 用, 首先必须在逻辑 上了解该商业应用 采 取 的 冲 突 避 免 方 法 和 在 某 个 节 点有哪些数据以及这些数据中哪些是可更新的, 而哪
5 7 技术实现细节。
(!)在数据库 2 ( <=>?) 上增加数据库 ! ( /89:;) 的 .#%JK*#. 可以直接在 (L.L,&#. 7 ’%, 文件中 增 加 数 据 库 ! 的 .#%JK*#. L,&#, 包括 M0 地 址, L,&#, @M9 以 及 端 口 号 等。 .#%JK*#. L,&# 命 名 为 %#) 7 N’%-"。 (2) 创建 一 个 用 于 连 接 数 据 库 ! ( /89:; ) 的数据库连接 ( "O-KLP) 。 9/30 0?:8M1 9;>;:;@D 8MAQ %#) 7 B%F R%’+) S %-"O,; C C 删 除 9,(,O,.# -KLP 1/D;>D 0?:8M1 9;>;:;@D 8MAQ %#) 7 B%F R%’+) S %-"O, 13AAD1> >3 %-"O, M9DA>MGMD9 :T ,"&KL ?@MAU V%-"O,V ; C C 1%#F ,(# 9,(,O,.# -KLP .#-#*( ! $%’& *,( S %#) 7 B%F R%’+) S %-"O,; C C >#.( (B# 9,(,O,.# (5)创建一 个 名 为 .L,).B’(F %-"O, 的 表 空 间 来 存 放 /89:; 快照, 并创建一个和该表空间有关的名为 @L,) 的用户。 1/D;>D >;:8D@0;1D W .L,).B’(F %-"O,W 83UUMAU 9;>;GM8D : D X 3/;18D X 3/;9;>; X 3/;YM X @A;0@H3>F /89:; 7 ’%, ’ @MZD 5IE9DG;?8> @>3/;UD( MAM>M;8 5IQ AD<> ![Q EMAD<F ;C C >DA>@ !II E;<D<>DA>@ ?A8MEM>D9 01>MA1/D;@D I ) 1%#,(# >,O-# .),*#1/D;>D ?@D/ .L,) M9DA>MGMD9 :T .L,) 9DG;?8> >;:8D@0;1D W .L,).B’(F %-"O,W ; C C 1%#,(# ?.#% KL (B# (,O-# .),*#F U/;A> 13AAD1> /D@3?/1D >3 .L,); C C R%,L( %’-# (’ (B# +.#% (6) 运行下面的 脚 本 文 件 .L,).B’( 7 .\- 来 生 成 用 户 表 的 快 照脚本: 1/D;>D @A;0@H3> >F TU=:<< 01>G/DD !I 01>?@D9 6I>;:8D@0;1D W.L,)*’.(F %-"O, W@>3/;UD( MAM>M;8 6I]^I AD<> [4566 01>MA1/D;@D I ) ?@MAU MA9D< /DG/D@H _M>H 0/MED/T QDTG3/ ?09;>D;@ .#-#*( TUM9, UZ:H, GZ=/8:, Z0,@<ZT,<1@ZT $%’& >F TU=:<< S %#) 7 B%F R%’+) S %-"O,;C C 1%#F ,(# .L,).B’( D<D1?>D 9:E@F @A;0@H3> 7 /DG/D@H(V.L,) 7 >F TU=:<< V) ([) 创建一个定时刷新过程来定时刷新快照: ‘ ‘ .)F .L,).B’(F %#$%#.B 7 .\- 1/D;>D 3/ /D08;1D 0/31DF 9?/D .)F .L,).B’(F %#$%#.B M@:DUMA9:E@F /DG/D@H 7 E;QD ( A;ED a b V >F TU=:<<V , 8M@> a b V .L,) 7 >F TU=:<<V , AD<>F 9;>D a b >/?A1( @T@9;>D c !)c 2 C 26,MA>D/d;8 a b ( V @T@F ; 9;>D c !) V,ME08M1M>F 9D@>/3T a b G;8@D,8;< a b >/?D) DA9 .)F .L,).B’(F %#$%#.B; D<D1?>D .)F .L,).B’(F %#$%#.B; C C De#*+(# (B# )%’*#"+%# @D8D1> =3:,_H;> G/3E 9:;F =3:@;C C 查询刚刚加入的 这个任务 .f.(#& 7 >F TU=:<< G3/ .L,) 7 >F C C 在用户 .f.(#& 下创建快照的私有同义词 TU=:<<; U/;A> @D8D1> 3A "&F RfF %f"& >3 .f.(#&; C C 向 .f.(#& 用户 授与快照 .#-#*( 的权限 1/D;>D @TA3ATE
2II^ 年第 !! 期
王卓: 3%,*-# 高级复制技术及其实现
起来以满足不断变化的业务需求。
(!) 多主复制。支持全表在各个 主 节 点 间 的 对 称 复 制, 允 许所有主节点对主表都有更新操作的权 利。 任 何 一 个 主 节 点 上的复制表 的 更 新 都 会 被 传 播 并 被 直 接 应 用 到 其 他 所 有 主 表。一个主节点出现 问 题, 不会对其他主节点之间变化的传 播造成 影 响。 多 主 复 制 采 用 一 种 称 为 “延 迟 远 程 过 程 调 用 ” 的机制作为主要的传播 ( "#$#%%#" %#&’(# )%’*#"+%# *,--. /01.) 和应用变化的机制。 可更新快照。 3%,*-# 将 最 早 3%,*-# 4 上 的 只 读 快 照 机 (2) 制扩展为一种允许快照更新的对称复制 机 制。 快 照 更 新 的 传 播方式和如何应用到快照主节点采用了和多 主 复 制 一 样 的 延 迟远程过程调用机制。快照在主节点的刷 新 是 按 照 一 定 的 时 间间隔或用户单独请求进行的。最后一次 刷 新 后 主 表 的 任 何 变化也同样被传播并应用到快照。多个快 照 的 刷 新 是 在 一 个 一致的事务中完成的, 这就确保了数据和引用的完整性。 混合配置。可以将 多 主 复 制 和 可 更 新 快 照 复 制 结 合 (5) 在一起, 构成一种新的混合配置, 这种配置 可 以 完 成 对 全 表 或 者子表的复制。 其他复制机制。过程级复制, 这种复制方案主要应用 (6) 在存在大量数据更新以及采取批处理方式操 作 数 据 时 需 要 复 制数据的情况。同步 复 制, 当 表 发 生 变 化 时, 3%,*-# 会 确 保 这 种变化能够成功地作 用 在 本 地 表 和 其 他 节 点 的 复 制 表, 如果 失败则整个事务会被成功回滚。 -KLP