挑战dataguard(2)――dataguard的arch进程和lgwr进程触发同步的区别以及配置前的准备工作

 dg篇重新开张了,这次一定要成功把dg给学成!其实dg的文章实在是太多了,o小白也不指望能给大家什么帮助,反而是将自己的理解写出来,希望大虾们来指正o小白的错误,以此提高。

如题,本篇最核心的内容应该就是dataguard的arch进程和lgwr进程触发同步的区别。

这两者的不同其实和dataguard的工作原理有关,dataguard的工作原理是十分重要的内容,o小白不想一次全部写出来,将会在之后的文章中和相关的内容一起给出,这样可以更记得住一点,也可以帮助理解,那这里先是对于dataguard中arch和lgwr的理解。

不知道大家对dg的三个模式是怎么理解的,或者说对于那个实时的最大保护和不用同步的最大性能是怎么理解的(最大可用是在两者中切换的,可以认为这种模式的要求是两个模式要求的并集)。那其实这三个模式和arch以及lgwr是相关的。

对dg的工作原理简单描述是,通过arch进程或者通过lgwr进程将primary库的redo log传到stand by库并在standby库进行redo log的apply,从而达到数据一致。

那这里的关键就是arch和lgwr了,其实是两个完全不同的方式。

简单来说,如果采用的arch,那就是说当primary库的日志发生归档时,oracle将归档日志传输到standby库,此时standby库进行apply,归档的同时如果还有redo的更新的话是要等下次归档的时候才能应用到standby库的,也就是不是实时的,自然这种方式对应的就是最大性能,默认是这种方式。

那lgwr呢?lgwr更加复杂,在配置dg参数的时候会有选项sync(同步)、async(异步)。sync的话只要primary库的lgwr进程被触发,那就要触发网络I/O同步;而async的话则是先写入primary库的日志,然后再触发网络I/O同步,也就是说如果要真正实时的话,也就是最大保护的话,必须是sync。而async和arch其实反而是有点差不多的,各自的优势和劣势o小白尚未研究,在学习了以后和大家分享。

希望o小白自己和大家都能理解这个工作原理,之后的一些配置和原理将会以这个为基础,只有对dg的工作原理理解了,才能算是掌握了dg,不然看着文档配置的话那只能停留在十分肤浅的层次。

然后是一些准备工作,由于dg基本上围绕这redo的,那我们也从redo开始:

1.redo传输时的权限问题。由于dg的配置必须保证redo的顺利传输,那必须保证p库和s库的sys用户的密码是一致的。在实验环境下o小白一般都是用操作系统认证的,那这里必须要设定密码使用密码文件认证了:alter user sys identified by oracle,很简单吧,需要注意的是由于sys用户权限比较大,所以登录的时候一定要加上as sysdba,不然是不允许登录的。

2.在某些情况下,用户可能在ddl语句中加上nologging语句来阻止数据库产生redo从而提高速度,但是dg是完全依赖redo来保证同步的,那这样的情况应该被杜绝。解决方法也很简单,alter database force logging;强制redo产生。注意,force logging是写入控制文件的,也就是永久有效,虽然nologging的语句加上oracle不会提示出错,但是事实际上是会产生redo的。要去除force logging的话只要alter database no force logging。可以通过select force_logging from v$database来判断是否开启了这个选项。

除了redo以外,以下这些也算是准备工作吧:

  1. 参数修改。配置dataguard最繁复的一个工作就是需要添加一些参数的修改,参数非常的多,有些参数也十分复杂,根据primary和standby端的配置还有些不一样的。o小白想单独拿出来,也可以补充一些工作原理,放在明天当是第三篇。
  2. standby redo log的建立,很简单,在standby端要建立standby redo log,和普通的建立logfile的方式一样,操作也一样只要加上standby就可以了,例子是这样的alter database add standby logfile group * (‘this is path of logfile’) size **M,drop啊什么都是差不多的。

除了这些要注意的点之外呢,由于dg是支持primary和standby的转换的,并且这也是dg的一个重要的特性,所以最好在primary也把standby需要做的一些事情做掉,包括参数设置啊,standby redo log的配置啊什么的。

dg比想象当中要难一点呢,而且回过头去看自己的理论开端倒真的像个笑话,其实日志本身不是关键啦,只要能有一点点的收获o小白就很满足了,希望dg可以顺利搞定吧~

你可能感兴趣的:(log,logging,dataguard,dataguard,redo,Arch,休闲,lgwr,standby,Force)