Oracle Database是甲骨文公司的一款關系數據庫管理系統。它是在數據庫領域一直處于領先地位的產品,系統可移植性好、功能強,它是一種高效率、可靠性好、適應高吞吐量的數據庫解決系統。在平時的學習或工作中,常接觸這款軟件的朋友會發現有的時候數據庫空間顯示滿了,導致管理軟件不效能出現問題或者甚至不能使用,怎么才能解決這個問題呢?今天小編就為大家帶來了處理這個問題的方法。


大小:2 GB版本:官方版環境:WinXP, Win7, WinAll
1、查詢用戶對應的表空間,我們可以看到針對不同的數據庫用戶Oracle。
select username, default_tablespace, temporary_tablespace
from dba_users;

2、查詢用戶的對應的數據文件,以及數據文件大小。
select tablespace_name, file_id, file_name,
round(bytes/(1024*1024),0) total_space
from dba_data_files
order by tablespace_name;

3、根據第一二個步驟,用戶對應的表空間,以及表空間的大小,可以在通過下述語句查看目前使用百分比,如果所用空間不再下述查詢范圍內,則證明此空間已經滿了,沒有剩余量的空間在下面的SQL中沒有展示,我們可以看到有一個空間已經到了95%
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 ;

4、此時我們執行空間擴增語句。把剛才使用率95%空間從1800M擴增到3000M
alter database datafile '/u2/oracle/PLM_SD_data' resize 3000m

5、此時在執行空間使用率查詢語句得出如下的結果,可以看到空間擴增成功。

6、最后我們在通過SQL語句查詢一下空間是不是變成了3000M。為了防止空間不夠,導致異常,還可以設置空間自動延展。但是不太建議使用此功能,有可能會導致空間的無限蔓延。

以上就是小編解決數據庫空間滿了的方法,有需要的朋友快來試一試吧!
PS:一定要用SYS用戶登錄才可以使用上述的語句。
新聞熱點
疑難解答