資料庫表空間滿了,資料無法寫入排查步驟

2021-10-17 20:48:29 字數 2176 閱讀 1452

資料庫表空間滿了,資料無法寫入排查步驟

最近遇到乙個問題,我們資料庫滿了,無法寫入資料。

第一步:查詢表空間使用情況

select a.tablespace_name "表空間名"

,total "表空間大小"

,free "表空間剩餘大小"

,(total - free)

"表空間使用大小"

,total /

(1024

*1024

*1024

)"表空間大小(g)"

,free /

(1024

*1024

*1024

)"表空間剩餘大小(g)"

,(total - free)/(

1024

*1024

*1024

)"表空間使用大小(g)"

,round

((total - free)

/ total,4)

*100

"使用率 %"

from (

select tablespace_name,

sum(bytes) free

from dba_free_space

group

by tablespace_name) a,

(select tablespace_name,

sum(bytes) total

from dba_data_files

group

by tablespace_name) b

where a.tablespace_name = b.tablespace_name ;

查詢發現users表滿了

第二步,檢視user表空間下面有哪些表及其表資料的大小

select table_name,tablespace_name ,num_rows	 from dba_tables where tablespace_name=

'users'

;

第三步,檢視哪些表資料可以清理的,使用

truncate table drop storage

purge dba_recyclebin;–清空所有使用者的**站

補充如果不需要審計表可以清理關閉

truncate掉aud$表並關閉審計功能:

sql> alter system set audit_trail=none scope=spfile;

sql>shutdown immediate;

sql>startup;

第四步,如果資料庫不能清理,則考慮擴充套件表空間大小:

查詢表空間大小及檔案位置,我們發現users表空間不足,需要給他增加檔案

第五步,增加表空間大小,給users表空間增加乙個10g的檔案,並且能夠自動擴充套件到30g

autoextend on next 10m maxsize 30g;

第六步,查詢增加後的表空間檔案

及檔案大小

select tablespace_name,

file_id,

file_name,

round(bytes / (1024 * 1024), 0) total_space

from sys.dba_data_files

order by tablespace_name

我們發現這裡面多了乙個users02的檔案,我們再次查詢下表空間大小,發現占用空間由原來的99.86%降到75%左右,系統優化完成。

ORACLE資料庫空間滿了如何進行空間擴充套件

1 查詢使用者對應的表空間,我們可以看到針對不同的資料庫使用者oracle 2 查詢使用者的對應的資料檔案,以及資料檔案大小 3 根據1.2 使用者對應的表空間,以及表空間的大小,可以在通過下述語句檢視目前使用百分比,如果所用空間不再下述查詢範圍內,則證明此空間已經滿了,沒有剩餘量的空間在下面的sq...

資料庫 oracle資料庫建立表空間

上學的時候就裝過兩次oracle資料庫,但是一直沒有學會使用,缺少的是建立使用者表空間。臨時表空間 資料表空間 給使用者授權 sid 表空間 使用者 表 oracle11g伺服器安裝詳細步驟 教程 源文件 1 sqlplus登入 as sysdba2 建立臨時表空間 createtemporary ...

資料庫縮小表空間

案例環境 今天啟動應用程式,程式報錯如下 exceptionmessage ora 01653 表 hbxnb cs.bz29 無法通過 1024 在表空間 users 中 擴充套件 ora 06512 在 hbxnb cs.dbms context line 40 ora 01653 表 hbxn...