




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Oracle Stream 深入探讨 目录 Oracle 高可用性(high Availability)的几种技术架构2 Simple Oracle Stream3 Simple Oracle Stream的框架3 Capture过程4 Staging 过程和Propagation过程4 Consumption过程5 Simple Oracle Stream配置实例5 操作系统环境及数据库环境5 DownStream5 DownStream配置实例7 操作系统环境及数据库环境7 创建专用用户表空间/授权8 配置网络 (tnsnames.ora)8 创建Database link8 初始化参数配置9 修改系统为归档模式10 在DownStream Database上增加 Standby Log组10 检查日志传输服务是否成功10 创建queue11 创建Capture进程11 创建捕获规则12 创建传播(propagation)进程12 创建应用规则13 启动Stream13 Oracle 高可用性(high Availability)的几种技术架构 从oracle9i开始,出现在oracle高可用性上的几种技术架构分别是: 1. 高级复制(Advanced Replication) 2. 数据保护(Data Guard)Oracle Standby Database 3. RAC(Oracle Real Application Clusters) 4. Oracle Parallel Server 5. Oracle Server HA 6. Oracle 流(Oracle Stream) 7. MV/RMAN/Log Miner/Flashback query 其中Oracle Stream在9iR2中开始提供,在10gR1和R2中得到很大的强化和扩展。从oracle的技术路线中可以看出,Stream将会是Oracle以后主推的一个技术热点,因为Stream有以下的优势。 1. 实现的技术框架较高级复制(advanced Replication)更先进,不是基于数据库级的触发器,而是采用对日志(Redo Log)的挖掘能力。 2. 对数据库资源利用比较少,这个特性在10g支持DownStream后更明显。 3. 远程备份,特别是Internet级的远程备份成为可能。 4. 由于Stream的Capture可以是Table/Rule/Database三种级别,使得Stream可以扩展出很多应用出来。甚至作为一个ETL的可选方案,也是非常不错的。 5. 当采用Table级的Stream时,可在rule上配置应用的DDL和DML,比起Data guard必须全库同步,就有了很大的优势。(其实Data Guard的logical standby Database在底层的实现技术细节上和Real-Time DownStream是非常相似的) Oracle Stream可能派生出来的应用。 1. 最传统的应用,当然是作为远程的数据库备机。Stream的高效、实时、低耗的特点非常适用于这种应用。唯一不足的是其稳定性比起Standby Database来说还是要差一些,但作为Oracle主推的技术来说,我们可以看到在每一个Release版本中都有很大的改进。 2. 在Slave Database上,可以将应用系统的查询、统计、报表等非写操作移植过来,以分担Master机器的性能。 3. 将应用分布到多个数据库中。这种应用中,Master Database负责基础数据的读写数据库(例如机构信息、人员信息等各个业务都需要的数据),通过Stream Database将数据实时同步到多个Slave Database上,每个Slave Database上进行其它业务的数据读写操作。 4. 过程,将数据从业务数据库上迁移到上。 Simple Oracle Stream Simple Oracle Stream 是在9iR2中开始提供的技术,在10g中,其性能、配置、稳定性等得到很大的提高。 Simple Oracle Stream的框架 整体框架如下图所示: Stream过程包括三个主要的环节,如图所示 Capture:是指对数据库的DDL 和DML的变化捕获的环节。 Staging:数据准备过程,这个环境还包括了一个重要的过程,Propagation数据传播过程。 Consumption:数据消费过程。 Capture过程 Capture过程的底层原理如图所示。 用户提交的数据变化应用到数据库对象上,同时引起了Redo Log的变化(首先是Online Redo Log,对于归档模式运行的数据库,随后这些变化写入Archived Redo Log中。),然后Capture 进程捕获重做日志的变化,形成LCR记录,进入到高级队列(AQ)对象中。 Staging 过程和Propagation过程 LCR记录进入AQ后,其实就完成了Staging的过程,更为重要的是Propagation传播过程。 Propagation过程其实就是从源高级队列到目标高级队列的传播。这里需要注意的是,可以是一个源到多个目标的传播。 Consumption过程 Consumption过程其实是目标AQ中接收到的LCR记录被还原成为各种数据库操作动作,然后应用于目标数据库中,以达到目标数据库与源数据库执行同样操作的目的。 Simple Oracle Stream配置实例 源数据库:Master Database 目标数据库:Slave Database 操作系统环境及数据库环境 Master: Slave: DownStream DownStream 是在10gR2中提供的一种新型的Stream配置,其实可以看作是Local Capture到Remote Capture和Remote Propagation到DownStream Capture的转变(当然,在技术细节上,local 到Remote的转变绝不是一个单词改变那么简单了。)。采用DownStream可以解决在Simple Stream中出现的一些问题,并大大提高了Stream的部署灵活性。 DownStream的优势: 1. 通过DownStream Database来完成Capture和Propagation,大大减轻了源数据库的资源消耗。 2. 部署更加灵活,在大型环境中可设置一个DownStream Database的专用数据库服务器,来承担上诉的两个过程,向多个源数据库传播LCR记录。在资源比较少的应用中,则可将DownStream Database和Slave Database部署在同一个服务器上。 3. 减少了由于Master Database故障导致的AQ阻塞情况。 DownStream 同样分为两种模式,分别是: *Archive-Log DownStream(仅归档日志的DownStream) 用户改变写入数据对象,LGWR进程将改变写入Online Redo Log。ARCn写入归档日志,归档日志传入DownStream Database,然后在DownStream Database上进行Capture过程。 *Real-time DownStream(实时的DownStream) 用户改变写入数据对象,LGWR进程将改变写入Online Redo Log。同时将变化传入DownStream Database的Standby Redo log,然后在DownStream Database上进行Capture过程。 两种模式的区别在于前者向DownStream Database传递的是archived Redo log(这就难免有数据延迟),而后者则是传递的Online Redo log(最大程度的保障了数据实时,使用的底层技术其实和Logical Standby Database其实是非常相象的。) DownStream配置实例 源数据库:Master DatabaseDownStream数据库和目标数据库(一体):DownStream Database 操作系统环境及数据库环境 Master: Oracle 10g DownStream : Oracle 10g 创建专用用户表空间/授权 在Simple Stream模式中,需要在Master和Slave Database上完成同样的动作,在DownStream模式中需要在Stream Database和Slave Database上完成这些动作,因在测试环境中将Stream Database和Slave Database放在一台机器上,因此只需要配置一次即可。 create tablespace stream_ts datafile D:databaseoracleproduct10.2.0oradataorclstream_ts.dbf size 100m autoextend on maxsize unlimited segment space management auto; execute dbms_logmnr_d.set_tablespace(stream_ts); create user strmadmin identified by strmadmin default tablespace stream_ts temporary tablespace temp; grant connect,resource,dba,aq_administrator_role to strmadmin; begin dbms_streams_auth.grant_admin_privilege( grantee = strmadmin, grant_privileges = true); end; / 配置网络 (tnsnames.ora) 创建Database link 在Master Database和Slave Database分别用 sys 和 strmadmin身份创建Database link,这里需要注意的是,由于在init parameter中设置了global_names=true因此,因此在dblink中,名称一定要和global_name一致。 设置global_name的语句如下: alter database rename global_name to alter database rename global_name to 创建database link的语句如下 create database link connect to sys identified by sys using downstream; create database link connect to strmadmin identified by strmadmin using master; 创建完毕后可以使用下面的语句来测试连通。Select * from dualmaster 初始化参数配置 这部分配置主要包括对Oracle Parameter的调整,具体调整的参数如下: alter system set aq_tm_processes=2 scope=both;alter system set global_names=true scope=both;alter system set undo_retention=3600 scope=both;alter system set job_queue_processes=10 scope=both;alter system set parallel_max_servers=20 scope=both;alter system set nls_date_format=YYYY-MM-DD HH24:MI:SS scope=spfile;alter system set streams_pool_size=100M scope=spfile;alter system set open_links=4 scope=spfile; 还有下面几个参数,只在DownStream下才会用到,但是非常重要,分别是 LOG_ARCHIVE_CONFIG 其中,Master Database修改为 send, DownStream Database修改为receive alter system set LOG_ARCHIVE_CONFIG =send scope=both; alter system set LOG_ARCHIVE_CONFIG =receive scope=both; LOG_ARCHIVE_DEST_n 这个参数设置最为复杂,对于archive-log模式和real-time模式均不相同,而且Master Database 服务器和DownStream Database设置均不相同。 archive-log模式 real-time模式 Master Database: Alter system set LOG_ARCHIVE_DEST_2=SERVICE=DOWNSTREAM LGWR ASYNC OPTIONAL NOREGISTER VALID_FOR=(ONLINE_LOGFILE,PRIMARY_ROLE) scope=both; DownStream Database: Alter system set LOG_ARCHIVE_DEST_2=LOCATION=D:databaseoracleproduct10.2.0arc_dest MANDATORY VALID_FOR=(STANDBY_LOGFILE,PRIMARY_ROLE) scope=both; LOG_ARCHIVE_DEST_STATE_n 均设置为enable Alter system set LOG_ARCHIVE_DEST_STATE_2=enable scope=both; 修改系统为归档模式 对于Real-time DownStream来说,Master Database和DownStream Database都必须运行在archive log mode下。如果仅仅是配置Archive-log DownStream,则DownStream Database可以不用运行在archived log mode。参见以下的原文: For downstream capture processes, the downstream database also must run in ARCHIVELOG mode if you plan to configure a real-time downstream capture process. The downstream database does not need to run in ARCHIVELOG mode if you plan to run only archived-log downstream capture process on it. 切换为Archive log mode的方式如下: shutdown immediate; startup mount; alter database archivelog; alter database open; 在DownStream Database上增加 Standby Log组 在DownStream Database上增加standby log组。需要注意的是,Standby log组的文件大小应该=Master Database上的online Redo log组的文件大小,同时,组的数量应该至少多于Master Database 的online redo log组数量。创建standby log组的时候,group n其中n计数从系统中已有的online redo log group的最大值+1开始。查询系统中现有的online redo log组 select * from v$log; 新的group ID大于字典中查询出来的最大ID。新增standby redo log组 ALTER DATABASE ADD STANDBY LOGFILE GROUP (D:databaseoracleproduct10.2.0dbsslog5a.rdo, D:databaseoracleproduct10.2.0dbsslog5b.rdo) SIZE 100M; 使用下面的语句清除配置。 Alter database clear unarchived logfile group n 检查日志传输服务是否成功 这一步配置完毕后,如果配置中没有出现问题,则日志传输服务应该可以正常运行了。检查downstream database的LOG_ARCHIVE_DEST _2中给出的文件路径中是否有远程数据库服务器写入的文件。 也可以在Master Database上执行 alter system archive log current;命令执行完后,如果在DownStream Database的接收目录中看到有同一时刻的新文件,并且standby redo log的修改时间也变了的话,证明日志传输服务没有问题,则可以开始后面的配置,后面的配置与simple stream的配置就是一致的了。 创建queue 需要创建一个捕获queue和一个apply queue begin dbms_streams_adm.set_up_queue( queue_table = downstream_queue_table, queue_name = downstream_queue); end; / begin dbms_streams_adm.set_up_queue( queue_table = apply_queue_table, queue_name = apply_queue); end; / 可用下面的语句删除queue begin dbms_streams_adm.remove_queue( queue_name = downstream_queue); end; / 创建Capture进程 BEGIN DBMS_CAPTURE_ADM.CREATE_CAPTURE( queue_name = strmadmin. downstream_queue , capture_name = real_time_capture , rule_set_name = NULL, start_scn = NULL, source_database = master, use_database_link = true, first_scn = NULL, logfile_assignment = implicit); END; / 设置进行设置Capture BEGIN DBMS_CAPTURE_ADM.SET_PARAMETER( capture_name = real_time_capture, parameter = downstream_real_time_mine, value = y); END; / 创建捕获规则 这里可分别捕获table/schema/global。语法如下:add_table_rules/add_schema_rules/add_gloab_rules BEGIN DBMS_STREAMS_ADM.ADD_TABLE_RULES( table_name = hrms.hr_personbaseinfo, streams_type = capture, streams_name = real_time_capture, queue_name = downstream_queue, include_dml = true, include_ddl = true, include_tagged_lcr = false, source_
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年燃气储运中级工考试预测题及解析
- 工作总结及个人成长报告
- 五一银行活动方案
- 田青蛙动态课件
- steam课件电信教学
- 用药安全知识培训材料课件
- 制作表格直播教学课件
- 人教版九年级英语期中基础复习卷(B卷)(含答案无听力音频及原文)
- 黑龙江省绥化市北林区2024-2025学年八年级下学期期末语文试题(含答案)
- 第三单元 勇担社会责任 单元检测题(含答案)-2025-2026学年 八年级上册道德与法治 - 副本
- 2025年教育学家教学理论考试试题及答案解析
- 2025年医疗器械不良事件培训考试试题(有答案)
- 第1课 互联网和物联网 课件 2025-2026学年七年级下册信息技术浙教版
- 信息技术在课堂教学中的应用
- 江苏省宿迁市沭阳县如东实验学校2024-2025学年七年级下学期期末数学试卷(含答案)
- 项目初步验收汇报
- 2025年湖南省高考真题卷政治和答案
- 精神病患者的康复护理计划
- 语“你相遇”文启新程-2025年秋季高一语文开学第一课-2025-2026学年高中主题班会
- 个性化教育实施策略
- 额叶胶质瘤护理查房
评论
0/150
提交评论