您好,登錄后才能下訂單哦!
背景:表空間已經設置自動增長,但達到一定大小后仍會報ORA-01653。
解決過程:
查閱相關資料,多數只給出了解決辦法,但這個解決辦法經過驗證也是臨時了,到了一定大小仍舊會報錯,到時只能再次采取同樣辦法進行操作。
通過幾臺機器的觀察發現,報出該錯誤時,數據表文件的大小是一致的32G。因此判斷,某種原因導致了該限制。于是進行相關搜索,最終找到了答案,但是,對于這一問題描述,有2個說法:1、windows系統下,單文件有32G的限制,但該說法我沒有查到有力的支持證據,即便有其他人提到該說法,但并沒有給出具體原因,第二個說法是oracle maxsize的問題。個人認為,第二個說法是對的。
導致該問題的原因:
創建數據庫時,數據庫塊大小使用了默認的8kb,在oracle中表文件的容量DB_BLOCK_SIZE的關系是 maxsize=DB_BLOCK_SIZE×4194304;4194304=4G。結果剛好是32G,也就是說,數據塊大小在8kb時,單文件的最大尺寸是32G,由此,導致該問題的原因找到了。下面給出,各種塊大小下,文件大小的限制。
4k:16384M
8K:32768M
16k:65536M
32K:131072M
64k:262144M
解決辦法:
1、增加數據文件:alter tablespace add datafile '/XX/XXX/XXX/XXx.dbf'size XXM,AUTOEXTEND ON NEXT xM MAXSIZE xxxM;該辦法可臨時解決該問題。
2、使用大文件。oracle10g之后支持大文件。但是大文件只有一個數據文件,創建后不能通過增加數據文件的方式擴展,其他特性請自行查閱資料。
3、數據庫重建,EXP導出數據,重建數據庫,安裝時選擇合適的數據塊大小。
總結
創建數據庫前要需要做好規劃,對數據文件的規模要有一個預估,否則可能會帶來意想不到的后果,另外對Oracle學習需要系統化,以盡量避免該類故障的發生。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。