自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Oracle DataGuard GAP 修復(fù)手冊

數(shù)據(jù)庫 Oracle
DG GAP 顧名思義就是:DG不同步,當(dāng)備庫不能接受到一個或多個主庫的歸檔日志文件時候,就發(fā)生了 GAP。

[[442207]]

前言

DG GAP 顧名思義就是:DG不同步,當(dāng)備庫不能接受到一個或多個主庫的歸檔日志文件時候,就發(fā)生了 GAP。

那么,如果遇到GAP如何修復(fù)呢?且聽我細(xì)細(xì)道來~

一、介紹

DG GAP 主要分為以下兩類情況:

1、主庫歸檔日志存在,可以通過配置 Fetch Archive Log(FAL) 參數(shù),自動解決歸檔 GAP。2、主庫歸檔日志丟失,需要 人工干預(yù) 來修復(fù)。

不同 Oracle 版本的 GAP 修復(fù)方式也不盡相同,下面分別介紹不同版本的方式!

11G 的處理步驟:

a.在主庫上創(chuàng)建一個備庫的控制文件

b.以備庫的當(dāng)前SCN號為起點,在主庫上做一個增量備份

c.將增量備份拷貝到備庫上

d.使用新的控制文件將備庫啟動到mount狀態(tài)

e.將增量備份注冊到RMAN的catalog,取消備庫的恢復(fù)應(yīng)用,恢復(fù)增量備份

f.開啟備庫的恢復(fù)進(jìn)程

12C 的新特性(RECOVER … FROM SERVICE)

18C 的新特性(RECOVER STANDBY DATABASE FROM SERVICE)

Oracle隨著版本的升級,逐漸將步驟縮減,進(jìn)行封裝,18C之后可謂是達(dá)到了所謂的一鍵刷新,恢復(fù)DG同步。

二、實戰(zhàn)

下面我們通過實驗來進(jìn)行演示如何修復(fù):

  • 11G常規(guī)修復(fù)
  • 12C新特性(RECOVER … FROM SERVICE)修復(fù)
  • 18C新特性(RECOVER STANDBY DATABASE FROM SERVICE)修復(fù)

三、11G常規(guī)修復(fù)

首先,模擬備庫斷電,主庫切幾個最新的歸檔,然后手工刪掉,重新開啟DG同步。

備庫停止DG同步進(jìn)程:

  1. sqlplus / as sysdba 
  2. ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; 
  3. shutdown immediate 

主庫切換多次歸檔:

  1. sqlplus / as sysdba 
  2. alter system switch logfile; 

主庫刪除最近幾個歸檔日志:

  1. rm 1_34_1070147137.arc  
  2. rm 1_33_1070147137.arc 

備庫開啟同步進(jìn)程:

  1. startup 
  2. ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION; 

