Oracle
maxbytes 和字節之間的不一致。甲骨文
詢問:
Select ROUND (SUM (d.bytes) / (1024 * 1024 * 1024)) AS size1, ROUND (SUM (d.maxbytes) / (1024 * 1024 * 1024)) AS size2 From dba_data_files d where tablespace_name = 'TABLESPACE_NAME'
輸出:
尺寸1:70,尺寸2:64
如您所見,特定表空間的數據文件允許的最大字節數僅為 64GB,但它已以某種方式擴展到 70GB!
場景:在給定的時間點,表空間被完全填滿(64GB),我看到在我的一次例行檢查中使用了 100%。所以我繼續並暫時截斷了一些不需要的表以釋放一些空間。我在我的任何程序中都沒有遇到
cannot extend error
任何地方(儘管它可能已經發生),但讓我煩惱的是表空間的總大小剛剛從應該停止的 64GB(最大)增加到 70(GB) .請告知它是如何發生的或我錯過的任何選擇!額外的 6 GB 儲存在哪裡。
提前致謝。
編輯:
輸出:
select bytes,maxbytes,autoextensible from dba_data_files where tablespace_name = 'TABLESPACE_NAME'; 15728640000 4294967296 YES 30303846400 32212254720 YES 28626124800 32212254720 YES
MAXBYTES
對於不可自動擴展但BYTES
大於 0 的數據文件,為 0。使用此:Select ROUND (SUM (d.bytes) / (1024 * 1024 * 1024)) AS size1, ROUND (SUM (decode(d.maxbytes, 0, d.bytes, d.maxbytes)) / (1024 * 1024 * 1024)) AS size2 From dba_data_files d where tablespace_name = 'TABLESPACE_NAME';
但是可以手動調整上面的數據文件的大小
maxbytes
。SQL> select file_id, bytes, maxbytes from dba_data_files; FILE_ID BYTES MAXBYTES ---------- ---------- ---------- 1 954204160 3.4360E+10 3 1142947840 3.4360E+10 5 608174080 3.4360E+10 7 5242880 10485760 SQL> alter database datafile 7 resize 20M; Database altered. SQL> select file_id, bytes, maxbytes from dba_data_files; FILE_ID BYTES MAXBYTES ---------- ---------- ---------- 1 954204160 3.4360E+10 3 1142947840 3.4360E+10 5 608174080 3.4360E+10 7 20971520 10485760
我更新了查詢:
Select ROUND (SUM (d.bytes) / (1024 * 1024 * 1024)) AS size1, ROUND (SUM (greates(d.bytes, d.maxbytes)) / (1024 * 1024 * 1024)) AS size2 From dba_data_files d where tablespace_name = 'TABLESPACE_NAME';