千家信息网

oracle ADG ora-30927

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,环境:centos6.8 11.2.0.3.10(64bit)本来是没有这个问题的,但是由于最近对只读库做了一定的调整,在重启后,发现触发了这个bug。这个bug以前出现过,以前是通过重启只读库,重新
千家信息网最后更新 2026年10月31日oracle ADG ora-30927

环境:centos6.8 11.2.0.3.10(64bit)

本来是没有这个问题的,但是由于最近对只读库做了一定的调整,在重启后,发现触发了这个bug。这个bug以前出现过,以前是通过重启只读库,重新同步就解决了,但是这次多次重启发现还是没能规避这个bug,我没有mos账号,无法下载补丁。这里通过多次测试,并对比调整前后的设置,发现只是恢复并行度不同,以前重启是使用了默认的并行度,这次特意关闭了并行恢复,在讲并行度设置为2后暂时规避了改问题,这里记录一下。另外在asktom上有人说加hint(这个 /*+ inline */ )也能暂时解决, 对于改解决方式,他们的回复是,hint不是每次都会生效,所以错误会不可预期的还会出现。

以下为转载的打补丁升级方式解决问题:

http://blog.itpub.net/30820196/viewspace-2132271/

一、环境

数据库环境为DG一主三备(最大可用模式),操作系统均为CentOS release 6.5版本,数据库版本11.2.0.3.15

二、描述

2016年12月26日下午,业务人员突然说系统不能用,一些网页频繁报错,没办法将数据查出来,最后结合开发人将对应的sql提取出来进行分析,发现所有的sql均带有with语法,且都是对standby databae进行的查询。通过metalink查找发现,这与一个bug有关。在ADG环境中使用with语句且系统自动生成临时表时会出现

ORA-30927: Unable to complete execution due to failure in temporary table transformation报错。(在standby database中会出现)

METALINK上的描述是:

On ADG, queries that use a cursor-duration temporary table may fail with ORA-30927 errors.

Such queries use Star with Temp Transformation and subquery factoring (WITH clause).

(Bug 14143632- ora-30927 on active data guard(文档ID 14143632.8))

此时线上的数据库PSU已打到了11.2.0.3.15但是没有包含这个bug的补丁。补丁号(14143632)

例如:执行如下代码,with内的表被使用了两次,oracle会自动生成一个临时表来存放with内的表。

  1. With a as (
  2. Select object _id aa ,object_name na from dba_objects
  3. )
  4. Select * from a where aa in ( select a .aa from a ) ;



而对于with内的表只使用一次的是不会生成临时表

  1. with a as (
  2. select object_id aa ,object_name na from dba_objects
  3. )
  4. select * from a ;



三、解决

在METALINK下载相应的补丁,上传至standby database服务器

通过opatch查看为一个online的补丁。

且需要19769496这个补丁,在查看以前安装过的补丁发现已经有这个补丁。现在就可以直接在线打补丁。

1. 检查可以在线处理

  1. [oracle@oracle-test 14143632]$ opatch query -all online
  2. Oracle 中间补丁程序安装程序版本 11.2.0.3.6
  3. 版权所有 (c) 2013, Oracle Corporation。保留所有权利。
  4. Oracle Home : /home/app/oracle/product/11.2.0/dbhome_1
  5. Central Inventory : /home/app/oraInventory
  6. from : /home/app/oracle/product/11.2.0/dbhome_1/oraInst.loc
  7. OPatch version : 11.2.0.3.6
  8. OUI version : 11.2.0.3.0
  9. Log file location : /home/app/oracle/product/11.2.0/dbhome_1/cfgtoollogs/opatch/opatch3016-12-27_15-36-57下午_1.log
  10. -------------------------------------------------------------------------------
  11. Patch created on 5 Jun 2015, 23:20:09 hrs PST8PDT
  12. Need to shutdown Oracle instances: false
  13. Patch is roll-backable: true
  14. Patch is a "Patchset Update": false
  15. Patch is a rolling patch: true
  16. Patch has sql related actions: false
  17. Patch is an online patch: true
  18. Patch is a portal patch: false
  19. Patch is an "auto-enabled" patch: false
  20. Patch is translatable: false
  21. List of platforms supported:
  22. 226: Linux x86-64
  23. List of prereq patches:
  24. 19769496
  25. List of overlay patches:
  26. 19769496
  27. List of bugs to be fixed:
  28. 14143632: QUERIES MAY FAIL WITH ORA-30927 ERRORS ON AN ADG STANDBY DATABASE
  29. This patch is a "singleton" patch.
  30. This patch belongs to the "db" product family
  31. This patch supports the patching model as "one-off"
  32. This patch supports the language "en"
  33. List of executables affected:
  34. ORACLE_HOME/bin/oracle
  35. ORACLE_HOME/bin/renamedg
  36. ORACLE_HOME/lib/libclntsh.so.11.1
  37. List of optional components:
  38. oracle.rdbms: 11.2.0.3.0
  39. List of optional actions:
  40. Patch the Database instances with Online Patch hpatch/bug14143632.pch
  41. Possible XML representation of the patch:
  42. 14143632
  43. -------------------------------------------------------------------------------
  44. OPatch succeeded.

