Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Oracle »

[SOLUCIONADO] Error: ORA-01654: unable to extend index USRREX_ADMIN.IDX_001 by 128 in tablespace

Estas en el tema de Error: ORA-01654: unable to extend index USRREX_ADMIN.IDX_001 by 128 in tablespace en el foro de Oracle en Foros del Web. Buenas, Tengo la siguiente tabla: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original -------------------------------------------------------- -- Archivo creado  - viernes-junio-02-2015   -------------------------------------------------------- -------------------------------------------------------- --  DDL for Table CONTRIBUYENTESUNAT ...
  #1 (permalink)  
Antiguo 05/06/2015, 19:29
 
Fecha de Ingreso: octubre-2014
Ubicación: Lima
Mensajes: 74
Antigüedad: 9 años, 6 meses
Puntos: 1
Error: ORA-01654: unable to extend index USRREX_ADMIN.IDX_001 by 128 in tablespace

Buenas,
Tengo la siguiente tabla:
Código SQL:
Ver original
  1. --------------------------------------------------------
  2. -- Archivo creado  - viernes-junio-02-2015  
  3. --------------------------------------------------------
  4. --------------------------------------------------------
  5. --  DDL for Table CONTRIBUYENTESUNAT
  6. --------------------------------------------------------
  7.  
  8.   CREATE TABLE "USRREX_ADMIN"."CONTRIBUYENTESUNAT"
  9.    (    "RUC" VARCHAR2(11 BYTE),
  10.     "NOMBRERAZONSOCIAL" VARCHAR2(120 BYTE),
  11.     "ESTADOCONTRIBUYENTE" VARCHAR2(20 BYTE),
  12.     "CONDICIONDOMICILIO" VARCHAR2(20 BYTE),
  13.     "UBIGEO" NUMBER(6,0),
  14.     "TIPOVIA" VARCHAR2(6 BYTE),
  15.     "NOMBREVIA" VARCHAR2(250 BYTE),
  16.     "CODIGOZONA" VARCHAR2(5 BYTE),
  17.     "TIPOZONA" VARCHAR2(200 BYTE),
  18.     "NUMERO" VARCHAR2(21 BYTE),
  19.     "INTERIOR" VARCHAR2(10 BYTE),
  20.     "LOTE" VARCHAR2(5 BYTE),
  21.     "DEPARTAMENTO" VARCHAR2(6 BYTE),
  22.     "MANZANA" VARCHAR2(8 BYTE),
  23.     "KILOMETRO" VARCHAR2(10 BYTE)
  24.    ) SEGMENT CREATION IMMEDIATE
  25.   PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  26.   STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  27.   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  28.   TABLESPACE "TSREX_DAT" ;
  29. --------------------------------------------------------
  30. --  DDL for Index IDX_001
  31. --------------------------------------------------------
  32.  
  33.   CREATE UNIQUE INDEX "USRREX_ADMIN"."IDX_001" ON "USRREX_ADMIN"."CONTRIBUYENTESUNAT" ("RUC")
  34.   PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
  35.   STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  36.   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  37.   TABLESPACE "TSREX_IDX" ;
  38. --------------------------------------------------------
  39. --  Constraints for Table CONTRIBUYENTESUNAT
  40. --------------------------------------------------------
  41.  
  42.   ALTER TABLE "USRREX_ADMIN"."CONTRIBUYENTESUNAT" ADD PRIMARY KEY ("RUC")
  43.   USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
  44.   STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  45.   PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  46.   TABLESPACE "TSREX_IDX"  ENABLE;

Un procedimiento tira el siguiente error cuando una aplicación intenta insertar:
ORA-01654: unable to extend index
USRREX_ADMIN.IDX_001 by 128 in tablespace TSREX_IDX
ORA-06512: at "USRREX_ADMIN.PKG_CONTRIBUYENTESUNAT", line 56
ORA-06512: at line 1


Favor su apoyo, muchas gracias,
Saludos,
  #2 (permalink)  
Antiguo 06/06/2015, 10:54
 
Fecha de Ingreso: octubre-2014
Ubicación: Lima
Mensajes: 74
Antigüedad: 9 años, 6 meses
Puntos: 1
Respuesta: Error: ORA-01654: unable to extend index USRREX_ADMIN.IDX_001 by 128 in ta

Pude solucionarlo tuve que darle mayor capacidad a un datafile del tablespace TSREX_IDX.

Código SQL:
Ver original
  1. ALTER DATABASE datafile '/oracle/oradata/datafiles/TSREX_IDX.dbf'
  2. resize 1024M;

