1 問題:
前面說到我的項目中建立了一個定時重新整理的物化視圖,這個物化視圖是基於一個左串連兩個遠端機器的表的的查詢。
前一篇《Oracle【定期重新整理】的【基於串連】的物化視圖》見
大概樣子就是這樣:
create materialized view VIEW_NAMErefresh 字句asselect (.....)from Table1@DBLINK_NAME t1 left join Table2@DBLINK_NAME t2on t1.id = t2.sid
開始的時候Table1隻有幾十條資料,這個物化視圖建立沒問題,也能定時更新。
後來當Table1的資料量增大到34萬條之後,物化視圖就不再更新了,最後重新執行物化視圖發現報出【ORA-02063: preceding line from DBLINK_NAME】這個錯誤。
2 思考解決方案的過程:
報出錯誤之後我發現焦點聚焦到了t2這個地方,恰好發現旁邊的人在使用PL_SQL軟體,串連到了這個遠端的資料庫,並且開啟了t2這個表,然後我就覺得可能是因為資料庫表死結導致這個物化視圖不能執行。
然後把吧PL_SQL關掉,發現還是有這個問題。。。 其實我再想想發現有點天真,select語句怎麼可能和PL_SQL軟體競爭呢。。。除非是update/insert等語句倒是有可能。
然後我繼續嘗試,發現:
(1)吧左串連去掉,單獨通過DBLINK來查詢t1來建立物化視圖,或者單獨通過DBLINK來查詢t2來建立物化視圖,都是OK的;
(2)還是保留左串連,僅僅執行建立物化視圖語句中的select語句部分(即左串連兩個DBLINK的表),還是報這個錯誤;
由此可見這個錯誤和物化視圖毫無關係,而且一定和左串連有關係。。。。
3 解決方案:
後來又上網查了一下,發現有人說可能是因為建立DBlink時,密碼沒有用雙引號括起來,就會導致ORA-02063這個錯誤。。。 明天去公司一定要試一下。
(見 更多詳情見請繼續閱讀下一頁的精彩內容: )
ORA-01172、ORA-01151錯誤處理
ORA-00600 [2662]錯誤解決
ORA-01078 和 LRM-00109 報錯解決方案
ORA-00471 處理方法筆記
ORA-00314,redolog 損壞,或丟失處理方法
ORA-00257 歸檔日誌過大導致無法儲存的解決辦法