数据库报错:"ORA-01654: 索引。。。无法通过8192(在表空间。。。中)扩展"、或者:ora-01652无法通过128(在表空间temp中)扩展temp段,这种错误信息时,表明数据库表空间文件或者临时表空间文件已经达到上限;

解决办法:增加表空间文件,sql语句如下: alter tablespace temp add tempfile '/oracle/database/oradata/orcl/temp02.dbf' size 10240m autoextend on next 1024m maxsize 30G;

常识一:

表空间数据文件容量与DB_BLOCK_SIZE有关,在初始建库时,DB_BLOCK_SIZE要根据实际需要,设置为 4K、8K、16K、32K、64K等几种大小,ORACLE的物理文件最大只允许4194304个数据块(由操作系统决定),表空间数据文件的最大值为 4194304×DB_BLOCK_SIZE/1024M。

sql查看DB_BLOCK_SIZE值:

select value/1024 as "kb" from v$parameter where name='db_block_size'

可以看到这个数据库DB_BLOCK_SIZE值为8k,所以单个表空间文件最大值为8K*2^22 = 32G,由此可推出:

2K = 8G、8K = 32G、16K = 64G、32K = 128G;

  • DB_BLOCK_SIZE作为数据库的最小操作单位,是在创建数据库的时候指定的,在创建完数据库之后便不可修改。要修改DB_BLOCK_SIZE,需要重建数据库。一般可以将数据EXP出来,然后重建数据库,指定新的DB_BLOCK_SIZE,然后再将数据IMP进数据库。
  • DB_BLOCK_SIZE一般设置为操作系统块的倍数,即2K,4K,8K,16K或32K,但它的大小一般受数据库用途的影响。对于联机事务,其特点是事务量大,但每个事务处理的数据量小,所以DB_BLOCK_SIZE设置小点就足够了,一般为4K或者8K,设置太大话一次读出的数据有部分是没用的,会拖慢数据库的读写时间,同时增加无必要的IO操作。而对于数据仓库和ERP方面的应用,每个事务处理的数据量很大,所以DB_BLOCK_SIZE一般设置得比较大,一般为8K,16K或者32K,此时如果DB_BLOCK_SIZE小的话,那么I/O自然就多,消耗太大。
  • 大一点的DB_BLOCK_SIZE对索引的性能有一定的提高。因为DB_BLOCK_SIZE比较大的话,一个DB_BLOCK一次能够索引的行数就比较多。
  • 对于行比较大的话,比如一个DB_BLOCK放不下一行,数据库在读取数据的时候就需要进行行链接,从而影响读取性能。此时DB_BLOCK_SIZE大一点的话就可以避免这种情况的发生

常识二、

如果单个数据库表空间文件大小超过要导入的数据库表空间最大大小,比如1T的数据库文件需要导入,解决办法:

创建bigfile大文件表空间:在oracle11g中引进了bigfile表空间,他充分利用了64位CPU的寻址能力,使oracle可以管理的数据文件总量达到8EB。单个数据文件的大小达到128TB,即使默认8K的db_block_size也达到了32TB。

所谓Bigfile Tablespace最显著的差别就是一个表空间只能对应一个数据文件。Bigfile Tablespace虽只对应一个数据文件,但数据文件对应的最大体积大大增加。传统的small datafile每个文件中最多包括4M个数据块,按照一个数据块8K的大小核算,最大文件大小为32G。每个Small Tablespace理论上能够包括1024个数据文件,这样计算理论的最大值为32TB大小。而Bigfile Datafile具有更强大的数据块block容纳能力,最多能够包括4G个数据块。同样按照数据块8K计算,Bigfile Datafile大小为32KG=32TB。理论上small tablespace和big tablespace总容量相同

bigfile tablespace 设置不同大小的db_block_size时数据文件的最大值:

需要注意的是:使用bigfile表空间,它只能支持一个数据文件。也就是说这个文件的最大大小就是表空间最大大小,你不可能通过增加数据文件来扩大该表空间的大小。

所以需要根据实际情况,在建数据库时指定db_block_size的大小,要不然建完数据库后无法修改

