『Oracle复制技术系列白皮书』Oracle数据库复制软件白皮书(三)

 『Oracle复制技术系列白皮书』Oracle数据库复制软件白皮书(三)

DDSOracle Redo Logs

基于日志分析的实时复制技术

DDS 通过分析 Oracle redo log 获得实时交易信息,完成 schema table 级别的数据复制。区别于早期的日志分析技术, DDS 对日志的整合和传输以交易为单位,使用该技术,在拥有高性能的同时还能更好的保证数据传输的一致性和完整性。对生产数据库也不会增加负载。
DDS Oracle redo logs 里面获取所有的数据库改变信息。通过对信息的分析整合, DDS 将完整的交易信息复制到目的端。
DDS 不是等待 Oracle redo log 文件写满之后再处理,而是随时读取其数据块内容,间隔时间可以用参数指定,一般是秒级。 DDS 也不会复制 Oracle redo log 的全部内容到目的端数据库,除指定复制对象(数据表)相关的 DML/DDL 操作之外,其他的信息将丢弃处理。
为了避免可能出现的复制错误,用户需要打开数据库的 supplemental logging force logging 参数以便 DDS 能获取完整的数据信息。
置于裸设备或文件系统(包括 ocfs )中的 Oracle redo log 可以被 DDS 正常读取。如果用户使用的是 Oracle 10g ,并且将 redo log 保存在 ASM (一种新的 Oracle 存储格式)中,则需要在裸设备或文件系统上手动创建一组与原有日志同步的 redo log member ,供 DDS 复制使用。

Online Archived Redo Logs

Oracle 有两种类型的日志:在线日志和归档日志。一般情况下, DDS 从一组在线日志读取信息,因此,不要求 Oracle 数据库必须打开归档日志。但在某些特殊情况下, online redo log 没来得及分析就被覆盖,此时,如果 Oracle 是归档模式,则 DDS 将从归档日志读取需要的信息。
 

复制对象和数据定位

复制对象的指定

DDS 支持两种级别的复制: 1. 用户( schema )级复制; 2. 表级复制。
用户级复制表示源端数据库指定用户( schema )下的所有表、视图、索引、过程、函数、包、序列等数据对象全部复制到目标端数据库指定的用户下。表级复制表示源端数据库指定用户( schema )下的单个表复制到目标端数据库指定用户下的单个表。
在使用 DDS 时,用户通过编辑配置文件指定源端和目的端复制对象的映射关系,包括源端对象名,目的端对象名,目的主机编号等。源端和目的端对象名称可以不同,但结构必须一致。软件运行过程中,复制对象的映射参数会驻留内存, DDS 通过日志分析过滤,只处理指定复制对象有关的交易,其它用户或表的操作信息则被丢弃。

Rowid mapping

早期的数据库逻辑复制软件要求被复制的数据表有主键索引,通过 where 子句查询的方式来定位 DML 操作的目标行。这种方法在数据修改较多或者表内行数较多的应用环境,特别是 Update 操作频繁的情况下,效率较低。
为了满足海量数据系统的应用要求, DDS Oracle 内部 rowid 为参照进行复制数据定位。系统在初始化过程中会自动创建源端数据行和目的端数据行的 rowid mapping 映射表,为二进制格式,系统根据该映射关系找到 DML 操作的目标行。 Rowid 定位技术在海量数据环境下处理 Update Delete 操作具有较大的性能优势。
 
 

你可能感兴趣的:(oracle,职场,复制,休闲,容灾)