Instance Efficiency Percentages
Data Buffer Hit Ratio#<#90#数据块在数据缓冲区中的命中率,通常应该在90%以上,否则考虑加大 db_block_buffers(9i 以上可是db_cache_size) Buffer Nowait Ratio#<#99#在缓冲区中获取buffer 的未等待比率 Library Hit Ratio#<#98#主要代表着sql在共享区的命中率,通常在98%以上 In Memory Sort Ratio#<#0#如果过低说明有大量的排序在临时表空间中进行,可尝试增加sort_area_size Redo Nowait Ratio#<#98#写日志的不等待比率,太低可调整log_buffer(增加)和 _log_io_size(减小,默认为1/3*log_buffer/log_block_size,使得 _
Failover的步骤
相对于switchover来说,failover的步骤相对比较繁琐,而且切换过程中可能会出现一些比较妖怪的问题,其实中间的切换先后顺序比较重要。本来想把整理的东西贴出来的,可惜开了一下午的会,还要写报告,双休日都不消停,还要去春游。看来只有等到星期一了。 failover步骤:还是设primary为abc,physical standby为xyz。说明一下,这里使用Oracle10g中的新功能flashback来将abc恢复成与xyz同步。on abc:select flashback_on from v$database;YES的话就对了,如果是NO的话就需要shutdown immediate后再startup mount,然后用alter database f
Switchover的步骤
设abc为primary,xyz为physical standbyon abc:SQL>alter database commit to switchover to physical standby;SQL>shutdown immediate;on xyz:SQL>alter database commit to switchover to primary;SQL>shutdown immediate;on abc:SQL>startup nomount;SQL>alter database mount standby database;SQL>recover managed standby database disconnect;第一次启动的话就使用archive文件来apply吧,后面再using current logfile disconnecton xyz:SQL>startup这时候身为新备机的abc上面的v$database信息可能还没有来
DataGuard最新的问题出现了
在实行Failover切换之后发现虽然新备机可以应用,可以进入readonly模式,数据也和主机同步,但是在v$database中却显示的是UNPROTECTED模式,应该是MAXIMUM PERFORMANCE。奇怪了! 妈的,决定了,以后每天都要进行一次switchover和failover切换,一定要发现DG中所有的问题。 尝试了一下,把新主库重启了一下,发现新备库的模式变成了MAXIMUM PERFORMANCE。这难道是DG的BUG???估计在failover的过程中主备库多次关闭启动之间存在一定的顺序。有待研究![@more@]
总算把standby controlfile搞清楚了
其实standby controlfile是不能被自动识别的,唯一有效的办法就是覆盖原来的控制文件。在switchover的过程中,主机和备机通讯了以后能够自动将原来的控制文件转换为standby controlfile。但是在failover的时候,原主机上面的控制文件就不能自动转换了。这时候应该在原主机恢复之后,使用alter database create standby controlfile as '/tmp/stbyctl.ctl',将原来的控制文件覆盖。目前基本上能够比较快速且平稳的进行switchover,但是对于failover还总是多多少少存在一些问题。争取把遇到的问题都贴出来总结一下。[@more@]
DataGuard中关于standby controlfile的疑问
很多文档里面都描述了创建DataGuard的过程中需要创建standby controlfile。生成的命令为:SQL>alter database create standby controlfile as '/tmp/stbyctl.ctl';然后将生成的文件拷贝到相应的目录。但是所谓相应的目录,是备机上的/tmp目录呢,还是oradata目录?拷贝过去以后是就放在那里了呢?还是需要用来覆盖原先的controlfile。如果不需要覆盖的话,那么oracle就是自动识别这个文件的了?!感觉这些很多文档都没有讲清楚。估计这个问题的答案还需要我自己去实验了。还有一个注意点,就是standby controlfile的生成都应该在全库备