2013年(350)
分类: Oracle
2013-04-24 16:38:40
世上没有永恒的主角,能够留住永恒的反是那些默默无闻的小角色,这一节出场的都是重量级选手,它们虽然不是主角,但他们比主角更重要(有时候)。
一、READ ONLY/WRITE模式打开物理STANDBY
前面提到关于物理standby可以有效分担primary数据库压力,提升资源利用,实际上说的就是这个。以read only或read write模式打开物理standby,你可以转移一些查询任何啦,啦之类的操作到standby数据库,以这种方式来分担一些primary的压力。下面我们来演示一下,如何切换standby数据库的打开模式,其实,非常简单。例如,以Read-only模式打开物理standby:
这里要分两种情况:
1).standby处于shutdown状态
直接startup即可。
SQL> startup
ORACLE 例程已经启动。
......
2).standby数据库处于redo应用状态。
首先取消redo应用:
SQL> alter database recover managed standby database cancel;
数据库已更改。
然后再打开数据库
SQL> alter database open ;
数据库已更改。
提示:open的时候不需要附加read only子句,会根据控制文件判断是否是物理standby,从而自动启动到read only模式,直接startup也是同理。
3).如果想从open状态再切换回redo应用状态,并不需要shutdown,直接启用redo应用即可,例如:
SQL> select status from v$instance;
STATUS
------------
OPEN
SQL> alter database recover managed standby database disconnect from session;
数据库已更改。
SQL> select status from v$instance;
STATUS
------------
MOUNTED
正如演示中我们所看到的,操作有一点点复杂,并且由于只读打开时就不能应用,虽然我们能够查询,但是查询的结果确是与primary不同步的,这点大大降低了物理standby做报表服务分担主库压力的可能性,对于这点呢,我们有两个解决:
1、改用逻辑standby,由于逻辑standby是打开状态下的实时应用,因此数据同步应该是没啥问题了(只要primary的数据类型和操作逻辑standby都能被支持),当然逻辑standby有逻辑standby的问题,这个看完后面的逻辑standby相关章节,您就明白了。
2、据称oracle11g全面改良了物理standby,最突出的特点就是在read only打开模式下,可以边接收边应用了(这下不用担心查询的数据不及时的问题了),您可以考虑升级您的数据库到最新版本,当然新版本也有新版本的问题,比如各种尚未暴露出来的bug,想想就担心是不是:)
所以你看,做技术其实并不困难,难的是做决择。这么引申过来看一看,老板们不容易啊,怪不得越大的领导脑袋上头发越少呢,为了保持我干净整洁浓密的发型,我我,我还是选择干技术吧~~~~