iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >创建index 使用Online导致的问题
  • 496
分享到

创建index 使用Online导致的问题

2024-04-02 19:04:59 496人浏览 薄情痞子
摘要

在本地的测试库中,本来空间就不足,结果创建了一个表有600多万条记录,想创建一个index. 物理段有340多M. 临时段大小有100M,结果想创建一个索引,总是报临时表空间不足的错误。 [

在本地的测试库中,本来空间就不足,结果创建了一个表有600多万条记录,想创建一个index. 物理段有340多M.

临时段大小有100M,结果想创建一个索引,总是报临时表空间不足的错误。

[ora11g@rac1 test]$ ksh test.sh "create unique index t_pk on t(object_id) tablespace pool_data nologging online;"
create unique index t_pk on t(object_id) tablespace pool_data nologging online
                            *
ERROR at line 1:
ORA-01652: unable to extend temp segment by 128 in tablespace TEMPTS1

排除了索引所在的表空间不足的问题,实时监控了一下,发现确实临时表空间使用率在瞬间飙到100%,然后就报了ORA-01652的错误。

在尝试各种方法之后,先扩大临时段再次尝试。

alter database tempfile '/u03/ora11g/oradata/TEST01/temp01.dbf' resize 200M;

 

结果再次尝试的时候,就有了如下的错误。
create unique index t_pk on t(object_id) tablespace pool_data nologging online
                            *
ERROR at line 1:
ORA-00603: oracle server session terminated by fatal error
ORA-01114: IO error writing block to file  (block # )
ORA-01114: IO error writing block to file 201 (block # 15439)
ORA-27072: File I/O error
Additional infORMation: 4
Additional information: 15439
Additional information: 4096
Process ID: 5683
Session ID: 18 Serial number: 103

Elapsed: 00:00:21.11
ERROR:
ORA-03114: not connected to ORACLE

一看就有些崩溃了,以为数据库又挂了。一看进程,还在,还能连接。

[ora11g@rac1 dbm_lite]$ ps -ef|grep smon
ora11g    2357     1  0 05:32 ?        00:00:01 ora_smon_TEST01
ora11g    5746  5327  0 06:27 pts/0    00:00:00 grep smon

 

查看alert日志

Fri Jun 06 06:26:14 2014
alter database tempfile '/u03/ora11g/oradata/TEST01/temp01.dbf' resize 200M
Completed: alter database tempfile '/u03/ora11g/oradata/TEST01/temp01.dbf' resize 200M
Fri Jun 06 06:26:39 2014
online index (re)build cleanup: objn=15331 maxretry=2000 forever=0
Fri Jun 06 06:26:57 2014
Non critical error OR

 

那就再次尝试创建,结果错误接二连三。

再次创建,提示索引已经存在了。 
create unique index t_pk on t(object_id) tablespace pool_data nologging
                    *
ERROR at line 1:
ORA-00955: name is already used by an existing object

 

那我删除重建呢。

drop index t_pk
           *
ERROR at line 1:
ORA-08104: this index object 15334 is being online built or rebuilt

 

试试force选项。

drop index t_pk force
*
ERROR at line 1:
ORA-29862: cannot specify FORCE option for dropping non-domain index

 

查看Index的状态,显示是valid

********** INDEX DETAILS INFO *****************

INDEX_NAME                     TABLESPACE INDEX_TYPE UNIQUENES PAR COLUMN_LIST                    TABLE_TYPE STATUS   NUM_ROWS LAST_ANAL G
------------------------------ ---------- ---------- --------- --- ------------------------------ ---------- ------ ---------- --------- -
T_PK                           POOL_DATA  NORMAL     UNIQUE    NO  OBJECT_ID                      TABLE      VALID                       N

TABLE_NAME                     INDEX_NAME                     CLUSTERING_FACTOR     BLOCKS   NUM_ROWS
------------------------------ ------------------------------ ----------------- ---------- ----------
T                              T_PK                                                  39174    6856704

 

那我再次rebuild 可以吗?

alter index t_pk rebuild parallel 4
*
ERROR at line 1:
ORA-08104: this index object 15334 is being online built or rebuilt

 

无奈,总不能一直等着吧。而且过了好一会儿,也不见有进展。

如果在生产环境中,那绝对算是一次事故。在早期版本中,可能只有重启,让smon来做清理了。

不知道从10g还是11g开始,有dbms_repair包,里面还包括了一个蛮实用的方法。可以解决这个问题。

sql> declare
  2  isClean boolean;
  3 
  4  begin
  5  isClean := FALSE;
  6  while isClean=FALSE loop
  7  isClean := dbms_repair.online_index_clean(dbms_repair.all_index_id,
  8  dbms_repair.lock_wait);
  9  dbms_lock.sleep(2);
10  end loop;
11  exception
12  when others then
13  RAISE;
14  end;
15  /

PL/SQL procedure successfully completed.

 

运行成功后,再次尝试。

alter index t_pk rebuild parallel 4
*
ERROR at line 1:
ORA-01418: specified index does not exist

 

这终于是我期望的结果了,看来在生产中,index的online rebuild也要慎重使用。

您可能感兴趣的文档:

--结束END--

本文标题: 创建index 使用Online导致的问题

本文链接: https://www.lsjlt.com/news/45809.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C++使用泛型导致的膨胀问题
    目录临峰不畏博主从事C++软件开发多年,由于之前的开发环境都是资源充足的服务器,不用考虑磁盘空间的问题。最近打算在智能家居主机的嵌入式平台上使用C++进行开发。FLASH存储空间有限...
    99+
    2024-04-02
  • 使用Runtime调用Process.waitfor导致的阻塞问题
    目录1. 关于Runtime类的小知识2. Runtime的几个重要的重载方法3. Runtime的使用方式4. 卡死原因5. 解决方案6. Runtime最优雅的调用方式1. 关于...
    99+
    2024-04-02
  • 使用lombok的@Data会导致栈溢出StackOverflowError问题
    目录问题复现原因分析Obj1的hashCode方法Obj2的hashCode方法解决方案最近撸代码发现一个问题,使用lombok的@Data会导致栈溢出StackOverflowEr...
    99+
    2022-11-21
    lombok栈溢出 lombok的@Data 栈溢出StackOverflowError
  • 记一次CurrentDirectory导致的问题
    在编程中,CurrentDirectory是一个表示当前工作目录的属性。它指示了程序在运行时所在的目录。一次由CurrentDire...
    99+
    2023-09-15
    问题
  • Mysql导致CPU飙高的问题
    出现CPU飙高时操作 出现cpu飙高时使用先试用top命令查看进程,确定是java进程还是mysql 找到进程号 一、如果是mysql 1、那么使用mysql终端或者数据库链接工具执行如下sql语句...
    99+
    2023-09-03
    mysql java 数据库
  • 如何解决Mybatis导致的问题
    本篇内容介绍了“如何解决Mybatis导致的问题”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!背景前段时间...
    99+
    2024-04-02
  • 如何解决SAP WM Production Schedule Profile设置问题导致生产补货的TO单自动创建问题
    今天就跟大家聊聊有关如何解决SAP WM Production Schedule Profile设置问题导致生产补货的TO单自动创建问题,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。...
    99+
    2023-06-05
  • 使用Lombok@Builder注解导致默认值无效的问题
    目录@Builder注解导致默认值无效原因分析lombok@Builder忽略属性默认值的坑点1. 简单使用2. 默认值问题3. 修改属性值@Builder注解导致默认值无效 使用L...
    99+
    2024-04-02
  • python模块循环引用导致问题
    这个问题遇到几次了,代码写多了之后,莫名其妙报错。现在终于知道了是因为循环引用的问题。重现一下: # 文件名:module1.py from module2 import run def test(): pass if __nam...
    99+
    2023-01-31
    模块 python
  • Java中BigDecimal除法使用不当导致精度问题
    目录I. 问题抛出 II. 源码定位 1. 整形传参构造 2. 浮点传参 3. String传参 4. 小结在使用BigDecimal的除法时,遇到一个鬼畜的问题,本以为的精度计算,...
    99+
    2024-04-02
  • springmvc不进入Controller导致404的问题
    目录一.摘要二.出现404的分类以及会导致的原因1.启动项目后,无法访问主页出现的4042.项目启动并且成功进入主页后,访问其他页面出现的404三.分情况详细说明3.1.先附上并简单...
    99+
    2024-04-02
  • vip导致的serverConnection closed by foreign host问题
    VIP导致的"server connection closed by foreign host"问题可能是由以下几种情况导致的:1....
    99+
    2023-09-28
    问题
  • ADO Error导致的问题怎么解决
    这篇文章主要介绍“ADO Error导致的问题怎么解决”,在日常操作中,相信很多人在ADO Error导致的问题怎么解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ADO Error导致的问题怎么解决”的疑...
    99+
    2023-06-17
  • vue-cli创建项目时由esLint校验导致报错或警告的问题及解决
    目录vue-cli创建项目时由esLint校验导致报错或警告eslint语法限制项目报错解决vue-cli创建项目时由esLint校验导致报错或警告 vue-cli创建项目后编写代码...
    99+
    2024-04-02
  • C++的异常机制导致的crash问题
    问题背景 最近工作中遇到了一个非常奇怪的crash问题,反反复复分析了好久。由于保密原因,这里只记录一下分析思路,不会涉及到代码。 初步log分析 tombstone显示这是一个abort:Cmdline: /vendor/bin/hw/v...
    99+
    2023-09-20
    c++ linux android
  • MySQL为Null会导致的问题有哪些
    这篇文章主要介绍“MySQL为Null会导致的问题有哪些”,在日常操作中,相信很多人在MySQL为Null会导致的问题有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”My...
    99+
    2024-04-02
  • Java集合去重导致的线上问题
    目录前言:HashSet源码性能对比前言: 在工作中一次排查慢接口时,查到了一个函数耗时较长,最终定位到是通过 List 去重导致的。 由于测试环境还有线上早期数据较少,这个接口的性...
    99+
    2024-04-02
  • 调用Process.waitfor导致的进程挂起问题及解决
    目录问题背景问题描述挂起原因解决方法JDK上的说明背后的故事测试pipe的大小Linux上pipe分析问题背景 如果要在Java中调用shell脚本时,可以使用Runtime.exe...
    99+
    2024-04-02
  • 旧项目升级新版Unity2021导致Visual Studio无法使用的问题
    在项目开发过程中,不可避免的会升级开发工具。这次我在旧项目版本升级到新版Unity2021.2.x时,出现Visual Studio无法定位等问题。经过查阅资料将问题解决了,在这里为...
    99+
    2024-04-02
  • Go语言使用defer+recover解决panic导致程序崩溃的问题
    案例:如果我们起了一个协程,但这个协程出现了panic,但我们没有捕获这个协程,就会造成程序的崩溃,这时可以在goroutine中使用recover来捕获panic,进行处理,这样主...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作