生产环境Oracle dataguard不同步处理过程分享,


一、问题描述

dg环境扩容表空间新增的数据文件部分没有传到备库上去,报ORA-16136: Managed Standby Recovery not active

生产环境oracle dataguard不同步处理过程分享

二、分析及处理过程:

2.1 备库上查看v$managed_standby

  1. SQL>  select process,status,sequence# from v$managed_standby; 
  2.  
  3. PROCESS   STATUS        SEQUENCE# 
  4.  
  5. ARCH      CLOSING          114516 
  6.  
  7. ARCH      CLOSING          114517 
  8.  
  9. ARCH      CONNECTED             0 
  10.  
  11. ARCH      CLOSING          114518 
  12.  
  13. RFS       IDLE                  0 
  14.  
  15. RFS       WRITING          114519 
  16.  
  17. RFS       IDLE                  0 
  18.  
  19. 7 rows selected. 
  20.  
  21. 从上面的输出,可以看出,缺少MRP0进程。 

2.2 确认报错信息

  1. SQL> alter database recover managed standby database; 
  2.  
  3. alter database recover managed standby database 
  4.  
  5.  
  6. ERROR at line 1: 
  7.  
  8. ORA-00283: recovery session canceled due to errors 
  9.  
  10. ORA-01111: name for data file 14 is unknown - rename to correct file 
  11.  
  12. ORA-01110: data file 14: 
  13.  
  14. '/data/app/oracle/product/11.2.0/db_1/dbs/UNNAMED00014' 
  15.  
  16. ORA-01157: cannot identify/lock data file 14 - see DBWR trace file 
  17.  
  18. ORA-01111: name for data file 14 is unknown - rename to correct file 
  19.  
  20. ORA-01110: data file 14: 
  21.  
  22. '/data/app/oracle/product/11.2.0/db_1/dbs/UNNAMED00014' 
  23.  
  24. 从上面的输出可以看出是14号文件的问题 

2.3 备库重新创建14号文件

14号文件本次表空间扩容新增的数据文件。

  1. alter system set standby_file_management=manual; 
  2.  
  3. alter database create datafile '/data/app/oracle/product/11.2.0/db_1/dbs/UNNAMED00014' as '/data/app/oracle/newdata/dataqiye_data9.dbf' 
  4.  
  5. alter system set standby_file_management=auto; 

2.4 再次查看警告日志文件

  1. started logmerger process 
  2.  
  3. Tue Jan 30 13:31:35 2018 
  4.  
  5. Managed Standby Recovery not using Real Time Apply 
  6.  
  7. Parallel Media Recovery started with 8 slaves 
  8.  
  9. Waiting for all non-current ORLs to be archived... 
  10.  
  11. All non-current ORLs have been archived. 
  12.  
  13. Media Recovery Waiting for thread 1 sequence 114456 
  14.  
  15. Fetching gap sequence in thread 1, gap sequence 114456-114459 
  16.  
  17. Completed: alter database recover managed standby database disconnect from session 
  18.  
  19. Tue Jan 30 13:33:26 2018 
  20.  
  21. FAL[client]: Failed to request gap sequence 
  22.  
  23.  GAP - thread 1 sequence 114456-114459 
  24.  
  25.  DBID 1477707379 branch 949967087 
  26.  
  27. FAL[client]: All defined FAL servers have been attempted. 
  28.  
  29. Check that the CONTROL_FILE_RECORD_KEEP_TIME initialization 
  30.  
  31. parameter is defined to a value that's sufficiently large 
  32.  
  33. enough to maintain adequate log switch information to resolve 
  34.  
  35. archivelog gaps. 
  36.  
  37. 日志出现断档,从主库的归档备份中恢复序列号是 sequence 114456-114459的归档日志。 

2.5 主库上操作

从主库归档备份中恢复所需的归档日志序列(114456-114459)

  1. rman target / 
  2.  
  3. restore archivelog from sequence 114456 until sequence 114459; 

