oracle資料庫報錯ora-01653資料表空間擴充失敗解決方案

來源:互聯網
上載者:User

標籤:說明   擷取   資料表空間   code   rom   擴充      span   地方   

1)ora-01653錯誤:

 可以看到有兩張表的insert受到了影響,都是在USERS資料表空間裡。用以下SQL查看錶空間使用方式:

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) bytesFROM 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  ) bWHERE a.tablespace_name = b.tablespace_nameORDER BY ((a.bytes - b.bytes) / a.bytes) DESC;

可以看到USERS資料表空間已經使用了99.99%!馬上就100%,再也沒有地方儲存資料了!正式環境啊!情況危急!

 2)解決辦法
--擷取資料檔案dbf路徑select tablespace_name, file_id,file_name, round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name;

以下兩種方案都需要擷取/home目錄下實際物理大小,我登入到linux資料庫伺服器後,使用du -sh命令查看了/home目錄大小為250GB。

第一種解決方案:

可以看到USERS資料表空間總共有3個dbf(此時我已經增加了04.dbf),複製其中一個dbf路徑 /home/oracle/oradata/users01.dbf,覆蓋下面的datafile參數:

--新增加一個dbf檔案,指定該dbf檔案大小為32GB左右,並使其每次自動擴充1GB,並且沒有最大限制alter tablespace users add datafile ‘/home/oracle/oradata/users04.dbf‘ size 32760m autoextend on next 1024m maxsize unlimited; --segment space management auto extent management local; 據說可以串連上一句一起執行(把上一句分號去掉即可),沒執行,不知道執行效果,謹慎期間,慎用。
第二種解決方案:
--把原有的dbf資料檔案大小調整(擴大)alter database  datafile ‘/home/oracle/oradata/users01.dbf‘ resize  61440M; --沒試過,不知道效果

我用的是第一種解決方案,第二種沒試過,不知道效果如何。

3)解決後效果

我用的第一種解決方案,增加了04.dbf,再次使用SQL查看錶空間使用方式:

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) bytesFROM 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  ) bWHERE a.tablespace_name = b.tablespace_nameORDER BY ((a.bytes - b.bytes) / a.bytes) DESC;

使用比已經從99.99%降低到69.42%,說明效果明顯,方案可用。

再去查看/home,使用du -sh命令查看了/home目錄大小為282GB。原來增加一個dbf檔案會使得/home目錄實際也增加32GB大小。

4)注意事項及所有用到的SQL
在上面的第一種解決方案裡,32760m 約等於 32GB,根據最大塊來算的,塊計算SQL:
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 1;

其它SQL語句完整貼上來如下:

---查詢資料檔案以及資料檔案大小select tablespace_name, file_id, file_name,round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name;select username, default_tablespace, temporary_tablespace from dba_users;
--擷取資料檔案路徑select tablespace_name, file_id,file_name, round(bytes/(1024*1024),0) total_space from dba_data_files order by tablespace_name;--讓資料檔案自動擴充alter tablespace users add datafile ‘/home/oracle/oradata/users04.dbf‘ size 32760m autoextend on next 1024m maxsize unlimited; --segment space management auto extent management local; 據說可以串連上一句一起執行(把上一句分號去掉即可),沒執行,不知道執行效果,謹慎期間,慎用。--把資料檔案大小調整alter database  datafile ‘/home/oracle/oradata/users01.dbf‘  resize  61440M; --沒試過,不知道效果

 

oracle資料庫報錯ora-01653資料表空間擴充失敗解決方案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.