Oracle解決Ora-01653無法擴充資料表空間____Oracle

來源:互聯網
上載者:User

問題說明:
在產生大批量資料進行效能測試時,先通過預存程序產生當前表資料100w條,然後在通過另一個預存程序,以當前表資料為基礎,產生過去兩個月的資料—-也就是說,曆史表包含60天的資料,每天的資料量為100w條,如果順利產生則曆史表會有6000w條資料。
當前表資料產生完成後,執行產生曆史表資料的預存程序遇到“ORA-01653: unable to extend table”的錯誤。

問題解決:
出現這種資料表空間不足的問題一般有兩種情況:
1、資料表空間確實不夠用了,已經達到了自動擴充的上限;
2、資料表空間的自動擴充功能沒有開。

先針對可能性1查看錶空間使用方式
SELECT UPPER(F.TABLESPACE_NAME) “資料表空間名”,
D.TOT_GROOTTE_MB “資料表空間大小(M)”,
D.TOT_GROOTTE_MB - F.TOTAL_BYTES “已使用空間(M)”,
TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),’990.99’) “使用比”,
F.TOTAL_BYTES “空閑空間(M)”,
F.MAX_BYTES “最大塊(M)”
FROM (SELECT TABLESPACE_NAME,
ROUND(SUM(BYTES) / (1024 * 1024), 2) TOTAL_BYTES,
ROUND(MAX(BYTES) / (1024 * 1024), 2) MAX_BYTES
FROM SYS.DBA_FREE_SPACE
GROUP BY TABLESPACE_NAME) F,
(SELECT DD.TABLESPACE_NAME,
ROUND(SUM(DD.BYTES) / (1024 * 1024), 2) TOT_GROOTTE_MB
FROM SYS.DBA_DATA_FILES DD
GROUP BY DD.TABLESPACE_NAME) D
WHERE D.TABLESPACE_NAME = F.TABLESPACE_NAME
ORDER BY 4 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;


通過上表我們可以看出,資料表空間***_TRD的資料表空間的空間使用率已經達到99.6%,只剩下133.88M可用,而其索引空間 ***_TRD_IDX的空間使用率更是達到了99.97%,只剩下4.94M可用。

再查看錶空間是否開啟了自動擴充的功能
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。

對於具體的項目,需要根據資料表空間中各個表的實際情況來確定具體那種方法最優,在此不做進一步闡述

Alibaba Cloud Hot Products

Elastic Compute Service (ECS) Dedicated Host (DDH) ApsaraDB RDS for MySQL (RDS) ApsaraDB for PolarDB(PolarDB) AnalyticDB for PostgreSQL (ADB for PG)
AnalyticDB for MySQL(ADB for MySQL) Data Transmission Service (DTS) Server Load Balancer (SLB) Global Accelerator (GA) Cloud Enterprise Network (CEN)
Object Storage Service (OSS) Content Delivery Network (CDN) Short Message Service (SMS) Container Service for Kubernetes (ACK) Data Lake Analytics (DLA)

ApsaraDB for Redis (Redis)

ApsaraDB for MongoDB (MongoDB) NAT Gateway VPN Gateway Cloud Firewall
Anti-DDoS Web Application Firewall (WAF) Log Service DataWorks MaxCompute
Elastic MapReduce (EMR) Elasticsearch

Alibaba Cloud Free Trail

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

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.