2.6 备库上观察警告日志输出

  1. RFS[3]: Opened log for thread 1 sequence 114456 dbid 1477707379 branch 949967087 
  2.  
  3. Tue Jan 30 13:42:44 2018 
  4.  
  5. Archived Log entry 114633 added for thread 1 sequence 114457 rlc 949967087 ID 0x0 dest 2: 
  6.  
  7. Tue Jan 30 13:42:44 2018 
  8.  
  9. Archived Log entry 114634 added for thread 1 sequence 114456 rlc 949967087 ID 0x0 dest 2: 
  10.  
  11. Tue Jan 30 13:42:44 2018 
  12.  
  13. RFS[4]: Assigned to RFS process 5977 
  14.  
  15. RFS[4]: Opened log for thread 1 sequence 114504 dbid 1477707379 branch 949967087 
  16.  
  17. RFS[2]: Opened log for thread 1 sequence 114503 dbid 1477707379 branch 949967087 
  18.  
  19. RFS[3]: Opened log for thread 1 sequence 114502 dbid 1477707379 branch 949967087 
  20.  
  21. Tue Jan 30 13:42:47 2018 
  22.  
  23. Media Recovery Log /data/app/oracle/arch/arch_949967087_1_114456.arc 
  24.  
  25. Media Recovery Log /data/app/oracle/arch/arch_949967087_1_114457.arc 
  26.  
  27. Media Recovery Log /data/app/oracle/arch/arch_949967087_1_114458.arc 
  28.  
  29. Tue Jan 30 13:43:08 2018 
  30.  
  31. Archived Log entry 114635 added for thread 1 sequence 114502 rlc 949967087 ID 0x58146bd8 dest 2: 
  32.  
  33. Tue Jan 30 13:43:08 2018 
  34.  
  35. Archived Log entry 114636 added for thread 1 sequence 114503 rlc 949967087 ID 0x58146bd8 dest 2: 
  36.  
  37. Tue Jan 30 13:43:08 2018 
  38.  
  39. Archived Log entry 114637 added for thread 1 sequence 114504 rlc 949967087 ID 0x58146bd8 dest 2: 
  40.  
  41. Tue Jan 30 13:43:17 2018 
  42.  
  43. Media Recovery Log /data/app/oracle/arch/arch_949967087_1_114459.arc 
  44.  
  45. Media Recovery Log /data/app/oracle/arch/arch_949967087_1_114460.arc 
  46.  
  47. Media Recovery Log /data/app/oracle/arch/arch_949967087_1_114461.arc 
  48.  
  49. [oracle@iZwz9h66josrg1nhghd32dZ trace]$ tail -f  alert_orcl.log     
  50.  
  51. Tue Jan 30 13:43:08 2018 
  52.  
  53. Archived Log entry 114636 added for thread 1 sequence 114503 rlc 949967087 ID 0x58146bd8 dest 2: 
  54.  
  55. Tue Jan 30 13:43:08 2018 
  56.  
  57. Archived Log entry 114637 added for thread 1 sequence 114504 rlc 949967087 ID 0x58146bd8 dest 2: 
  58.  
  59. Tue Jan 30 13:43:17 2018 
  60.  
  61. Media Recovery Log /data/app/oracle/arch/arch_949967087_1_114459.arc 
  62.  
  63. Media Recovery Log /data/app/oracle/arch/arch_949967087_1_114460.arc 
  64.  
  65. Media Recovery Log /data/app/oracle/arch/arch_949967087_1_114461.arc 
  66.  
  67. Tue Jan 30 13:43:43 2018 
  68.  
  69. Media Recovery Log /data/app/oracle/arch/arch_949967087_1_114462.arc 
  70.  
  71. Tue Jan 30 13:43:55 2018 
  72.  
  73. Media Recovery Log /data/app/oracle/arch/arch_949967087_1_114463.arc 
  74.  
  75. Tue Jan 30 13:44:11 2018 
  76.  
  77. Media Recovery Log /data/app/oracle/arch/arch_949967087_1_114464.arc 
  78.  
  79. Tue Jan 30 13:44:23 2018 
  80.  
  81. Media Recovery Log /data/app/oracle/arch/arch_949967087_1_114465.arc 
  82.  
  83. Tue Jan 30 13:44:37 2018 
  84.  
  85. Media Recovery Log /data/app/oracle/arch/arch_949967087_1_114466.arc 
  86.  
  87. Tue Jan 30 13:44:51 2018 
  88.  
  89. Media Recovery Log /data/app/oracle/arch/arch_949967087_1_114467.arc 
  90.  
  91. Tue Jan 30 13:45:05 2018 
  92.  
  93. Media Recovery Log /data/app/oracle/arch/arch_949967087_1_114468.arc 
  94.  
  95. Tue Jan 30 13:45:17 2018 
  96.  
  97. Media Recovery Log /data/app/oracle/arch/arch_949967087_1_114469.arc 
  98.  
  99. Tue Jan 30 13:45:31 2018 
  100.  
  101. Media Recovery Log /data/app/oracle/arch/arch_949967087_1_114470.arc 
  102.  
  103. Tue Jan 30 13:45:45 2018 
  104.  
  105. Media Recovery Log /data/app/oracle/arch/arch_949967087_1_114471.arc 
  106.  
  107. Tue Jan 30 13:46:01 2018 
  108.  
  109. Media Recovery Log /data/app/oracle/arch/arch_949967087_1_114472.arc 
  110.  
  111. Tue Jan 30 13:46:14 2018 
  112.  
  113. Media Recovery Log /data/app/oracle/arch/arch_949967087_1_114473.arc 
  114.  
  115. .................... 
  116. 从日志的输出中我们可以看出,备库正在应用归档。 

