1 问题

向Oracle 10g数据库中批量插入数据,当插入近2亿条数据后,报出如下错误: ORA-01653: 表xx无法通过 8192 (在表空间 xx_data 中) 扩展。

查看表空间,发现表空间大小已达到32G,但创建表空间时已设置了无限扩展(初始空间为20G),磁盘空间没满,说明表空间无法进行自动扩展了。

2 原因

查找资料了解到Oracle 10g 单个表空间数据文件的最大值为: 最大数据块 * DB_BLOCK_SIZE

查看Oracle的 DB_BLOCK_SIZE

SQL> select value from v$parameter where name ='db_block_size';


8192

本机数据库的数据块大小为8K,算出本机Oracle 单个表空间数据文件的最大值为: 4194304 * 8/1024 = 32768M (32G);

所以既使创建表空间时设置了 autoextend on maxsize unlimited,其最大空间也是不会超过32G。

注: 表空间数据文件容量与DB_BLOCK_SIZE的设置有关,而这个参数在创建数据库实例的时候就已经指定。DB_BLOCK_SIZE参数可以设置为4K、8K、16K、32K、64K等几种,Oracle的物理文件最大只允许4194304个数据块(这个参数具体由操作系统决定,一般应该是此数字),表空间数据文件的最大值对应关系就可以通过4194304×DB_BLOCK_SIZE/1024M计算得出。 4k最大表空间为:16384M

8K最大表空间为:32768M

16k最大表空间为:65536M

32K最大表空间为:131072M

64k最大表空间为:262144M

而Oracle默认分配的为8K,也就是对应于32768M左右的空间大小,如果想继续增大表空间的话,只需要通过alter tablespace name add datafile ‘path/file_name’ size 1024M;添加数据文件的方式就可以了。

数据块是oracle中最小的空间分配单位,各种操作的数据就的放在这里,oracle从磁盘读写的也是块。一旦create database,db_block_size就是不可更改的。因为oracle是以块为单位存储数据的,任何一个存储元素最少占用一个块,如果你改变了db_block_size,必然导致部分块不能正常使用。

其实在unix类操作系统中,文件块和oracle块的关系非常紧密(建议相等),这样才能保证数据库的执行效率。在windows下可能就不这么讲究了。建议使用8k以上的块,有人做过测试,同样的配置,8k的块比4k快大约40%,比2k快3倍以上。

3 解决方法

处理方法两种:①假如当前表空间只有一个数据文件,可以扩大该数据文件的大小(单个数据文件最大32G);②为当前表空间新增数据文件。

为当前表空间新增数据文件方法如下:

在命令行下,以oracle系统管理员用户登录oracle,再执行以下操作:

1)方法一:分步骤。为指定的表空间增加数据文件(三步骤) ①为指定的表空间创建数据文件,并指定初始大小 ALTER TABLESPACE 表空间名称 ADD DATAFILE 'D:\Oracle\app\Administrator\oradata\orcl\新数据文件名称.DBF' SIZE 32M;

②为该数据文件打开自动增长 ALTER DATABASE DATAFILE 'D:\Oracle\app\Administrator\oradata\orcl\新数据文件名称.DBF' AUTOEXTEND ON;

③指定每次自动增长的大小 ALTER DATABASE DATAFILE 'D:\Oracle\app\Administrator\oradata\orcl\新数据文件名称.DBF' AUTOEXTEND ON NEXT 200M ;

2)方法二:一步到位。为指定的表空间增加数据文件(一步到位:指定初始大小,打开自动增长,设置每次自动增长的大小) ALTER TABLESPACE 表空间名称 ADD DATAFILE 'D:\app\Administrator\oradata\ORCL\DATAFILE\新数据文件名称.DBF' SIZE 10240M AUTOEXTEND ON NEXT 1024M MAXSIZE UNLIMITED;

