ITPub博客

首页 > 数据库 > Oracle > 在oracle 10g中实现oracle 11g的snapshot standby特性

在oracle 10g中实现oracle 11g的snapshot standby特性

原创 Oracle 作者:selectshen 时间:2015-08-10 18:24:28 0 删除 编辑
oracle 11g中的snapshot standby可参考:http://blog.itpub.net/28539951/viewspace-1767427/
snapshot standby是在oracle 11g才有的特性,大概是通过还原点(restore point)和闪回数据库的原理(flashback database),可以以读/写方式打开物理备用数据库,对数据库进行修改,之后再根据还原点,恢复到物理备用数据库.oracle 10g也有闪回数据库和还原点的功能,所以虽然不能象11g中直接通过convert就可以方便的转换,但实现方法也比较容易.
以下测试:
一:物理备用数据库到类似快照数据库
--查看当前备用数据库的角色
SQL> select open_mode,database_role from v$database;

OPEN_MODE            DATABASE_ROLE
-------------------- ----------------
MOUNTED              PHYSICAL STANDBY

--设置闪回恢复区,用于存储在还原点切换之后的变更
SQL> alter system set db_recovery_file_dest='/u01/app/oracle/fast_recovery_area';

System altered.

SQL> alter system set  db_recovery_file_dest_size=4182M;

System altered.
--取消物理standby的redo应用
SQL> alter database recover managed standby database cancel;

Database altered.
--创建还原点
SQL> create restore point standby_point01 guarantee flashback database;

Restore point created.
--物理standby转换为读写数据库
SQL> alter database activate standby database;

Database altered.

SQL> alter database open;

Database altered.
--查看当前备用数据库的角色
SQL> select open_mode,database_role from v$database;

OPEN_MODE            DATABASE_ROLE
-------------------- ----------------
READ WRITE           PRIMARY

二:类似快照数据库到物理备用数据库
--关闭并启动到mount
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.

Total System Global Area  730714112 bytes
Fixed Size                  2256832 bytes
Variable Size             482345024 bytes
Database Buffers          243269632 bytes
Redo Buffers                2842624 bytes
Database mounted.
--重新转回到物理standby
SQL> flashback database  to restore point standby_point01;

Flashback complete.

SQL> alter database convert to physical standby;

--关闭并启动到mount
Database altered.
SQL> shutdown immediate;
ORA-01507: database not mounted


ORACLE instance shut down.

SQL> startup mount;
ORACLE instance started.

Total System Global Area  730714112 bytes
Fixed Size                  2256832 bytes
Variable Size             482345024 bytes
Database Buffers          243269632 bytes
Redo Buffers                2842624 bytes
Database mounted.
--启动物理standby的redo应用
SQL> alter database recover managed standby database disconnect from session;

Database altered.
--删除还原点
SQL> drop restore point standby_point01;

Restore point dropped.

备注:
物理standby是最高保护模式(maximum protection),是不能转换为snapshot standby的.
物理standby使用了standby redo log,在create restore point后,要alter system switch logfile;,以保证还原点
的scn在物理standby库上是归档的,不然可能无法成功闪回到还原点.
物理standby在切换为类似快照standby后,如果间隔很长时间,primary数据库产生的大量的重做日志,这样可以在转换为物理standby后,通过对primary数据库的增量备份并recover到物理standby,来加快物理standby的还原速度.

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

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

注册时间:2014-01-05

  • 博文量
    169
  • 访问量
    1460552