查看GAP:

  1. sqlplus / as sysdba 
  2. SELECT * FROM V$ARCHIVE_GAP; 
  3. THREAD#    LOW_SEQUENCE# HIGH_SEQUENCE# 
  4. ---------- ------------- -------------- 
  5.  1     32     34 
  6.  
  7. SELECT max(sequence#) from v$archived_log where applied='YES'
  8. MAX(SEQUENCE#) 
  9. -------------- 
  10. 31 

📢 注意: 當(dāng)前DG數(shù)據(jù)庫已存在GAP,GAP日志為:32---34。

a.在主庫上創(chuàng)建一個備庫的控制文件

  1. alter database create standby controlfile as '/tmp/standby.ctl'

b.以備庫的當(dāng)前SCN號為起點,在主庫上做一個增量備份備庫查詢當(dāng)前 scn 號:

  1. sqlplus / as sysdba 
  2. select  to_char(current_scn) from v$database
  3. TO_CHAR(CURRENT_SCN) 
  4. ---------------------------------------- 
  5. 1086639 

確認(rèn)主備GAP期間是否新增數(shù)據(jù)文件:

  1. sqlplus / as sysdba 
  2. select file# from v$datafile where creation_change# > =1086639; 

主庫根據(jù)備庫scn號進(jìn)行增量備份:

  1. rman target / 
  2. run{ 
  3. allocate channel c1 type disk; 
  4. allocate channel c2 type disk; 
  5. backup INCREMENTAL from scn 1086639 database format '/tmp/incre_%U'
  6. release channel c1; 
  7. release channel c2; 

📢 注意: 如果存在新增數(shù)據(jù)文件,備庫恢復(fù)時需要先restore新添加的數(shù)據(jù)文件。

c.將增量備份和控制文件拷貝到備庫上主庫拷貝增量備份和控制文件你至備庫:

  1. scp incre_0* oracle@orcl_stby:/home/oracle 
  2. scp standby.ctl oracle@orcl_stby:/home/oracle 

📢 注意: 確認(rèn)備庫的磁盤空間是否足夠存放。

d.使用新的控制文件將備庫啟動到mount狀態(tài)備庫關(guān)閉數(shù)據(jù)庫實例,開啟至nomount狀態(tài):

  1. sqlplus / as sysdba 
  2. shutdown immediate 
  3. startup nomount 

備庫恢復(fù)新的控制文件:

  1. rman target / 
  2. restore controlfile from '/home/oracle/standby.ctl'

備庫開啟到mount狀態(tài):

  1. alter database mount; 

e.增量備份注冊到RMAN的catalog,取消日志應(yīng)用,恢復(fù)增量備份確認(rèn)備庫已關(guān)閉DG同步進(jìn)程:

  1. sqlplus / as sysdba 
  2. ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; 

備庫rman注冊增量備份文件:

  1. rman target / 
  2. catalog start with '/home/oracle/'
  3. YES 

備庫開啟恢復(fù)增量備份:

  1. recover database noredo; 

f.開啟備庫的恢復(fù)進(jìn)程備庫開啟日志同步進(jìn)程:

  1. sqlplus / as sysdba 
  2. alter database open read only
  3. ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION; 

主庫重新激活同步:

  1. sqlplus / as sysdba 
  2. ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=defer; 
  3. ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=enable; 

查詢是否存在GAP,確認(rèn)主備是否同步:

  1. sqlplus / as sysdba 
  2. SELECT * FROM V$ARCHIVE_GAP; 
  3. SELECT max(sequence#) from v$archived_log where applied='YES'
  4. SELECT PROCESS, STATUS, THREAD#, SEQUENCE#, BLOCK#, BLOCKS FROM V$MANAGED_STANDBY; 

至此,DG GAP已被修復(fù),以上方式為常規(guī)修復(fù)方式,各個版本都通用。

四、12C新特性修復(fù)

首先,模擬備庫斷電,主庫切幾個最新的歸檔,然后手工刪掉,重新開啟DG同步。

模擬GAP期間,有數(shù)據(jù)文件添加的情況:

  1. ##主庫添加數(shù)據(jù)文件 
  2. alter tablespace TEST add datafile '/oradata/ORCL/test02.dbf' size 100M autoextend off

📢 注意: 當(dāng)前DG數(shù)據(jù)庫已存在GAP,GAP日志為:30---31 。

a.記錄備庫當(dāng)前SCN號備庫記錄當(dāng)前 scn 號:

  1. sqlplus / as sysdba 
  2. SELECT CURRENT_SCN FROM V$DATABASE
  3. CURRENT_SCN 
  4. ----------- 
  5. 2600487 

b.使用recover standby using service恢復(fù)采用rman的新功能,recover standby using service,通過RMAN連接到target備庫,然后用主庫的service執(zhí)行恢復(fù)備庫命令。

語法:

RECOVER DATABASE FROM SERVICE < PRIMARY DB SERVICE NAME > NOREDO USING COMPRESSED BACKUPSET;

📢 注意: 確認(rèn)主庫的TNS已配置,這里的< PRIMARY DB SERVICE NAME >即 TNSNAME。

c.備庫啟動到nomount狀態(tài),恢復(fù)控制文件備庫啟動到nomount狀態(tài):

  1. sqlplus / as sysdba 
  2. shutdown immediate 
  3. startup nomount 

備庫通過from service恢復(fù)控制文件:

  1. rman target / 
  2. restore standby controlfile from service orcl; 

備庫開啟到mount狀態(tài):

  1. sqlplus / as sysdba 
  2. alter database mount; 

d.備庫恢復(fù),修復(fù)GAP檢查主備GAP期間是否添加數(shù)據(jù)文件:

  1. sqlplus / as sysdba 
  2. select file# from v$datafile where creation_change# > =2600487; 
  3.  
  4. FILE# 
  5. ---------- 
  6. 13 

restore 新添加的數(shù)據(jù)文件:

  1. rman target / 
  2. run 
  3. SET NEWNAME FOR DATABASE TO '/oradata/ORCL_STBY/%f_%U'
  4. RESTORE DATAFILE 13 FROM SERVICE orcl; 

由于主備的數(shù)據(jù)文件目錄不一致,需要修改controlfile中數(shù)據(jù)文件位置:

  1. rman target / 
  2. catalog start with '/oradata/ORCL_STBY'
  3. YES 
  4. SWITCH DATABASE TO COPY; 

將備庫文件管理方式改為手動:

  1. sqlplus / as sysdba 
  2. alter system set standby_file_management=MANUAL; 

重命名 tempfile && logfile:

  1. sqlplus / as sysdba 
  2. ##logfile 
  3. alter database clear logfile group 1; 
  4. alter database clear logfile group 2; 
  5. alter database clear logfile group 3; 
  6. alter database clear logfile group 4; 
  7. alter database clear logfile group 5; 
  8. alter database clear logfile group 6; 
  9. alter database clear logfile group 7; 
  10. alter database rename file '/oradata/ORCL/redo03.log' to '/oradata/ORCL_STBY/redo03.log'
  11. alter database rename file '/oradata/ORCL/redo02.log' to '/oradata/ORCL_STBY/redo02.log'
  12. alter database rename file '/oradata/ORCL/redo01.log' to '/oradata/ORCL_STBY/redo01.log'
  13. alter database rename file '/oradata/ORCL/standby_redo04.log' to '/oradata/ORCL_STBY/standby_redo04.log'
  14. alter database rename file '/oradata/ORCL/standby_redo05.log' to '/oradata/ORCL_STBY/standby_redo05.log'
  15. alter database rename file '/oradata/ORCL/standby_redo06.log' to '/oradata/ORCL_STBY/standby_redo06.log'
  16. alter database rename file '/oradata/ORCL/standby_redo07.log' to '/oradata/ORCL_STBY/standby_redo07.log'
  17. ##tempfile 
  18. alter database rename file '/oradata/ORCL/temp01.dbf' to '/oradata/ORCL_STBY/temp01.dbf'
  19. alter database rename file '/oradata/ORCL/pdbseed/temp012021-04-11_06-13-50-844-AM.dbf' to '/oradata/ORCL_STBY/pdbseed/temp012021-04-11_06-13-50-844-AM.dbf'
  20. alter database rename file '/oradata/ORCL/BFA6BEE45A1E3605E053AC01A8C0DD20/datafile/o1_mf_temp_j749f5fy_.dbf' to '/oradata/ORCL_STBY/BFA6BEE45A1E3605E053AC01A8C0DD20/datafile/o1_mf_temp_j749f5fy_.dbf'

備庫重命名完后再改為自動:

  1. sqlplus / as sysdba 
  2. alter system set standby_file_management=AUTO; 

恢復(fù)主備GAP:

  1. recover database from service orcl noredo using compressed backupset; 

📢 注意: 如果主備庫文件目錄不一致,則需要catalog切換控制文件中路徑,否則報錯:

e.開啟備庫日志應(yīng)用,檢查同步檢查主備scn是否一致

  1. sqlplus / as sysdba 
  2. col HXFNM for a100 
  3. set line222 
  4. select HXFIL File_num,substr(HXFNM,1,40) HXFNM,fhscn from x$kcvfh; 

主庫切幾次歸檔

  1. sqlplus / as sysdba 
  2. ALTER SYSTEM ARCHIVE LOG CURRENT
  3. ALTER SYSTEM SWITCH LOGFILE; 

開啟備庫應(yīng)用日志

  1. sqlplus / as sysdba 
  2. alter database open
  3. alter pluggable database all open
  4. ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION; 

查看備庫同步是否正常

  1. sqlplus / as sysdba 
  2. set line222 
  3. col member for a60 
  4. select t1.group#,t1.thread#,t1.bytes/1024/1024,t1.status,t2.member from gv$standby_log t1,gv$logfile t2 where t1.group#=t2.group#; 

主庫插入數(shù)據(jù)

  1. sqlplus test/test@pdb01 
  2. insert into test values (999); 
  3. commit

備庫查詢是否實時同步

  1. alter session set container=pdb01; 
  2. select * from test.test; 
  3. ID 
  4. ---------- 
  5. 999 

至此,GAP已修復(fù)完成,可以發(fā)現(xiàn),12C這個新特性,將一些步驟進(jìn)行了省略和封裝,進(jìn)一步減少了我們的操作步驟,但是內(nèi)部的原理仍然是一致的。

五、18C新特性恢復(fù)

18C 新特性是在 12C 的基礎(chǔ)上,將 RECOVER STANDBY DATABASE 命令與 FROM SERVICE 子句一起使用,以通過對主數(shù)據(jù)庫進(jìn)行的更改來刷新物理備用數(shù)據(jù)庫。備庫可以直接在開啟狀態(tài)進(jìn)行刷新。

語法:

RECOVER STANDBY DATABASE FROM SERVICE primary_db;

首先,模擬備庫斷電,主庫切幾個最新的歸檔,然后手工刪掉,重新開啟DG同步。

模擬GAP期間,有數(shù)據(jù)文件添加的情況:

  1. ##主庫添加數(shù)據(jù)文件 
  2. alter tablespace TEST add datafile '/oradata/ORCL/test02.dbf' size 100M autoextend off

📢 注意: 當(dāng)前 DG 數(shù)據(jù)庫已存在 GAP,GAP 日志為:69---70。

a、執(zhí)行RECOVER STANDBY DATABASE FROM SERVICE刷新備庫下面演示一下,如何使用一行命令在線修復(fù)DG GAP:

備庫取消日志應(yīng)用:

  1. sqlplus / as sysdba 
  2. ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL; 

備庫執(zhí)行修復(fù)命令,開始在線刷新備庫:

  1. rman target / 
  2. RMAN> RECOVER STANDBY DATABASE FROM SERVICE orcl; 
  3.  
  4. Starting recover at 19-APR-21 
  5. using target database control file instead of recovery catalog 
  6. Oracle instance started 
  7.  
  8. Total System Global Area3355441944 bytes 
  9.  
  10. Fixed Size 9141016 bytes 
  11. Variable Size671088640 bytes 
  12. Database Buffers2667577344 bytes 
  13. Redo Buffers   7634944 bytes 
  14.  
  15. contents of Memory Script: 
  16.    restore standby controlfile from service  'orcl'
  17.    alter database mount standby database
  18. executing Memory Script 
  19.  
  20. Starting restore at 19-APR-21 
  21. allocated channel: ORA_DISK_1 
  22. channel ORA_DISK_1: SID=502 device type=DISK 
  23.  
  24. channel ORA_DISK_1: starting datafile backup set restore 
  25. channel ORA_DISK_1: using network backup set from service orcl 
  26. channel ORA_DISK_1: restoring control file 
  27. channel ORA_DISK_1: restore complete, elapsed time: 00:00:02 
  28. output file name=/oradata/ORCL_STBY/control01.ctl 
  29. output file name=/oradata/ORCL_STBY/control02.ctl 
  30. Finished restore at 19-APR-21 
  31.  
  32. released channel: ORA_DISK_1 
  33. Statement processed 
  34. Executing: alter system set standby_file_management=manual 
  35.  
  36. contents of Memory Script: 
  37. set newname for tempfile  1 to  
  38.  "/oradata/ORCL_STBY/temp01.dbf"
  39. set newname for tempfile  2 to  
  40.  "/oradata/ORCL_STBY/pdbseed/temp012021-04-11_06-13-50-844-AM.dbf"
  41. set newname for tempfile  3 to  
  42.  "/oradata/ORCL_STBY/BFA6BEE45A1E3605E053AC01A8C0DD20/datafile/o1_mf_temp_j749f5fy_.dbf"
  43.    switch tempfile all
  44. set newname for datafile  1 to  
  45.  "/oradata/ORCL_STBY/system01.dbf"
  46. set newname for datafile  3 to  
  47.  "/oradata/ORCL_STBY/sysaux01.dbf"
  48. set newname for datafile  4 to  
  49.  "/oradata/ORCL_STBY/undotbs01.dbf"
  50. set newname for datafile  5 to  
  51.  "/oradata/ORCL_STBY/pdbseed/system01.dbf"
  52. set newname for datafile  6 to  
  53.  "/oradata/ORCL_STBY/pdbseed/sysaux01.dbf"
  54. set newname for datafile  7 to  
  55.  "/oradata/ORCL_STBY/users01.dbf"
  56. set newname for datafile  8 to  
  57.  "/oradata/ORCL_STBY/pdbseed/undotbs01.dbf"
  58. set newname for datafile  9 to  
  59.  "/oradata/ORCL_STBY/PDB01/o1_mf_system_j749f5d5_.dbf"
  60. set newname for datafile  10 to  
  61.  "/oradata/ORCL_STBY/PDB01/o1_mf_sysaux_j749f5fw_.dbf"
  62. set newname for datafile  11 to  
  63.  "/oradata/ORCL_STBY/PDB01/o1_mf_undotbs1_j749f5fx_.dbf"
  64. set newname for datafile  12 to  
  65.  "/oradata/ORCL_STBY/test01.dbf"
  66. set newname for datafile  14 to  
  67.  "/oradata/ORCL/test02.dbf"
  68.    restore from service  'orcl' datafile 
  69. 14; 
  70.    catalog datafilecopy  "/oradata/ORCL_STBY/system01.dbf",  
  71.  "/oradata/ORCL_STBY/sysaux01.dbf",  
  72.  "/oradata/ORCL_STBY/undotbs01.dbf",  
  73.  "/oradata/ORCL_STBY/pdbseed/system01.dbf",  
  74.  "/oradata/ORCL_STBY/pdbseed/sysaux01.dbf",  
  75.  "/oradata/ORCL_STBY/users01.dbf",  
  76.  "/oradata/ORCL_STBY/pdbseed/undotbs01.dbf",  
  77.  "/oradata/ORCL_STBY/PDB01/o1_mf_system_j749f5d5_.dbf",  
  78.  "/oradata/ORCL_STBY/PDB01/o1_mf_sysaux_j749f5fw_.dbf",  
  79.  "/oradata/ORCL_STBY/PDB01/o1_mf_undotbs1_j749f5fx_.dbf",  
  80.  "/oradata/ORCL_STBY/test01.dbf",  
  81.  "/oradata/ORCL/test02.dbf"
  82.    switch datafile all
  83. executing Memory Script 
  84.  
  85. executing command: SET NEWNAME 
  86.  
  87. executing command: SET NEWNAME 
  88.  
  89. executing command: SET NEWNAME 
  90.  
  91. renamed tempfile 1 to /oradata/ORCL_STBY/temp01.dbf in control file 
  92. renamed tempfile 2 to /oradata/ORCL_STBY/pdbseed/temp012021-04-11_06-13-50-844-AM.dbf in control file 
  93. renamed tempfile 3 to /oradata/ORCL_STBY/BFA6BEE45A1E3605E053AC01A8C0DD20/datafile/o1_mf_temp_j749f5fy_.dbf in control file 
  94.  
  95. executing command: SET NEWNAME 
  96.  
  97. executing command: SET NEWNAME 
  98.  
  99. executing command: SET NEWNAME 
  100.  
  101. executing command: SET NEWNAME 
  102.  
  103. executing command: SET NEWNAME 
  104.  
  105. executing command: SET NEWNAME 
  106.  
  107. executing command: SET NEWNAME 
  108.  
  109. executing command: SET NEWNAME 
  110.  
  111. executing command: SET NEWNAME 
  112.  
  113. executing command: SET NEWNAME 
  114.  
  115. executing command: SET NEWNAME 
  116.  
  117. executing command: SET NEWNAME 
  118.  
  119. Starting restore at 19-APR-21 
  120. allocated channel: ORA_DISK_1 
  121. channel ORA_DISK_1: SID=504 device type=DISK 
  122.  
  123. channel ORA_DISK_1: starting datafile backup set restore 
  124. channel ORA_DISK_1: using network backup set from service orcl 
  125. channel ORA_DISK_1: specifying datafile(s) to restore from backup set 
  126. channel ORA_DISK_1: restoring datafile 00014 to /oradata/ORCL/test02.dbf 
  127. channel ORA_DISK_1: restore complete, elapsed time: 00:00:03 
  128. Finished restore at 19-APR-21 
  129.  
  130. cataloged datafile copy 
  131. datafile copy file name=/oradata/ORCL_STBY/system01.dbf RECID=4 STAMP=1070263316 
  132. cataloged datafile copy 
  133. datafile copy file name=/oradata/ORCL_STBY/sysaux01.dbf RECID=5 STAMP=1070263317 
  134. cataloged datafile copy 
  135. datafile copy file name=/oradata/ORCL_STBY/undotbs01.dbf RECID=6 STAMP=1070263317 
  136. cataloged datafile copy 
  137. datafile copy file name=/oradata/ORCL_STBY/pdbseed/system01.dbf RECID=7 STAMP=1070263317 
  138. cataloged datafile copy 
  139. datafile copy file name=/oradata/ORCL_STBY/pdbseed/sysaux01.dbf RECID=8 STAMP=1070263318 
  140. cataloged datafile copy 
  141. datafile copy file name=/oradata/ORCL_STBY/users01.dbf RECID=9 STAMP=1070263318 
  142. cataloged datafile copy 
  143. datafile copy file name=/oradata/ORCL_STBY/pdbseed/undotbs01.dbf RECID=10 STAMP=1070263318 
  144. cataloged datafile copy 
  145. datafile copy file name=/oradata/ORCL_STBY/PDB01/o1_mf_system_j749f5d5_.dbf RECID=11 STAMP=1070263318 
  146. cataloged datafile copy 
  147. datafile copy file name=/oradata/ORCL_STBY/PDB01/o1_mf_sysaux_j749f5fw_.dbf RECID=12 STAMP=1070263318 
  148. cataloged datafile copy 
  149. datafile copy file name=/oradata/ORCL_STBY/PDB01/o1_mf_undotbs1_j749f5fx_.dbf RECID=13 STAMP=1070263318 
  150. cataloged datafile copy 
  151. datafile copy file name=/oradata/ORCL_STBY/test01.dbf RECID=14 STAMP=1070263318 
  152. cataloged datafile copy 
  153. datafile copy file name=/oradata/ORCL/test02.dbf RECID=15 STAMP=1070263318 
  154.  
  155. datafile 14 switched to datafile copy 
  156. input datafile copy RECID=15 STAMP=1070263318 file name=/oradata/ORCL/test02.dbf 
  157. datafile 1 switched to datafile copy 
  158. input datafile copy RECID=4 STAMP=1070263316 file name=/oradata/ORCL_STBY/system01.dbf 
  159. datafile 3 switched to datafile copy 
  160. input datafile copy RECID=5 STAMP=1070263317 file name=/oradata/ORCL_STBY/sysaux01.dbf 
  161. datafile 4 switched to datafile copy 
  162. input datafile copy RECID=6 STAMP=1070263317 file name=/oradata/ORCL_STBY/undotbs01.dbf 
  163. datafile 5 switched to datafile copy 
  164. input datafile copy RECID=7 STAMP=1070263317 file name=/oradata/ORCL_STBY/pdbseed/system01.dbf 
  165. datafile 6 switched to datafile copy 
  166. input datafile copy RECID=8 STAMP=1070263318 file name=/oradata/ORCL_STBY/pdbseed/sysaux01.dbf 
  167. datafile 7 switched to datafile copy 
  168. input datafile copy RECID=9 STAMP=1070263318 file name=/oradata/ORCL_STBY/users01.dbf 
  169. datafile 8 switched to datafile copy 
  170. input datafile copy RECID=10 STAMP=1070263318 file name=/oradata/ORCL_STBY/pdbseed/undotbs01.dbf 
  171. datafile 9 switched to datafile copy 
  172. input datafile copy RECID=11 STAMP=1070263318 file name=/oradata/ORCL_STBY/PDB01/o1_mf_system_j749f5d5_.dbf 
  173. datafile 10 switched to datafile copy 
  174. input datafile copy RECID=12 STAMP=1070263318 file name=/oradata/ORCL_STBY/PDB01/o1_mf_sysaux_j749f5fw_.dbf 
  175. datafile 11 switched to datafile copy 
  176. input datafile copy RECID=13 STAMP=1070263318 file name=/oradata/ORCL_STBY/PDB01/o1_mf_undotbs1_j749f5fx_.dbf 
  177. datafile 12 switched to datafile copy 
  178. input datafile copy RECID=14 STAMP=1070263318 file name=/oradata/ORCL_STBY/test01.dbf 
  179. Executing: alter database rename file '/oradata/ORCL/redo01.log' to '/oradata/ORCL_STBY/redo01.log' 
  180. Executing: alter database rename file '/oradata/ORCL/redo02.log' to '/oradata/ORCL_STBY/redo02.log' 
  181. Executing: alter database rename file '/oradata/ORCL/redo03.log' to '/oradata/ORCL_STBY/redo03.log' 
  182.  
  183. contents of Memory Script: 
  184.   recover database from service  'orcl'
  185. executing Memory Script 
  186.  
  187. Starting recover at 19-APR-21 
  188. using channel ORA_DISK_1 
  189. skipping datafile 5; already restored to SCN 2155383 
  190. skipping datafile 6; already restored to SCN 2155383 
  191. skipping datafile 8; already restored to SCN 2155383 
  192. skipping datafile 14; already restored to SCN 2658548 
  193. channel ORA_DISK_1: starting incremental datafile backup set restore 
  194. channel ORA_DISK_1: using network backup set from service orcl 
  195. destination for restore of datafile 00001: /oradata/ORCL_STBY/system01.dbf 
  196. channel ORA_DISK_1: restore complete, elapsed time: 00:00:01 
  197. channel ORA_DISK_1: starting incremental datafile backup set restore 
  198. channel ORA_DISK_1: using network backup set from service orcl 
  199. destination for restore of datafile 00003: /oradata/ORCL_STBY/sysaux01.dbf 
  200. channel ORA_DISK_1: restore complete, elapsed time: 00:00:01 
  201. channel ORA_DISK_1: starting incremental datafile backup set restore 
  202. channel ORA_DISK_1: using network backup set from service orcl 
  203. destination for restore of datafile 00004: /oradata/ORCL_STBY/undotbs01.dbf 
  204. channel ORA_DISK_1: restore complete, elapsed time: 00:00:01 
  205. channel ORA_DISK_1: starting incremental datafile backup set restore 
  206. channel ORA_DISK_1: using network backup set from service orcl 
  207. destination for restore of datafile 00007: /oradata/ORCL_STBY/users01.dbf 
  208. channel ORA_DISK_1: restore complete, elapsed time: 00:00:01 
  209. channel ORA_DISK_1: starting incremental datafile backup set restore 
  210. channel ORA_DISK_1: using network backup set from service orcl 
  211. destination for restore of datafile 00009: /oradata/ORCL_STBY/PDB01/o1_mf_system_j749f5d5_.dbf 
  212. channel ORA_DISK_1: restore complete, elapsed time: 00:00:01 
  213. channel ORA_DISK_1: starting incremental datafile backup set restore 
  214. channel ORA_DISK_1: using network backup set from service orcl 
  215. destination for restore of datafile 00010: /oradata/ORCL_STBY/PDB01/o1_mf_sysaux_j749f5fw_.dbf 
  216. channel ORA_DISK_1: restore complete, elapsed time: 00:00:01 
  217. channel ORA_DISK_1: starting incremental datafile backup set restore 
  218. channel ORA_DISK_1: using network backup set from service orcl 
  219. destination for restore of datafile 00011: /oradata/ORCL_STBY/PDB01/o1_mf_undotbs1_j749f5fx_.dbf 
  220. channel ORA_DISK_1: restore complete, elapsed time: 00:00:02 
  221. channel ORA_DISK_1: starting incremental datafile backup set restore 
  222. channel ORA_DISK_1: using network backup set from service orcl 
  223. destination for restore of datafile 00012: /oradata/ORCL_STBY/test01.dbf 
  224. channel ORA_DISK_1: restore complete, elapsed time: 00:00:01 
  225.  
  226. starting media recovery 
  227.  
  228. media recovery complete, elapsed time: 00:00:00 
  229. Finished recover at 19-APR-21 
  230. Executing: alter system set standby_file_management=auto 
  231. Finished recover at 19-APR-21 

方便大家查看,于是記錄恢復(fù)全過程,通過以上執(zhí)行過程,可以看到:

  • RECOVER STANDBY DATABASE命令重新啟動備用實例。
  • 從主數(shù)據(jù)庫刷新控制文件,并自動重命名數(shù)據(jù)文件,臨時文件和聯(lián)機日志。
  • 它可以還原添加到主數(shù)據(jù)庫中的新數(shù)據(jù)文件,并還原到當(dāng)前時間的備用數(shù)據(jù)庫。

b.備庫修改standby log路徑發(fā)現(xiàn)刷新過后,備庫redo log路徑已修改,standby log路徑未修改,因此手動修改。

查詢備庫的日志文件路徑:

  1. sqlplus / as sysdba 
  2. SQL> select member from v$logfile; 
  3.  
  4. MEMBER 
  5. -------------------------------------------------------------------------------- 
  6. /oradata/ORCL_STBY/redo03.log 
  7. /oradata/ORCL_STBY/redo02.log 
  8. /oradata/ORCL_STBY/redo01.log 
  9. /oradata/ORCL/standby_redo04.log 
  10. /oradata/ORCL/standby_redo05.log 
  11. /oradata/ORCL/standby_redo06.log 
  12. /oradata/ORCL/standby_redo07.log 

關(guān)閉備庫文件自動管理:

  1. sqlplus / as sysdba 
  2. alter system set standby_file_management=MANUAL; 

清理standby log:

  1. sqlplus / as sysdba 
  2. alter database clear logfile group 4; 
  3. alter database clear logfile group 5; 
  4. alter database clear logfile group 6; 
  5. alter database clear logfile group 7; 

修改standby log路徑:

  1. sqlplus / as sysdba 
  2. alter database rename file '/oradata/ORCL/standby_redo04.log' to '/oradata/ORCL_STBY/standby_redo04.log'
  3. alter database rename file '/oradata/ORCL/standby_redo05.log' to '/oradata/ORCL_STBY/standby_redo05.log'
  4. alter database rename file '/oradata/ORCL/standby_redo06.log' to '/oradata/ORCL_STBY/standby_redo06.log'
  5. alter database rename file '/oradata/ORCL/standby_redo07.log' to '/oradata/ORCL_STBY/standby_redo07.log'

修改完后打開備庫文件自動管理:

  1. sqlplus / as sysdba 
  2. alter system set standby_file_management=AUTO; 

c.主庫切日志,備庫開啟日志應(yīng)用檢查主備scn是否一致:

  1. sqlplus / as sysdba 
  2. col HXFNM for a100 
  3. set line222 
  4. select HXFIL File_num,substr(HXFNM,1,40) HXFNM,fhscn from x$kcvfh; 

主庫切幾次歸檔:

  1. sqlplus / as sysdba 
  2. ALTER SYSTEM ARCHIVE LOG CURRENT
  3. ALTER SYSTEM SWITCH LOGFILE; 

開啟備庫應(yīng)用日志:

  1. sqlplus / as sysdba 
  2. alter database open
  3. alter pluggable database all open
  4. ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION; 

查看備庫同步是否正常:

  1. sqlplus / as sysdba 
  2. set line222 
  3. col member for a60 
  4. select t1.group#,t1.thread#,t1.bytes/1024/1024,t1.status,t2.member from gv$standby_log t1,gv$logfile t2 where t1.group#=t2.group#; 

主庫插入數(shù)據(jù):

  1. sqlplus test/test@pdb01 
  2. insert into test values (999); 
  3. commit

備庫查詢是否實時同步:

  1. sqlplus / as sysdba 
  2. alter session set container=pdb01; 
  3. select * from test.test; 
  4. ID 
  5. ---------- 
  6. 999 

至此,18C的GAP也已修復(fù),可以看到Oracle隨著版本升級,越來越自動化的操作,意味著運維自動化的未來。

參考文檔:

RESTORE/Recover from Service

Restoring and Recovering Files Over the Network(DG)

Restoring and Recovering Files Over the Network(RMAN)

Rolling Forward a Standby With One Command 18C

 

責(zé)任編輯:姜華 來源: Lucifer三思而后行
相關(guān)推薦

2015-03-09 14:53:04

OracleOracle DGDataGuard F

2009-07-03 09:44:30

Oracle Data

2011-07-05 16:18:14

DataGuardSTANDBY

2021-11-08 08:29:57

Oracle數(shù)據(jù)庫后端開發(fā)

2011-05-25 09:20:24

Oracle數(shù)據(jù)庫

2021-12-07 08:30:38

Oracle數(shù)據(jù)庫后端開發(fā)

2009-11-04 17:52:35

Oracle用戶管理

2010-03-30 19:31:25

Oracle 10g

2017-07-19 09:53:42

Oracle分區(qū)問題

2021-03-18 09:11:26

OracleJDK 16數(shù)據(jù)庫

2021-12-06 08:31:18

Oracle數(shù)據(jù)庫后端開發(fā)

2024-04-03 09:25:53

數(shù)據(jù)庫OraclePostgreSQL

2011-06-07 10:13:58

2021-05-19 20:20:56

Oracle歸檔修復(fù)

2017-07-04 15:45:30

數(shù)據(jù)庫RACWindows平臺

2013-02-21 10:05:05

2016-08-01 11:07:51

Oracle漏洞

2009-10-26 17:29:21

Oracle管理員數(shù)據(jù)庫管理

2021-12-13 17:23:23

戴爾

2024-04-01 00:01:05

MySQL死鎖DDL
點贊
收藏

51CTO技術(shù)棧公眾號