Oracle报错ORA-01653: 表xx无法通过 8192 (在表空间 xx_data 中) 扩展相关推荐

  1. 解决Oracle报错ORA-01653: 表xx无法通过 8192 (在表空间 xx_data 中) 扩展

    向Oracle 11g数据库中批量插入数据,当插入近2亿条数据后,报出如下错误: ORA-01653: 表xx无法通过 8192 (在表空间 xx_data 中) 扩展. 查看表空间,发现表空间大小已 ...

  2. ORA-01653: 表xx无法通过 8192 (在表空间 xx_data 中) 扩展

    1 问题 向Oracle 10g数据库中批量插入数据,当插入近2亿条数据后,报出如下错误: ORA-01653: 表xx无法通过 8192 (在表空间 xx_data 中) 扩展. 查看表空间,发现表 ...

  3. 【数据库】报错ora 12154 解决方法

    Oracle报错 ora 12154 解决办法: 1.确认服务器监听正确打开: 2.确认别名前无空格.

  4. oracle 增加ora容量_案例:Oracle报错ORA-01144 详解数据文件大小32GB的限制的原因

    天萃荷净 Oracle数据文件大小的限制,运维DBA在向Oracle数据库添加一个32G的数据文件的时候报错ORA-01144,分析原因为数据库针对文件有32G限制 1.添加数据文件报错ORA-011 ...

  5. oracle ora 00283,【案例】Oracle报错ORA-16433非归档丢失redo无法启动的恢复过程

    天萃荷净 Oracle研究中心案例分析:运维DBA反映Oracle数据库处理非归档模式,redo文件损坏常规修复无法正常open数据库. 本站文章除注明转载外,均为本站原创: 转载自love wife ...

  6. oracle数据库报错,ORA-01652:无法通过128(在表空间TEMP中)扩展temp段

    oracle数据库报错,ORA-01652:无法通过128(在表空间TEMP中)扩展temp段 出现这个报错一般是两种情况,oracle的temp空间不足:存在性能非常差的带全表扫描的sql占用的资源 ...

  7. linux ora 01157,案例:Oracle报错ORA-01157 ORA-01110 数据启动报错RMAN恢复数据库思路

    天萃荷净 rman从多份备份中还原操作,运维DBA工程师反映数据库在进行恢复时报错ORA-01157 ORA-01110,分析原因为11号数据文件需要recover 1.数据恢复ORA错误 RMAN& ...

  8. oracle错误01653,oracle 10g 错误 ORA 01653 的解决过程

    oracle 10g 错误 ORA 01653 的解决过程 早上用户反应在操作用友NC时报错 ORA-01653 ,详细信息:ORA-01653: 表 NCV35.GL_DETAIL 无法通过 102 ...

  9. oracle01507报错,oracle报错ORA-01507

    Oracle报错ORA-16433非归档丢失redo无法启动的恢复过程 [案例]Oracle报错ORA-16433非归档丢失redo无法启动的恢复过程 转惜纷飞 今天ML的群中女神和travel在纠结 ...

最新文章

  1. python_day9 进程池
  2. eve模拟器华为镜像_EVE-NG简单入门介绍
  3. java 图像处理 空白_使用Java进行图像处理的一些基础操作
  4. 积跬步-java任职要求
  5. 云原生时代,底层性能如何调优?
  6. Julia学习(1)——入门
  7. poj 2352 Stars 树状数组
  8. 写给立志做码农的大学生
  9. Java判断文件编码
  10. HTML-img图片详解
  11. java 对象和List 里面的对象判断属性是不是为空
  12. 国际版抖音Tik Tok怎么引流变现,卖家所不知道的那些事
  13. linux下vanish的部署
  14. 爬取网易云音乐某一个人的评论
  15. Spring 整合Quartz 2实现定时任务四:细化调整及一些已知的问题
  16. linux rsync排除目录,如何从rsync中排除文件夹
  17. 国家标准:电子计算机机房设计规范
  18. AWS re:Invent 2018 参会攻略
  19. 图解:RJ45水晶头网线的做法 十分经典
  20. python图片压缩pako_在Python中使用Pako deflate

热门文章

  1. 跨平台CMake判断当前平台是Linux还是Windows
  2. 完全卸载NodeJs-windows
  3. 深信服安全攻防工程师笔试题库
  4. [安全分析报告]门磁报警系统破解猜想
  5. Flappy Bird总结
  6. 苹果CMS8X精仿乐酷影视大气模板
  7. linux系统数据恢复TestDisk,如何用testdisk恢复文件 Linux已删除的文件如何恢复
  8. 实证研究之|stata清洗charls数据
  9. prescan和carsim联合仿真中出现的一些问题以及解决方法
  10. node对应node-sass版本(截图来自官网)