2. 在线打补丁

检查现有补丁

  1. [oracle@newfhldb1 OPatch]$ opatch lsinventory

打 14143632 补丁

  1. [oracle@newfhldb1 ~]$ cd 14143632/
  2. [oracle@newfhldb1 14143632]$ ls
  3. etc files online README.txt
  4. **此处sid username password 均对应当前数据库的sid,username以及password最好使有dba权限的用户**
  5. [oracle@newfhldb1 14143632]$ opatch apply online -connectString :::
  6. Oracle 中间补丁程序安装程序版本 11.2.0.3.6
  7. 版权所有 (c) 2013, Oracle Corporation。保留所有权利。
  8. Oracle Home : /usr/app/oracle/110203/v01
  9. Central Inventory : /usr/app/oracle/oraInventory
  10. from : /usr/app/oracle/110203/v01/oraInst.loc
  11. OPatch version : 11.2.0.3.6
  12. OUI version : 11.2.0.3.0
  13. Log file location : /usr/app/oracle/110203/v01/cfgtoollogs/opatch/14143632_Dec_27_2016_12_57_10/apply2016-12-27_12-57-10下午_1.log
  14. 补丁程序只应在 '-all_nodes' 模式下应用/回退。
  15. 将 RAC 模式转换为 '-all_nodes' 模式。
  16. Applying interim patch '14143632' to OH '/usr/app/oracle/110203/v01'
  17. Verifying environment and performing prerequisite checks...
  18. All checks passed.
  19. 提供电子邮件地址以用于接收有关安全问题的通知, 安装 Oracle Configuration Manager 并启动它。如果您使用 My Oracle
  20. Support 电子邮件地址/用户名, 操作将更简单。
  21. 有关详细信息, 请访问 http://www.oracle.com/support/policies.html。
  22. 电子邮件地址/用户名:
  23. 尚未提供电子邮件地址以接收有关安全问题的通知。
  24. 是否不希望收到有关安全问题 (是 [Y], 否 [N]) [N] 的通知: y
  25. Backing up files...
  26. 正在为组件 oracle.rdbms, 11.2.0.3.0 打补丁...
  27. 正在数据库 'fhlsys' 上安装和启用联机补丁程序 'bug14143632.pch'。
  28. Verifying the update...
  29. Patch 14143632 successfully applied
  30. Log file location: /usr/app/oracle/110203/v01/cfgtoollogs/opatch/14143632_Dec_27_2016_12_57_10/apply2016-12-27_12-57-10下午_1.log
  31. OPatch succeeded.

一共三台 standby 数据库,依次安装。

补丁安装成功,在执行相应带有 with 且生成临时表的 sql 语句,执行成功。

补丁 数据 数据库 程序 问题 有关 地址 模式 版本 环境 电子 电子邮件 补丁程序 邮件 生成 安全 用户 系统 在线 成功 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 深圳九邦互联网科技有限公司 北京路客互联网科技有限公司 互联网金融监管科技数据 成都互联网科技公司 菲比寻常互联网科技 济南和联互联网科技有限公司 互联网教育科技公司vipkid 互联网企业和科技型企业 福建科技产业互联网发展 晓花互联网科技有限公司网址 互联网科技与大数据专业 河南住房之家互联网科技 翼展科技 首家互联网医院 深圳市罗太互联网科技有限公司 高科技互联网发展前景如何 科技赋能视角下互联网保险发展 互联网金融科技元年 广州有谷有贝互联网科技有限公司 神州科技互联网有限公司 互联网时代高科技布局 花魁咖啡 互联网科技公司排名 互联网科技有限公司经营范围 互联网品科技 狮子座互联网科技 以房互联网科技 远拓互联网科技 互联网新科技动漫ppt素材 广西科技产业互联网是什么 杭州科技互联网公司有哪些
0