三、验证

3.1 备库验证

  1. SQL>  select process,status,sequence# from v$managed_standby; 
  2.  
  3. PROCESS   STATUS        SEQUENCE# 
  4.  
  5. ARCH      CLOSING          114534 
  6.  
  7. ARCH      CLOSING          114535 
  8.  
  9. ARCH      CONNECTED             0 
  10.  
  11. ARCH      CLOSING          114533 
  12.  
  13. RFS       IDLE                  0 
  14.  
  15. RFS       IDLE             114536 
  16.  
  17. RFS       IDLE                  0 
  18.  
  19. MRP0      WAIT_FOR_LOG     114536 
  20.  
  21. RFS       IDLE                  0 
  22.  
  23. 9 rows selected. 
  24.  
  25. SQL> select database_role,switchover_status,open_mode from v$database; 
  26.  
  27. DATABASE_ROLE    SWITCHOVER_STATUS    OPEN_MODE 
  28.  
  29. PHYSICAL STANDBY NOT ALLOWED          MOUNTED 
  30.  
  31. SQL> select distinct thread#,max(sequence#) over(partition by thread#) a from v$archived_log; 
  32.  
  33.    THREAD#          A 
  34.  
  35.          1     114537 
  36.  
  37. SQL>  

3.2 主库验证

  1. SQL> select distinct thread#,max(sequence#) over(partition by thread#) a from v$archived_log; 
  2.  
  3.    THREAD#          A 
  4.  
  5.          1     114537 
  6.  
  7. SQL>  

四、dg重启关闭命令总结

4.1 关闭备用数据库

  1. SQL >alter database recover managed standby database cancel; 
  2. SQL >shutdown immediate; 

4.2 启动备库

  1. SQL > startup nomount; 
  2. SQL >alter database mount standby database; 
  3. SQL >alter database recover managed standby database disconnect from session; 

4.3 启用备库的实时应用

  1. SQL > startup nomount; 
  2. SQL >alter database mount standby database; 
  3. SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE  DISCONNECT FROM SESSION;  

4.4 启用备库的实时应用+只读模式

  1. SQL >startup nomount; 
  2. SQL >alter database mount standby database; 
  3. SQL >alter database open read only; 
  4. SQL>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE  DISCONNECT FROM SESSION;  

相关内容