使用flashback database 特性将dataguard 的standby 库激活为read write的实现方法

使用flashback database 特性将dataguard standby 库激活为read write的实现方法

 

可以利用10g flashback 特性来实现激活为standby库为 read write状态,standby库处于read write状态时可以在standby库上进行一些不能在主库上进行的测试工作,在完成之后可以将read write状态stnadby flashback到原来的recover mount状态,下图为操作原理过程:

10834762_200809270835591.jpg

下为实验过程:

一.从库:

1.  设置flashback 区域:

要使用这个特性就必须在standby库中设置flashback

在我的库中:

SQL> show parameter DB_RECOVERY_FILE_DEST

NAME                                 TYPE        VALUE

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

db_recovery_file_dest                string      /dg_flashback

db_recovery_file_dest_size           big integer   980M

 

2.  Standby库取消redo日志的应用并创建一个数据库的flashback 

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

Database altered.

 

SQL> CREATE RESTORE POINT before_application_test GUARANTEE FLASHBACK

  2  DATABASE;

Restore point created.

 

  主库

1.归档当前的日志文件,可从库确认这个flackbackSCN

SQL> ALTER SYSTEM ARCHIVE LOG CURRENT;

System altered.

2.停止主库的日志传到从库:

SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=DEFER;

System altered.

 

三.激活为standby库为 read write状态

1.激活为standby

SQL> ALTER DATABASE ACTIVATE STANDBY DATABASE;

Database altered.

 

2,如果standb处于readonly状态时,强制重启到mount

SQL> STARTUP MOUNT FORCE;

ORA-32004: obsolete and/or deprecated parameter(s) specified

ORACLE instance started.

Total System Global Area  218103808 bytes

Fixed Size                  1260984 bytes

Variable Size              83886664 bytes

Database Buffers          130023424 bytes

Redo Buffers                2932736 bytes

Database mounted.

 

3.standb改成  performance 保护模式,并打开数据到read write状态,主库并不受standby库的影响,可以按正常的方式进行操作:

SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE;

Database altered.

 

SQL> ALTER DATABASE OPEN;

 

Database altered.

SQL> select open_mode from v$database;

 

OPEN_MODE

----------

READ WRITE

这时可以进行各种test 工作:我在主库建表t_flash, standby 库建了一张f_t 表:可以在flashback 之后看他是否还存在:

 

在主库建:

SQL> create table t_flash(name char(30));

Table created.

SQL> insert into  t_flash values('just a test');

1 row created.

 

SQL> commit;

Commit complete.

从库建表f_t

SQL> create table f_t( a int);

 

Table created.

 

SQL> insert into f_t values(34);

 

1 row created.

 

SQL> commit;

 

Commit complete.

 

 

三.将standby flashback before_application_tes时的SCN 并重新置为physical standby role

1从库:

SQL> STARTUP MOUNT FORCE;

ORA-32004: obsolete and/or deprecated parameter(s) specified

ORACLE instance started.

 

Total System Global Area  218103808 bytes

Fixed Size                  1260984 bytes

Variable Size              92275272 bytes

Database Buffers          121634816 bytes

Redo Buffers                2932736 bytes

Database mounted.

SQL> FLASHBACK DATABASE TO RESTORE POINT before_application_test;

 

Flashback complete.

 

SQL> ALTER DATABASE CONVERT TO PHYSICAL STANDBY;

 

Database altered.

 

SQL> STARTUP MOUNT FORCE;

ORA-32004: obsolete and/or deprecated parameter(s) specified

ORACLE instance started.

 

Total System Global Area  218103808 bytes

Fixed Size                  1260984 bytes

Variable Size             100663880 bytes

Database Buffers          113246208 bytes

Redo Buffers                2932736 bytes

Database mounted.

SQL> select * from v$archive_gap;  

 

no rows selected

 

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;

 

Database altered.

 

 

2.主库

  SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;

 

四.检查 standby库被激活时的分别在pirmary,standby 库上建的表,此时在standby库中是否存在:

SQL> alter database recover managed standby database cancel;

Database altered.

 

SQL> alter database open read only;

 

Database altered.

---从库的表已经不存在:

SQL> select * from f_t;

select * from f_t

              *

ERROR at line 1:

ORA-00942: table or view does not exist

 

主库的表已经通过archivelog applystandby 库中已经可以查询到了:

SQL> select * from t_flash;

 

NAME

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

just a test

fj.pngdgflashback.JPG

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10834762/viewspace-464590/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/10834762/viewspace-464590/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值