oracle 11g active dataguard,Oracle 11g Active DataGuard初探

原本dataguard中日志应用和数据库只读查询是一个互斥的关系,两者不能并存。如果需要应用日志,则数据库只能在Mount状态下 使用recover managed standby database disconnect from session来不断地从后台进行日志应用。

如果想查看备库中的数据情况,则只能使用recover managed standby database cancel来取消日志应用,然后把数据库启动到read only 状态下。这种情况从道理上也讲也是有理有据,但是终归还是感觉不够方便,毕竟我们希望备库能够起到一些作用,不只是应用日志,一些大查询可以直接在备库上执行,能够分担主库的压力。11g的active dataguard就做到了这一点,重点就在于所说的active,所以这个时候数据库启动到了read only状态下,而且可以同时应用日志。如果配置备库的模式级别较高,甚至感觉和主库是一致的。

我们来简单看看这个特性。

我们来看看备库的信息。

idle> select name,database_role from v$database;

NAME      DATABASE_ROLE

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

TEST11G  PHYSICAL STANDBY

1 row selected.

对应的Instance信息。此时在Mount状态。

idle> select instance_name,status from v$instance;

INSTANCE_NAME    STATUS

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

DG11G            MOUNTED

1 row selected.

查看日志的应用情况,发现最新的记录中日志应用的需要为 78

idle>  select *from v$dataguard_status

Remote File Server      Warning                0          28          0 NO  01-JUN-15          RFS[2]: No standby redo logfiles of size 84490 blocks available

Log Apply Services      Informational          0          29          0 NO  01-JUN-15          Media Recovery Log /u02/dg11g/flash_recovery_area/DG11G/archivelog/1_77_880742847.dbf

Log Apply Services      Warning                0          30          0 NO  01-JUN-15          Media Recovery Waiting for thread 1 sequence 78

30 rows selected.

我们在主库切换一下日志。

#### primary database

alter system switch logfile;

备库这边很快得到相应,可见dataguard的日志应用是没有问题的。这些部分和在10g中是一致的。

########## standby alert log

Mon Jun 01 22:46:51 2015

RFS[2]: No standby redo logfiles of size 57697 blocks available

RFS[2]: Opened log for thread 1 sequence 78 dbid 1028247664 branch 880742847

Archived Log entry 110 added for thread 1 sequence 78 rlc 880742847 ID 0x3d942dcb dest 2:

Mon Jun 01 22:46:54 2015

Media Recovery Log /u02/dg11g/flash_recovery_area/DG11G/archivelog/1_78_880742847.dbf

Media Recovery Waiting for thread 1 sequence 79

这个时候我们取消日志应用,把数据库启动起来。

idle> recover managed standby database cancel;

Media recovery complete.

idle> alter database open;

Database altered.

这个时候查看数据库的状态是read only.

idle> select open_mode from v$database;

OPEN_MODE

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

READ ONLY

1 row selected.

这个时候我们来启用日志应用,这个也是在11g中的特色了。

idle> recover managed standby database using current logfile disconnect from session;

Media recovery complete.

这个时候查看状态就发生了细微的变化。

idle> select open_mode from v$database;

OPEN_MODE

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

READ ONLY WITH APPLY

1 row selected.

这个时候为了验证,我们从主库做点什么,比如创建一个小表看看备库能够在open状态也能应用日志。

主库中执行。

sys@TEST11G> conn n1/n1

Connected.

n1@TEST11G> create table aaa as select *from cat;

Table created.

n1@TEST11G> select count(*)from aaa;

COUNT(*)

----------

19

1 row selected.

这个时候在备库中马上查看是没有效果的。

##### standby datababse

n1@TEST11G> select *from aaa;

select *from aaa

*

ERROR at line 1:

ORA-00942: table or view does not exist

n1@TEST11G> show user

USER is "N1"

n1@TEST11G>

这个时候我们尝试切一下主库的日志,看看备库有啥反应。

#### primary

alter system switch logfile;

备库中的alert日志显示如下:

### standby log

Mon Jun 01 22:59:57 2015

RFS[2]: Selected log 8 for thread 1 sequence 79 dbid 1028247664 branch 880742847

Mon Jun 01 22:59:57 2015

Archived Log entry 111 added for thread 1 sequence 79 ID 0x3d942dcb dest 1:

Archived Log entry 112 added for thread 1 sequence 79 ID 0x3d942dcb dest 3:

Mon Jun 01 22:59:57 2015

Media Recovery Log /u02/dg11g/switchover/DG11G/archivelog/1_79_880742847.dbf

Media Recovery Waiting for thread 1 sequence 80

这个时候再次在备库查看,就发现数据变更都同步过来了。

n1@TEST11G> select count(*) from aaa;

COUNT(*)

----------

19

1 row selected.

n1@TEST11G> show user

USER is "N1"

相关参考:

Oracle 11g Data Guard Error 16143 Heartbeat failed to connect to standby 处理方法 http://www.linuxidc.com/Linux/2013-03/82009.htm

0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值