在ORACLE数据库中,所有数据从逻辑结构上看都是存放在表空间当中,当然表空间下还有段、区、块等逻辑结构。从物理结构上看是放在数据文件中。一个表空间可由多个数据文件组成。系统中默认创建的几个表空间:SYSTEM,SYSAUX,USERS,UNDOTBS1,EXAMPLE,TEMP还有用户自己建立的表空间,可以对其进行分成三类

  永久表空间                存放永久性数据,如表,索引等。

  临时表空间                不能存放永久性对象,用于保存数据库排序,分组时产生的临时数据。

  UNDO表空间             保存数据修改前的镜象。

我们可以通过下面几个系统视图查看基本信息:

--包含数据库中所有表空间的描述信息

SELECT * FROM DBA_TABLESPACES

--包含当前用户的表空间的描叙信息

SELECT * FROM USER_TABLESPACES

--包含从控制文件中获取的表空间名称和编号信息

SELECT * FROM V$TABLESPACE;

查看数据文件

--包含数据文件以及所属的表空间的描述信息

SELECT * FROM DBA_DATA_FILES

--包含临时数据文件以及所属的表空间的描述信息

SELECT * FROM DBA_TEMP_FILES

--包含从控制文件中获取的数据文件的基本信息,包括它所属的表空间名称、编号等

SELECT * FROM V$DATAFILE

--包含所有临时数据文件的基本信息

SELECT * FROM V$TEMPFILE

可以使用以下脚本查看数据库表空间使用情况:

SQL1:

SELECT DBF.TABLESPACE_NAME,
       DBF.TOTALSPACE "总量(M)",
       DBF.TOTALBLOCKS AS 总块数,
       DBF.TOTALSPACE-DFS.FREESPACE "使用量(M)",
       DBF.TOTALBLOCKS-DFS.FREEBLOCKS AS 使用块数,      
       DFS.FREESPACE "剩余总量(M)",
       DFS.FREEBLOCKS "剩余块数",
       (DFS.FREESPACE / DBF.TOTALSPACE) * 100 "空闲比例"
  FROM (SELECT T.TABLESPACE_NAME,
               SUM(T.BYTES) / 1024 / 1024 TOTALSPACE,
               SUM(T.BLOCKS) TOTALBLOCKS
          FROM DBA_DATA_FILES T
         GROUP BY T.TABLESPACE_NAME) DBF,
       (SELECT TT.TABLESPACE_NAME,
               SUM(TT.BYTES) / 1024 / 1024 FREESPACE,
               SUM(TT.BLOCKS) FREEBLOCKS
          FROM DBA_FREE_SPACE TT
         GROUP BY TT.TABLESPACE_NAME) DFS
 WHERE TRIM(DBF.TABLESPACE_NAME) = TRIM(DFS.TABLESPACE_NAME);
 SQL2:
SELECT A.TABLESPACE_NAME,
       A.BYTES/ 1024 / 1024 TOTAL,
       B.BYTES/ 1024 / 1024 USED,
       C.BYTES/ 1024 / 1024 FREE,
       (B.BYTES * 100) / A.BYTES "% USED ",
       (C.BYTES * 100) / A.BYTES "% FREE "
  FROM SYS.SM$TS_AVAIL A, SYS.SM$TS_USED B, SYS.SM$TS_FREE C
 WHERE A.TABLESPACE_NAME = B.TABLESPACE_NAME
   AND A.TABLESPACE_NAME = C.TABLESPACE_NAME;
 SQL3:
SELECT Total.name "Tablespace Name",
       Free_space,
       (total_space - Free_space) Used_space,
       total_space
  FROM (select tablespace_name, sum(bytes / 1024 / 1024) Free_Space
          from sys.dba_free_space
         group by tablespace_name) Free,
       (select b.name, sum(bytes / 1024 / 1024) TOTAL_SPACE
          from sys.v_$datafile a, sys.v_$tablespace B
         where a.ts# = b.ts#
         group by b.name) Total
 WHERE Free.Tablespace_name = Total.name;

如果发现表空间快满了,则需要增加相应的表空间。增加表空间可以按照以下步骤:

1.此表空间是大文件表空间

oracle引入了大文件表空间的概念,正常表空间的数据文件可以有很多个,每个大小最大为32G,而大文件表空间的数据文件只有一个,所以如果该表空间是大文件表空间的话,则无法增加数据文件,只能增加文件大小。

  1. select bigfile from dba_tablespaces where tablespace_name='表空间名称'-----------------返回 YES 则是大文件表空间,返回NO,就是普通的表空间(小文件的)。
    一般来说大数据文件表空间都是自动扩展的,不需要手动增加大小,
    select * from dba_data_files------------里面有个autoextensible 字段,表示是否自动扩展;maxblocks  表示每次自动扩展多大
  1. 如若不是,则需要增加数据文件大小来增加表空间
    先查看表空间的名字及文件所在位置:
select tablespace_name, file_id, file_name,
round(bytes/(1024*1024),0) total_space
from dba_data_files
order by tablespace_name
  增大所需表空间大小:
alter database datafile '表空间位置'resize 新的尺寸
例如:
alter database datafile '\oracle\oradata\test.dbf' resize 4000m
2.此表空间是普通文件表空间
此类型的表空间增加有2种方法,一种是为表空间增加数据文件,另一种方法是增加表空间原有数据文件尺寸。
两种方法,一种是为表空间增加数据文件:

代码如下:
alter tablespace users add datafile '/opt/oracle/oradata/esop/test02.dbf' size 200M; 

另一种方法是增加表空间原有数据文件尺寸:

