Oracle 19c_ASM_单实例物理DG主库归档丢失使用主库基于SCN增量备份来恢复DG

1、环境准备

构建主库归档丢失的情况

"""关闭备库"""
[oracle@hhh ~]$ srvctl stop db -d ZZZDGPHY -o abort;

"""查看主库"""
SYS@dgpri>select name,db_unique_name,database_role,open_mode,switchover_status from v$database;

NAME		DB_UNIQU DATABASE_ROLE	  OPEN_MODE	       SWITCHOVER_STATUS
--------------- -------- ---------------- -------------------- ------------------
ZZZ		ZZZDGPRI PRIMARY	  READ WRITE	       FAILED DESTINATION

SYS@dgpri>alter system archive log current;

System altered.

......

SYS@dgpri>alter system checkpoint;

System altered.

SYS@dgpri>archive log list;
Database log mode	       Archive Mode
Automatic archival	       Enabled
Archive destination	       USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     56
Next log sequence to archive   58
Current log sequence	       58

"""主库删除seq 50 51 52 53 54"""

ASMCMD> rm thread_1_seq_50.300.1033241793
ASMCMD> rm thread_1_seq_51.301.1033241795
ASMCMD> rm thread_1_seq_52.302.1033241797
ASMCMD> rm thread_1_seq_53.303.1033241801
ASMCMD> rm thread_1_seq_54.304.1033241803


启动备库
[oracle@hhh ~]$ srvctl start db -d ZZZDGPHY

"""主库报错"""
2020-02-24T19:40:24.154020+08:00
Errors in file /u01/app/oracle/diag/rdbms/zzzdgpri/dgpri/trace/dgpri_tt00_4530.trc:
ORA-00308: cannot open archived log '+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_54.304.1033241803'
ORA-17503: ksfdopn:2 Failed to open file +FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_54.304.1033241803
ORA-15012: ASM file '+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_54.304.1033241803' does not exist
2020-02-24T19:40:24.155396+08:00
Errors in file /u01/app/oracle/diag/rdbms/zzzdgpri/dgpri/trace/dgpri_tt00_4530.trc:
ORA-00308: cannot open archived log '+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_53.303.1033241801'
ORA-17503: ksfdopn:2 Failed to open file +FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_53.303.1033241801
ORA-15012: ASM file '+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_53.303.1033241801' does not exist
2020-02-24T19:40:24.156601+08:00
Errors in file /u01/app/oracle/diag/rdbms/zzzdgpri/dgpri/trace/dgpri_tt00_4530.trc:
ORA-00308: cannot open archived log '+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_52.302.1033241797'
ORA-17503: ksfdopn:2 Failed to open file +FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_52.302.1033241797
ORA-15012: ASM file '+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_52.302.1033241797' does not exist
2020-02-24T19:40:24.157612+08:00
Errors in file /u01/app/oracle/diag/rdbms/zzzdgpri/dgpri/trace/dgpri_tt00_4530.trc:
ORA-00308: cannot open archived log '+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_51.301.1033241795'
ORA-17503: ksfdopn:2 Failed to open file +FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_51.301.1033241795
ORA-15012: ASM file '+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_51.301.1033241795' does not exist
2020-02-24T19:40:24.158622+08:00
Errors in file /u01/app/oracle/diag/rdbms/zzzdgpri/dgpri/trace/dgpri_tt00_4530.trc:
ORA-00308: cannot open archived log '+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_50.300.1033241793'
ORA-17503: ksfdopn:2 Failed to open file +FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_50.300.1033241793
ORA-15012: ASM file '+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_50.300.1033241793' does not exist

备库:

查看备库数据文件、临时文件、日志文件位置,这个在后面进行恢复时重命名文件时会用到...
SYS@dgphy>select file#,name from v$datafile order by file#;

     FILE# NAME
---------- ------------------------------------------------------------------------------------------
	 1 +DATADG/ZZZDGPHY/DATAFILE/system.260.1025389147
	 3 +DATADG/ZZZDGPHY/DATAFILE/sysaux.261.1025389233
	 4 +DATADG/ZZZDGPHY/DATAFILE/undotbs1.262.1025389281
	 5 +DATADG/ZZZDGPHY/983CBDC2D7C83ADDE053103BA8C0ED32/DATAFILE/system.263.1025389295
	 6 +DATADG/ZZZDGPHY/983CBDC2D7C83ADDE053103BA8C0ED32/DATAFILE/sysaux.264.1025389321
	 7 +DATADG/ZZZDGPHY/DATAFILE/users.265.1025389345
	 8 +DATADG/ZZZDGPHY/983CBDC2D7C83ADDE053103BA8C0ED32/DATAFILE/undotbs1.266.1025389347
	 9 +DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/system.267.1025389355
	10 +DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/sysaux.268.1025389381
	11 +DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/undotbs1.269.1025389407
	12 +DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/users.270.1025389413

11 rows selected.

SYS@dgphy>select file#,name from v$tempfile order by file#;

     FILE# NAME
---------- ------------------------------------------------------------------------------------------
	 1 +DATADG/ZZZDGPHY/TEMPFILE/temp.278.1025390003
	 2 +DATADG/ZZZDGPHY/983CBDC2D7C83ADDE053103BA8C0ED32/TEMPFILE/temp.279.1025390011
	 3 +DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/TEMPFILE/temp.280.1033237247

SYS@dgphy>select a.group#,a.member from v$logfile a,v$log b where a.group# = b.group# order by group#;

GROUP# MEMBER
------ ------------------------------------------------------------
     1 +DATADG/ZZZDGPHY/ONLINELOG/group_1.271.1025389435
     1 +FRADG/ZZZDGPHY/ONLINELOG/group_1.256.1025389451
     2 +DATADG/ZZZDGPHY/ONLINELOG/group_2.272.1025389469
     2 +FRADG/ZZZDGPHY/ONLINELOG/group_2.257.1025389483
     3 +DATADG/ZZZDGPHY/ONLINELOG/group_3.273.1025389499
     3 +FRADG/ZZZDGPHY/ONLINELOG/group_3.262.1025389515

备库:
SYS@dgphy>alter database recover managed standby database using current logfile disconnect;

Database altered.

SYS@dgphy>select name,sequence#,applied from v$archived_log order by 2;

