暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

Orace ADG环境下主库闪回实验

长河的笔记 2020-10-24
2002


Oracle ADG物理备库环境,应用有变更需求,主备库均开启闪回功能创建还原点,由于应用变更失败,要求回退。所以主库要闪回到指定还原点,这种情况备库同样也需要闪回到还原点,之后主备库正常工作,不需要重新搭建备库环境。


实验环境:

RedHat 7.x

Oracle Database 12.1.0.2 

主库pcdbn  (rac)

备库pcdbns (single instance)


1. 主备库开启flashback特性

  --pcdbn
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE = 10G SID='*';
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST = '+RECO' SID='*';
ALTER DATABASE FLASHBACK ON;

--pcdbns
recover managed standby database cancel;
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST_SIZE = 10G SID='*';
ALTER SYSTEM SET DB_RECOVERY_FILE_DEST = '+RECO' SID='*';
ALTER DATABASE FLASHBACK ON;
recover managed standby database disconnect;


2. 主库创建还原点,记住还原点SCN

  --pcdbn
CREATE RESTORE POINT before_change GUARANTEE FLASHBACK DATABASE;
SELECT NAME, SCN, STORAGE_SIZE FROM V$RESTORE_POINT WHERE GUARANTEE_FLASHBACK_DATABASE = 'YES';
NAME SCN STORAGE_SIZE
------------------------------ ----------------- ------------
BEFORE_CHANGE 4171186 52428800

alter system switch logfile;


3. 应用开始做变更,数据改变

  SQL> select * from tt;

ID
----------
1
2
3

3 rows selected.

--after application data change

SQL> select * from tt;

ID
----------
1
100
        1000


4. 应用变更失败,要求回滚数据库到变更前,停止应用服务。


5. 停止备库sql应用

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;


6. 闪回主库到还原点

srvctl stop database -d pcdbn
export ORACLE_SID=pcdbn1
sqlplus / as sysdba
startup mount
flashback database to SCN 4171186;    --> 这里的SCN指之前创建还原点时的SCN 
alter database open read only;   -->以只读模式启动,用于验证数据正确性
alter database open resetlogs;   -->验证数据后以读写模式启动


7. 闪回备库

SELECT CURRENT_SCN FROM V$DATABASE;
FLASHBACK STANDBY DATABASE TO SCN  4171186-2;   ---->>>>此处的SCN为主库创建还原点时的SCN-2
SELECT CURRENT_SCN FROM V$DATABASE;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;


这样主备库就又处于同步状态了。希望以上内容能够对您有所帮助


参考:

How To Flashback Primary Database In Standby Configuration (Doc ID 728374.1)




文章转载自长河的笔记,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论