Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1239651
  • 博文数量: 350
  • 博客积分: 10
  • 博客等级: 民兵
  • 技术积分: 5668
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-23 17:53
文章分类

全部博文(350)

文章存档

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,想想就担心是不是:)

所以你看,做技术其实并不困难,难的是做决择。这么引申过来看一看,老板们不容易啊,怪不得越大的领导脑袋上头发越少呢,为了保持我干净整洁浓密的发型,我我,我还是选择干技术吧~~~~


阅读(729) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~