NAME									     SEQUENCE# APPLIED
--------------------------------------------------------------------------- ---------- ---------
...
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_46.293.1033242023		    46 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_47.290.1033242023		    47 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_48.289.1033242023		    48 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_49.291.1033242023		    49 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_55.292.1033242023		    55 NO
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_56.295.1033242023		    56 NO
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_57.294.1033242023		    57 NO
...

缺少sequence 50-54 日志

SYS@dgphy>select * from v$archive_gap;

   THREAD# LOW_SEQUENCE# HIGH_SEQUENCE# CON_ID
---------- ------------- -------------- ------
	 1	      50	     54      1


2020-02-24T19:44:26.880260+08:00
MRP0 (PID:10139): FAL: Failed to request gap sequence
MRP0 (PID:10139):  GAP - thread 1 sequence 50-54
MRP0 (PID:10139):  DBID 2058728742 branch 1025368235
MRP0 (PID:10139): FAL: All defined FAL servers have been attempted
MRP0 (PID:10139): -------------------------------------------------------------------------
MRP0 (PID:10139): Check that the CONTROL_FILE_RECORD_KEEP_TIME initialization
MRP0 (PID:10139): parameter is defined to a value that's sufficiently large
MRP0 (PID:10139): enough to maintain adequate log switch information to resolve
MRP0 (PID:10139): archived redo log gaps.
MRP0 (PID:10139): -------------------------------------------------------------------------
2020-02-24T19:46:50.744785+08:00
Expanded controlfile section 11 from 28 to 280 records
Requested to grow by 252 records; added 9 blocks of records
2020-02-24T19:46:50.747263+08:00
ARC1 (PID:9956): Archived Log entry 34 added for T-1.S-58 ID 0x7ab4eb25 LAD:1
2020-02-24T19:46:50.843989+08:00
 rfs (PID:10401): Primary database is in MAXIMUM PERFORMANCE mode
2020-02-24T19:46:50.932049+08:00
 rfs (PID:10401): Selected LNO:11 for T-1.S-59 dbid 2058728742 branch 1025368235

2、查询主库用于基于SCN增量备份的最小SCN

备库:
SYS@dgphy>select * from v$archive_gap;

   THREAD# LOW_SEQUENCE# HIGH_SEQUENCE# CON_ID
---------- ------------- -------------- ------
	 1	      50	     54      1

主库:
SYS@dgpri>select name,sequence#,archived from v$archived_log where name like '+FRA%' order by sequence#;

NAME										       SEQUENCE# ARC
------------------------------------------------------------------------------------- ---------- ---
+FRA/ZZZDGPRI/ARCHIVELOG/2019_11_26/thread_1_seq_15.268.1025385367			      15 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2019_11_26/thread_1_seq_16.269.1025386253			      16 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2019_11_26/thread_1_seq_17.270.1025387567			      17 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2019_11_26/thread_1_seq_18.271.1025388235			      18 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2019_11_26/thread_1_seq_19.272.1025389071			      19 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2019_11_26/thread_1_seq_20.273.1025389415			      20 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2019_11_26/thread_1_seq_21.274.1025389417			      21 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2019_11_26/thread_1_seq_22.275.1025390207			      22 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2019_11_26/thread_1_seq_23.276.1025390297			      23 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2019_11_26/thread_1_seq_24.277.1025390301			      24 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_25.278.1033237001			      25 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_26.279.1033237507			      26 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_27.280.1033237769			      27 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_28.281.1033237769			      28 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_29.282.1033237773			      29 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_30.283.1033237773			      30 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_31.284.1033237777			      31 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_32.285.1033237779			      32 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_33.286.1033237783			      33 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_34.267.1033240755			      34 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_35.266.1033240771			      35 YES
+FRA/ZZZDGPRI/archivelog/2020_02_24/thread_1_seq_35.266.1033240771_bak			      35 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_36.265.1033240787			      36 YES
+FRA/ZZZDGPRI/archivelog/2020_02_24/thread_1_seq_36.265.1033240787_bak			      36 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_37.287.1033240789			      37 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_38.266.1033241539			      38 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_39.289.1033241539			      39 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_40.290.1033241541			      40 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_41.291.1033241541			      41 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_42.292.1033241545			      42 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_43.293.1033241547			      43 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_44.294.1033241551			      44 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_45.295.1033241553			      45 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_46.296.1033241783			      46 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_47.297.1033241783			      47 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_48.298.1033241787			      48 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_49.299.1033241789			      49 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_50.300.1033241793			      50 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_51.301.1033241795			      51 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_52.302.1033241797			      52 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_53.303.1033241801			      53 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_54.304.1033241803			      54 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_55.305.1033241807			      55 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_56.306.1033241809			      56 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_57.307.1033241813			      57 YES
+FRA/ZZZDGPRI/ARCHIVELOG/2020_02_24/thread_1_seq_58.304.1033242411			      58 YES

46 rows selected.

