ORACLE ORA-1693错误以及表和索引的表空间的移动

2016-02-19 14:38 6 1 收藏

下面图老师小编跟大家分享ORACLE ORA-1693错误以及表和索引的表空间的移动,一起来学习下过程究竟如何进行吧!喜欢就赶紧收藏起来哦~

【 tulaoshi.com - 编程语言 】

  本公司开发的软件,有客户不能上传大的附件,页面不报任何错误。查看JBOSS日志,同样看不到任何错误,排除了软件本身故障。

  在查看Oracle数据库日志,发现当上传大的附件时出现错误信息

  OEA_1693: MAX # EXTENTS 4096 reached in lobsegment   nes.sys_LOB0000024832C00008$$

  解决过程

  上网找了下资料  ORA-1693 max # extents (string) reached in lob segment string.string   Cause: A LOB segment tried to extend past MAXEXTENTS.   Action: If MAXEXTENTS is less than the system max, raise it. Otherwise, you must re-create with larger initial, next or PCTINCREASE parameters.   将表空间的maxextents改为无限制,问题还是存在将该表的maxextents改为无限制  alter table T_ID_CHECK_AccessORIES storage (maxextents unlimited)

   问题同样不能解决

  后来在查看该表结构时意外发现该表用的表空间为USERS 而没有用到我为其创建的表空间test,由于数据库是用IMP导入数据的,可能是当初EXP导出时该用户是用的oracle默认表空间。

  由于有以上发现我决定将该表的表空间修改为test

   Alter table T_ID_CHECK_ACCESSORIES move tablespace test;

   修改该表后测试系统 一切正常能正常传大附件

  解决问题后还是一头雾水,为什么该表用USERS表空间会出现ORA-01693问题,改为TEST表空间后正常,USERS和TEST的maxextents都为无限制。

  忽然想到该用户下面的所有表同样都在USERS表空间中,决定把所有表都移至TEST中由于表较多所以用一个查询生成所需要的命令  Select ‘alter table ‘ table_name ‘ move tablespace test; ‘ from user_tables;

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

   然后执行该查询所生成的结果  将该用户下的索引移至表空间TEST   Select ‘alter index ‘ index_name ‘ rebuild tablespace test;’

(本文来源于图老师网站,更多请访问https://www.tulaoshi.com/bianchengyuyan/)

   执行该查询生成的命令后,发现有4个表报错  ORA-02327: cannot create index on expression with datatype LOB   检查4个表的结构后,都有个LOB字段那说明有LOB字段的索引不能用正常的  alter index index_name rebuild talespace tablespace_name   网上查询得知我们要移动LOB的索引就必须使用特定的语法来移动LOB的对象,具体的语法如下:  ALTER TABLE table_name MOVE   TABLESPACE new_tbsp   STORAGE(new_storage)                   LOB (lobcol)                   --后面括号里面内容为  LOB 字段名  STORE AS lobsegment   (TABLESPACE new_tbsp   STORAGE (new_storage));
 
  检查是否有索引状态为'UNUSABLE'select index_name from user_indexes t where t.status ='UNUSABLE';假如有则对该索引重建alter index index_name rebuild
 
  使用以上语法在修改这4条索引时,正常!!!
 
  所有问题全部解决了,但很多地方还是一头雾水(只怪自己太菜了)只有以后多加强学习,慢慢了解了。我的博客地址是:tianchi.csai.cn 大家来多交流哦!

来源:https://www.tulaoshi.com/n/20160219/1607404.html

延伸阅读
问题的提出:如何在FORM的程序中实现Oracle与Access表之间的导入和导出。 问题的解答: 准备工作: 1.安装OCA。运行Developer的安装盘,选择自定义安装,选择Oracle Open Client Adapter for ODBC安装。 2.在数据源(ODBC)中添加DSN。控制面板-管理工具-数据源(ODBC),选择“用户DSN”,添加要进行操作的Access的文件。...
标签: excel
Excel工作表怎么移动? &n(图老师整理)bsp; 怎么设tulaoShi.com置Excel表格标题重复打印?   Excel动画教程Tulaoshi.Com:加载“宏”   Excel大写数字怎么设置?   Excel表格边框怎么设置?  
3.4 创建、删除、索引和更改表 可利用CREATE TABLE、DROP TABLE 和ALTER TABLE 语句创建表,然后,对它们进行删除,更改它们的结构。对于它们中的每一条语句,存在MySQL专有的扩充,这些扩充使各语句更为有用。CREATE INDEX 和DROP INDEX 语句使您能够增加或删除现有表上 的索引。 3.4.1CREATE TABLE 语句 用CREATE TA...
说明:下文中的一些说明和示例代码摘自CSDN,恕不一一指明出处,在此一并对相关作者表示感谢! 1 语法 在Oracle中,可以创建以下两种临时表: 1) 会话特有的临时表 CREATE GLOBAL TEMPORARY ( ) ON COMMIT PRESERVE ROWS; 2) 事务特有的临时表 CREATE GLOBAL TEMPORARY ( ) ON COMMIT DELETE ...
正在看的ORACLE教程是:Oracle系统表外键的更名。 Oracle中表的外键是保证系统参照完整性的手段,而参照完整性是指分布在两个表中的列所满足的具有主从性质的约束关系。外键涉及到两个表,其中一个称之为父项表,另一个称之为子项表。  父项表(parent table)是参照约束的基础,即通过检查这张表的有效数据情况来判断约束是否...

经验教程

790

收藏

22
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部