您好,登錄后才能下訂單哦!
環境: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內的表。
而對于with內的表只使用一次的是不會生成臨時表
在METALINK下載相應的補丁,上傳至standby database服務器
通過opatch查看為一個online的補丁。
且需要19769496這個補丁,在查看以前安裝過的補丁發現已經有這個補丁。現在就可以直接在線打補丁。
檢查現有補丁
打 14143632 補丁
一共三臺 standby 數據庫,依次安裝。
補丁安裝成功,在執行相應帶有 with 且生成臨時表的 sql 語句,執行成功。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。