資料庫表空間滿了,資料無法寫入排查步驟
最近遇到乙個問題,我們資料庫滿了,無法寫入資料。
第一步:查詢表空間使用情況
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...