oracle dds是什么

oracle dds是什么,第1张

2 DataGrid DDS产品介绍
21概述:
DataGrid DDS是基于分析oracle redo log技术的Oracle实时复制工具,具有简单灵活、高性能低成本的特点,部署和使用非常容易,对系统资源和运行环境的要求也非常低。DataGrid DDS能够帮助用户在复杂的应用环境下完成容灾备份、异构迁移、业务数据分发、基础数据整合集中等工作。
DataGrid DDS能做什么?
DataGrid DDS能够满足用户多种业务需求,主要有:
提高系统整体可用性
DataGrid DDS能够帮助用户提高Oracle数据库的可用性,无论是执行计划内停机(如系统升级、备份)还是遇到故障引起的非计划宕机(例如硬件故障、灾难、人为错误等),DataGrid DDS都能尽量减少宕机时间。提高可用性能够最大限度地减少数据丢失、经济损失和生产力的降低。
逻辑灾备和灾难恢复
对于大部分公司而言,灾备是一项巨大的工程,意味着高额的资金投入和人力成本。受到传统复制技术的限制,灾备必须拥有专用的硬件支持和专用的光纤传输链路,灾备距离和系统平台还有诸多的限制。此外,由于传统灾备系统的数据库不能随时打开使用,不但风险不能评估,而且巨大的投入也得不到回报。
DataGrid DDS使用逻辑数据复制技术,传递的是交易信息,因此传输数据量很小,保证了在低带宽环境下实现低延迟的Oracle数据异步复制,软件同时支持实时复制容灾和定时复制备份功能,是一种高效且低成本的数据库灾备方式。DataGrid DDS使用标准的IP网络进行通讯,灾备端的Oracle数据库可以部署在本地或远程容灾中心,距离没有限制。此外,由于复制的目的端数据库始终处于打开状态,因此,当生产数据库遇到计划内或非计划停机时,DataGrid DDS能够支持前端应用程序快速、无缝的切换到灾备数据库。与其它基于磁盘或文件系统的物理复制技术相比,不但省略了漫长的数据库recovery和启动时间,而且能够保证100%的切换成功率。
分担数据库负载
DataGrid DDS逻辑交易复制技术保证了目的端数据库始终处于可用状态,因此对于实时交易处理之外的只读应用,例如批量查询、报表处理、数据备份、统计分析等都可以交给复制的数据库处理。多种应用也不必在同一个交易数据库上争夺资源和时间窗口。生产系统运行和维护的压力得以释放,提高了稳定性,而不同的应用在分布的数据库上也可以得到分别的优化。
业务数据分发
DataGrid DDS能够完成企业范围内数据分发,从交易数据生产库实时复制到一个或多个本地或异地的数据库。DataGrid DDS支持多种数据分发拓扑结构,一对多,多对一,级联复制等。数据分发是一种典型的通过部署多服务器、多数据库来分担负载,提高响应速度的企业应用模式。
跨平台数据迁移
DataGrid DDS支持跨平台的数据传输,复制的源和目的系统可以在AIX、HP-UX、Solaris、Linux之间任意选择。DataGrid DDS同时支持Oracle 9i和Oracle 10g。对于用户来说,不但硬件平台的选择有很大的灵活性,也可以用DataGrid DDS来完成异构平台的数据库同步和迁移工作。
实时复制和批量复制
应用的需求影响着用户使用复制工具的模式,对于容灾和查询应用,连续的实时复制保证目的端数据库拥有和生产系统完全一样的数据状态;而对于定时备份、系统升级和定时分析等应用,用户则希望复制软件做到定时或周期性的批量数据迁移。在DataGrid DDS中批量复制和实时复制是相互独立又紧密结合的两个部分,通过管理员的 *** 作控制,DataGrid DDS完全满足用户在多种应用条件下的需求。
交易统计
DataGrid DDS在完成实时数据复制的同时,也跟踪到了数据库交易数量的变化,通过GUI界面,DBA可以随时查询到生产数据库在指定时间段的交易统计结果,通过分析这些数据,DBA能够量化生产数据库压力的变化,从而为数据库的扩容和升级提供了依据。
增强分析工具
DataGrid DDS提供了简单实用的数据库工具包,包括日志分析工具、文件分析工具、导入导出工具等,工具包能帮助有经验的DBA更深入的分析处理数据库的问题。
22DataGrid DDS技术原理
221DataGrid DDS和Oracle Redo Logs
基于日志分析的实时复制技术
DataGrid DDS通过分析Oracle redo log获得实时交易信息,完成schema或table级别的数据复制。区别于早期的日志分析技术,DataGrid DDS对日志的整合和传输以交易为单位,使用该技术,在拥有高性能的同时还能更好的保证数据传输的一致性和完整性。对生产数据库也不会增加负载。
DataGrid DDS从Oracle redo logs里面获取所有的数据库改变信息。通过对信息的分析整合,DataGrid DDS将完整的交易信息复制到目的端。
DataGrid DDS不是等待Oracle redo log文件写满之后再处理,而是随时读取其数据块内容,间隔时间可以用参数指定,一般是秒级。DataGrid DDS也不会复制Oracle redo log的全部内容到目的端数据库,除指定复制对象(数据表)相关的DML/DDL *** 作之外,其他的信息将丢弃处理。
为了避免可能出现的复制错误,用户需要打开数据库的supplemental logging 和force logging参数以便DataGrid DDS能获取完整的数据信息。
置于裸设备或文件系统(包括ocfs)中的Oracle redo log可以被DataGrid DDS正常读取。如果用户使用的是Oracle 10g,并且将redo log保存在ASM(一种新的Oracle存储格式)中,则需要在裸设备或文件系统上手动创建一组与原有日志同步的redo log member,供DataGrid DDS复制使用。
Online 和 Archived Redo Logs
Oracle有两种类型的日志:在线日志和归档日志。一般情况下,DataGrid DDS从一组在线日志读取信息,因此,不要求Oracle数据库必须打开归档日志。但在某些特殊情况下,online redo log没来得及分析就被覆盖,此时,如果Oracle是归档模式,则DataGrid DDS将从归档日志读取需要的信息。
222复制对象和数据定位
复制对象的指定
DataGrid DDS支持两种级别的复制:1用户(schema)级复制;2表级复制。
用户级复制表示源端数据库指定用户(schema)下的所有表、视图、索引、过程、函数、包、序列等数据对象全部复制到目标端数据库指定的用户下。表级复制表示源端数据库指定用户(schema)下的单个表复制到目标端数据库指定用户下的单个表。
在使用DataGrid DDS时,用户通过编辑配置文件指定源端和目的端复制对象的映射关系,包括源端对象名,目的端对象名,目的主机编号等。源端和目的端对象名称可以不同,但结构必须一致。软件运行过程中,复制对象的映射参数会驻留内存,DataGrid DDS通过日志分析过滤,只处理指定复制对象有关的交易,其它用户或表的 *** 作信息则被丢弃。
Rowid mapping
早期的数据库逻辑复制软件要求被复制的数据表有主键索引,通过where子句查询的方式来定位DML *** 作的目标行。这种方法在数据修改较多或者表内行数较多的应用环境,特别是Update *** 作频繁的情况下,效率较低。
为了满足海量数据系统的应用要求,DataGrid DDS以Oracle内部rowid为参照进行复制数据定位。系统在初始化过程中会自动创建源端数据行和目的端数据行的rowid mapping映射表,为二进制格式,系统根据该映射关系找到DML *** 作的目标行。Rowid定位技术在海量数据环境下处理Update和Delete *** 作具有较大的性能优势。
223分级存储和交易队列
DataGrid DDS在数据传输部分使用了分级存储机制,在遇到系统错误引起的复制中断时,例如硬件故障、数据库故障、网络中断或延迟,分级存储机制能完好的保存已经合成的交易信息,避免数据丢失。这些数据以二进制文件格式存储在文件系统的缓存目录下,直到系统故障解决。恢复从缓存文件传输的中断点开始。
源端和目的端分级存储
DataGrid DDS的分级存储分为两级:第一级在复制源端,第二级在复制的目的端。Redo log里边的交易的信息被整合成缓存文件后,首先存放到源端的一级缓存目录;然后经过网络通讯进程处理被发送到目的端系统下的二级缓存目录保存;最后由装载进程负责装载到目的端数据库中。
在网络传输出现中断或大量延迟的情况下,DataGrid DDS在源端仍然继续读取并分析数据库日志产生的交易信息,这些信息暂时不能发送到目标端系统,不断地积累在源端的缓存目录下,直到通讯恢复。源端缓存保证了故障情况下复制数据的完整性。
目的端的缓存目录将保存交易信息文件直到它们正确的装载到目的端的数据库内,如果因为目的数据库的故障或关闭,装载不能进行,从源端传送过来的数据文件将在目的端缓存目录下保存。数据库恢复后,缓存文件会严格按照交易时间顺序进行装载。
文件的格式和大小
交易信息以文件为单位进行传输、缓存和装载,该文件为DataGrid独有的二进制格式,其内部的表达方式与Oracle内部处理方式相类似,避免了很多复杂的信息转换,因此具有很高的效率。
缓存文件的总量为源端实际产生redo log日志量的1/3~1/4左右。DataGrid DDS不设置缓存空间控制机制,用户可以根据每天交易产生的Oracle redo log日志量和以上比例计算需要预留的缓存空间。
内存管理和大交易处理
DataGrid DDS启动后,将在源端和目的端系统上开辟多个内存区供各进程使用,用来驻留参数、传递消息信号、缓存分析交易的中间信息等。内存区的大小由系统参数指定,目的是防止无限制的使用内存引起系统资源紧张或系统崩溃。
在复制源端,如果遇到数据库产生非常大的交易,DataGrid DDS会连续分析直到整个交易提交,其间产生的中间信息可能达到GB级。在这种情况下,DataGrid DDS会自动将这些信息缓存在磁盘上等待处理,磁盘缓存由后台进程自动处理,容量没有限制。
交易队列
DataGrid DDS严格按照Oracle数据库内部SCN顺序执行交易的复制和装载,保证复制数据的绝对一致性。
DataGrid DDS在跟踪redo log过程中,每隔一个固定的时间(通常是秒级)读取一次日志文件,分析出本次读出数据的内容,同时记录下该段数据的起始和终止SCN号。下一次读取redo log时,从上一次获取的终止SCN位置开始。多个实例的RAC模式下,则以SCN为参考给每个实例执行的交易进行排队,然后按照排队顺序形成缓存文件。缓存文件也严格按照交易的顺序进行编号、传递。所有的交易在目的端装载的顺序与它们在源端产生的顺序完全相同,这是保证数据完整性和一致性的关键。
224使用和部署DataGrid DDS
在线部署
DataGrid DDS的安装非常简单,不需要特殊的软硬件支持,软件本身完全在Oracle数据库的外部,不需要在Oracle中增加表空间,不需要在复制的表上添加索引和主键,也不需要停机做基础数据同步工作。
整个安装过程可以在线进行,甚至可以在数据库正常执行交易的过程中执行,因为DataGrid DDS不用借助任何第三方工具就可以进行在线的批量数据初始化工作,初始化结束后,无缝切换到增量数据复制过程。这样的功能对于一些需要724连续运行的系统来说非常重要,因为在安装维护过程中,频繁的停机会给生产系统带来很大的安全隐患和工作难度。
跨平台支持和兼容性
使用逻辑复制技术的DataGrid DDS,其跨平台能力是用户非常欢迎的。DataGrid DDS能够支持不同版本Unix/Linux系统下的混合复制,对于具有复杂硬件环境的企业系统来说,异构能力可以节省大量的资源和成本,旧设备得到充分的利用。
不同Oracle版本的支持能力也非常有价值,对于一些724运行的Oracle9i数据库来说,DataGrid DDS可以帮助它们在线的升级到Oracle 10g。
*** 作系统 数据库版本 数据类型 数据对象
AIX Oracle9i NUMBER Table
HPUX Oracle9i RAC CHAR View
HPUX(IA64) Oracle VARCHAR/VARCHAR2 Package
Solaris Oracle10g RAC DATE Package body
Linux TIMESTAMP Index
BLOB/CLOB Sequence
RAW/LONG RAW Procedure
ROWID Function
Trigger
表1:DataGrid DDS支持的系统及对象
多种复制模式
DataGrid DDS支持一对一,一对多,多对一,以及级联复制等多种复制模式。无论在哪种模式下,复制的源和目的系统都是独立的部分,可以单独的使用、维护和优化,这也是逻辑复制技术受到用户青睐的重要原因之一。
一对一的复制常见于灾备应用