Ahora mi duda es, no sé cuanto es el tamaño recomendable para los datafiles de datos e índices, yo lo he puesto de la siguiente manera:

Tablespace para datos (TSREX_DAT), tiene 3 datafiles asociados, cada uno de 3072MB (3GB) de capacidad

Tablespace para índices (TSREX_IDX), tiene 3 datafiles asociados, cada uno de 1024MB (1GB) de capacidad

Veo que una tabla que tenga asignado estos tablespaces se tona lenta al hacerle un select,aún cuando no contenga data.

Quizás haya algunas recomendaciones sobre los tamaños que deban tener los datafiles, imagino que alguien dirá "depende de la cantidad de data que vaya a almacenarse y la frecuencia con que se hagan transacciones sobre ella", imagino que sí, pero me preguntaba también si es mejor tener varios datafiles de diferentes tamaños a tener uno sólo de un gran tamaño o me equivoco??

Favor su apoyo alguien que domine estos menesteres,

Muchas gracias, saludos.

Última edición por eduar2083; 06/06/2015 a las 17:06
  #3 (permalink)  
Antiguo 09/06/2015, 07:26
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 5 meses
Puntos: 85
Respuesta: Error: ORA-01654: unable to extend index USRREX_ADMIN.IDX_001 by 128 in ta

Hay un muchas recomendaciones diferentes para los datafiles, empezando por lo más básico, si tienes un solo disco físico y haces backups en frío (shutdown de la base y copia de datafiles) o backups lógicos (export), tener un datafile o varios por tablespace no hace la diferencia.

La lentitud del select sobre la tabla, y más si esta vacía, tiene un porcentaje de probabilidad muy bajo de estar relacionado con la cantidad de datafiles.

Por último una recomendación, pone los datafiles en autoextend con limite de tamaño final, no tiene sentido que se pare la producción y necesitar intervención humana para asignar espacio a la base.

Saludos
  #4 (permalink)  
Antiguo 13/06/2015, 08:10
 
Fecha de Ingreso: octubre-2014
Ubicación: Lima
Mensajes: 74
Antigüedad: 9 años, 6 meses
Puntos: 1
Respuesta: Error: ORA-01654: unable to extend index USRREX_ADMIN.IDX_001 by 128 in ta

Gracias matanga por responder.
Me preguntaba si la característica de autoextensible pertenece al tablespace y no a los datafiles, creo que a los datafiles sólo se les puede indicar el tamaño inicial que tendrán y la capacidad de extenderse o no y hasta qué tamaño máximo pueden hacerlo, lo toman según la configuración de su tablespace.
He creado nuevamente el tablespace de la siguiente manera:
Código SQL:
Ver original
  1. CREATE tablespace ts_rx_dat
  2. datafile '/oracle/oradata/datafiles/DF_RX_DAT.dbf'
  3. SIZE 1024M
  4. autoextend ON
  5. NEXT 200K
  6. maxsize 3072M;
Investigando por ahí, encontré otra forma de crear un tablespace extensible pero sin indicarle el tamaño máximo, imagino que en este caso los datafiles crecerán hasta ocupar todo el espacio del disco en el cual se encuentran.
Código SQL:
Ver original
  1. CREATE tablespace "TS_RX_DAT" logging
  2. datafile '/oracle/oradata/datafiles/DF_RX_DAT.dbf'
  3. SIZE 1024M
  4. extent management LOCAL segment
  5. SPACE management auto;
Favor si pudieran orientarme en lo que quizás pueda estar equivocado en lo que investigué.

Muchas gracias, saludos cordiales.
  #5 (permalink)  
Antiguo 15/06/2015, 07:25
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 5 meses
Puntos: 85
Respuesta: Error: ORA-01654: unable to extend index USRREX_ADMIN.IDX_001 by 128 in ta

Todo esto está en la documentación, tendrías que leer sobre la administración de espacio dentro de la base, los conceptos y ejemplos básicos son:

Código SQL:
Ver original
  1. CREATE tablespace "TS_RX_DAT"
  2. datafile
  3. '/oracle/oradata/datafiles/DF_RX_DAT_01.dbf' SIZE 1024M autoextend ON NEXT 512k maxsize 5G,
  4. '/oracle/oradata/datafiles/DF_RX_DAT_02.dbf' SIZE 1024M autoextend off
  5. extent management LOCAL
  6. segment SPACE management auto;

Donde, size, autoextend, next y maxsize son propiedades del datafile y extent management local y segment space management auto son propiedades del tablespace.

Saludos

Etiquetas: index, table, tablespace, unable
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:47.