当前位置: 代码迷 >> 综合 >> physical standby置于read/write状态
  详细解决方案

physical standby置于read/write状态

热度:37   发布时间:2023-12-17 01:35:18.0

 

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

 

整个过程如下:

 

 

◆1.设置闪回恢复区

 

SQL> alter system set db_recovery_file_dest_size=2G;
系统已更改。
SQL> alter system set db_recovery_file_dest='e:/oracle/back';
系统已更改。

◆2.取消备库的自动恢复状态

 

SQL> alter database recover managed standby database cancel;
数据库已更改。

◆3.创建一个还原点

 

SQL> create restore point restore_point_test 
guarantee flashback database;
还原点已创建。

 

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

 

SQL> alter system archive log current; 系统已更改。

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

 

SQL> alter system set log_archive_dest_state_2=defer;
系统已更改。

 

◆6.激活备库到read/write状态

 

SQL> alter database activate standby database;
数据库已更改。
SQL> alter database open;
数据库已更改。

 

 

◆7.

 

SQL> create table t1 as select * from all_objects where rownum<101;
表已创建。
SQL> drop table t1;
表已删除。

 

 

 

 

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

 

SQL> startup mount force;
ORACLE 例程已经启动。
Total System Global Area 142606336 bytes
Fixed Size 1247732 bytes
Variable Size 83887628 bytes
Database Buffers 50331648 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
SQL> flashback database to restore 
point restore_point_test;
闪回完成。

 

 

◆9.转换成备库

 

 

SQL> alter database convert to physical standby;
数据库已更改。

 

 

 

◆10.将备库至于自动恢复状态

 

SQL> startup mount force;
ORACLE 例程已经启动。
Total System Global Area 142606336 bytes
Fixed Size 1247732 bytes
Variable Size 83887628 bytes
Database Buffers 50331648 bytes
Redo Buffers 7139328 bytes
数据库装载完毕。
SQL> alter database recover managed 
standby database disconnect from session;
数据库已更改。

 

 

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

 

SQL> alter system set log_archive_dest_state_2=enable;
系统已更改。

◆12.检查主备库,状态正常

 

主库检查归档目的状态
SQL> select dest_name,status from v$archive_dest;
DEST_NAME STATUS
------------------------------ ------------------
LOG_ARCHIVE_DEST_1 VALID
LOG_ARCHIVE_DEST_2 VALID
LOG_ARCHIVE_DEST_3 INACTIVE
LOG_ARCHIVE_DEST_4 INACTIVE
LOG_ARCHIVE_DEST_5 INACTIVE
LOG_ARCHIVE_DEST_6 INACTIVE
LOG_ARCHIVE_DEST_7 INACTIVE
LOG_ARCHIVE_DEST_8 INACTIVE
LOG_ARCHIVE_DEST_9 INACTIVE
LOG_ARCHIVE_DEST_10 INACTIVE
已选择10行。
备库检查相关进程
SQL> select process,status 
from v$managed_standby;
PROCESS STATUS
------------------ -------------
ARCH CONNECTED
ARCH CONNECTED
MRP0 WAIT_FOR_LOG
RFS IDLE
  相关解决方案