【后端】解決ORACLE表空間問題
項目中經常遇到ORACLE表空間不足導致系統服務無法啟動問題.
問題描述:ora-01653無法通過1024在表空間(KTMIS_KM)中擴展
解決方案:
第一步-》oracle查詢表空間是否已滿
SELECT a.tablespace_name "表空間名",
a.bytes / 1024 / 1024 "表空間大小(M)",
(a.bytes - b.bytes) / 1024 / 1024 "已使用空間(M)",
b.bytes / 1024 / 1024 "空閑空間(M)",
round(((a.bytes - b.bytes) / a.bytes) * 100, 2) "使用比"
FROM (SELECT tablespace_name, sum(bytes) bytes
FROM dba_data_files
GROUP BY tablespace_name) a,
(SELECT tablespace_name, sum(bytes) bytes, max(bytes) largest
FROM dba_free_space
GROUP BY tablespace_name) b
WHERE a.tablespace_name = b.tablespace_name
ORDER BY ((a.bytes - b.bytes) / a.bytes) DESC
查詢結果-》
第二步-》查詢表空間是否設置自增長,如果沒有設置自增,最簡單的方法就是設置文件自增,來解決表空間不足問題。
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;
查詢結果-》
第三步-》解決上訴問題共有4種方式
1、增加數據文件
ALTER TABLESPACE KTMIS_KM ADD datafile 'E:\APP\ADMINISTRATOR\TMIS\KTMIS_KM2.DBF' SIZE 2048M;
2、增加數據文件并允許自動增長
ALTER TABLESPACE KTMIS_KM ADD datafile
'E:\APP\ADMINISTRATOR\TMIS\KTMIS_KM2.DBF' SIZE 2048M AUTOEXTEND ON NEXT 8M MAXSIZE 10240M;
3、允許已存在的數據文件自動增長(未設置自增的情況,這種有個弊端就是單個文件可能會太大)
ALTER DATABASE DATAFILE 'E:\APP\ADMINISTRATOR\TMIS\KTMIS_KM.DBF' AUTOEXTEND ON NEXT 8M MAXSIZE 10240M;
4、手工改變已存在數據文件的大小
ALTER DATABASE DATAFILE 'E:\APP\ADMINISTRATOR\TMIS\KTMIS_KM.DBF' RESIZE 10240M;


浙公網安備 33010602011771號