12c dataguard GAP恢复

举报
snowofsummer 发表于 2021/07/21 15:59:36 2021/07/21
【摘要】 数据库版本Oracle Database - Enterprise Edition - Version 12.1.0.1 and later参考文章:1987763.1环境介绍:DB_UNIQUE_NAME: prim (net service name 'PRIM')DB_UNIQUE_NAME: clone (net service name 'CLONE')关闭日志应用: RMAN> ...

数据库版本

Oracle Database - Enterprise Edition - Version 12.1.0.1 and later

参考文章:1987763.1

环境介绍:

DB_UNIQUE_NAME: prim (net service name 'PRIM')

DB_UNIQUE_NAME: clone (net service name 'CLONE')

关闭日志应用:

 RMAN>  ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

检查主备数据库状态:

PRIMARY:

SQL> select HXFIL File_num,substr(HXFNM,1,40),fhscn from x$kcvfh;

  FILE_NUM SUBSTR(HXFNM,1,40)                       FHSCN
---------- ---------------------------------------- ----------------
         1 /<path>/prim/system01.dbf                 1984501
         3 /<path>/prim/sysaux01.dbf                 1984501
         4 /<path>/prim/undotbs01.dbf                1984501
         5 /<path>/prim/pdbseed/system01.dbf         1733076
         6 /<path>/prim/users01.dbf                  1984501
         7 /<path>/prim/pdbseed/sysaux01.dbf         1733076
         8 /<path>/prim/pdb1/system01.dbf            1984501
         9 /<path>/prim/pdb1/sysaux01.dbf            1984501
        10 /<path>/prim/pdb1/pdb1_users01.dbf        1984501
        16 /<path>/prim/pdb3/system01.dbf            1984501
        17 /<path>/prim/pdb3/sysaux01.dbf           1984501
        18 /<path>/prim/pdb3/pdb3_users01.dbf        1984501
        19 /<path>/prim/pdb3/test.dbf                1984501

13 rows selected.

STANDBY:

SQL>  select HXFIL File_num,substr(HXFNM,1,40),fhscn from x$kcvfh;

  FILE_NUM SUBSTR(HXFNM,1,40)                       FHSCN
---------- ---------------------------------------- ----------------
         1 /<path>/clone/system01.dbf               1980995
         3 /<path>/clone/sysaux01.dbf               1980998
         4 /<path>/clone/undotbs01.dbf              1981008
         5 /<path>/clone/pdbseed/system01.dbf       1733076
         6 /<path>/clone/users01.dbf                1981012
         7 /<path>/clone/pdbseed/sysaux01.dbf       1733076
         8 /<path>/clone/pdb1/system01.dbf          1981015
         9 /<path>/clone/pdb1/sysaux01.dbf          1981021
        10 /<path>/clone/pdb1/pdb1_users01.dbf      1981028
        16 /<path>/clone/pdb3/system01.dbf          1981030
        17 /<path>/clone/pdb3/sysaux01.dbf          1981036
        18 /<path>/clone/pdb3/pdb3_users01.dbf      1981043
        19 /<path>/clone/pdb3/test.dbf              1981044

13 rows selected. 

RMAN>  SELECT CURRENT_SCN FROM V$DATABASE;

For Example:

RMAN> SELECT CURRENT_SCN FROM V$DATABASE;
CURRENT_SCN
-----------
1984232

在备数据库执行命令:

# RECOVER … FROM SERVICE 

$ rman target SYS/<password>
RMAN> recover database from service PRIM noredo using compressed backupset;

#Lets check the SCNs of the datafiles at primary and standby now.
PRIMARY:

SQL> select HXFIL File_num,substr(HXFNM,1,40),fhscn from x$kcvfh;

  FILE_NUM SUBSTR(HXFNM,1,40)                       FHSCN
---------- ---------------------------------------- ----------------
         1 /<path>/prim/system01.dbf                1985174
         3 /<path>/prim/sysaux01.dbf                1985183
         4 /<path>/prim/undotbs01.dbf               1985194
         5 /<path>/prim/pdbseed/system01.dbf        1733076
         6 /<path>/prim/users01.dbf                 1985203
         7 /<path>/prim/pdbseed/sysaux01.dbf        1733076
         8 /<path>/prim/pdb1/system01.dbf           1985206
         9 /<path>/prim/pdb1/sysaux01.dbf           1985212
        10 /<path>/prim/pdb1/pdb1_users01.dbf       1985218
        16 /<path>/prim/pdb3/system01.dbf           1985221
        17 /<path>/prim/pdb3/sysaux01.dbf           1985343
        18 /<path>/prim/pdb3/pdb3_users01.dbf       1985350
        19 /<path>/prim/pdb3/test.dbf              1985354

13 rows selected

STANDBY:

RMAN> select HXFIL File_num,substr(HXFNM,1,40),fhscn from x$kcvfh;

  FILE_NUM SUBSTR(HXFNM,1,40)                       FHSCN
---------- ---------------------------------------- ----------------
         1 /<path>/clone/system01.dbf                1985174
         3 /<path>/clone/sysaux01.dbf                1985183
         4 /<path>/clone/undotbs01.dbf               1985194
         5 /<path>/clone/pdbseed/system01.dbf        1733076
         6 /<path>/clone/users01.dbf                 1985203
         7 /<path>/clone/pdbseed/sysaux01.dbf        1733076
         8 /<path>/clone/pdb1/system01.dbf           1985206
         9 /<path>/clone/pdb1/sysaux01.dbf           1985212
        10 /<path>/clone/pdb1/pdb1_users01.dbf       1985218
        16 /<path>/clone/pdb3/system01.dbf           1985221
        17 /<path>/clone/pdb3/sysaux01/dbf           1985343
        18 /<path>/clone/pdb3/pdb3_users01.dbf       1985350
        19 /<path>/clone/pdb3/test.dbf               1985354

13 rows selected

#备恢复控制文件:

RMAN> SHUTDOWN IMMEDIATE;
RMAN> STARTUP NOMOUNT;

RMAN> restore standby controlfile from service PRIM;

#重新更改备数据库文件名称(主备位置不一样)

RMAN> Catalog start with '/u01/app/oracle/oradata/clone/';
RMAN> SWITCH DATABASE TO COPY;

#若在GAP期间增加过数据库文件怎么处理?

##检查是否增加过数据文件?

SELECT file# FROM V$DATAFILE WHERE creation_change# >= 1984232;

#恢复增加的数据文件

RMAN> RUN
2> {
3> SET NEWNAME FOR DATABASE TO '/';
4> RESTORE DATAFILE 21 FROM SERVICE prim;
5> }

#清空redo

SQL> select GROUP# from v$logfile where TYPE='STANDBY' group by GROUP#;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 1;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 2;
SQL> ALTER DATABASE CLEAR LOGFILE GROUP 3;

#打开备数据库

SQL>  RECOVER DATABASE;
SQL>  ALTER DATABASE OPEN READ ONLY;

SQL>  ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。