数据库

位置:IT落伍者 >> 数据库 >> 浏览文章

oracle10g:物理备库也可以read/write


发布日期:2023年11月18日
 
oracle10g:物理备库也可以read/write

从Oracleg开始physical standby也可以临时的置于read/write状态以便用于开发测试以及做报表等然后再通过flashback到先前的时间点继续应用主库的归档

下面通过一个实验演示整个过程

设置闪回恢复区

SQL> alter system set db_recovery_file_dest_size=G;

系统已更改

SQL> alter system set db_recovery_file_dest=e:/oracle/back;

系统已更改

取消备库的自动恢复状态

SQL> alter database recover managed standby database cancel;

数据库已更改

创建一个还原点

SQL> create restore point restore_point_test guarantee flashback database;

还原点已创建

在主库归档当前日志确保前一步创建还原点的scn的归档日志已经传到备库

SQL> alter system archive log current;

系统已更改

将主库到备库的归档目的地的状态设置为defer

SQL> alter system set log_archive_dest_state_=defer;

系统已更改

激活备库到read/write状态

SQL> alter database activate standby database;

数据库已更改

SQL> alter database open;

数据库已更改

此时可以在备库执行需要的读写操作

SQL> create table t as select * from all_objects where rownum<;

表已创建

SQL> drop table t;

表已删除

将数据库flashback回原来保存的还原点

SQL> startup mount force;

ORACLE 例程已经启动

Total System Global Area bytes

Fixed Size bytes

Variable Size bytes

Database Buffers bytes

Redo Buffers bytes

数据库装载完毕

SQL> flashback database to restore point restore_point_test;

闪回完成

转换成备库

SQL> alter database convert to physical standby;

数据库已更改

将备库至于自动恢复状态

SQL> startup mount force;

ORACLE 例程已经启动

Total System Global Area bytes

Fixed Size bytes

Variable Size bytes

Database Buffers bytes

Redo Buffers bytes

数据库装载完毕

SQL> alter database recover managed standby database disconnect from session;

数据库已更改

将主库到备库的归档目的地的状态设置为enable

SQL> alter system set log_archive_dest_state_=enable;

系统已更改

检查主备库状态正常

主库检查归档目的状态

SQL> select dest_namestatus from v$archive_dest;

DEST_NAME STATUS

LOG_ARCHIVE_DEST_ VALID

LOG_ARCHIVE_DEST_ VALID

LOG_ARCHIVE_DEST_ INACTIVE

LOG_ARCHIVE_DEST_ INACTIVE

LOG_ARCHIVE_DEST_ INACTIVE

LOG_ARCHIVE_DEST_ INACTIVE

LOG_ARCHIVE_DEST_ INACTIVE

LOG_ARCHIVE_DEST_ INACTIVE

LOG_ARCHIVE_DEST_ INACTIVE

LOG_ARCHIVE_DEST_ INACTIVE

已选择

备库检查相关进程

SQL> select processstatus from v$managed_standby;

PROCESS STATUS

ARCH CONNECTED

ARCH CONNECTED

MRP WAIT_FOR_LOG

RFS IDLE

上一篇:数据库设计中的反规范技术探讨

下一篇:个人经验总结:在Oracle中恢复被DROP掉的表