代码如下:
alter database datafile '/opt/oracle/oradata/esop/test01.dbf' resize 200M; 
一般情况下,表空间增长都设置为自动,可以用参数设置

增加表空间的方式增加:

alter tablespace 表空间名称 add datafile 表空间存放路径  size 表空间大小 autoextend on next 增长的大小 maxsize 空间最大值(如果不限制空间最大值就用unlimited)

修改表空间的方式增加:

alter database datafile 表空间文件路径 AUTOEXTEND(自动扩展) ON NEXT 表空间满后增加的大小

增加完后可以再用上述的脚本再进行查询可以发现表空间大小的改变!

  1.  

Oracle 查看表空间大小及其扩展的更多相关文章

  1. Oracle查看表空间大小

    遇到报错 java.sql.SQLException: ORA-01653: 表 MESHIS.HIS_RET_LOT_FQC 无法通过 8 (在表空间 MESHIS_DATA_TBS 中) 扩展 a ...

  2. Oracle查看表空间大小和使用率

    1. 全部表空间的大小select tablespace_name, sum(bytes)/1024/1024 from dba_data_files group by tablespace_name ...

  3. 查看Oracle数据库表空间大小(空闲、已使用),是否要增加表空间的数据文件

    查看Oracle数据库表空间大小(空闲.已使用),是否要增加表空间的数据文件 1.查看表空间已经使用的百分比 Sql代码 select a.tablespace_name,a.bytes/1024/1 ...

  4. [转载]Oracle修改表空间大小

    Oracle修改表空间大小 使用Oracle10g建立数据库后,向数据库中导入了部分数据,第二天继续向数据库中导入数据表时发生错误: 查了很多资料发现原来是Oracle表空间限制,导致无法继续导入数据 ...

  5. Oracle查看表空间及修改数据文件大小

    Oracle查看表空间及修改数据文件大小 第一步:查看所有表空间及表空间大小: select tablespace_name ,sum(bytes) / 1024 / 1024 as MB from ...

  6. 查看Oracle数据库表空间大小,是否需要增加表空间的数据文件

    在数据库管理中,磁盘空间不足是DBA都会遇到的问题,问题比较常见. --1查看表空间已经使用的百分比 Sql代码 select a.tablespace_name,a.bytes/1024/1024 ...

  7. Oracle 查看表空间的大小及使用情况sql语句

    --1.查看表空间的名称及大小 )), ) ts_size FROM dba_tablespaces t, dba_data_files d WHERE t.tablespace_name = d.t ...

  8. oracle查看表空间及大小

    --1.查看表空间的名称及大小 SELECT t.tablespace_name, round(SUM(bytes / (1024 * 1024)), 0) ts_size FROM dba_tabl ...

  9. oracle查看表空间的大小及使用情况sql语句

    --------------------------tablespace------------------------------------------------ 1.//查看表空间的名称及大小 ...

随机推荐

  1. Mongodb查询的用法,备注防止忘记

    最近在用这个东西,为防止忘记,记下来. 集合简单查询方法 mongodb语法:db.collection.find()  //collection就是集合的名称,这个可以自己进行创建. 对比sql语句 ...

  2. POJ 2409 Let it Bead(polay计数)

    题目链接:http://poj.org/problem?id=2409 题意:给出一个长度为m的项链,每个珠子可以用n种颜色涂色.翻转和旋转后相同的算作一种.有多少种不同的项链? 思路: (1) 对于 ...

  3. useradd和adduser的区别

    1. 在root权限下,useradd只是创建了一个用户名,如 (useradd  +用户名 ),它并没有在/home目录下创建同名文件夹,也没有创建密码,因此利用这个用户登录系统,是登录不了的,为了 ...

  4. 利用Java自带的MD5加密java.security.MessageDigest;

    MD5加密算法,即"Message-Digest Algorithm 5(信息-摘要算法)",它由MD2.MD3.MD4发展而来的一种单向函数算法(也就是HASH算法),它是国际著 ...

  5. java中List的排序功能的实现

    今天在工作的时候,遇到了List排序的问题,所以总结了一下,与大家分享.Collections.sort排序的时候,用到了Comparator接口下面的compare()方法.下面的小例子中,还用到了 ...

  6. 一台电脑同时运行多个tomcat配置方法

    当第一个tomcat启动后,后面tomcat的server.xml中的端口不管怎么改,仍然会报端口冲突.后来在dos下运行才发现所有的tomcat都会去找CATALINA_HOME和CATALINA_ ...

  7. UVa 10561 (SG函数 递推) Treblecross

    如果已经有三个相邻的X,则先手已经输了. 如果有两个相邻的X或者两个X相隔一个.,那么先手一定胜. 除去上面两种情况,每个X周围两个格子不能再放X了,因为放完之后,对手下一轮再放一个就输了. 最后当“ ...

  8. HDU 1280 前m大的数【哈希入门】

    题意:中文的题目= =将各种组合可能得到的和作为下标,然后因为不同组合得到的和可能是一样的, 所以再用一个数组num[]数组,就可以将相同的和都记录下来 #include<iostream> ...

  9. 8款PHP调试工具

    Web 开发并不是一项轻松的任务,有超级多服务端脚本语言提供给开发者,但是当前 PHP 因为具有额外的一些强大的功能而越来越流行.PHP 是最强大的服务端脚本语言之一,同时也是 web 开发者和设计者 ...

  10. 漫谈 polling 和 Websocket

    Http被设计成了一个单向的通信的协议,即客户端发起一个request,然后服务器回应一个response.这让服务器很为恼火:我特么才是老大,我居然不能给小弟发消息... 轮询 老大发火了,小弟们自 ...