|
[ 2008-12-19 ] 第一部分(1)基础之概述篇 |
实际上Streams不是一项新特性,但也不是一项很新的特性。从Oracle的9iR2版本开始推出,在10g中得到了一些增强(比如提供了downstream),其主要功能说白了就是复制数据。说到复制数据,你可能会想到oracle的其它一些同样实现数据复制功能的特性,比如说高级复制(Advanced Replication),Dataguard等等 |
|
[ 2008-12-22 ] 第一部分(2)架设一个单表复制环境 |
Streams特性在oracle诸多特性中属于比较灵活的一个,如果你接触oracle的时候足够久,那么一定能够理解,对于oracle而言,灵活往往也意味着复杂。这样也可以,那样也可以,究竟怎样好?一直以来,俺都认为实践更加有助于理解,为了更有有效的帮助大家的理解和学习,俺决定首先通过一个简单的示例来演示streams大致的工作方法。 |
|
[ 2008-12-29 ] 第一部分(3)基础之捕获进程 |
前一章我们实践了一把streams同步单表的过程,看起来很简单是不是(如果你觉着复杂,那不是因为streams本身操作复杂,而是为了配置好streams前期的准备工作较复杂),事实上也确实很简单,由小能见大,我们从上述示例中应该也能看出streams的操作方式就是捕获(capture)->传播(propagation)->应用(apply),不管是表也好,schema也好,database也好,都是遵循这个操作过程,下面逐一介绍捕获传播和应用进程,俺尽可能做到清晰简单直白,但限于个人理解和自身水平,如描述有误请自行鉴别:)) |
|
[ 2009-1-16 ] 第一部分(4)基础之传播进程(上) |
本节主要描述传播的工作流程,以及一些相关的特性(处理逻辑),内容同样枯燥,但三思认为有阅读的价值。在整个streams复制环境中,propagation进程负责将源端的修改队列复制到目标数据库。 |
|
[ 2009-2-10 ] 第一部分(5)基础之传播进程(下) |
本节主要描述传播的工作流程,以及一些相关的特性(处理逻辑),内容同样枯燥,但三思认为有阅读的价值。在整个streams复制环境中,propagation进程负责将源端的修改队列复制到目标数据库。 |
|
[ 2009-2-12 ] 第一部分(6)基础之应用进程(上) |
有捕获,有传播,接下来应该就是应用了,真巧,ORACLE也是这么想的。在Streams复制环境中,共享对象的修改正是按照这样的逻辑被捕获->传播->应用。你可以在目标端配置一个或多个apply进程应用这些修改,本章通过一些文字描述一下这个流程。 |
|
[ 2009-2-16 ] 第一部分(7)基础之应用进程(中) |
本节描述ddl应用,触发器,受限连接、RAC等情况下apply进程的处理情况,以及可被apply进程支持的数据类型等。 |
|
[ 2009-2-18 ] 第一部分(8)基础之应用进程(下) |
本节主要描述apply进程体系结构,包括一些重要子进程状态、数据字典、应用参数等信息。 |
|
[ 2009-2-18 ] 第二部分(9)实践之准备工作(1)明确需求 |
本章开始转入实践操作部分,将演示通过不同的方式创建不同的复制环境以满足不同的需求,当然,首先也还是要先从准备工作着手。 |
|
[ 2009-2-18 ] 第二部分(10)实践之准备工作(2)初始化环境 |
在准备创建streams复制环境之前,还有一些准备工作需要我们进行,本章详细描述需要我们在创建复制环境之前做的工作。 |
|
[ 2009-2-24 ] 第二部分(11)实践之创建Streams全库复制环境(1)初始化环境 |
正如前面介绍的那样,对于数据库级复制,oracle提供了两种方式:
A、MAINTAIN_GLOBAL
B、PRE_INSTANTIATION_SETUP、POST_INSTANTIATION_SETUP |
|
[ 2009-2-24 ] 第二部分(12)实践之创建Streams全库复制环境(2)执行创建 |
进入创建环节!本步执行操作看似较多,实际只是两个过程! |
|
[ 2009-2-24 ] 第二部分(13)实践之创建Streams全库复制环境(3)测试 |
创建完成,实际测试一下,同时本步也演示了通过DDL handler解决表空间数据文件路径不一致的问题! |
|
[ 2009-2-24 ] 第二部分(14)实践之移除Streams复制环境 |
一方面是为了方便后面的测试环境搭建,一方面也是因为10g中Streams复制环境的移除非常简单,因此将此做为本章最后一小节。 |
|
[ 2009-3-9 ] 第二部分(15)实践之创建表空间级复制环境(1)初始化环境 |
DBMS_STREAMS_ADM提供了多种方式创建表空间级的复制环境,比如MAINTAIN_SIMPLE_TTS:单个表空间的复制;
MAINTAIN_TTS:多个表空间的复制;PRE_INSTANTIATION_SETUP和POST_INSTANTIATION_SETUP:多个表空间的复制,本章重点演示通过MAINTAIN_TTS过程创建。 |
|
[ 2009-3-9 ] 第二部分(16)实践之创建表空间级复制环境(2)创建和移除 |
相对于全库采用PRE_INSTANTIATION_SETUP和POST_INSTANTIATION_SETUP过程创建的方式,表空间的复制环境创建要简单多了,详细见正文! |
|
[ 2009-3-18 ] 第二部分(17)实践之创建schema级复制环境 |
Schema级的复制可以通过DBMS_STREAMS_ADM.MAINTAIN_SCHEMAS创建,经过前面表空间级的试练,接着创建schema级的复制环境还是比较简单的。 |
|
[ 2009-3-18 ] 第二部分(18)实践之创建tables级复制环境 |
你应该还有印象,我们在第一部分第二节的时候就已经演示了创建表级复制环境,对比全库/表空间级或schema级的复制,现在回过头来看,你可能会觉着怎么表级的复制环境这么复杂呢?其实不是这样,并非表级复制环境复杂,我们在第一部分第二章演示的正是streams实际配置时执行的过程(大部分步骤吧),如果你直接使用DBMS_STREAMS_ADM.MAINTAIN_TABLES过程创建的话,类似于schemas的复制,也就是执行一个过程的事情。 |
|
[ 2009-3-30 ] 第三部分(19)高级配置之单源单向复制环境 |
第三部分将主要通过一些更灵活的方式配置单源或多源的Streams复制环境,前面部分已经花了很多篇幅介绍通过DBMS_STREAMS_ADM过程,实现不同级别的Streams复制环境,整个过程比较简单,除了准备工作外,对复制环境的配置几乎都是一个过程即可完成。这种方式有利也有弊,优势在于配置简单,只需要一些简单操作就可以轻易建设一个streams的复制环境,劣势也是因为太过简单,定制性不强(或者说不够强)。本部分则希望通过一此演示,能让你具有定制streams环境的能力。 |
|
[ 2009-3-30 ] 第三部分(20)高级配置之单源多向复制环境(1) |
这节我们将复制环境构建的稍稍复杂一点,这次不再做两台数据库间的复制了,再加进来一个新的数据库,三个数据库间同步数据。 |
|
[ 2009-3-30 ] 第三部分(21)高级配置之单源多向复制环境(2) |
一般有两种方式配置,其中一种是直接借助DBMS_STREAMS_ADM包创建,这种方式相对比较简单,这里我们演示通过这种方式创建。 |
|
[ 2009-3-31 ] 第三部分(22)高级配置之单源多向复制环境(3) |
全手动方式不再通过DBMS_STREAMS_ADM包来配置,而是通过DBMS_CAPTURE_ADM、DBMS_PROPAGATION_ADM、DBMS_APPLY_ADM、DBMS_RULES_ADM分别配置捕获、传播、应用进程和规则集。 这种方式的配置流程与DBMS_STREAMS_ADM几乎完全相同,只是执行的过程不同,而且需要你手动指定的参数非常多(每个对象都需要单独指定),演示这种方式的创建,是为了让大家更好的理解streams对共享对象的处理过程。 |
|
[ 2009-4-20 ] 第三部分(23)高级配置之单源多向复制环境(4) |
本节演示添加一个对象到现有的复制环境中,延续第4或第5步中创建的环境,将jssweb站点中的usr_user表也复制到jssbak中。 |
|