Oracle 12.2.0.1.0数据库DataGuard备库报错ORA-01110
- 数据库版本
SQL> select * from v$version;
BANNER CON_ID
---------------------------------------------------------------------------------------------------- ----------
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production 0
PL/SQL Release 12.2.0.1.0 - Production 0
CORE 12.2.0.1.0 Production 0
TNS for Linux: Version 12.2.0.1.0 - Production 0
NLSRTL Version 12.2.0.1.0 - Production 0
- 数据库状态
SQL> select name,open_mode,database_role from v$database;
NAME OPEN_MODE DATABASE_ROLE
--------------------------- ------------------------------------------------------------ ------------------------------------------------
APS READ ONLY WITH APPLY PHYSICAL STANDBY
SQL> select process,status,thread#,sequence#,block# from v$managed_standby;
PROCESS STATUS THREAD# SEQUENCE# BLOCK#
--------------------------- ------------------------------------ ---------- ---------- ----------
DGRD ALLOCATED 0 0 0
ARCH CLOSING 1 655905 1
DGRD ALLOCATED 0 0 0
ARCH CLOSING 1 655911 323584
ARCH CLOSING 1 655906 294912
ARCH CLOSING 1 655910 315392
RFS IDLE 0 0 0
RFS IDLE 1 655912 68337
MRP0 APPLYING_LOG 1 655912 68339
DGRD ALLOCATED 0 0 0
10 rows selected.
SQL> /
PROCESS STATUS THREAD# SEQUENCE# BLOCK#
--------------------------- ------------------------------------ ---------- ---------- ----------
DGRD ALLOCATED 0 0 0
ARCH CLOSING 1 655905 1
DGRD ALLOCATED 0 0 0
ARCH CLOSING 1 655911 323584
ARCH CLOSING 1 655906 294912
ARCH CLOSING 1 655910 315392
RFS IDLE 0 0 0
RFS IDLE 1 655912 68866
MRP0 APPLYING_LOG 1 655912 68868
DGRD ALLOCATED 0 0 0
10 rows selected.
数据库状态是OPEN READ ONLY WITH APPLY,MRP进程启动正常,BLOCK#可以看到数据正常同步,但是后台alert日志报错ORA-01110
- alert日志报错
2021-03-29T15:28:13.165836+08:00
Errors in file /u02/prod/oracle/diag/rdbms/standby/aps/trace/aps_m000_71426.trc:
ORA-01110: data file 1: '/u02/prod/oracle/oradata/aps/system01.dbf'
2021-03-29T15:28:13.267618+08:00
Errors in file /u02/prod/oracle/diag/rdbms/standby/aps/trace/aps_m000_71426.trc:
ORA-01110: data file 2: '/u02/prod/oracle/oradata/aps/apsx01.dbf'
2021-03-29T15:28:13.368475+08:00
Errors in file /u02/prod/oracle/diag/rdbms/standby/aps/trace/aps_m000_71426.trc:
ORA-01110: data file 3: '/u02/prod/oracle/oradata/aps/sysaux01.dbf'
2021-03-29T15:28:13.471345+08:00
Errors in file /u02/prod/oracle/diag/rdbms/standby/aps/trace/aps_m000_71426.trc:
ORA-01110: data file 4: '/u02/prod/oracle/oradata/aps/undotbs01.dbf'
2021-03-29T15:28:13.573334+08:00
Errors in file /u02/prod/oracle/diag/rdbms/standby/aps/trace/aps_m000_71426.trc:
ORA-01110: data file 5: '/u02/prod/oracle/oradata/aps/apsd01.dbf'
2021-03-29T15:28:13.684492+08:00
Errors in file /u02/prod/oracle/diag/rdbms/standby/aps/trace/aps_m000_71426.trc:
ORA-01110: data file 7: '/u02/prod/oracle/oradata/aps/users01.dbf'
2021-03-29T15:28:13.791032+08:00
Errors in file /u02/prod/oracle/diag/rdbms/standby/aps/trace/aps_m000_71426.trc:
ORA-01110: data file 8: '/u02/prod/oracle/oradata/aps/apsd02.dbf'
2021-03-29T15:28:13.891115+08:00
Errors in file /u02/prod/oracle/diag/rdbms/standby/aps/trace/aps_m000_71426.trc:
ORA-01110: data file 9: '/u02/prod/oracle/oradata/aps/apsd03.dbf'
2021-03-29T15:28:13.996713+08:00
Errors in file /u02/prod/oracle/diag/rdbms/standby/aps/trace/aps_m000_71426.trc:
ORA-01110: data file 10: '/u02/prod/oracle/oradata/aps/system02.dbf'
2021-03-29T15:28:14.097815+08:00
Errors in file /u02/prod/oracle/diag/rdbms/standby/aps/trace/aps_m000_71426.trc:
ORA-01110: data file 11: '/u02/prod/oracle/oradata/aps/apsd04.dbf'
2021-03-29T15:28:14.211539+08:00
Errors in file /u02/prod/oracle/diag/rdbms/standby/aps/trace/aps_m000_71426.trc:
ORA-01110: data file 12: '/u02/prod/oracle/oradata/aps/apsd05.dbf'
虽然备库状态一切正常,但是alert日志仍然报错所有的数据文件都有问题。
- 查看trace
*** 2021-03-29T15:28:13.165350+08:00
dbkedDefDump(): Starting a non-incident diagnostic dump (flags=0x0, level=1, mask=0x0)
----- Error Stack Dump -----
ORA-01110: data file 1: '/u02/prod/oracle/oradata/aps/system01.dbf'
----- SQL Statement (None) -----
Current SQL information unavailable - no cursor.
----- Call Stack Trace -----
calling call entry argument values in hex
location type point (? means dubious value)
-------------------- -------- -------------------- ----------------------------
ksedst()+119 call kgdsdst() 7FFDFCA21D68 000000002
7FFDFCA037D0 ? 7FFDFCA038E8 ?
000000000 000000082 ?
dbkedDefDump()+1200 call ksedst() 000000000 000000002 ?
7FFDFCA037D0 ? 7FFDFCA038E8 ?
000000000 ? 000000082 ?
ksedmp()+259 call dbkedDefDump() 000000001 000000000
7FFDFCA037D0 ? 7FFDFCA038E8 ?
000000000 ? 000000082 ?
dbgexExecuteIntDiag call ksedmp() 000000001 000000000 ?
Dmp()+1457 7FFDFCA037D0 ? 7FFDFCA038E8 ?
000000000 ? 000000082 ?
dbgeBeginInvoke()+3 call dbgexExecuteIntDiag 7F5D00000353 7F5D107CB6C0
59 Dmp() 7FFDFCA037D0 ? 7FFDFCA038E8 ?
000000000 ? 000000082 ?
dbgePostErrorKGE()+ call dbgeBeginInvoke() 7F5D107CB6C0 7FFDFCA22E20
1676 7FFDFCA037D0 ? 7FFDFCA038E8 ?
000000000 ? 000000082 ?
dbkePostKGE_kgsf()+ call dbgePostErrorKGE() 7F5D1080B980 7F5D103635F8
90 000000456 7FFDFCA038E8 ?
000000000 ? 000000082 ?
kgeade()+432 call dbkePostKGE_kgsf() 7F5D1080B980 7F5D103635F8
000000456 7FFDFCA038E8 ?
000000000 ? 000000082 ?
kgerelv()+144 call kgeade() 7F5D1080B980 ? 7F5D1080BBC8 ?
.......
- 查询MOS
ORA-01110 For All Files In Standby Database (Doc ID 2322290.1)
根据MOS上的解释,在新的或升级的12.2.0.1 Standby数据库上开始管理恢复之后,即使可以成功打开Standby数据库,Standby数据库中的所有文件的Oracle Data Guard ORA-01110也会在警报日志中显示在警报日志中。
在主数据库上更改数据文件时,记录了在备用数据库警报日志中错误报告的错误ORA-1110的日志记录。
该错误已在19.1中修复。
可以为12.1和12.2提出反向请求
函数kcidr_file_header_check_common是文件标头检查,它是导致此问题的原因。如果在“堆栈跟踪”中看到此错误,并且“待机”打开成功,则显示“只读”,则很可能遇到此错误
- 解决方法:
打补丁:Apply fix of Bug 24844841,重启备库,重启MRP
如果忽视这个问题,会不会有什么影响,打完补丁此类告警会不会消失,待后续更新。