Oracle解決ora-01653 無法通過1024擴展


1.oracle查詢表空間是否已滿

select dbf.tablespace_name,
dbf.totalspace "總量(M)",
dbf.totalblocks as 總塊數,
dfs.freespace "剩余總量(M)",
dfs.freeblocks "剩余塊數",
(dfs.freespace / dbf.totalspace) * 100 "空閑比例"
from (select t.tablespace_name,
sum(t.bytes) / 1024 / 1024 totalspace,
sum(t.blocks) totalblocks
from dba_data_files t
group by t.tablespace_name) dbf,
(select tt.tablespace_name,
sum(tt.bytes) / 1024 / 1024 freespace,
sum(tt.blocks) freeblocks
from dba_free_space tt
group by tt.tablespace_name) dfs
where trim(dbf.tablespace_name) = trim(dfs.tablespace_name);

或者使用

SELECT Total.name "Tablespace Name",
Free_space,
(total_space - Free_space) Used_space,
total_space
FROM (select tablespace_name, sum(bytes / 1024 / 1024) Free_Space
from sys.dba_free_space
group by tablespace_name) Free,
(select b.name, sum(bytes / 1024 / 1024) TOTAL_SPACE
from sys.v_$datafile a, sys.v_$tablespace B
where a.ts# = b.ts#
group by b.name) Total
WHERE Free.Tablespace_name = Total.name;

 

2.再查看表空間是否開啟了自動擴展的功能 

SELECT T.TABLESPACE_NAME,
D.FILE_NAME,
D.AUTOEXTENSIBLE,
D.BYTES,
D.MAXBYTES,
D.STATUS
FROM DBA_TABLESPACES T, DBA_DATA_FILES D
WHERE T.TABLESPACE_NAME = D.TABLESPACE_NAME
ORDER BY TABLESPACE_NAME, FILE_NAME;

從上表可以看出,所有的表空間都開啟了自動擴展的功能,而且狀態都是available的;

綜合上述檢查結果,可斷定遇到的問題是因為可能性1—表空間不足導致。解決辦法也就是擴大表空間

擴大表空間的四種方法: 
1、增加數據文件 
ALTER TABLESPACE ***_TRD ADD DATAFILE 
‘D:\Oracle\PRODUCT\10.2.0\ORADATA\DBFILE\TRD_2.DBF’ SIZE 1024M;

2、增加數據文件並允許自動增長 
ALTER TABLESPACE ***_TRD ADD DATAFILE 
‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBFILE\TRD_2.DBF’ SIZE 1024M AUTOEXTEND ON NEXT 8M MAXSIZE 10240M;

3、允許已存在的數據文件自動增長 
ALTER DATABASE DATAFILE ‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBFILE\TRD.DBF’ 
AUTOEXTEND ON NEXT 8M MAXSIZE 10240M;

4、手工改變已存在數據文件的大小 
ALTER DATABASE DATAFILE ‘D:\ORACLE\PRODUCT\10.2.0\ORADATA\DBFILE\TRD.DBF’ 
RESIZE 10240M;

實際解決過程中,我們使用的是方法2。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM