安装Oracle,小菜一碟
Oracle在很多初学者看来是莫测高深的吧,至少我当年有机会接触Oracle的时候,是有那么一点兴奋的,而第一次安装Oracle,也不能算是一个愉快的体验。但看了下面这位Mogens Norgaard老兄的杰作以后,你会相信,安装Oracle,that’s a pice of cake。
真是强人年年有,今年特别多,鼻子也能安装Oracle,有哪位DBA想出名的,也可以借鉴一下这个创意,整个RAC的鼻子安装教程就更牛啦^_^
Oracle10gR2 Logical Standby(三)配置逻辑备库
Oracle10gR2在管理方面比起Oracle9i来说,有了相当大的改进,很多组件的安装配置过程都被简化了。简单的操作能够减少很多不必要的失误,对于提高系统的可用性也是很有帮助的。Logical Standby现在能够由physical standby直接转化而来,这一点改进很重要,不但简化了配置的过程,也为Oracle11g利用physical standby做滚动升级打下了基础,滚动升级的另外一个基础是Flashback database。Oracle很多特性在刚推出的时候看是改进不大,但真正产生化学作用往往会在更新的版本中体现。
一、创建物理备库
关于物理备库的创建,已经有过很多文章了,所以这里就不打算再重复整个过程了。可以参考我以前做试验的时候一点记录
上面两篇文章试验的版本都是9201的,但是物理备库在9i和10g的配置过程基本一致。不同的是,Oracle10g引入了一些新的参数和属性,可以简化switchover操作。所以参数的设置我这里再贴一个例子。
Oracle10gR2 Logical Standby(二)配置前需要考虑的问题
逻辑备库只是对于主库的一个逻辑意义上的数据冗余,不像物理备库能够在block级别上和主库保持一致。所以有其优点,也有其缺点。比如主库的一个datafile损坏,可以从物理备库拷贝对应的文件过来然后recover datafile就可以恢复,逻辑备库则无法实现这样保护了。由于是SQL APPLY,对于一些数据类型也是有限制的。
不支持的数据类型
Oracle10gR2的logical standby已经能支持大多数的数据类型了,包括CLOB/BLOB/LONG等,但还是有几种类型是不支持的。如果主库中有使用到这些数据类型,则需要使用其他方式进行处理。
BFILE
Collections (including VARRAYS and nested tables)
Encrypted columns
Multimedia data types (including Spatial, Image, and Context)
ROWID, UROWID
User-defined types
XMLType
Oracle10gR2 Logical Standby(一)概念与原理
从Oracle9i开始支持逻辑Standby,通过logminer从日志中挖掘出sql语句重新在备库应用,来达到主备库数据冗余的目的。由于逻辑备库在应用sql的同时是处于open状态了,那么除了可以利用其冗余数据的特性来做冗灾之外,考虑得更多的可能是利用其做为报表查询库,或者做为读写分离的一种解决方案来分担整个系统的负载,可以充分利用做为备库的主机和存储资源。但是9i的逻辑备库有很多不成熟的地方,实际使用的案例也不多。Oracle10g对于Data Guard在易用性和稳定性方面做出了不少的改进。本系列文章打算简单介绍一下10gR2的逻辑备库。
逻辑备库的架构说起来十分的简单,首先利用主库的一个备份来建立逻辑备库,然后主库将日志传递到备库,备库利用logminer从主库的日志中解析出主库所执行过的SQL,然后重新跑一边,从而使得主备库的数据一致。由于Oracle的联机日志是半逻辑半物理结构,所以从日志中解析出来的SQL,只是逻辑上和主库上的等效,而不是完全相同的语句。比如主库执行一条insert语句插入了10条记录,在备库解析出来将是10条insert语句,每条语句插入一条记录。