精华内容
下载资源
问答
  • oracle增加表空间大小

    2011-11-27 22:44:25
    oracle增加表空间大小oracle增加表空间大小oracle增加表空间大小
  • ORACLE表空间大小统计语句,比较详细的。。。。
  • 主要介绍了Oracle修改表空间大小的方法,实例讲述了Oracle通过命令行实现修改Oracle表空间大小的方法,非常简单实用,需要的朋友可以参考下
  • ORACLE修改表空间大小

    2012-04-08 17:43:45
    ORACLE临时段空间不足,修改表空间大小
  • ORACLE查询表空间大小

    2014-10-11 12:06:51
    帮助您查看oracle表空间大小,已使用百分比,剩余大小,总大小,空间名
  • oracle中表空间是必不可少的。但是怎么查看表空间呢 简单的查看方式是: SQL> select tablespace_name from dba_tablespaces; 想要查看表空间对应的物理文件是什么需要这样查看: SQL> select file_name ,...

    在oracle中表空间是必不可少的。但是怎么查看表空间呢


    简单的查看方式是:

    SQL> select tablespace_name from dba_tablespaces;


    想要查看表空间对应的物理文件是什么需要这样查看:

    SQL> select file_name ,tablespace_name,bytes/1024/1024 "bytes MB" ,max_bytes/1024/1024 " max_bytes MB "from dba_data_files where tablespace_name='表空间名';


    想要查看数据库表空间的使用情况药这样查看:

    SQL> set pages 1000;
    SQL> set lines 100;
    SQL> col tablespace_name for a20;
    SQL> col total_sizes for a10;
    SQL> col free_sizes for a10;
    SQL> col max_continue_sizes for a20;
    SQL> select (tablespace_name) "tablespace_name",   
               sum(total_size) || 'M' as "total_sizes",   
               sum(total_free) || 'M' as "free_sizes",   
               sum(max_continue) || 'M' as "max_continue_sizes",   
               round(sum(total_free) / sum(total_size) * 100) as "free(%)"  
           from ((select tablespace_name,   
                        (0) total_size,   
                        round(sum(bytes) / 1024 / 1024, 2) total_free,   
                        round(max(bytes) / 1024 / 1024, 2) max_continue   
                      from dba_free_space   
                      group by tablespace_name) union all  
                      (select tablespace_name, round(sum(bytes) / 1024 / 1024, 2), 0, 0   
                      from dba_data_files   
                      group by tablespace_name))   
          group by tablespace_name   
          order by 5 asc;


    想要增加表空间有两种方式:

    一、将原表空间的文件resize更大(只有从小到大,尽量不要从大到小)

    二、增加新的数据文件datafile

    具体操作:

    一、原表空间数据文件增大

    SQL> alter database datafile '/u01/app/oracle/oradata/xxxx/xxx.dbf' resize 10g;

    二、增加datafile

    SQL> alter tablespace 表空间名 add datafile'/u01/app/oracle/oradata/xxxx/xxxx02.dbf' size 10g;

    其实还有一种是表空间自动增长


    SQL> alter database datafile '/u01/app/oracle/oradata/xxx/xxxx.dbf' autoextend on next 1g maxsize 20g;
















    展开全文
  • Oracle修改表空间大小

    万次阅读 2016-07-21 10:01:02
    这是由于表空间对应的数据文件数据量超过Oracle在创建表空间的时候数据文件初始化大小值,当数据量达到这个值,再向数据库导入数据就会报错。 解决方案 解决办法就是扩展表空间,可以选择将容量扩大,比如扩展到...
    1. 问题描述
      在向orale数据库导入数据的时候报 ORA-01658: 无法为表空间 XXX中的段创建 INITIAL 区错误。
      这是由于表空间对应的数据文件中数据量超过Oracle在创建表空间的时候数据文件初始化大小值,当数据量达到这个值,再向数据库中导入数据就会报错。
    2. 解决方案
      解决办法就是扩展表空间,可以选择将表容量扩大,比如扩展到5000MB,或者当表空间不够时每次自动增加一定的容量,如每次自增200M。
    --查看表空间大小
    SELECT FILE_NAME as 数据文件,TABLESPACE_NAME as 表空间名称,AUTOEXTENSIBLE as 自动扩展,STATUS as 状态,MAXBYTES as 可扩展最大值,USER_BYTES as 已使用大小,INCREMENT_BY as 自动扩展增量 FROM dba_data_files
     --扩展空间,将数据文件扩大至5000MB
     alter database datafile 'D:\DataBase\Test.DBF' resize 5000m;
    --自动增长,表空间不足时增加200MB,最大扩展5000MB
     alter database datafile 'D:\DataBase\Test.DBF' autoextend on next 200m maxsize 5000m;  
    --扩展无限大空间
    alter database DATAFILE 'D:\DataBase\Test.DBF'  autoextend on maxsize unlimited;  
    
    • 注意表空间大小限制
      表空间数据文件容量与DB_BLOCK_SIZE有关,在初始建库时,DB_BLOCK_SIZE要根据实际需要,设置为 4K,8K、16K、32K、64K等几种大小,ORACLE的物理文件最大只允许4194304个数据块(由操作系统决定)
      即:
      4k最大表空间为:16384M
      8K最大表空间为:32768M
      16k最大表空间为:65536M
      32K最大表空间为:131072M
      64k最大表空间为:262144M

    所以将maxsize设置为unlimited也并非能无限扩展,还受限于区块大小,即blocksize大小,如一般blocksize默认8k,数据文件大小最大也只能扩展到32GB。当然可以设置bigfile(大文件表空间),8k的blocksize表空间文件理论上最大可以扩展32TB,但是实际上受操作系统的文件系统限制。使用大文件表空间(bigfile tablespace)可以大幅度增强Oracle数据库的存储能力,简化数据库管理工作。与此同时,付出的代价是增加备份与恢复的时间。如果是中小型项目,数据量在TB级以内,建议使用小文件表空间。一个小文件表空间(smallfile tablespace)最多可以包含1022个数据文件(datafile)。详细可看Oracle物理文件限制大小表格Physical Database Limits
    添加表空间数据文件sql脚本如下:

      --增加数据文件,TestTablespace是这里测试使用的表空间名称
       alter tablespace TestTablespace add datafile 'D:\DataBase\Test2.DBF' size 1024m;   

    ——————————————————————————————————————————
    参考源:

    Oracle11gR2Physical Database Limits

    展开全文
  • Oracle表空间命令

    2011-08-18 10:54:32
    重置Oracle表空间大小 查询空间使用情况 查看空间信息 希望能帮助 跟我遇见一样错误的童靴
  • Oracle表空间释放与增加表空间大小

    千次阅读 2017-04-20 10:35:28
    1.drop后并没有释放磁盘空间,这时可以通过缩小表空间释放磁盘存储注:一个表空间可以有多个datafile查看所有的datafile,找到你要缩小的datafile select file#, name from v$datafile 从上面获得要缩小的文件id是...

    1.drop表后并没有释放磁盘空间,这时可以通过缩小表空间释放磁盘存储

    注:一个表空间可以有多个datafile
    
    查看所有的datafile,找到你要缩小的datafile
    select file#, name from v$datafile
    从上面获得要缩小的文件id是4,查看此文件有多少个block
    select max(block_id) from dba_extents where file_id=4;--624000
    查询数据块的大小,单位是 byte
    select value from v$parameter where name='db_block_size'--8192 byte = 8 kb
    计算该datafile占用的物理空间
    select 624000 * 8 / 1024 from dual;--4875mb
    修改datafile大小
    alter database datafile 'D:\APP\ADMINISTRATOR\ORADATA\ORCL\JIDU.DBF' resize 5000m;
    

    2.删除表数据同时释放表空间可以用truncate

    truncate table tb_xxx DROP STORAGE;--表并没有删除,再drop即可
    或
    alter table 表名称 deallocate UNUSED KEEP 0;
    

    详见:http://blog.sina.com.cn/s/blog_6742dfb701010tl5.html

    3.datafile文件大小限制(貌似最大是32G)导致表空间不足,不过表空间可以有多个datafile文件

    增加一个datafile文件:
    alter tablespace xx add datafile 'd:\xx\xx.DBF' size 1000M
    

    如果不是因为datafile的最大限制,而是之前datafile设置小了且没有自动扩展,可以增加datafile大小,但最大是32G,请自行百度。

    展开全文
  • 1.查看一个所占的空间大小: SELECT SEGMENT_NAME,  TABLESPACE_NAME,  BYTES B,  BYTES / 1024 KB,  BYTES / 1024 / 1024 MB  FROM USER_SEGMENTS  WHERE segment_name = 'T_RL_INTG_LOGALL'  AND ...

    1.查看一个表所占的空间大小:
    SELECT SEGMENT_NAME,
           TABLESPACE_NAME,
           BYTES B,
           BYTES / 1024 KB,
           BYTES / 1024 / 1024 MB
      FROM USER_SEGMENTS
     WHERE segment_name = 'T_RL_INTG_LOGALL'
       AND TABLESPACE_NAME = 'FMIS9999';
    2.查看一个表空间所占的实际大小:
    SELECT SUM(BYTES) / 1024 / 1024 ||'MB' FROM USER_SEGMENTS U  WHERE TABLESPACE_NAME = 'FMIS9999';
    3.查看一个表空间对应的数据文件:
    SELECT * FROM DBA_DATA_FILES D WHERE D.TABLESPACE_NAME = 'FMIS9999';
    4.查看表空间的使用情况:
    SELECT A.TABLESPACE_NAME,      
           FILENUM,   
           TOTAL "TOTAL (MB)",  
           F.FREE "FREE (MB)",
           TO_CHAR(ROUND(FREE * 100 / TOTAL, 2), '990.00') "FREE%", 
           TO_CHAR(ROUND((TOTAL - FREE) * 100 / TOTAL, 2), '990.00') "USED%",    
           ROUND(MAXSIZES, 2) "MAX (MB)"
      FROM (SELECT TABLESPACE_NAME,          
                   COUNT(FILE_ID) FILENUM,        
                   SUM(BYTES / (1024 * 1024)) TOTAL,          
                   SUM(MAXBYTES) / 1024 / 1024 MAXSIZES      
              FROM DBA_DATA_FILES       
             GROUP BY TABLESPACE_NAME) A,     
           (SELECT TABLESPACE_NAME, ROUND(SUM(BYTES / (1024 * 1024))) FREE     
              FROM DBA_FREE_SPACE      
             GROUP BY TABLESPACE_NAME) F
     WHERE A.TABLESPACE_NAME = F.TABLESPACE_NAME
    5.查看数据文件的实际使用情况:
    SELECT CEIL(MAX_BLOCK * BLOCK_SIZE / 1024)
      FROM (SELECT MAX(BLOCK_ID) MAX_BLOCK
              FROM DBA_EXTENTS
             WHERE FILE_ID IN (SELECT FILE_ID
                                 FROM DBA_DATA_FILES D
                                WHERE D.TABLESPACE_NAME = 'FMIS9999')) M,
           (SELECT VALUE / 1024 BLOCK_SIZE
              FROM V$PARAMETER
             WHERE NAME = 'db_block_size') B

    一、创建一个有十万条记录的测试表t_rl_intg_logall ,查看其所占空间大小3873M
    delete t_rl_intg_logall。再次查看大小不会变,此时执行select * from t_rl_intg_logall会发现速度超极慢,查询结果却是空,查看其COST,发现是10万多。很难理解吧,其实是其所占空间没有释放的缘故。
    执行alter table t_rl_intg_logall move 或 alter table t_rl_intg_logall move storage(initial 64k)
    或alter table t_rl_intg_logall deallocate unused或 alter table t_rl_intg_logall shrink space.
    注意:因为alter table t_rl_intg_logall move 是通过消除行迁移,清除空间碎片,删除空闲空间,实现缩小所占的空间,但会导致此表上的索引无效(因为ROWID变了,无法找到),所以执行 move 就需要重建索引。
    找到表对应的索引。
    select index_name,table_name,tablespace_name,index_type,status,table_owner from dba_indexes WHERE table_owner='FMIS9999' ;
    根据status 的值,重建无效的就行了。
    sql='alter index '||index_name||' rebuild'; 使用存储过程执行,稍微安慰。
    还要注意alter table move过程中会产生锁,应该避免在业务高峰期操作!
    再次查看其所占空间大小,发现已经很小了,再一次执行查询,很快了吧。
    另外说明:truncate table t_rl_intg_logall 会执行的更快,而且其所占的空间也会释放,我想应该是truncate 语句执行后是不会进入oracle回收站(recylebin)的缘故。如果drop 一个表加上purge 也不会进回收站(在此里面的数据可以通过flashback找回)。
    不管是delete还是truncate 相应数据文件的大小并不会改变,如果想改变数据文件所占空间大小可执行如下语句:alter database datafile 'filename' resize 8g重定义数据文件的大小(不能小于该数据文件已用空间的大小)。
    另补充一些PURGE知识
    Purge操作:
    1). Purge tablespace tablespace_name : 用于清空表空间的Recycle Bin
    2). Purge tablespace tablespace_name user user_name: 清空指定表空间的Recycle Bin中指定用户的对象
    3). Purge recyclebin: 删除当前用户的Recycle Bin中的对象
    4). Purge dba_recyclebin: 删除所有用户的Recycle Bin中的对象,该命令要sysdba权限
    5). Drop table table_name purge:  删除对象并且不放在Recycle Bin中,即永久的删除,不能用Flashback恢复。
    6). Purge index recycle_bin_object_name: 当想释放Recycle bin的空间,又想能恢复表时,可以通过释放该对象的index所占用的空间来缓解空间压力。 因为索引是可以重建的。
    二、如果某些表占用了数据文件的最后一些块,则需要先将该表导出或移动到其他的表空间中,然后删除表,再进行收缩。不过如果是移动到其他的表空间,需要重建其索引。

    1)SQL> alter table t_obj move tablespace t_tbs1;   ---移动表到其它表空间

    也可以直接使用exp和imp来进行

    2)SQL>alter owner.index_name rebuild;     --重建索引

    3)删除原来的表空间
    三:对表分析之后也可以优化(本人没有试过)
    analyze table ysgl_compile_reqsub 
    compute statistics for all indexes; 
    也要看情况,不是什么情况都可以优化,等下次有机会再测试一下。

    展开全文
  • 运维脚本,查询数据库表空间大小及使用情况,增加空间,扩展空间等。
  • ORACLE表空间大小限制

    千次阅读 2017-12-21 16:25:54
    发现表空间数据文件容量与DB_BLOCK_SIZE有关,在初始建库时,DB_BLOCK_SIZE要根据实际需要,设置为 4K,8K、16K、32K、64K等几种大小ORACLE的物理文件最大只允许4194304个数据块(由操作系统决定),表空间数据文件...
  • oracle表空间查看

    2010-07-14 08:06:52
    oracle表空间信息,查看Oracle表空间空闲与已用大小
  • 两种方法,一种是为表空间增加数据文件: 代码如下: alter tablespace users add datafile ‘/opt/oracle/oradata/esop/... 您可能感兴趣的文章:Oracle 查看表空间大小及使用情况sql语句oracle 创建表空间详细介绍Or
  • oracle表空间大小测试

    千次阅读 2013-12-05 19:27:53
    --表空间大小测试 --创建临时空间icer_temp1 create temporary tablespace icer_temp1 tempfile 'D:\oracle\icer_temp1.dbf' size 1m autoextend on next 1m maxsize 1024m extent management local; --创建临时...
  • Oracle中查询大小的占用情况和表空间大小   有两种含义的表大小。一种是分配给一个的物理空间数量,而不管空间是否被使用。可以这样查询获得字节数: select segment_name, bytes  from user_...
  • oracle修改表空间大小

    千次阅读 2015-03-06 19:07:05
    oracle修改表空间大小  在创建表空间的时候,需要在物理磁盘上为表空间创建数据文件。数据文件的大小决定了创建表空间大小。构成表空间的数据文件可以位于不同的物理磁盘上,表空间大小就党羽不同物理磁盘上...
  • oracle表空间常用操作

    2017-09-08 16:18:07
    oracle表空间常用操作,包括表空间剩余使用大小、名称及大小、物理文件的名称及大小 、回滚段名称及大小 、控制文件 、日志文件 、数据库的创建日期和归档方式 、创建表空间、修改表空间等操作,供大家参考。
  • Oracle表空间数据文件大小设置

    千次阅读 2018-06-13 15:01:50
     表空间数据文件容量与DB_BLOCK_SIZE有关,在初始建库时,DB_BLOCK_SIZE要根据实际需要,设置为 4K,8K、16K、32K、64K等几种大小ORACLE的物理文件最大只允许4194304个数据块(由操作系统决定),表空间数据文件的...
  • 目录查看分配的物理空间大小查看实际存储空间大小查看每个空间的大小查看表空间大小及使用率查看数据库数据文件信息查看临时空间信息 oracle表大小有两种含义,即分配的空间大小和实际占用的物理空间...
  • Oracle修改表空间大小 ;设置自增长

    千次阅读 2018-12-07 17:01:35
    Oracle修改表空间大小 使用Oracle10g建立数据库后,向数据库导入了部分...Oracle 默认的表空间大小为400M,当数据库数据量达到这个值,再向数据库导入数据就会报错。解决方法是 扩展空间。可以选择将容...
  • Oracle 表空间 收缩

    2018-10-27 19:53:09
    描述了Oracle数据下如何对一个比较大的表空间进行收储。
  • ORACLE 表空间文件大小问题

    千次阅读 2016-02-24 09:29:47
    ORACLE 表空间文件大小问题 oracle的块 db_block_size  oracle及操作系统对于文件大小的限制 如何配置不同尺寸的db block size from: http://bdcwl.blog.163.com/blog/static/765222652010112784912650/ DBA...
  • oracle表空间大小查看

    千次阅读 2009-01-19 15:35:00
    oracle表空间大小查看: 数据文件信息查看ls -l datafileSELECT bytes FROM v$datafile; --看数据库文件大小结合 v$tablespace可以看空间的文件结构和大小查看空间的名称及大小 select t.tablespace_name, ...
  • 表空间大小", free "空间剩余大小", (total - free) "空间使用大小",   total / (1024 * 1024 * 1024) "表空间大小(G)", free / (1024 * 1024 * 1024...
  • 主要介绍了Oracle如何设置表空间数据文件大小,文中讲解非常细致,帮助大家更好的理解和学习,感兴趣的朋友可以了解下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 128,260
精华内容 51,304
关键字:

oracle表空间中表大小