ORACLE表空間檔案達到滿值

2022-09-02 08:57:11 字數 2195 閱讀 5575

該篇文章大部分就抄錄網上部落格,具體出處已忘,但是實測可以解決該問題

運算元據庫出現錯誤,ora-00604: 8192

由於oracle的rowid使用22位來代表資料塊號,因此oracle表空間資料檔案每個資料檔案最多只能包含2^22個資料塊。

也因此資料庫表空間的資料檔案不是無限增長的,例如:

在資料塊為8k的情況下,單個資料檔案的最大容量為8k*2^22 = 32g

同理,資料塊為2k,資料檔案最大約8g

資料塊為32,資料檔案最大約16*8g

故若達到這個最大容量之後,則即便是設定了自增長,也不是無限自增長,此時則需要為這個表空間新增資料檔案

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)"

當表空間檔案本身較小時,可以選擇擴大表空間檔案的大小,sql語句:

alter

database datafile '

d:\oracle\product\oradata\test\users01.dbf

' resize 50m;

首先選擇設定自增長,sql語句:

alter

database datafile '

' autoextend on

next 400m maxsize unlimited;

在自增長失靈了之後,需要增加資料檔案,sql語句:

alter tablespace 表空間名 add datafile 『資料檔案存放的路徑』 size 資料檔案大小m autoextend on

next 每次自增長大小m maxsize unlimited;

示例:

alter tablespace user

add datafile '

' size 400m autoextend off

有時表空間檔案新增錯誤,需要刪除重新新增,sql語句:

alter tablespace webs_tablespace drop datafile '

f:\temp\users02.dbf

';

Oracle誤刪表空間檔案

oracle誤刪表空間檔案 網上給的說法是 sqlplus as sysdba 以dba身份登陸資料庫 shutdown immediate 關閉資料庫 startup mount 開啟控制檔案 alter database open 重啟資料庫到mount狀態,然後drop掉誤刪除的檔案,再開啟資...

oracle獲取表空間檔案大小

oracle通過查詢dba segments表獲取表空間檔案資訊,包括表空間名稱,大小等 select tablespace name,sum max size sum bytes from dba segments group by tablespace name max size和bytes的單...

Oracle收縮表空間檔案並去除多餘檔案關聯

在平時的工作中,有時候把資料庫的資料部分刪除掉 比如測試庫不需要太多資料 但是刪除資料之後,表空間並沒有自動收縮,還是會占用很多的硬碟空間。下文幫助大家解決這個困擾。下文中的 資料庫使用者名稱 用 dbname代替 密碼用 dbpass 代替 檔案路徑用 filesource代替 表空間名用 tab...