码迷,mamicode.com
首页 > 其他好文 > 详细

Redo Gap 处理与优化

时间:2017-03-11 11:35:45      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:parallel   res   应用   line   max   order   gap   com   work   

                                           


                                                                                                                    

理论背景


当redo data 传送发生中断时就会产生redo gap。当redo 传送恢复正常以后,redo transport service 会自动检测redo gap并发送缺失的redo 到destination。解决redo gap的时间与gap 的数量和网络有一定的关系。 Gap越少,网络越好,解决gap就会越快。








手工解决 Gap 问题




在Oracle 11g里,Data Guard 切换多了一个新的功能:flush redo。
SQL> alter system flush redo to target_db_name;
Flush 能把没有发送的redo 从主库传送到standby库。 只要主库能启动到mount 状态,
那么Flush 就可以把没有发送的归档和current online redo 发送到备库。
 


1 解决物理standby Gap问题 


1.1 物理standby 库上执行如下SQL,判断是否存在gap:
SQL> SELECT * FROM V$ARCHIVE_GAP;


    THREAD# LOW_SEQUENCE# HIGH_SEQUENCE#
-----------  -------------  --------------
          1              8              11
 
1.2 主库查询,确认一下:
SQL> SELECT NAME FROM V$ARCHIVED_LOG WHERE THREAD#=1 AND DEST_ID=1 AND SEQUENCE# BETWEEN 7 AND 11;


NAME
--------------------------------------------------------------------------------


/primary/thread1_dest/arcr_1_8.arc 
/primary/thread1_dest/arcr_1_9.arc
/primary/thread1_dest/arcr_1_10.arc 




1.3 把这些归档copy到物理standby,并使用ALTER DATABASE REGISTER LOGFILE应用这些归档: 




SQL> ALTER DATABASE REGISTER LOGFILE ‘/physical_standby1/thread1_dest/arcr_1_7.arc‘;
SQL> ALTER DATABASE REGISTER LOGFILE ‘/physical_standby1/thread1_dest/arcr_1_8.arc‘;
SQL> ALTER DATABASE REGISTER LOGFILE  ‘/physical_standby1/thread1_dest/arcr_1_9.arc‘;
 


2 解决逻辑standby Gap问题 


2.1 对于logical standby database,在logical standby database上查询DBA_LOGSTDBY_LOG视图。 
SQL> COLUMN FILE_NAME FORMAT a55
SQL> SELECT THREAD#, SEQUENCE#, FILE_NAME FROM DBA_LOGSTDBY_LOG L WHERE NEXT_CHANGE# NOT IN 
(SELECT FIRST_CHANGE# FROM DBA_LOGSTDBY_LOG WHERE L.THREAD# = THREAD#) ORDER BY THREAD#, SEQUENCE#;
 
   THREAD#  SEQUENCE# FILE_NAME
---------- ---------- -----------------------------------------------
         1          6 /disk1/oracle/dbs/log-1292880008_6.arc
1 10 /disk1/oracle/dbs/log-1292880008_10.arc
 


正常情况下,这里每个trhead只返回一个最高值,这里返回2个,说明的7,8,9确实了。 


2.2  Copy 缺失的log file到logical standby database,然后注册:
SQL> ALTER DATABASE REGISTER LOGICAL LOGFILE ‘/disk1/oracle/dbs/log-1292880008_7.arc‘; 
SQL> ALTER DATABASE REGISTER LOGICAL LOGFILE ‘/disk1/oracle/dbs/log-1292880008_8.arc‘;
SQL> ALTER DATABASE REGISTER LOGICAL LOGFILE ‘/disk1/oracle/dbs/log-1292880008_9.arc‘;
 


 
优化:


在网络条件不好的情况下,Redo transport services有2个可选的参数,可以提高恢复速度:
(1)Redo Transport Compression
压缩属性是在LOG_ARCHIVE_DEST_n 参数中指定,指定后,会在传送之前对redo data进行压缩,从减少传送的时间。 
日志文件的压缩比很高,对性能会有很大的提高。但会消耗一定的CPU 资源。
(2)Parallel Redo Transport Network Sessions
MAX_CONNECTIONS 属性同样也是在LOG_ARCHIVE_DEST_n 参数中指定,可以指定多个sesion 来同时发送redo data。




Redo Gap 处理与优化

标签:parallel   res   应用   line   max   order   gap   com   work   

原文地址:http://www.cnblogs.com/andy6/p/6534376.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!