1、液晶屏左上角显示“①②”为主副时段提示功能,①表示当前运用第1时段,②表示当前运用第2时段。
2、液晶屏第一行电话标识显示为红外通讯指示。
3、液晶屏第一行显示内容为“当前上”此为历史月电能显示行,显示本月、上1月、上2月电量数据。
4、液晶屏第一行最右端显示内容为“总尖峰平谷电量”,是电表当前运行的费率状态,“总”为总电能、“尖”为1费率、“峰”为2费率、“平”为3费率、“谷”为4费率。
5、液晶屏第一行右上角显示为电池标识,是时钟电池低容量报警标识。
6、液晶屏正中间显示内容为一堆数字8的,此为数据显示行,显示各种记录数据及对应的单位符号。
7、液晶屏数据显示行最右边显示内容为耳机标识,是编程符号,显示时仪表能被编程。

1、面向连接的:使用TCP协议通信的双方必须先建立连接,然后才能开始数据的读写,TCP连接是全双工的,即双方的数据读写可以通过一个连接进行。完成数据交换之后,通信双方都必须断开连接以释放资源。TCP协议的这种连接是一对一的,所以基于广播和多播(目标是多个主机地址)的应用程序不能使用TCP服。而无连接协议UDP则非常适合于广播和多播。
2、流式服务:TCP的字节流服务的表现形式就体现在,发送端执行的写 *** 作数和接收端执行的读 *** 作次数之间没有任何数量关系,当发送端应用程序连续执行多次写 *** 作的时,TCP模块先将这些数据放入TCP发送缓冲区中。当TCP模块真正开始发送数据的时候,发送缓冲区中这些等待发送的数据可能被封装成一个或多个TCP报文段发出。(下图3-1)
3、UPD的数据报服务:发送端应用程序每执行一次写 *** 作,UDP模块就将其封装成一个UDP数据报并发送之。接收端必须及时针对每一个UDP数据报执行读 *** 作(通过recvfrom系统调用),否则就会丢包(这经常发生在较慢的服务器上)。并且,如果没有指定足够的应用程序缓冲区来读取UDP数据,则UDP数据将被截断。


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

原文地址: https://outofmemory.cn/dianzi/13157344.html

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

发表评论

登录后才能评论

评论列表(0条)

保存