前段时间配的一套11203 RAC ADG on EXADATA Machine的环境,在ADG 的standby side的node2 通过dblink查询时提示ora-1089错误,但是在node1 查询正常,DG的recover 进程是在node1 上,后确认是个bug 简单的记录。
Call Stacke in trace file
在MOS中Bug 17162712相符,该bug 影响11.2.0.3/4 在12.2 (Future Release) 12.1.0.2 (Server Patch Set) 版本中才修改了bug;或在不升级到12C前的版本有提供ONE patch 小补丁修复; 或重启standby db 的方式绕过这个bug,如下
-- on standby node2 ,but on standby node1 was worked
select count(*) from dbmt.dbmt_tableinfo@LINK_WEEJAR_A2.ANBOB.COM;
ORA-01089: immediate shutdown in progress - no operations are permitted
Process ID: 771
Session ID: 1517 Serial number: 4211
-- diag
alter session set events '10046 trace name context forever,level 12:1089 trace name errorstack level 3';
select count(*) from dbmt.dbmt_tableinfo@LINK_WEEJAR_A2.ANBOB.COM;
--error复制
Call Stacke in trace file
----- Call Stack Trace -----
calling call entry argument values in hex
location type point (? means dubious value)
-------------------- -------- -------------------- ----------------------------
skdstdst()+36 call kgdsdst() 000000000 ? 000000000 ?
7FFFB26EA518 ? 000000001 ?
000000001 ? 000000002 ?
ksedst1()+98 call skdstdst() 000000000 ? 000000000 ?
7FFFB26EA518 ? 000000001 ?
000000000 ? 000000002 ?
ksedst()+34 call ksedst1() 000000000 ? 000000001 ?
7FFFB26EA518 ? 000000001 ?
000000000 ? 000000002 ?
dbkedDefDump()+2741 call ksedst() 000000000 ? 000000001 ?
7FFFB26EA518 ? 000000001 ?
000000000 ? 000000002 ?
ksedmp()+36 call dbkedDefDump() 000000003 ? 000000000 ?
7FFFB26EA518 ? 000000001 ?
000000000 ? 000000002 ?
dbkdaKsdActDriver() call ksedmp() 000000003 ? 000000000 ?
+1960 7FFFB26EA518 ? 000000001 ?
000000000 ? 000000002 ?
dbgdaExecuteAction( call dbkdaKsdActDriver() 7F86B4312710 ? 7FFFB26F11A0 ?
)+1065 7FFFB26EA518 ? 000000001 ?
000000000 ? 000000002 ?
dbgdaRunAction()+81 call dbgdaExecuteAction( 7F86B4312710 ? 00A1B8DA0 ?
0 ) 0020C0003 ? 7FFFB26F11A0 ?
000000001 ? 000000002 ?
dbgdRunActions()+59 call dbgdaRunAction() 7F86B4312710 ? 000000005 ?
0020C0003 ? 7FFFB26F11A0 ?
000000001 ? 000000002 ?
dbgdProcessEventAct call dbgdRunActions() 7F86B4312710 ? 000000005 ?
ions()+651 0020C0003 ? 7FFFB26F11A0 ?
000000001 ? 000000002 ?
dbgdChkEventKgErr() call dbgdProcessEventAct 7F86B4312710 ? 00BC1D9A0 ?复制
在MOS中Bug 17162712相符,该bug 影响11.2.0.3/4 在12.2 (Future Release) 12.1.0.2 (Server Patch Set) 版本中才修改了bug;或在不升级到12C前的版本有提供ONE patch 小补丁修复; 或重启standby db 的方式绕过这个bug,如下
This bug is only relevant when using Real Application Clusters (RAC) and Database Link / Distributed
If the recovering instance of a RAC standby fails, one of the remaining instances will do special instance recovery.
After this recovery one of the shutdown flags is not cleared, triggering the ORA-1089:"immediate shutdown in progress"
when a database link is used.
During the recovery an ORA-1089 is normal, the problem is that the error is raised even after the recovery
STACK TRACE:
------------
skdstdst <- ksedst1 <- ksedst <- dbkedDefDump <- ksedmp <- dbkdaKsdActDriver
<- dbgdaExecuteAction <- dbgdaRunAction <- dbgdRunActions <-
dbgdProcessEventActions <- dbgdChkEventKgErr <- dbkdChkEventRdbmsEr <- ksfpec
<- dbgePostErrorKGE <- 1129 <- dbkePostKGE_kgsf <- kgeselv <- ksesecl0 <-
k2gInsert <- k2lbeg <- k2sibg <- npibeg <- kpnpre <- upirtrc <- kpurcsc <-
kpuexec <- OCIStmtExecute <- OCIKGetDescInfo <- ddfnetCFull <- ddfnet2Normal
<- kkmfcbrm <- kkmpfcbk <- qcsprfro <- qcsprfro_tree <- qcsprfro_tree <-
qcspafq <- qcspqbDescendents <- qcspqb <- kkmdrv <- opiSem <- opiprs <-
kksParseChildCursor <- rpiswu2 <- kksLoadChild <- kxsGetRuntimeLock <- kksfbc
<- kkspsc0 <- kksParseCursor <- opiosq0 <- kpooprx <- kpoal8 <- opiodr <-
ttcpip <- opitsk <- opiino <- opiodr <- opidrv <- sou2o <- opimai_real <-
ssthrdmain <- main <- libc_start_main <- start
# 重启STANDBY INSTANCE
[oracle@qdexa1db01 (orarpt1)oracle]$ srvctl config database
rptstby
[oracle@qdexa1db01 (orarpt1)oracle]$ srvctl stop database -d rptstby
[oracle@qdexa1db01 (orarpt1)oracle]$ srvctl start database -d rptstby
SQL> select name,open_mode,database_role from gv$database;
NAME OPEN_MODE DATABASE_ROLE
--------- -------------------- ----------------
ORARPT MOUNTED PHYSICAL STANDBY
ORARPT MOUNTED PHYSICAL STANDBY
# open all standby instances
SQL> alter database open;
SQL> select name,open_mode,database_role from gv$database;
NAME OPEN_MODE DATABASE_ROLE
--------- -------------------- ----------------
ORARPT READ ONLY PHYSICAL STANDBY
ORARPT READ ONLY PHYSICAL STANDBY
SQL> alter database recover managed standby database PARALLEL 48 using current logfile disconnect from session;
Database altered.
# in both instances run same queries over dblink not with ora-1089 error also Now.
SQL> select count(*) from dbmt.dbmt_tableinfo@LINK_WEEJAR_A2.ANBOB.COM;
COUNT(*)
----------
317复制
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
Oracle RAC 一键安装翻车?手把手教你如何排错!
Lucifer三思而后行
548次阅读
2025-04-15 17:24:06
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
469次阅读
2025-04-18 14:18:38
Oracle SQL 执行计划分析与优化指南
Digital Observer
450次阅读
2025-04-01 11:08:44
XTTS跨版本迁移升级方案(11g to 19c RAC for Linux)
zwtian
445次阅读
2025-04-08 09:12:48
墨天轮个人数说知识点合集
JiekeXu
445次阅读
2025-04-01 15:56:03
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
438次阅读
2025-04-22 00:20:37
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
414次阅读
2025-04-22 00:13:51
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
413次阅读
2025-04-20 10:07:02
Oracle 19c RAC更换IP实战,运维必看!
szrsu
393次阅读
2025-04-08 23:57:08
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
359次阅读
2025-04-17 17:02:24
热门文章
移除DataGuard Standby配置导致Primary启动失败
2023-08-17 21297浏览
使用dblink产生的”SELECT /*+ FULL(P) +*/ * FROM XXXXX P ” 解析
2023-06-20 20895浏览
Troubleshooting 'ORA-28041: Authentication protocol internal error' change password 12c R2 DB
2020-04-08 13646浏览
浅谈ORACLE免费数据库Oracle Database XE (Express Edition) 版
2018-10-31 7594浏览
High wait event ‘row cache mutex’ in 12cR2、19c
2020-08-14 5573浏览