測試場景下,使用的oralce遇到表空間的占用超大,可以採用如下的方式進行空間的清理 首先使用sqlplus連接資料庫sqlplus sys/password@orcl as sysdba 之類進行資料庫的連接沒然後進行如下的操作 ##創建表空間對於自己的測試庫和表等最好都建立自己的表空間,以方便清 ...
測試場景下,使用的oralce遇到表空間的占用超大,可以採用如下的方式進行空間的清理
首先使用sqlplus連接資料庫
sqlplus sys/password@orcl as sysdba 之類進行資料庫的連接沒然後進行如下的操作
##創建表空間
對於自己的測試庫和表等最好都建立自己的表空間,以方便清理和刪除
create tablespace abc datafile '/opt/oracle/app/oradata/orcl/users02.dbf' size 1024m autoextend on next 100m maxsize 10240m extent management local; 創建表空間
##查看表空間的情況
oracle查詢表空間文件所在路徑
select * from dba_data_files
通過這個命令可以查看各表空間所在的路徑位置
##temp表空間的重建
+ 新建1個
當資料庫進行索引重建,或者大量數據導入導出時,會使得temp表空間暴增,很可能撐滿數據文件,因為資料庫安裝的時候,temp表空間預設很自由一個數據文件
並且資料庫中單個數據文件最大隻能自增到32G,當超過32G時就不可用了,為了防止此故障發生,在做索引重建或者大量數據導入導出時,需要關註temp表空間
的增長情況,temp表空間過大時,可通過如下方法重建
SQL> create temporary tablespace temp2 tempfile 'C:\oracle\product\10.2.0\oradata\ORCL\temp2.dbf' size 200M autoextend off;
SQL> alter database default temporary tablespace temp2;
SQL> drop tablespace temp;
或者SQL> drop tablespace temp including contents and datafiles cascade constraints(徹底刪除包括操作系統中的臨時表空間的數據文件)
最後在操作系統上把temp的文件刪除,就可以釋放空間。
+ 還原回來
還可以改為原來的temp
SQL> create temporary tablespace temp tempfile 'C:\oracle\product\10.2.0\oradata\ORCL\temp.dbf' size 200M autoextend off;
SQL> alter database default temporary tablespace temp;
SQL> drop tablespace temp2;
最後在操作系統上把temp的文件刪除,就可以釋放空間。
如上就可以把非常大temp表空間清理掉
##system表空間用滿解決
alter database datafile 'C:\oracle\product\10.2.0\oradata\ORCL\system01.dbf' autoextend on;
alter database datafile 'C:\oracle\product\10.2.0\oradata\ORCL\system01.dbf' resize 2096M;
如果出現“ORA-03297: 文件包含在請求的 RESIZE 值以外使用的數據”這個錯誤,調整表空間的大小即可,
完成後即可釋放多餘的表空間