Hola amigos,
Quería que me orienten en lo sgte.
Hay una particion que se llena al mes o menos. Pero veo que la redo y redo2 estan casi libres.
Como puedo decirle al sistema que quiero que cuando se llene esa particion "/osp/sesmf" comienze a escribir en "/osp/sesmf/db/redo" y luego cuando se llene esta escriba en "/osp/sesmf/db/redo2".
Se desea poder guardar 3 meses de datos, por ello se quiere usar esos directorios con poco uso.
Tengo la sgte secuencia pero no estoy seguro..por ello requiero ayuda
1) sql>select file#, name from v$datafile;
obtengo el datafile que se esta quedando sin espacio, digamos /osp/sesmf.dbf
2) sql>shutdown immediate;
3) sql>alter database add datafile '/osp/sesmf/db/redo.dbf" to "/osp/sesmf/db/redo2.dbf" ?????
lis102 linus> df -k
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/cciss/c0d0p3 7754160 1871564 5482348 26% /
/dev/cciss/c0d0p7 11627168 238140 10788864 3% /tmp
/dev/cciss/c0d0p6 11627168 383368 10643636 4% /var
/dev/cciss/c0d0p2 75679908 9574404 62199108 14% /osp
/dev/cciss/c0d0p1 972168 34548 887440 4% /boot
tmpfs 8153920 0 8153920 0% /dev/shm
/dev/mapper/vg--sesmf-lvol--sesmf
281632596 195372608 71953892 74% /osp/sesmf <-----cada 30 dias o menos se llena
/dev/mapper/vg--redo-lvol--redo
287405472 605620 272200480 1% /osp/sesmf/db/redo <--al 1%, Se desea utilizar
/dev/mapper/vg--redo2-lvol--redo2
287405472 605620 272200480 1% /osp/sesmf/db/redo2 <--al 1% Se desea utilizar
/dev/mapper/vg--archive-lvol--archive
281632596 191580 267134920 1% /osp/sesmf/db/archive
Uno de los errores visto es asi :
Oracle error "Oracle ERROR:-1688" stopped pegging after having resized the tablespace "NXTSTE_TS0082".
sqlca.sqlerrm.sqlerrmc=ORA-01688: unable to extend table NXTSTE.TICKET_P partition ECD_190920
TABLESPACE_NAME FILE_ID TOTAL_BYTES BYTES_USED BYTES_FREE PCT_USED STATUS
---------------------- ---------- ----------- ---------- ---------- ---------- -------
FILE_NAME
------------------------------------------------------------
NXTSTE_TS0082 173 1073741824 1064370176 9371648 99.13 ONLINE
/osp/sesmf/db/data/nxtste/hb113_ticket_nxtste_TS0082_0163.dbf
NXTSTE_TS0082 174 747634688 720437248 27197440 96.36 ONLINE
/osp/sesmf/db/data/nxtste/hb113_ticket_nxtste_TS0082_0164.dbf
TableSpace Name MB Allocated MB Used MB Free Pct Used Pct Free
NXTSTE_TS0001 1737 700 37 97.88 2.12
NXTSTE_TS0002 2048 1700 348 83.01 16.99
NXTSTE_TS0003 2048 1699 349 82.97 17.03
NXTSTE_TS0004 1737 1700 37 97.88 2.12
NXTSTE_TS0005 1737 1701 36 97.93 2.07
NXTSTE_TS0006 1737 1704 33 98.11 1.89
NXTSTE_TS0007 1737 1700 37 97.88 2.12
NXTSTE_TS0082 2048 1995 53 97.42 2.58
NXTSTE_TS0083 2737 2646 91 96.68 3.32
NXTSTE_TS0084 2648 2580 68 97.44 2.56
NXTSTE_TS0085 3072 3021 51 98.35 1.65
NXTSTE_TS0086 3072 2956 116 96.23 3.77
NXTSTE_TS0087 3072 2939 133 95.68 4.32
Cualquier ayuda será bienvenida
Gracias
Alv
Etiquetas:
Vínculo permanente Respuesta de Erik Olave el octubre 5, 2012 a las 5:38pm Buenas Tardes amigo.
El error nos muestra claramente que el tablespaces (NXTSTE_TS0082) se ha quedado sin espacio.
Lo primero que debes validar es si tienes espacio suficiente en disco para ampliar el tablespaces afectado. En caso de que tengas espacio suficiente en disco, debes agregar nuevos datafiles de la siguiente manera:
Por ejemplo, para agregar un nuevo datafile de 1GB:
ALTER TABLESPACE NXTSTE_TS0082 ADD DATAFILE '/osp/sesmf/db/redo2.dbf ' SIZE 1024M AUTOEXTEND OFF;
Por otra parte, como ya tienes identificado el datafile que se quedó sin espacio, te recomiendo ubicar los objetos que contiene dicho datafile con la siguiente consulta:
SELECT distinct segment_type, owner, segment_name
FROM dba_extents
WHERE file_id = (select file_id from dba_data_files where file_name='/osp/sesmf/db/redo.dbf')
En este sentido, si la mayoría son tablas particionadas puedes depurar las particiones mas viejas o aquellas que ya no necesites. De esta manera también liberas espacio.
Saludos Cordiales.
Hola Erick,
Habia contruido la sgte sentencias antes de recibir tu ayuda, la cual agradesco desde ya.
Podrías darle un vistazo e indicar los errores q puedas ver?
Gracias
1)To Generate the tablespace report:
SQL>select a.tablespace_name,
round(a.bytes_alloc / 1024 / 1024, 0) total_mb,
round((a.bytes_alloc-b.bytes_free)/1024/1024,0) mb_used,
round(nvl(b.bytes_free, 0) / 1024 / 1024, 0) mb_free,
round((nvl(b.bytes_free, 0) / a.bytes_alloc) * 100,2) Pct_Free
from ( select f.tablespace_name,
sum(f.bytes) bytes_alloc,
sum(decode(f.autoextensible, 'YES',f.maxbytes,'NO', f.bytes)) maxbytes
from dba_data_files f
group by tablespace_name) a,
( select f.tablespace_name,
sum(f.bytes) bytes_free
from dba_free_space f
group by tablespace_name) b
where a.tablespace_name = b.tablespace_name (+)
order by pct_free ;
Identify the datafile in tablespace output generate by above sentence, lets say is this as example :
/osp/sesmf/db/data/nxtste/
2)SQL> alter tablespace ‘osp/sesmf/db/nxtste’ add datafile ‘/osp/sesmf/db/redo.dbf’ autoextend on;
3)SQL> alter tablespace ‘osp/sesmf/db/nxtste’ add datafile ‘/osp/sesmf/db/redo2.dbf’ autoextend on;
Nuevamente muchas gracias
Alv
Vínculo permanente Respuesta de Anibal G. Garcia Soto el octubre 7, 2012 a las 3:26am 3 pequeñas observaciones
[A]. Estan el mismo espacio de almacenamiento los redo logs y los datafiles (/ops/sesmf/db)? ( MALA IDEA) esto incrementara el tiempo del Logwriter y tus waits empezaran a consumir mas y mas tiempo a medida que crecen los datafiles , ademas que los checkpoints tomaran mas tiempo.
[B] Esta es una base de datos con ASM ? ( Casi seguro que no ) has revisado las marcas de agua de las tablas / indices , probablemente un coalesce o un shrink en algun cosa pueda ayudar. Como medidas desesperadas los rebuild indexes ahorraran un poco de espacio.
[C] Realizar una planificacion de consumo de recursos disco/Memoria/CPU/Network/Cintas Backup ( Capacity Plan), es una muy buena herramienta para mostrar lo util que los DBA podemos ser. Recetas para mostrar cuanto esta cosumido en disco existen muchas , no inventes el agua azucarada observa la vista ( DBA_TABLESPACE_USAGE_METRICS la columna USED_PERCET). Mi preferencia particular es no crear datafiles con autoextend on , pues pierdo la uniformidad de los datafiles ( Escencial cuando quieres repartir la carda de trabajo de lectura y escritura , ademas que en las operaciones en paralelo no es optimo tener los datafiles de distinto tamaño)
Vínculo permanente Respuesta de Mario Arenas C. el noviembre 30, 2012 a las 4:35pm Creo que la mejor forma de manejar el escenario, es vía ASM. Es de fácil implementación bajo las nuevas versiones, y permite la nivelación de carga y distribucion deseada.
Obviamente, se debe intentar dejar data de redo o acciones del motor, en forma separada, sino la contención será la misma.
Saludos.
Bienvenido a
Comunidad Oracle Hispana
© 2013 Creado por Fernando Garcia.