oracle 表空间文件达到32G后解决办法相关推荐

  1. Oracle11使用现在数据库文件,oracle11g 重装操作系统后,如何利用原有oracle表空间文件还原数据库...

    oracle11g 重装操作系统后,如何利用原有oracle表空间文件还原数据库 最近由于系统重装,在还原dmp备份文件时,由于数据原因(用exp命令导出时表没有导出全部),导致系统不能正常运行.根据 ...

  2. oracle表空间文件扩容

    近期公司老项目反应附件无法上传,查询后台日志发现数据库insert报错,原因是附件以二进制存储在数据库表中导致oracle表空间文件已经达到了32G的最大值.找到了问题,坚信一个数据库肯定不会就只支持 ...

  3. oracle登录 报ora00604,oracle表空间不足,ORA-00604的解决方法

    参考文章: http://blog.chinaunix.net/uid-26446098-id-3344813.html 错误信息如下: 从错误的角度可以推出:应该是表空间不足 根据查看表空间的使用情 ...

  4. Oracle表空间文件损坏后的排查及解决

    我们在操作Oracle的时候,如果出现Oracle无法正常启动或停止,或者Oracle的导入导出命令执行错误, 通常是由于Oracle的实例下的表空间出现了问题造成的. 以下解决办法,摘自网络,适用于 ...

  5. oracle忽略损坏表空间,Oracle表空间文件损坏后的排查及解决

    我们在操作Oracle的时候,如果出现Oracle无法正常启动或停止,或者Oracle的导入导出命令执行错误, 通常是由于Oracle的实例下的表空间出现了问题造成的. 以下解决办法,摘自网络,适用于 ...

  6. 整理ORACLE表空间文件

    固定大小表空间文件使用率过低,并执行alter database datafile '/u01/xx/xx/xx.dbf' resize 256m时收缩表空间-ORA-03297错误的解决方法: 1: ...

  7. oracle表空间文件离线,oracle 表空间 数据文件 笔记

    数据文件命令 Enabling and Disabling Automatic Extension for a Datafile: ALTER TABLESPACE users ADD DATAFIL ...

  8. oracle创建表空间出错的原因和解决办法

    相信很多人在创建表空间的时候遇到过这样问题. 问题原因:这是因为oracle数据库是在虚拟机或者是服务器上安装的. 你在本地创建文件的时候自然会找不到文件夹.就会造成图上的错误 解决办法:1.打开虚拟 ...

  9. Oracle数据库表空间占用过大的解决办法

    最近调接口的时候接口访问历史表报错: 检查之后发现表空间满了,随后把相应表空间进行了扩展,顺带总结了Oracle检查&调整表空间的sql语句如下: --查看某张表的表空间 select tab ...

最新文章

  1. 搜索打表大找规律 (hdu2045)
  2. vi 编辑器跳转到指定行数
  3. 三国中最精辟的十句话
  4. 查了一晚上的资料,累啊。
  5. SerializeUtil 序列化 java
  6. MySQL从零到一解读增量同步数据到elasticsearch canal adapter方式(binlog)实现
  7. php put怎么接收文件,php,restful_PHP PUT方式传文件的话,如何获取文件内容呢 ?,php,restful,http - phpStudy...
  8. 全程2分钟!教你如何免费下载Windows 10
  9. 离散数学计算机科学与技术答案,2计算机科学与技术专业本科离散数学期末复习题2...
  10. 关于iOS和OS X废弃的API知识点
  11. 机器学习- 吴恩达Andrew Ng 编程作业技巧
  12. 设置Response中的ContentType
  13. 国际国家代号mysql_最全的各国 语言(文化)代码与国家地区对照表(国际通用标准形式)...
  14. 难得有一篇文章来仔细梳理cowboy bebop的种种.
  15. ADS仿真学习:s2p文件导入ADS
  16. windows域与工作组概念
  17. android实现手机号验证码注册
  18. Manjaro安装deb包
  19. 哲理小故事--跳蚤人生
  20. 教教你如何配置汤姆猫 和 Java 环境变量的设置

热门文章

  1. 项目绩效分析方法-挣值技术
  2. PHP的realpath(...)
  3. 华为服务器 维护手册,华为常用维护手册.doc
  4. 计算机组成原理---冯诺依曼体系结构及性能和功耗
  5. C语言基础——1024我把函数献给你
  6. Python实现猜单词游戏
  7. 原理分析:安卓手机桌面长按分享,安卓发送软件apk,qq发送软件apk 原理
  8. 毕业一年半拿遍所有大厂offer,我是怎么做到的?
  9. xgboost的使用简析
  10. Android基础入门教程——4.3.1 BroadcastReceiver牛刀小试