AFFIRM和SYNC必须同时存在吗?
本帖最后由 etl2007 于 2014-8-9 16:01 编辑参考这些资料
http://www.dbasupport.com/forums/showthread.php?54467-Data-Guard-redo-transport-sync-vrs-affirm
http://www.databasejournal.com/features/oracle/article.php/3816751/Oracle-11g-Data-Guard-Building-a-Physical-Standby-Database.htm
http://blog.csdn.net/tianlesoftware/article/details/5514082
Table 1-2. Redo Transport Modes
Setting
Meaning
ASYNC
(Default) The redo for a transaction may not have been received by all enabled destination(s) before the transaction is allowed to COMMIT
SYNC
The redo for a transaction must have been received by all enabled destination(s) before the transaction is allowed to COMMIT
AFFIRM
The destination for redo transport will acknowledge the receipt of redo data only after it’s been written to the standby redo log; implied by SYNC setting
NOAFFIRM
The destination for redo transport will acknowledge the receipt of redo data before it’s been written to the standby redo log; implied by ASYNC setting
按照
“
使用ARCH进程传递最大问题在于: Primary Database 只有在发生归档时才会发送日志到Standby Database。 如果Primary Database 异常宕机,联机日志中的Redo 内容就会丢失,因此使用ARCH 进程无法避免数据丢失的问题,要想避免数据丢失,就必须使用LGWR,而使用LGWR 又分SYNC(同步)和ASYNC(异步)两种方式。
”
这样的说法,只有直接传输online redo log的时候,才有sync 和 async 的说法
但问题是如果 是传输 online redo log ,那么远端的destination就只能是standby database的standby redo log
(本端的destination当然就是本机的归档日志)
。
同时根据oracle官方文档的说法
很明显,affirm 和 sync 是配对存在的, noaffirm和 async 是配对存在的的
即要支持 Maximum Protection 和 Maximum Availability 模式
那么 affirm 和 sync 就必须同时存在
即要支持 Maximum Performance模式
那么 noaffirm 和 async 就必须同时存在
虽然语法上支持
“alter system set log_archive_dest_2 = 'SERVICE=ST LGWR ASYNC ' scope=both;”
或者 “alter system set log_archive_dest_2 = 'SERVICE=ST LGWR SYNC NET_TIMEOUT=30' scope=both;”
但是实际上这没有多大意义啊?
我意思应当没有一个场景需要这样配置吧
我的意思 单独的 SYNC (没有affirm)有意义吗? 单独的 ASYNC (没有noaffirm) 有意义吗?
麻烦指导一下 LGWR =>
SYNC => AFFIRM ,NOAFFIRM
ASYNC SYNC+ AFFIRM=> 要求同步传输 且要求写入到standby redo logfile 才返回
SYNC + NOAFFIRM => 要求同步传输 但不要求写入到standby redo logfile 才返回
ASYNC => 异步传输,由于传输都是异步的 所以不存在AFFIRM ,也就是默认NOAFFIRM
单独的 SYNC (没有affirm)有意义吗?=> 由于最大保护模式 要求SYNC+AFFIRM,所以SYNC+NOAFFIRM无法使用最大保护模式,意义较小,除非特殊情况否则不推荐使用。 本帖最后由 etl2007 于 2014-8-9 16:19 编辑
Maclean Liu(刘相兵 发表于 2014-8-9 16:04 static/image/common/back.gif
SYNC+ AFFIRM=> 要求同步传输 且要求写入到standby redo logfile 才返回
SYNC + NOAFFIRM => 要求同步传输 ...
我的意思 SYNC+NOAFFIRM 这样的配置其实没有太多意义,oracle貌似搞得有些啰嗦了?其实SYNC/ASYNC 和 AFFIRM/NOAFFIRM保留其中一类参数就好,搞两类无形中提高了学习成本和维护成本? sync+ affirm =>延迟可能体现在于备节点的redo写出IO
sync+noaffirm => 延迟可能体现在 network上
O这么做还是有考量的,而且设计之初肯定是考虑为开关形式 灵活使用,只不过 后者组合确实场景较少而已。
页:
[1]