登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

飞哥的技术博客

世上无难事,只怕有心人!

 
 
 

日志

 
 
 
 

一步一步学DataGuard(19)逻辑standby之高级管理4 - 无名扫把 - CSDN博客  

2009-05-25 16:31:28|  分类: Oracle |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 一步一步学DataGuard(19)逻辑standby之高级管理4收藏

SQL> ALTER SESSION DISABLE GUARD;

SQL> ALTER SESSION ENABLE GUARD;

v  create/alter/drop materialized view

v  create/alter/drop materialized view log

因此,对于现有逻辑standby,primary端对物化视图的操作不会传播到standby端。不过,对于primary创建物化视图之后创建逻辑standby,则物理视图也会存在于逻辑standby端。

v  对于同时存在于primary和逻辑standby的ON-COMMIT物化视图,逻辑standby会在事务提交时自动刷新,而对于ON-DEMAND的物化视图不会自动刷新,需要手动调用dbms_mview.refresh过程刷新。

JSSLDG2> SELECT COUNT(*) AS IDLE_APPLIER FROM V$LOGSTDBY_PROCESS

  2  WHERE TYPE = 'APPLIER' and status_code = 16166;

status_code = 16166 表示进程是空闲状态,可以看到"STATS"为"ORA-16116: no work available",当然空闲的applier进程数为0不一定代表应用应用非常繁忙,也有可能是因为当前没什么需要应用的日志,因此甚至应用进程都没启动:)

JSSLDG2> select name,value from v$logstdby_stats where name like 'TRANSACTION%';

NAME                          VALUE

---------------------         -------

transactions ready             896

transactions applied           871

如果ready-applied的值比applier进程数的两倍还要大,则说明你有必要考虑增加applier进程的数目了,反之如果applied与ready的值差不多大,或者其差比applier进程数还小,则说明applier进程数偏多,你有必要考虑适当减小进程的数目。

ALTER DATABASE STOP LOGICAL STANDBY APPLY; 

EXECUTE DBMS_LOGSTDBY.APPLY_SET('APPLY_SERVERS', 20);

ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;

需要调整preparer进程数的机会不多,通常只有一种情况:applier进程有空闲,transactions ready还很多,但没有空闲的preparer进程,这时候你可能需要增加一些preparer进程。

SELECT COUNT(*) AS IDLE_PREPARER FROM V$LOGSTDBY_PROCESS WHERE TYPE = 'PREPARER' and status_code = 16166;

select name,value from v$logstdby_stats where name like 'TRANSACTION%';

SELECT COUNT(*) AS IDLE_APPLIER FROM V$LOGSTDBY_PROCESS WHERE TYPE = 'APPLIER' and status_code = 16166;

ALTER DATABASE STOP LOGICAL STANDBY APPLY; 

EXECUTE DBMS_LOGSTDBY.APPLY_SET('PREPARE_SERVERS', 4); 

ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE; 

JSSLDG2> select * from v$logstdby_stats where name='maximum SGA for LCR cache';

NAME                                 VALUE

------------------------------------ --------------------

maximum SGA for LCR cache            30

JSSLDG2> alter database stop logical standby apply;

JSSLDG2> execute dbms_logstdby.apply_set('MAX_SGA',100);

JSSLDG2> alter database start logical standby apply immediate;

SQL> ALTER DATABASE STOP LOGICAL STANDBY APPLY;

SQL> EXECUTE DBMS_LOGSTDBY.APPLY_SET('PRESERVE_COMMIT_ORDER', 'FALSE');

SQL> ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;

SQL> ALTER DATABASE STOP LOGICAL STANDBY APPLY;

SQL> EXECUTE DBMS_LOGSTDBY.APPLY_UNSET('PRESERVE_COMMIT_ORDER');

SQL> ALTER DATABASE START LOGICAL STANDBY APPLY IMMEDIATE;

一步一步学DataGuard(19)逻辑standby之高级管理4 - 无名扫把 - CSDN博客 - yangzhongfei - 中飞博客



引文来源  一步一步学DataGuard(19)逻辑standby之高级管理4 - 无名扫把 - CSDN博客
  评论这张
 
阅读(303)| 评论(0)

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018