ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 使用flashback database 特性将dataguard 的standby 库激活为read write的实现方法

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

原创 Linux操作系统 作者:zengzg 时间:2019-06-19 09:24:06 0 删除 编辑

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

 

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

下为实验过程:

一.从库:

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.归档当前的日志文件,可从库确认这个flackback的SCN:

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 的apply在standby 库中已经可以查询到了:

SQL> select * from t_flash;

 

NAME

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

just a test

dgflashback.JPG

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

请登录后发表评论 登录
全部评论

注册时间:2009-09-09

  • 博文量
    50
  • 访问量
    51882