Entradas

Mostrando entradas de mayo, 2009

ORA - 0600 - CONCEPTOS y EXPERIENCIA

El núcleo del Oracle plantea un ORA-00600 error inesperado cuando una condición inesperada se cumple en su funcionamiento normal. Un ORA-00600 error puede no ser necesariamente un error todo el tiempo y podría ser causado por diversas razones. Pueden incluir la falta de recursos de sistema operativo, los fallos de hardware y otras muchas cuestiones que dependen del sistema conductor. En muchos casos, el error ORA-00600 indica que la corrupción existente en la base de datos Oracle o puede ser una indicación de los acontecimientos que condujeron a los datos o base de datos a la corrupcion. Nosotros los administradores de oracle debemos tomar muy en serio los 0600 y reportarlos de inmediato a Oracle. Veamos ahora como deducir o darnos cuenta del tipo de 0600. ORA-00600: Cómo identificar que han tenido un ORA-00600 Cuando un error ORA-00600 se genera, al prinicio de la solicitud puede o no puede ver este error. Por lo tanto, el dba debe aplicar una alerta a la página de registro de seguim...

ORA -0600 [ksnpost : ksnigb]

Error que se debe al limite de inodos del sistema operativo Se tiene que modificar el valor de nofiles a 8192 se hace de la siguiente manera: 1.- Verificamos los valores actuales. > ulimit -a time(seconds) unlimited file(blocks) unlimited data(kbytes) unlimited stack(kbytes) 8192 coredump(blocks) unlimited nofiles(descriptors) 1024 vmemory(kbytes) unlimited 2.- luego cambiamos el valor rlim_fdmax en el /etc/system al número indicado (1024). 3.- para que haga efecto se debe hacer un reinicio del equipo. Aportado por Claudia Franco (dba Oracle Senior) Espero que les sirva.

ORA - 0600 [ttcgcshnd-1] [a]

Bueno aca nos encontramos con dos posibles soluciones... 1.- Este fucking error se da cuando se utiliza un cliente Jdbc anterior a la 9i para hablar con un 9i o post-9i, se verá una excepción ORA-600 en casi todo lo que haces. por ejemplo: ORA-600 [ttcgcshnd-1]. se debe a que no se esta usando un cliente exactamente igual al de la base de datos. Oracle comprueba que el conjunto de caracteres locales id es válido como parte del proceso para hacer las conversiones de datos de caracteres entre los distintos conjuntos de caracteres. Este error se plantea cuando el conjunto de caracteres de identificación se encuentra no se considere válido. ORA-600 [ttcgcshnd-1] [a]: El argumento [a] es local el conjunto de caracteres de identificación Solución: set event = "10841 trace name context forever" en el archivo init.ora. Para esto se deberia crear un BTP para incorporar esta linea en el init de la base. 2.- como segundo punto y quizas mas para tener en cuenta es lo que dice ...

Fragmentacion de Tablespaces.

Este script muestra los extents su ubicación dentro de los tablespace y a su vez permite ver la identificación de la fragmentación de los mismos. Aca se los dejo.. EXITOS !!! -- ----------------------------------------------------------------------------------- SET SERVEROUTPUT ON SIZE 1000000 SET FEEDBACK OFF SET TRIMOUT ON SET VERIFY OFF DECLARE CURSOR c_extents IS SELECT owner, segment_name, block_id AS start_block, block_id + blocks - 1 AS end_block FROM dba_extents WHERE tablespace_name = Upper('&1') ORDER BY block_id; v_last_block_id NUMBER := 0; BEGIN FOR cur_rec IN c_extents LOOP IF cur_rec.start_block > v_last_block_id + 1 THEN DBMS_OUTPUT.PUT_LINE('*** GAP ***'); END IF; v_last_block_id := cur_rec.end_block; DBMS_OUTPUT.PUT_LINE(RPAD(cur_rec.owner || '.' || cur_rec.segment_name, 40, ' ') || ' (' || cur_rec.start_block || ...

Top 10 de los queries que estan en memoria.

Este query muestra los 10 queries mas pesados en memoria.... esta piola porque podemos evaluarlo para ver ocupacion de SGA que nos eta matando al equipo o en su defecto la propia base. aca se los dejo.. EXITOS !!! -- ----------------------------------------------------------------------------------- -- Author : Fabian Crea - Cristian Mendoza -- Last Modified: 15/12/2007 -- ----------------------------------------------------------------------------------- SET LINESIZE 500 SET PAGESIZE 1000 SET VERIFY OFF SELECT * FROM (SELECT Substr(a.sql_text,1,50) sql_text, Trunc(a.disk_reads/Decode(a.executions,0,1,a.executions)) reads_per_execution, a.buffer_gets, a.disk_reads, a.executions, a.sorts, a.address FROM v$sqlarea a ORDER BY 2 DESC) WHERE rownum SET PAGESIZE 14