- --查看表空间的占用量
- SELECT AA.Tablespace_Name,
- Sumb AS Totle_MB,
- Suma AS Free_MB,
- (Sumb - Suma) AS Used_MB,
- ROUND((Sumb - Suma) / Sumb * 100, 2) AS Used_Percent
- FROM (SELECT DFS.Tablespace_Name,
- ROUND((SUM(DFS.Bytes) / 1024 / 1024), 2) AS Suma
- FROM DBA_FREE_SPACE DFS
- GROUP BY DFS.Tablespace_Name) AA,
- (SELECT DDF.Tablespace_Name,
- ROUND((SUM(DDF.Bytes) / 1024 / 1024), 2) AS Sumb
- FROM DBA_DATA_FILES DDF
- GROUP BY DDF.Tablespace_Name) BB
- WHERE AA.Tablespace_Name = BB.Tablespace_Name
- ORDER BY Used_Percent DESC;

查询数据文件dbf的位置
- select file_name,Tablespace_Name FROM DBA_DATA_FILES DDF
- group by file_name,Tablespace_Name

客户的业务无法正常使用,最终定位是表空间满的问题。
使用上面的查询语句,发现报错的XXA表空间没在里面,一直很疑惑。但在XXA表空间下新建表会报错:
ORA-01658: 无法为表空间 XXA中的段创建 INITIAL 区
虽然未查询到表空间使用率情况,查询dbf文件位置是可以看到该表空间dbf文件的,直接强制扩展表空间的存储:采用的是方法4
Oracle增加表空间大小的四种方法
Meathod1:给表空间增加数据文件
-
- ALTER TABLESPACE app_data ADD DATAFILE 'D:ORACLEPRODUCT10.2.0ORADATAEDWTESTAPP03.DBF' SIZE 50M;
Meathod2:新增数据文件,并且允许数据文件自动增长
ALTER TABLESPACE app_data ADD DATAFILE 'D:ORACLEPRODUCT10.2.0ORADATAEDWTESTAPP04.DBF' SIZE 50M AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
Meathod3:允许已存在的数据文件自动增长
- --允许表空间数据文件自增长
- ALTER DATABASE DATAFILE 'D:ORACLEPRODUCT10.2.0ORADATAEDWTESTAPP03.DBF' AUTOEXTEND ON
-
- --表空间每次增长5M
- ALTER DATABASE DATAFILE 'D:ORACLEPRODUCT10.2.0ORADATAEDWTESTAPP03.DBF' AUTOEXTEND ON NEXT 5M;
-
- --表空间每次增长5M,最大空间为100M
- ALTER DATABASE DATAFILE 'D:ORACLEPRODUCT10.2.0ORADATAEDWTESTAPP03.DBF' AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
Meathod4:手工改变已存在数据文件的大小
ALTER DATABASE DATAFILE 'D:ORACLEPRODUCT10.2.0ORADATAEDWTESTAPP02.DBF' RESIZE 100M;