怎么查看表空间 和增加表空间
新手 求助

解决方案 »

  1.   

    查看表空间的名字和所属文件select tablespace_name, file_id, file_name,
    round(bytes/(1024*1024),0) total_space
    from dba_data_files
    order by tablespace_name;1.增加数据文件
    ALTER TABLESPACE game
    ADD DATAFILE '/oracle/oradata /GAME02.dbf' SIZE 1000M;2.手动增加数据文件尺寸
    ALTER DATABASE DATAFILE '/oracle/oradata/GAME.dbf'
    RESIZE 4000M; 
      

  2.   

    select   a.tablespace_name,a.bytes/1024/1024 "Sum MB",(a.bytes-b.bytes)/1024/1024   "used MB",b.bytes/1024/1024 "free MB",round(((a.bytes-b.bytes)/a.bytes)*100,2) "percent_used"  
    from  
    (select tablespace_name,sum(bytes) bytes from dba_data_files group by tablespace_name)   a,  
    (select tablespace_name,sum(bytes) bytes,max(bytes) largest from dba_free_space group by tablespace_name)   b  
    where   a.tablespace_name=b.tablespace_name  
    order   by   ((a.bytes-b.bytes)/a.bytes)   desc “Sum MB”表示表空间所有的数据文件总共在操作系统占用磁盘空间的大小比如:test表空间有2个数据文件,datafile1为300MB,datafile2为400MB,那么test表空间的“Sum MB”就是700MB
    “userd MB”表示表空间已经使用了多少
    “free MB”表示表空间剩余多少
    “percent_user”表示已经使用的百分比
      

  3.   

    增加表空间的步骤:
    1:找出该表空间对应的数据文件及路径
    select * from dba_data_files t  
    where t.tablespace_name = 'ARD' 
    2:增大数据文件
    alter database datafile '全路径的数据文件名称' resize ***M
    3:增加数据文件
    alter tablespace 表空间名称
    add datafile '全路径的数据文件名称' ***M
    注解:Oracle 数据库里查看的表空间尽量让free百分比保持在10%以上,如果低于10%就增加datafile或者resizedatafile,一般数据文件不要超过2G 
      

  4.   

    如果要看表空间的属性,执行语句:select * from dba_tablespaces;
    如果想知道如何创建表空间,语法描述如下:
    CREATE [SMALLFILE|BIGFILE] TABLESPACE tablespace_name
    DATAFILE datefile_clause1 [,datefile_clause2] ……
    [ EXTENT MANAGEMENT LOCAL ]
    [ UNIFORM SIZE nnnn{K|M} ]
    [ AUTOALLOCATE ]
    [ SEGMENT SPACE MANAGEMENT { AUTO|MANUAL }]
    [ BLOCKSIZE nnnn{K|M} ]
    [ ONLINE|OFFLINE ]
    [ LOGGING|NOLOGGING ];
    其中:
    SMALLFILE|BIGFILE -- 小文件|大文件,省略为小文件;
    tablespace_name — 表空间名
    Datafile_Clause — 完整语法如下:
    path\file_nameSIZEnnnn{K|M} REUSE
          [AUTOEXTEND {OFF|ON NEXT nnnn{K|M} {MAXSIZE  nnnn{K|M}|UNLIMITED }}]
        其中:
          path\file_name — 数据文件的存储路径和文件名;
          SIZE nnnn {K|M} -- 文件大小;
          REUSE — 如果File 已经存在,用原文件新Size,原来无File,则忽略REUSE;
          AUTOEXTEND — 文件空间自动增加,缺省等于AUTOEXTEND OFF;
          ON NEXTnnnn{K|M} — 文件空间自动增加大小;
          MAXSIXE nnnn{K|M} — 最大空间;
          UNLIMITED — 无限制。
    EXTENT MANAGEMENT LOCAL — 代表本地化表空间,可以缺省;
    UNIFORM -- 区大小相同,默认为1M
    AUTOALLOCATE — 区大小系统动态自动分配。缺省等于AUTOALLOCATE。
    SEGMENT SPACE MANAGEMENT — 段空间分配方式;
    BLOCKSIZE — 创建非标准块表空间。如果创建16K块标准的表空间,则需要设置参数
    DB_16K_BLOCK_SIZE=16384。缺省时块大小按参数DB_BLOCK_SIZE创建;
    ONLINE|OFFLINE — 表空间联机/脱机。缺省等于ONLINE;LOGGING|NOLOGGING — 创建日志/不创建日志。缺省等于LOGGING。扩展表空间 
    首先查看表空间的名字和所属文件 select tablespace_name, file_id, file_name, 
    round(bytes/(1024*1024),0) total_space 
    from dba_data_files 
    order by tablespace_name; 1.增加数据文件 
    ALTER TABLESPACE game 
    ADD DATAFILE '/oracle/oradata/db/GAME02.dbf' SIZE 1000M; 2.手动增加数据文件尺寸 
    ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf' 
    RESIZE 4000M; 3.设定数据文件自动扩展 
    ALTER DATABASE DATAFILE '/oracle/oradata/db/GAME.dbf 
    AUTOEXTEND ON NEXT 100M 
    MAXSIZE 10000M;