TEMP資料表空間未建導致XMLTYPE類型內容讀取錯誤,tempxmltype

來源:互聯網
上載者:User

TEMP資料表空間未建導致XMLTYPE類型內容讀取錯誤,tempxmltype

今天一使用者環境說所有資料表中的xmltype類型,通過查詢語句看到如下結果:


例如表名ZLMXXXX的表中配置這個欄位是SYS.XMLTYPE,可以看到這個欄位所有值都是<Value Error>錯誤資訊,而不報錯的是因為該欄位是‘空’無內容的原因,仔細詢問使用者該問題出現前是否做了什麼操作,得到的回答是該資料庫由於硬體變更,進行了遷移,由於資料庫本身比較小,且遷移的環境平台完全一樣,因此遷移的方式最原始簡單的是‘冷備份’恢複,但是遷移過來就發現所有XMLTYPE內容的欄位都出現錯誤,而其他欄位都沒有問題。

問題排查一.檢查sys.xmltype TYPE是否缺失或者有效

由於所有XMLTYPE欄位都無法訪問,首先懷疑sys.xmltypeTYPE包是否在遷移的過程中損壞或者失效,如果該TYPE出現問題,肯定會導致所有該TYPE對象無法訪問,檢查對象狀態:


         這裡我們看到沒有問題,如果出現問題,我們可以通過執行catproc.sql指令碼進行修複,具體操作如下:

Run catproc.sql andutlrp.sql as SYS.sqlplus "/ assysdba"startup upgradespool validate.log@?/rdbms/admin/catproc.sql@?/rdbms/admin/utlrpspool offshutdown immediatestartup

         顯然我們這裡沒有問題,不需要進行修複,接下來該怎麼辦呢?

二.遷移環境檢查

由於使用者是採用冷備份恢複的方式進行遷移,按道理是最穩妥的遷移方式,如果環境一致,不太會出現問題,那麼估計是遷移恢複過程中出現了環境差異,我仔細檢測了作業系統、資料庫參數等,都沒什麼重大的發現,在檢測資料檔案的時候,發現因為安裝路徑的限制資料檔案的路徑進行了變更,進行檢測v$datafile也沒什麼問題,在檢查v$tempfile視圖的時候,發現該視圖下無內容,如下:


再次詢問使用者的遷移過程,告知由於源端和目標端資料檔案路徑變更,其採用再源端產生控制檔案指令碼,修改路徑後,然後在目標端重建控制檔案的方式進行的遷移,這種方法在處理路徑不一致的恢複是可行的,沒有錯,但是核對其建立過程中發現,其忘了暫存資料表空間檔案的添加,因為在控制檔案trace指令碼中,除了建立控制檔案本身,後面還有如下這句:

-- Other tempfiles may require adjustment.

ALTER TABLESPACE TEMP ADD TEMPFILE'D:\APP\ADMINISTRATOR\ORADATA\YDTEST\TEMP01.DBF'

     SIZE176160768  REUSE AUTOEXTEND OFF;

ALTER TABLESPACE ZLTOOLSTMP ADD TEMPFILE'D:\APP\ADMINISTRATOR\ORADATA\YDTEST\ZLTOOLSTMP'

     SIZE467664896  REUSE AUTOEXTEND OFF;

ALTER TABLESPACE SMITMP ADD TEMPFILE'D:\APP\ADMINISTRATOR\ORADATA\YDTEST\SMITMP01.DBF'

     SIZE52428800  REUSE AUTOEXTEND OFF;

-- End of tempfile additions.

更改路徑後,補充執行這幾句語句,重新查詢v$tempfile視圖,有了結果,如下:


         最後我們再回到之前的表,查看XMLTYPE欄位已經正常,問題徹底解決,如下:


關鍵知識點

         sys.xmltype:該TYPE可以通過指令碼重建,如果一旦失效,會導致所有XMLTYPE內容失效。另外暫存資料表同樣影響XMLTYPE對象的使用。


申明:原創,轉帖請註明出處

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.