以只读方式打开PHYSICAL STANDBY数据库,进行测试,然后还原
a. 检查standby的状态
SQL> select name,database_role,OPEN_MODE,SWITCHOVER_STATUS from v$database;
NAME DATABASE_ROLE OPEN_MODE SWITCHOVER_STATUS
--------- ---------------- ---------- --------------------
ORCLDB PHYSICAL STANDBY MOUNTED NOT ALLOWED
b.判断flashback_on是否开启
SQL> select flashback_on from v$database;
FLASHBACK_ON
------------------
YES
c.闪回恢复区设置检测
SQL> show parameter db_recovery_file_dest
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /u01/Oracle/flash_recovery_are
a
db_recovery_file_dest_size big integer 2G
d.取消日志应用
SQL> alter database recover managed standby database cancel;
Database altered.
e.创建还原点
SQL> create restore point restore_point_readonly guarantee flashback database;
Restore point created.
f.在主库上进行日志切换,日志发送设置为延迟
SQL> alter system archive log current;
System altered.
SQL> alter system set log_archive_dest_state_2=defer;
System altered.
h.激活备库到read write状态,并打开
SQL> alter database activate standby database;
Database altered.
SQL> alter database open;
Database altered.
SQL> select name,open_mode,database_role,db_unique_name from v$database;
NAME OPEN_MODE DATABASE_ROLE DB_UNIQUE_NAME
--------- ---------- ---------------- ------------------------------
ORCLDB READ WRITE PRIMARY PHYSTDBY
i.进行read write测试
SQL> create table scott.t as select * from dba_objects;
Table created.
SQL> select count(*) from scott.t;
COUNT(*)
----------
49745
SQL> truncate table scott.t;
Table truncated.
SQL> select count(*) from scott.t;
COUNT(*)
----------
0
j.测试结束,准备还原备库。 先强制启动到mount状态,然后进行数据库闪回
SQL> startup mount force
ORACLE instance started.
Total System Global Area 390070272 bytes
Fixed Size 2021024 bytes
Variable Size 142608736 bytes
Database Buffers 243269632 bytes
Redo Buffers 2170880 bytes
Database mounted.
SQL> flashback database to restore point restore_point_readonly;
Flashback complete.
k.将数据库转换为physical standby
SQL> alter database convert to physical standby;
Database altered.
l.再次强制启动到mout状态,,然后应用日志
SQL> startup mount force
ORACLE instance started.
Total System Global Area 390070272 bytes
Fixed Size 2021024 bytes
Variable Size 142608736 bytes
Database Buffers 243269632 bytes
Redo Buffers 2170880 bytes
Database mounted.
SQL> alter database recover managed standby database disconnect from session;
Database altered.
m.在主库把日志传送启用,切换日志
SQL> alter system set log_archive_dest_state_2=enable;
System altered.
SQL> alter system archive log current;
System altered.
n.观察备库日志,即可发现已经正常切换至物理备用,应用日志正常。
alter database Recovery Managed Standby Database Disconnect from session
Sun Jan 5 07:43:47 2014
尝试启动后台托管备用恢复进程 (PHYSTDBY)
MRP0 以 pid=22、操作系统 id=13951 启动
2014 年 1 月 5 日星期日 07:43:47
MRP0:后台托管备用恢复进程已启动 (PHYSTDBY)
未使用实时应用的托管备用恢复
正在清除联机重做日志文件 1 /u01/oracle/oradata/ORCLDB/redo01.log
正在清除线程 1 序列号 1 的联机日志 1
2014 年 1 月 5 日星期日 07:43:53
已完成:更改数据库恢复托管备用数据库与会话断开连接
2014 年 1 月 5 日星期日 07:43:55
清除联机重做日志文件 1 已完成
媒体恢复日志 /u01/oracle/arch1/PHYSTDBY/1_39_795970778.dbf
媒体恢复日志 /u01/oracle/arch1/PHYSTDBY/1_40_795970778.dbf
媒体恢复正在等待线程 1 序列 41
2007 年 1 月 5 日星期日:44:56 2014
重做运输客户端以 PUBLIC 连接
-- 连接的用户有效
RFS[1]:分配给 RFS 进程 13953
RFS[1]:将数据库类型识别为“物理”备用'
主数据库处于最大可用性模式
将备用控制文件更改为重新同步级别
2014年1月5日星期日07:44:56
RFS LogMiner:客户端已禁用进一步通知
主数据库处于在最大可用性模式下
将备用控制文件更改为最大可用性级别
RFS[1]:成功打开备用日志 4:'/u01/oracle/oradata/ORCLDB/stdby_redo04.log'
2007 年 1 月 5 日星期日: 2014 年 44:56
重做运输客户端以 PUBLIC 连接
-- 连接的用户有效
RFS[2]:分配给 RFS 进程 13955
RFS[2]:将数据库类型识别为“物理备用” '
RFS[2]:成功打开备用日志 5:'/u01/oracle/oradata/ORCLDB/stdby_redo05.log'
2014 年 1 月 5 日星期日 07:45:01
介质恢复日志 /u01/ oracle/arch1/PHYSTDBY/1_41_795970778.dbf
媒体恢复正在等待线程 1 序列 42(传输中)
2014 年 1 月 5 日星期日 07:45:16
重做运输客户端作为公共连接
--连接的用户有效
RFS[3]:分配给 RFS 进程 13959
RFS[3]:将数据库类型识别为“物理备用”
推荐阅读:
Data Guard 配置备用重做日志
备用失败解决过程的 RMAN 重复
Data Gurad物理备份方式下以READ ONLY/WRITE模式打开物理备用
RAC主单机DG配置实践
Oracle Standby 策略PPT