SYS@dgpri>select min(first_change#) from v$archived_log where name like '+FRA%' and sequence# between 50 and 54;

MIN(FIRST_CHANGE#)
------------------
	   3310669

备库:
SYS@dgphy>select current_scn from v$database;

CURRENT_SCN
-----------
    3310668

比较2个SCN取最小的SCN来作为主库增量备份的起始SCN

3、创建基于主库丢失归档的最小SCN的增量备份和standby controlfile备份

创建备份目录

[oracle@kkk ~]$ mkdir -p /home/oracle/rman_bak
[oracle@kkk ~]$ ls -ld /home/oracle/rman_bak
drwxr-xr-x 2 oracle oinstall 4096 Feb 24 20:00 /home/oracle/rman_bak

[oracle@kkk ~]$ rman target /

Recovery Manager: Release 19.0.0.0.0 - Production on Mon Feb 24 20:01:23 2020
Version 19.2.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.

connected to target database: ZZZ (DBID=2058728742)

创建基于最小SCN的增量备份
RMAN> backup incremental from scn 3310668 database format '/home/oracle/rman_bak/incr_%d_%t_%s.dbf';

Starting backup at 2020-02-24 20:02:26
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=79 device type=DISK
RMAN-06755: warning: datafile 5: incremental-start SCN is too recent; using checkpoint SCN 1910064 instead
RMAN-06755: warning: datafile 6: incremental-start SCN is too recent; using checkpoint SCN 1910064 instead
RMAN-06755: warning: datafile 8: incremental-start SCN is too recent; using checkpoint SCN 1910064 instead
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=+DATA/ZZZ/DATAFILE/system.257.1025368019
input datafile file number=00003 name=+DATA/ZZZ/DATAFILE/sysaux.258.1025368115
input datafile file number=00004 name=+DATA/ZZZ/DATAFILE/undotbs1.259.1025368161
input datafile file number=00007 name=+DATA/ZZZ/DATAFILE/users.260.1025368163
channel ORA_DISK_1: starting piece 1 at 2020-02-24 20:02:28
channel ORA_DISK_1: finished piece 1 at 2020-02-24 20:02:35
piece handle=/home/oracle/rman_bak/incr_ZZZ_1033243348_116.dbf tag=TAG20200224T200227 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:07
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00010 name=+DATA/ZZZ/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/sysaux.273.1025369069
input datafile file number=00009 name=+DATA/ZZZ/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/system.272.1025369069
input datafile file number=00011 name=+DATA/ZZZ/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/undotbs1.271.1025369067
input datafile file number=00012 name=+DATA/ZZZ/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/users.275.1025369253
channel ORA_DISK_1: starting piece 1 at 2020-02-24 20:02:35
channel ORA_DISK_1: finished piece 1 at 2020-02-24 20:02:38
piece handle=/home/oracle/rman_bak/incr_ZZZ_1033243355_117.dbf tag=TAG20200224T200227 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00006 name=+DATA/ZZZ/811A060B58140C01E053DC06E80AF3C6/DATAFILE/sysaux.267.1025368389
skipping datafile 00006 because it has not changed
input datafile file number=00005 name=+DATA/ZZZ/811A060B58140C01E053DC06E80AF3C6/DATAFILE/system.266.1025368389
skipping datafile 00005 because it has not changed
input datafile file number=00008 name=+DATA/ZZZ/811A060B58140C01E053DC06E80AF3C6/DATAFILE/undotbs1.268.1025368389
skipping datafile 00008 because it has not changed
channel ORA_DISK_1: backup cancelled because all files were skipped
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current control file in backup set
channel ORA_DISK_1: starting piece 1 at 2020-02-24 20:02:39
channel ORA_DISK_1: finished piece 1 at 2020-02-24 20:02:40
piece handle=/home/oracle/rman_bak/incr_ZZZ_1033243358_119.dbf tag=TAG20200224T200227 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2020-02-24 20:02:40
RMAN-08591: warning: invalid archived log deletion policy

创建standby controlfile 备份

RMAN> backup current controlfile for standby format '/home/oracle/rman_bak/stdby_%U.ctl';

Starting backup at 2020-02-24 20:04:13
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including standby control file in backup set
channel ORA_DISK_1: starting piece 1 at 2020-02-24 20:04:15
channel ORA_DISK_1: finished piece 1 at 2020-02-24 20:04:16
piece handle=/home/oracle/rman_bak/stdby_3oupc2pu_1_1.ctl tag=TAG20200224T200414 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2020-02-24 20:04:16

Starting Control File and SPFILE Autobackup at 2020-02-24 20:04:16
piece handle=+FRA/ZZZDGPRI/AUTOBACKUP/2020_02_24/s_1033243456.303.1033243457 comment=NONE
Finished Control File and SPFILE Autobackup at 2020-02-24 20:04:17
RMAN-08591: warning: invalid archived log deletion policy

[oracle@kkk ~]$ ls -l /home/oracle/rman_bak
total 44264
-rw-r----- 1 oracle asmadmin  7159808 Feb 24 20:02 incr_ZZZ_1033243348_116.dbf
-rw-r----- 1 oracle asmadmin   352256 Feb 24 20:02 incr_ZZZ_1033243355_117.dbf
-rw-r----- 1 oracle asmadmin 18907136 Feb 24 20:02 incr_ZZZ_1033243358_119.dbf
-rw-r----- 1 oracle asmadmin 18907136 Feb 24 20:04 stdby_3oupc2pu_1_1.ctl

4、scp备份集到备库

[oracle@hhh ~]$ mkdir -p /home/oracle/rman_bak
[oracle@hhh ~]$ ls -ld /home/oracle/rman_bak
drwxr-xr-x 2 oracle oinstall 4096 Feb 24 20:05 /home/oracle/rman_bak


[oracle@kkk ~]$ scp oracle@192.168.59.16:/home/oracle/rman_bak/* oracle@192.168.59.17:/home/oracle/rman_bak
oracle@192.168.59.16's password: 
oracle@192.168.59.17's password: 
incr_ZZZ_1033243348_116.dbf                                                  100% 6992KB  43.8MB/s   00:00    
incr_ZZZ_1033243355_117.dbf                                                  100%  344KB  25.5MB/s   00:00    
incr_ZZZ_1033243358_119.dbf                                                  100%   18MB  35.9MB/s   00:00    
stdby_3oupc2pu_1_1.ctl                                                       100%   18MB  37.6MB/s   00:00    
Connection to 192.168.59.16 closed.


[oracle@hhh ~]$ ls -l /home/oracle/rman_bak
total 44264
-rw-r----- 1 oracle oinstall  7159808 Feb 24 20:06 incr_ZZZ_1033243348_116.dbf
-rw-r----- 1 oracle oinstall   352256 Feb 24 20:06 incr_ZZZ_1033243355_117.dbf
-rw-r----- 1 oracle oinstall 18907136 Feb 24 20:06 incr_ZZZ_1033243358_119.dbf
-rw-r----- 1 oracle oinstall 18907136 Feb 24 20:06 stdby_3oupc2pu_1_1.ctl

5、还原恢复备库

重启备库到nomount状态恢复controlfile

SYS@dgphy>startup force nomount;
ORACLE instance started.

Total System Global Area 1593832616 bytes
Fixed Size		    9135272 bytes
Variable Size		 1023410176 bytes
Database Buffers	  553648128 bytes
Redo Buffers		    7639040 bytes


[oracle@hhh ~]$ rman target /

Recovery Manager: Release 19.0.0.0.0 - Production on Mon Feb 24 20:08:07 2020
Version 19.2.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.

connected to target database: ZZZ (not mounted)

RMAN> host 'ls -l /home/oracle/rman_bak';

total 44264
-rw-r----- 1 oracle oinstall  7159808 Feb 24 20:06 incr_ZZZ_1033243348_116.dbf
-rw-r----- 1 oracle oinstall   352256 Feb 24 20:06 incr_ZZZ_1033243355_117.dbf
-rw-r----- 1 oracle oinstall 18907136 Feb 24 20:06 incr_ZZZ_1033243358_119.dbf
-rw-r----- 1 oracle oinstall 18907136 Feb 24 20:06 stdby_3oupc2pu_1_1.ctl
host command complete

"""还原controlfile"""
RMAN> restore standby controlfile from '/home/oracle/rman_bak/stdby_3oupc2pu_1_1.ctl'
2> ;

Starting restore at 2020-02-24 20:09:18
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=46 device type=DISK

channel ORA_DISK_1: restoring control file
channel ORA_DISK_1: restore complete, elapsed time: 00:00:02
output file name=+DATADG/ZZZDGPHY/CONTROLFILE/current.257.1025389127
output file name=+FRADG/ZZZDGPHY/CONTROLFILE/current.258.1025389129
Finished restore at 2020-02-24 20:09:20

RMAN> alter database mount;

released channel: ORA_DISK_1
Statement processed

文件名需要转换,转换前面查询到数据文件、临时文件以及日志文件

SYS@dgphy>select file#,name from v$datafile;

     FILE# NAME
---------- ----------------------------------------------------------------------------------------
	 1 +DATADG/MUST_RENAME_THIS_DATAFILE_1.4294967295.4294967295
	 3 +DATADG/MUST_RENAME_THIS_DATAFILE_3.4294967295.4294967295
	 4 +DATADG/MUST_RENAME_THIS_DATAFILE_4.4294967295.4294967295
	 5 +DATADG/MUST_RENAME_THIS_DATAFILE_5.4294967295.4294967295
	 6 +DATADG/MUST_RENAME_THIS_DATAFILE_6.4294967295.4294967295
	 7 +DATADG/MUST_RENAME_THIS_DATAFILE_7.4294967295.4294967295
	 8 +DATADG/MUST_RENAME_THIS_DATAFILE_8.4294967295.4294967295
	 9 +DATADG/MUST_RENAME_THIS_DATAFILE_9.4294967295.4294967295
	10 +DATADG/MUST_RENAME_THIS_DATAFILE_10.4294967295.4294967295
	11 +DATADG/MUST_RENAME_THIS_DATAFILE_11.4294967295.4294967295
	12 +DATADG/MUST_RENAME_THIS_DATAFILE_12.4294967295.4294967295

11 rows selected.

SYS@dgphy>select file#,name from v$tempfile;

     FILE# NAME
---------- ----------------------------------------------------------------------------------------
	 1 +DATADG/MUST_RENAME_THIS_TEMPFILE_1.4294967295.4294967295
	 2 +DATADG/MUST_RENAME_THIS_TEMPFILE_2.4294967295.4294967295
	 3 +DATADG/MUST_RENAME_THIS_TEMPFILE_3.4294967295.4294967295

SYS@dgphy>select group#,member from v$logfile where type = 'ONLINE' order by 1;

GROUP# MEMBER
------ ------------------------------------------------------------
     1 +DATADG/MUST_RENAME_THIS_LOGFILE_1.4294967295.4294967295
     1 +FRADG/MUST_RENAME_THIS_LOGFILE_1.4294967295.4294967295
     2 +DATADG/MUST_RENAME_THIS_LOGFILE_2.4294967295.4294967295
     2 +FRADG/MUST_RENAME_THIS_LOGFILE_2.4294967295.4294967295
     3 +DATADG/MUST_RENAME_THIS_LOGFILE_3.4294967295.4294967295
     3 +FRADG/MUST_RENAME_THIS_LOGFILE_3.4294967295.4294967295

日志报错:
...
WARNING: The converted filename '+DATADG/zzz/datafile/sysaux.258.1025368115'
         is an ASM fully qualified filename.
         Changing the filename to '+DATADG/MUST_RENAME_THIS_DATAFILE_3.4294967295.4294967295'.
         Please rename it accordingly.
*****************************************
*****************************************
WARNING: The converted filename '+DATADG/zzz/tempfile/temp.265.1025368365'
         is an ASM fully qualified filename.
         Changing the filename to '+DATADG/MUST_RENAME_THIS_TEMPFILE_1.4294967295.4294967295'.
         Please rename it accordingly.
*****************************************
*****************************************
WARNING: The converted filename '+DATADG/zzz/811a060b58140c01e053dc06e80af3c6/datafile/system.266.1025368389'
         is an ASM fully qualified filename.
         Changing the filename to '+DATADG/MUST_RENAME_THIS_DATAFILE_5.4294967295.4294967295'.
         Please rename it accordingly.
*****************************************
*****************************************
WARNING: The converted filename '+DATADG/zzz/811a060b58140c01e053dc06e80af3c6/datafile/sysaux.267.1025368389'
         is an ASM fully qualified filename.
         Changing the filename to '+DATADG/MUST_RENAME_THIS_DATAFILE_6.4294967295.4294967295'.
         Please rename it accordingly.
*****************************************
*****************************************
WARNING: The converted filename '+DATADG/zzz/811a060b58140c01e053dc06e80af3c6/datafile/undotbs1.268.1025368389'
         is an ASM fully qualified filename.
         Changing the filename to '+DATADG/MUST_RENAME_THIS_DATAFILE_8.4294967295.4294967295'.
         Please rename it accordingly.
*****************************************
*****************************************
WARNING: The converted filename '+DATADG/zzz/983cbdc2d7c83adde053103ba8c0ed32/tempfile/temp.269.1025368439'
         is an ASM fully qualified filename.
         Changing the filename to '+DATADG/MUST_RENAME_THIS_TEMPFILE_2.4294967295.4294967295'.
         Please rename it accordingly.
*****************************************
*****************************************
WARNING: The converted filename '+DATADG/zzz/983ce29d0d69427ce053103ba8c05acc/datafile/system.272.1025369069'
         is an ASM fully qualified filename.
         Changing the filename to '+DATADG/MUST_RENAME_THIS_DATAFILE_9.4294967295.4294967295'.
         Please rename it accordingly.
*****************************************
*****************************************
WARNING: The converted filename '+DATADG/zzz/983ce29d0d69427ce053103ba8c05acc/datafile/sysaux.273.1025369069'
         is an ASM fully qualified filename.
         Changing the filename to '+DATADG/MUST_RENAME_THIS_DATAFILE_10.4294967295.4294967295'.
         Please rename it accordingly.
*****************************************
*****************************************
WARNING: The converted filename '+DATADG/zzz/983ce29d0d69427ce053103ba8c05acc/datafile/undotbs1.271.1025369067'
         is an ASM fully qualified filename.
         Changing the filename to '+DATADG/MUST_RENAME_THIS_DATAFILE_11.4294967295.4294967295'.
         Please rename it accordingly.
*****************************************
*****************************************
WARNING: The converted filename '+DATADG/zzz/983ce29d0d69427ce053103ba8c05acc/tempfile/temp.274.1025369187'
         is an ASM fully qualified filename.
         Changing the filename to '+DATADG/MUST_RENAME_THIS_TEMPFILE_3.4294967295.4294967295'.
         Please rename it accordingly.
*****************************************
*****************************************
WARNING: The converted filename '+DATADG/zzz/983ce29d0d69427ce053103ba8c05acc/datafile/users.275.1025369253'
         is an ASM fully qualified filename.
         Changing the filename to '+DATADG/MUST_RENAME_THIS_DATAFILE_12.4294967295.4294967295'.
         Please rename it accordingly.
*****************************************
...


SYS@dgphy>select file#,name from v$datafile order by file#;

     FILE# NAME
---------- ------------------------------------------------------------------------------------------
	 1 +DATADG/ZZZDGPHY/DATAFILE/system.260.1025389147
	 3 +DATADG/ZZZDGPHY/DATAFILE/sysaux.261.1025389233
	 4 +DATADG/ZZZDGPHY/DATAFILE/undotbs1.262.1025389281
	 5 +DATADG/ZZZDGPHY/983CBDC2D7C83ADDE053103BA8C0ED32/DATAFILE/system.263.1025389295
	 6 +DATADG/ZZZDGPHY/983CBDC2D7C83ADDE053103BA8C0ED32/DATAFILE/sysaux.264.1025389321
	 7 +DATADG/ZZZDGPHY/DATAFILE/users.265.1025389345
	 8 +DATADG/ZZZDGPHY/983CBDC2D7C83ADDE053103BA8C0ED32/DATAFILE/undotbs1.266.1025389347
	 9 +DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/system.267.1025389355
	10 +DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/sysaux.268.1025389381
	11 +DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/undotbs1.269.1025389407
	12 +DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/users.270.1025389413

11 rows selected.

SYS@dgphy>select file#,name from v$tempfile order by file#;

     FILE# NAME
---------- ------------------------------------------------------------------------------------------
	 1 +DATADG/ZZZDGPHY/TEMPFILE/temp.278.1025390003
	 2 +DATADG/ZZZDGPHY/983CBDC2D7C83ADDE053103BA8C0ED32/TEMPFILE/temp.279.1025390011
	 3 +DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/TEMPFILE/temp.280.1033237247

SYS@dgphy>select a.group#,a.member from v$logfile a,v$log b where a.group# = b.group# order by group#;

GROUP# MEMBER
------ ------------------------------------------------------------
     1 +DATADG/ZZZDGPHY/ONLINELOG/group_1.271.1025389435
     1 +FRADG/ZZZDGPHY/ONLINELOG/group_1.256.1025389451
     2 +DATADG/ZZZDGPHY/ONLINELOG/group_2.272.1025389469
     2 +FRADG/ZZZDGPHY/ONLINELOG/group_2.257.1025389483
     3 +DATADG/ZZZDGPHY/ONLINELOG/group_3.273.1025389499
     3 +FRADG/ZZZDGPHY/ONLINELOG/group_3.262.1025389515


"""构建重命名数据文件、临时文件日志文件语句"""

SYS@dgphy>select 'alter database rename file ' || '''' || name || ''''  || ' to ' || ''''';' from v$datafile; 

'ALTERDATABASERENAMEFILE'||''''||NAME||''''||'TO'||''''';'
---------------------------------------------------------------------------------------------------------------
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_1.4294967295.4294967295' to '';
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_3.4294967295.4294967295' to '';
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_4.4294967295.4294967295' to '';
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_5.4294967295.4294967295' to '';
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_6.4294967295.4294967295' to '';
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_7.4294967295.4294967295' to '';
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_8.4294967295.4294967295' to '';
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_9.4294967295.4294967295' to '';
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_10.4294967295.4294967295' to '';
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_11.4294967295.4294967295' to '';
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_12.4294967295.4294967295' to '';



alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_1.4294967295.4294967295' to '+DATADG/ZZZDGPHY/DATAFILE/system.260.1025389147';
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_3.4294967295.4294967295' to '+DATADG/ZZZDGPHY/DATAFILE/sysaux.261.1025389233';
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_4.4294967295.4294967295' to '+DATADG/ZZZDGPHY/DATAFILE/undotbs1.262.1025389281';
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_5.4294967295.4294967295' to '+DATADG/ZZZDGPHY/983CBDC2D7C83ADDE053103BA8C0ED32/DATAFILE/system.263.1025389295';
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_6.4294967295.4294967295' to '+DATADG/ZZZDGPHY/983CBDC2D7C83ADDE053103BA8C0ED32/DATAFILE/sysaux.264.1025389321';
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_7.4294967295.4294967295' to '+DATADG/ZZZDGPHY/DATAFILE/users.265.1025389345';
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_8.4294967295.4294967295' to '+DATADG/ZZZDGPHY/983CBDC2D7C83ADDE053103BA8C0ED32/DATAFILE/undotbs1.266.1025389347';
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_9.4294967295.4294967295' to '+DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/system.267.1025389355';
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_10.4294967295.4294967295' to '+DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/sysaux.268.1025389381';
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_11.4294967295.4294967295' to '+DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/undotbs1.269.1025389407';
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_12.4294967295.4294967295' to '+DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/users.270.1025389413';



	 1 +DATADG/ZZZDGPHY/DATAFILE/system.260.1025389147
	 3 +DATADG/ZZZDGPHY/DATAFILE/sysaux.261.1025389233
	 4 +DATADG/ZZZDGPHY/DATAFILE/undotbs1.262.1025389281
	 5 +DATADG/ZZZDGPHY/983CBDC2D7C83ADDE053103BA8C0ED32/DATAFILE/system.263.1025389295
	 6 +DATADG/ZZZDGPHY/983CBDC2D7C83ADDE053103BA8C0ED32/DATAFILE/sysaux.264.1025389321
	 7 +DATADG/ZZZDGPHY/DATAFILE/users.265.1025389345
	 8 +DATADG/ZZZDGPHY/983CBDC2D7C83ADDE053103BA8C0ED32/DATAFILE/undotbs1.266.1025389347
	 9 +DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/system.267.1025389355
	10 +DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/sysaux.268.1025389381
	11 +DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/undotbs1.269.1025389407
	12 +DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/users.270.1025389413




SYS@dgphy>alter system set standby_file_management = 'MANUAL';

System altered.

alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_1.4294967295.4294967295' to '+DATADG/ZZZDGPHY/DATAFILE/system.260.1025389147';
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_3.4294967295.4294967295' to '+DATADG/ZZZDGPHY/DATAFILE/sysaux.261.1025389233';
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_4.4294967295.4294967295' to '+DATADG/ZZZDGPHY/DATAFILE/undotbs1.262.1025389281';
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_5.4294967295.4294967295' to '+DATADG/ZZZDGPHY/983CBDC2D7C83ADDE053103BA8C0ED32/DATAFILE/system.263.1025389295';
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_6.4294967295.4294967295' to '+DATADG/ZZZDGPHY/983CBDC2D7C83ADDE053103BA8C0ED32/DATAFILE/sysaux.264.1025389321';
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_7.4294967295.4294967295' to '+DATADG/ZZZDGPHY/DATAFILE/users.265.1025389345';
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_8.4294967295.4294967295' to '+DATADG/ZZZDGPHY/983CBDC2D7C83ADDE053103BA8C0ED32/DATAFILE/undotbs1.266.1025389347';
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_9.4294967295.4294967295' to '+DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/system.267.1025389355';
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_10.4294967295.4294967295' to '+DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/sysaux.268.1025389381';
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_11.4294967295.4294967295' to '+DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/undotbs1.269.1025389407';
alter database rename file '+DATADG/MUST_RENAME_THIS_DATAFILE_12.4294967295.4294967295' to '+DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/users.270.1025389413';

SYS@dgphy>select file#,name from v$datafile;

     FILE# NAME
---------- ----------------------------------------------------------------------------------------
	 1 +DATADG/ZZZDGPHY/DATAFILE/system.260.1025389147
	 3 +DATADG/ZZZDGPHY/DATAFILE/sysaux.261.1025389233
	 4 +DATADG/ZZZDGPHY/DATAFILE/undotbs1.262.1025389281
	 5 +DATADG/ZZZDGPHY/983CBDC2D7C83ADDE053103BA8C0ED32/DATAFILE/system.263.1025389295
	 6 +DATADG/ZZZDGPHY/983CBDC2D7C83ADDE053103BA8C0ED32/DATAFILE/sysaux.264.1025389321
	 7 +DATADG/ZZZDGPHY/DATAFILE/users.265.1025389345
	 8 +DATADG/ZZZDGPHY/983CBDC2D7C83ADDE053103BA8C0ED32/DATAFILE/undotbs1.266.1025389347
	 9 +DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/system.267.1025389355
	10 +DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/sysaux.268.1025389381
	11 +DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/undotbs1.269.1025389407
	12 +DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/users.270.1025389413


SYS@dgphy>select 'alter database rename file ' || '''' || name || '''' || ' to ' || ''''';' from v$tempfile;

'ALTERDATABASERENAMEFILE'||''''||NAME||''''||'TO'||''''';'
---------------------------------------------------------------------------------------------------------------
alter database rename file '+DATADG/MUST_RENAME_THIS_TEMPFILE_1.4294967295.4294967295' to '+DATADG/ZZZDGPHY/TEMPFILE/temp.278.1025390003';
alter database rename file '+DATADG/MUST_RENAME_THIS_TEMPFILE_2.4294967295.4294967295' to '+DATADG/ZZZDGPHY/983CBDC2D7C83ADDE053103BA8C0ED32/TEMPFILE/temp.279.1025390011';
alter database rename file '+DATADG/MUST_RENAME_THIS_TEMPFILE_3.4294967295.4294967295' to '+DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/TEMPFILE/temp.280.1033237247';



SYS@dgphy>select file#,name from v$tempfile order by file#;

     FILE# NAME
---------- ------------------------------------------------------------------------------------------
	 1 +DATADG/ZZZDGPHY/TEMPFILE/temp.278.1025390003
	 2 +DATADG/ZZZDGPHY/983CBDC2D7C83ADDE053103BA8C0ED32/TEMPFILE/temp.279.1025390011
	 3 +DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/TEMPFILE/temp.280.1033237247


alter database rename file '+DATADG/MUST_RENAME_THIS_TEMPFILE_1.4294967295.4294967295' to '+DATADG/ZZZDGPHY/TEMPFILE/temp.278.1025390003';
alter database rename file '+DATADG/MUST_RENAME_THIS_TEMPFILE_2.4294967295.4294967295' to '+DATADG/ZZZDGPHY/983CBDC2D7C83ADDE053103BA8C0ED32/TEMPFILE/temp.279.1025390011';
alter database rename file '+DATADG/MUST_RENAME_THIS_TEMPFILE_3.4294967295.4294967295' to '+DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/TEMPFILE/temp.280.1033237247';

SYS@dgphy>select file#,name from v$tempfile;

     FILE# NAME
---------- ----------------------------------------------------------------------------------------
	 1 +DATADG/ZZZDGPHY/TEMPFILE/temp.278.1025390003
	 2 +DATADG/ZZZDGPHY/983CBDC2D7C83ADDE053103BA8C0ED32/TEMPFILE/temp.279.1025390011
	 3 +DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/TEMPFILE/temp.280.1033237247



SYS@dgphy>select 'alter database rename file ' || '''' || member || '''' || ' to ' || ''''';' from v$logfile where type = 'ONLINE' order by group#; 

'ALTERDATABASERENAMEFILE'||''''||MEMBER||''''||'TO'||''''';'
---------------------------------------------------------------------------------------------------------------
alter database rename file '+DATADG/MUST_RENAME_THIS_LOGFILE_1.4294967295.4294967295' to '+DATADG/ZZZDGPHY/ONLINELOG/group_1.271.1025389435';
alter database rename file '+FRADG/MUST_RENAME_THIS_LOGFILE_1.4294967295.4294967295' to '+FRADG/ZZZDGPHY/ONLINELOG/group_1.256.1025389451';
alter database rename file '+DATADG/MUST_RENAME_THIS_LOGFILE_2.4294967295.4294967295' to '+DATADG/ZZZDGPHY/ONLINELOG/group_2.272.1025389469';
alter database rename file '+FRADG/MUST_RENAME_THIS_LOGFILE_2.4294967295.4294967295' to '+FRADG/ZZZDGPHY/ONLINELOG/group_2.257.1025389483';
alter database rename file '+DATADG/MUST_RENAME_THIS_LOGFILE_3.4294967295.4294967295' to '+DATADG/ZZZDGPHY/ONLINELOG/group_3.273.1025389499';
alter database rename file '+FRADG/MUST_RENAME_THIS_LOGFILE_3.4294967295.4294967295' to '+FRADG/ZZZDGPHY/ONLINELOG/group_3.262.1025389515';

6 rows selected.


SYS@dgphy>select a.group#,a.member from v$logfile a,v$log b where a.group# = b.group# order by group#;

GROUP# MEMBER
------ ------------------------------------------------------------
     1 +DATADG/ZZZDGPHY/ONLINELOG/group_1.271.1025389435
     1 +FRADG/ZZZDGPHY/ONLINELOG/group_1.256.1025389451
     2 +DATADG/ZZZDGPHY/ONLINELOG/group_2.272.1025389469
     2 +FRADG/ZZZDGPHY/ONLINELOG/group_2.257.1025389483
     3 +DATADG/ZZZDGPHY/ONLINELOG/group_3.273.1025389499
     3 +FRADG/ZZZDGPHY/ONLINELOG/group_3.262.1025389515


alter database rename file '+DATADG/MUST_RENAME_THIS_LOGFILE_1.4294967295.4294967295' to '+DATADG/ZZZDGPHY/ONLINELOG/group_1.271.1025389435';
alter database rename file '+FRADG/MUST_RENAME_THIS_LOGFILE_1.4294967295.4294967295' to '+FRADG/ZZZDGPHY/ONLINELOG/group_1.256.1025389451';
alter database rename file '+DATADG/MUST_RENAME_THIS_LOGFILE_2.4294967295.4294967295' to '+DATADG/ZZZDGPHY/ONLINELOG/group_2.272.1025389469';
alter database rename file '+FRADG/MUST_RENAME_THIS_LOGFILE_2.4294967295.4294967295' to '+FRADG/ZZZDGPHY/ONLINELOG/group_2.257.1025389483';
alter database rename file '+DATADG/MUST_RENAME_THIS_LOGFILE_3.4294967295.4294967295' to '+DATADG/ZZZDGPHY/ONLINELOG/group_3.273.1025389499';
alter database rename file '+FRADG/MUST_RENAME_THIS_LOGFILE_3.4294967295.4294967295' to '+FRADG/ZZZDGPHY/ONLINELOG/group_3.262.1025389515';


SYS@dgphy>select group#,member from v$logfile where type = 'ONLINE' order by group#;

GROUP# MEMBER
------ ------------------------------------------------------------
     1 +DATADG/ZZZDGPHY/ONLINELOG/group_1.271.1025389435
     1 +FRADG/ZZZDGPHY/ONLINELOG/group_1.256.1025389451
     2 +DATADG/ZZZDGPHY/ONLINELOG/group_2.272.1025389469
     2 +FRADG/ZZZDGPHY/ONLINELOG/group_2.257.1025389483
     3 +DATADG/ZZZDGPHY/ONLINELOG/group_3.273.1025389499
     3 +FRADG/ZZZDGPHY/ONLINELOG/group_3.262.1025389515

6 rows selected.


"""恢复备库不使用redo使用增量备份"""

RMAN> recover database noredo;

Starting recover at 2020-02-24 20:33:27
Starting implicit crosscheck backup at 2020-02-24 20:33:27
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=48 device type=DISK
Crosschecked 4 objects
Finished implicit crosscheck backup at 2020-02-24 20:33:28

Starting implicit crosscheck copy at 2020-02-24 20:33:28
using channel ORA_DISK_1
Finished implicit crosscheck copy at 2020-02-24 20:33:28

searching for all files in the recovery area
cataloging files...
cataloging done

List of Cataloged Files
=======================
File Name: +FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_25.270.1033237033
File Name: +FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_26.271.1033237515
File Name: +FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_27.272.1033237769
File Name: +FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_28.273.1033237769
File Name: +FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_29.274.1033237773
File Name: +FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_30.275.1033237773
File Name: +FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_31.276.1033237779
File Name: +FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_32.277.1033237779
File Name: +FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_33.278.1033237785
File Name: +FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_34.269.1033240757
File Name: +FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_37.268.1033240961
File Name: +FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_35.279.1033241081
File Name: +FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_36.280.1033241123
File Name: +FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_38.281.1033241539
File Name: +FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_39.282.1033241539
File Name: +FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_40.283.1033241541
File Name: +FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_41.284.1033241543
File Name: +FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_42.285.1033241545
File Name: +FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_43.286.1033241547
File Name: +FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_44.287.1033241551
File Name: +FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_45.288.1033241553
File Name: +FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_48.289.1033242023
File Name: +FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_47.290.1033242023
File Name: +FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_49.291.1033242023
File Name: +FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_55.292.1033242023
File Name: +FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_46.293.1033242023
File Name: +FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_57.294.1033242023
File Name: +FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_56.295.1033242023
File Name: +FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_58.267.1033242411

using channel ORA_DISK_1
channel ORA_DISK_1: starting incremental datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
destination for restore of datafile 00001: +DATADG/ZZZDGPHY/DATAFILE/system.260.1025389147
destination for restore of datafile 00003: +DATADG/ZZZDGPHY/DATAFILE/sysaux.261.1025389233
destination for restore of datafile 00004: +DATADG/ZZZDGPHY/DATAFILE/undotbs1.262.1025389281
destination for restore of datafile 00007: +DATADG/ZZZDGPHY/DATAFILE/users.265.1025389345
channel ORA_DISK_1: reading from backup piece /home/oracle/rman_bak/incr_ZZZ_1033243348_116.dbf
channel ORA_DISK_1: piece handle=/home/oracle/rman_bak/incr_ZZZ_1033243348_116.dbf tag=TAG20200224T200227
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting incremental datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
destination for restore of datafile 00009: +DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/system.267.1025389355
destination for restore of datafile 00010: +DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/sysaux.268.1025389381
destination for restore of datafile 00011: +DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/undotbs1.269.1025389407
destination for restore of datafile 00012: +DATADG/ZZZDGPHY/983CE29D0D69427CE053103BA8C05ACC/DATAFILE/users.270.1025389413
channel ORA_DISK_1: reading from backup piece /home/oracle/rman_bak/incr_ZZZ_1033243355_117.dbf
channel ORA_DISK_1: piece handle=/home/oracle/rman_bak/incr_ZZZ_1033243355_117.dbf tag=TAG20200224T200227
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:01

Finished recover at 2020-02-24 20:33:33



RMAN> alter database open;

Statement processed

6、检测备库是否恢复成功

备库启动日志实时应用...
SYS@dgphy>alter database recover managed standby database using current logfile disconnect;

Database altered.

SYS@dgphy>select name,db_unique_name,database_role,open_mode,switchover_status from v$database;

NAME		DB_UNIQU DATABASE_ROLE	  OPEN_MODE	       SWITCHOVER_STATUS
--------------- -------- ---------------- -------------------- ------------------
ZZZ		ZZZDGPHY PHYSICAL STANDBY READ ONLY WITH APPLY NOT ALLOWED

SYS@dgphy>alter system set standby_file_management = 'AUTO';

System altered.

主库切换日志:
SYS@dgpri>alter system archive log current;

System altered.

SYS@dgpri>alter system archive log current;

System altered.

SYS@dgpri>alter system archive log current;

System altered.

SYS@dgpri>alter system checkpoint;

System altered.

SYS@dgpri>archive log list;
Database log mode	       Archive Mode
Automatic archival	       Enabled
Archive destination	       USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     60
Next log sequence to archive   62
Current log sequence	       62



SYS@dgpri>create table t1 as select * from dual;

Table created.

SYS@dgpri>select * from t1;

D
-
X

SYS@dgpri>drop table t1 purge;

Table dropped.

SYS@dgpri>select * from t1;
select * from t1
              *
ERROR at line 1:
ORA-00942: table or view does not exist


SYS@dgphy>select name,sequence#,applied from v$archived_log order by 2;

NAME										       SEQUENCE# APPLIED
------------------------------------------------------------------------------------- ---------- ---------
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_25.270.1033237033			      25 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_26.271.1033237515			      26 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_27.272.1033237769			      27 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_28.273.1033237769			      28 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_29.274.1033237773			      29 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_30.275.1033237773			      30 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_31.276.1033237779			      31 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_32.277.1033237779			      32 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_33.278.1033237785			      33 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_34.269.1033240757			      34 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_35.279.1033241081			      35 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_36.280.1033241123			      36 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_37.268.1033240961			      37 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_38.281.1033241539			      38 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_39.282.1033241539			      39 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_40.283.1033241541			      40 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_41.284.1033241543			      41 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_42.285.1033241545			      42 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_43.286.1033241547			      43 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_44.287.1033241551			      44 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_45.288.1033241553			      45 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_46.293.1033242023			      46 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_47.290.1033242023			      47 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_48.289.1033242023			      48 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_49.291.1033242023			      49 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_55.292.1033242023			      55 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_56.295.1033242023			      56 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_57.294.1033242023			      57 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_58.267.1033242411			      58 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_59.300.1033245409			      59 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_60.301.1033245419			      60 YES
+FRADG/ZZZDGPHY/ARCHIVELOG/2020_02_24/thread_1_seq_61.302.1033245421			      61 YES

32 rows selected.

SYS@dgphy>select * from t1;

D
-
X

SYS@dgphy>select * from t1;
select * from t1
              *
ERROR at line 1:
ORA-00942: table or view does not exist


SYS@dgphy>host ps -ef | grep mrp | grep -v grep;
oracle   13820     1  0 20:35 ?        00:00:01 ora_mrp0_dgphy


SYS@dgphy>column name format a15;
SYS@dgphy>select name,db_unique_name,database_role,open_mode,switchover_status from v$database;

NAME		DB_UNIQU DATABASE_ROLE	  OPEN_MODE	       SWITCHOVER_STATUS
--------------- -------- ---------------- -------------------- ------------------
ZZZ		ZZZDGPHY PHYSICAL STANDBY READ ONLY WITH APPLY NOT ALLOWED

SYS@dgphy>select * from v$archive_gap;

no rows selected

SYS@dgpri>select name,db_unique_name,database_role,open_mode,switchover_status from v$database;

NAME		DB_UNIQU DATABASE_ROLE	  OPEN_MODE	       SWITCHOVER_STATUS
--------------- -------- ---------------- -------------------- ------------------
ZZZ		ZZZDGPRI PRIMARY	  READ WRITE	       TO STANDBY

可以看出备库已经恢复正常...
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要在Oracle 19c中搭建ADG(Active Data Guard),需要执行以下步骤: 1. 在主数据库上启用归档模式: ``` SQL> ALTER DATABASE ARCHIVELOG; ``` 2. 创建一个备用数据库的实例: ``` $ export ORACLE_SID=ORACLE_19C_ADG $ sqlplus / as sysdba SQL> CREATE SPFILE FROM PFILE; ``` 3. 将主数据库的备份复制到备用服务器上,并在备用服务器上还原备份: ``` $ scp /backup/maindb/* oracle@adg_server:/backup/adg/ $ cd /backup/adg/ $ unzip maindb_backup.zip $ export ORACLE_SID=ORACLE_19C_ADG $ rman target / RMAN> DUPLICATE DATABASE FOR STANDBY FROM ACTIVE DATABASE SPFILE SET db_unique_name='ORACLE_19C_ADG' SET LOG_ARCHIVE_DEST_2='SERVICE=ORACLE_19C ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORACLE_19C' SET fal_client='ORACLE_19C' SET fal_server='ORACLE_19C_ADG' NOFILENAMECHECK; ``` 4. 配置主数据库的tnsnames.ora文件和备用数据库的tnsnames.ora文件,以便它们互相访问。 5. 在主数据库上创建一个log shipping连接,并将日志传输到备用数据库: ``` SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=ORACLE_19C_ADG ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ORACLE_19C_ADG' SCOPE=BOTH; SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE SCOPE=BOTH; ``` 6. 在备用数据库上启用日志应用: ``` SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION; ``` 完成上述步骤后,ADG就已经搭建完成了。可以使用以下命令检查ADG的状态: ``` SQL> SELECT DATABASE_ROLE FROM V$DATABASE; ``` 如果返回的结果为“PHYSICAL STANDBY”,则表示ADG已经成功搭建。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值