zoukankan      html  css  js  c++  java
  • 表空间相关知识

    1. sql查询各表空间使用情况:

    Select tablespace_name,sum(bytes)/1024/1024 from dba_free_space group by tablespace_name;
    SELECT df.tablespace_name "tablespace_name",totalspace "totalspace_M",(totalspace-freespace) "Usedspace_M",
    freespace "leftspace_M",ROUND((1-freespace/totalspace)*100,2) "Use_rate_%" FROM
    (SELECT tablespace_name,ROUND(SUM(bytes)/1024/1024) totalspace FROM dba_data_files
    GROUP BY tablespace_name) df,(SELECT tablespace_name,ROUND(SUM(bytes)/1024/1024) freespace
    FROM dba_free_space GROUP BY tablespace_name) fs where df.tablespace_name=fs.tablespace_name(+);

    2. 表空间不足的解决办法:(表空间尽量让free百分比保持在10%以上,低于10%就增加datafile或者resizedatafile,一般数据文件不要超过2G)

    • 第一种,增加/增大数据文件,扩大表空间

      ---增大数据文件:alter database datafile '全路径数据文件名称' resize ***M;

    alter database datafile '/oracle/oradata/ora01/TBS_SYSDATA01' resize 10M;

      ---增加数据文件:alter tablespace 表空间名称 add datafile '全路径数据文件名称' size ***M;

    alter tablespace TBS_LJB add datafile 'E:ORADATAORA10DATAFILETBS_LJB_02.DBF' size 100M ;
    • 第二种,设置表空间为自动扩展方式

      ---alter database datafile '全路径数据文件名称' autoextend on;

    alter database datafile 'E:ORADATAORA10DATAFILETBS_LJB_02.DBF' autoextend on; --如果自动扩展关闭,则为‘off’

    3. 查看临时表空间使用情况

    select d.tablespace_name tableSpaceName,
           nvl (a.BYTES / 1024 / 1024, 0) totalSize,
           nvl (a.BYTES / 1024 / 1024, 0) - nvl (t.BYTES, 0) / 1024 / 1024 freeSize,
           nvl (t.BYTES, 0) / 1024 / 1024 usedSize,
           round(NVL(t.BYTES / a.BYTES * 100, 0), 2) usedPercent
      from SYS.dba_tablespaces d,
           (select tablespace_name, sum(BYTES) BYTES
              from dba_temp_files
             group by tablespace_name) a,
           (select tablespace_name, sum(bytes_cached) BYTES
              from v$temp_extent_pool
             group by tablespace_name) t
     where d.tablespace_name = a.tablespace_name(+)
       and d.tablespace_name = t.tablespace_name(+)
       and d.extent_management like 'LOCAL'
       and d.CONTENTS like 'TEMPORARY';

    4. 查看临时表空间大小(原始表空间大小)

    BYTES , BLOCKS 显示的是临时文件有多少BYTE大小,包含多少个数据块。而USER_BYTES,USER_BLOCKS是可用的BYTE和数据块个数。因此,我们可以知道临时文件中有一部分是被系统占用的,大概可以理解成文件头信息,这一部分大小是128个block,如下图

    SELECT tablespace_name,bytes,blocks,user_bytes,user_blocks,blocks-user_blocks AS system_userd FROM dba_temp_files;

    5. 创建新的表空间

    CREATE TABLESPACE TBS_SYSDATA DATAFILE '/home/DB/oracle/oradata/orcl/TBS_SYSDATA.dbf' SIZE 50M AUTOEXTEND ON EXTENT MANAGEMENT LOCAL AUTOALLOCATE;

    6. 查询当前存在哪些表空间

    Select * from v$tablespace;

    7. 查看数据库文件

    SELECT TABLESPACE_NAME,FILE_NAME,BYTES/1024/1024 FROM DBA_DATA_FILES;

    8.通过数据库文件查看表空间及表空间是否开启自动扩展,扩展了多少

    SELECT TABLESPACE_NAME,FILE_NAME,BYTES/1024/1024,STATUS,AUTOEXTENSIBLE,INCREMENT_BY FROM dba_data_files;

    9. 删除表空间(包括数据文件)

    DROP TABLESPACE TBS_SYS_DATA  including  contents and datafiles;

    10. 查询用户使用的表空间

    --查询imuse01用户所使用的缺省表空间
    select USERNAME,DEFAULT_TABLESPACE, TEMPORARY_TABLESPACE from dba_users where username=upper('imuse01');--用户名要大写
    select distinct TABLESPACE_NAME from dba_segments where owner='SYS22';--查询用户使用过的所有的表空间
    --查询imuse01用户所使用的临时表空间
    select temporary_tablespace from dba_users where username=’imuse01’;

    11. 删除数据文件

    Alter tablespace name drop datafile ‘/telllin/orale/app/oradata/oracle/data01.bdf’;

    ...待持续更新

  • 相关阅读:
    bzoj 1497: [NOI2006]最大获利
    bzoj 2733: [HNOI2012]永无乡
    [CF911G]Mass Change Queries
    [CF911F]Tree Destruction
    [CF911E]Stack Sorting
    [CF911D]Inversion Counting
    [CF911C]Three Garlands
    [CF911B]Two Cakes
    [CF911A]Nearest Minimums
    [POJ1201]Intervals
  • 原文地址:https://www.cnblogs.com/mecell224/p/10469853.html
Copyright © 2011-2022 走看看