AUMENTAR PARÁMETRO DE LA SGA | ORACLE PERFORMANCE

Posted by josefabre | Posted in Administración, Base de Datos, Noticias, Oracle, Proyectos, Refundation, Software Libre, Tips, Unix/Linux | Posted on 09-07-2015

3

AUMENTAR PARÁMETRO DE LA SGA
Hoy vamos a enseñar a aumentar el parámetro SGA de la base de datos Oracle, esto surgido por un problema al momento de generar un export.

[localhost@oracle ~]$ expdp full=y dumpfile=fulldb.dmp logfile=fulldb.log directory=EXPORT system/pasword

Export: Release 10.2.0.1.0 – Production on Tuesday, 16 December, 2008 17:07:44

Copyright (c) 2003, 2005, Oracle. All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Production
With the Partitioning, OLAP and Data Mining options
FLASHBACK automatically enabled to preserve database integrity.
Starting “SYSTEM”.”SYS_EXPORT_FULL_02″: full=y dumpfile=fulldb.dmp directory=d userid=system/********
Estimate in progress using BLOCKS method…
Processing object type DATABASE_EXPORT/SCHEMA/TABLE/TABLE_DATA
ORA-39125: Worker unexpected fatal error in KUPW$WORKER.GET_TABLE_DATA_OBJECTS while calling DBMS_METADATA.FETCH_XML_CLOB []
ORA-04031: unable to allocate 28 bytes of shared memory (“shared pool”,”SELECT /*+rule*/ SYS_XMLGEN(…”,”sql area”,”ub1[]: qkexrXformVal”)

ORA-06512: at “SYS.DBMS_SYS_ERROR”, line 95
ORA-06512: at “SYS.KUPW$WORKER”, line 6235

—– PL/SQL Call Stack —–
object line object
handle number name
64E077B4 14916 package body SYS.KUPW$WORKER
64E077B4 6300 package body SYS.KUPW$WORKER
64E077B4 9120 package body SYS.KUPW$WORKER
64E077B4 1880 package body SYS.KUPW$WORKER
64E077B4 6861 package body SYS.KUPW$WORKER
64E077B4 1262 package body SYS.KUPW$WORKER
64CB4398 2 anonymous block

Job “SYSTEM”.”SYS_EXPORT_FULL_02″ stopped due to fatal error at 17:08:03

La causa del error

El error ORA-04031, Oracle hace un barrido del espacio de memoria de objetos que ya no están en uso , si aun así no existe suficiente espacio disponible para satisfacer la solicitud devuelve este error.

Solución

la solución es aumentar el parámetro SGA.

Nota: Para esto deben tomar en cuenta que su base debe estar in-disponible ya que se debe reiniciar.

SQL> show parameter sga_t

NAME TYPE VALUE
———————————— ———– ——————————
sga_target big integer 772M

SQL> show parameter sga_max

NAME TYPE VALUE
———————————— ———– ——————————
sga_max_size big integer 800M

En la configuracón la SGA_TARGET de pende de la SGA_MAX_SIZE asi que debemos cambiar ambas para que tenga el efecto esperado.

SQL> alter system set sga_max_size=900M scope=spfile;

System altered.

SQL> alter system set sga_target=950M scope=spfile;

System altered.

SQL> startup force
ORACLE instance started.

Total System Global Area 314572800 bytes
Fixed Size 1248768 bytes
Variable Size 96469504 bytes
Database Buffers 209715200 bytes
Redo Buffers 7139328 bytes
Database mounted.
Database opened.

SQL> show parameter sga_target

NAME TYPE VALUE
———————————— ———– ——————————
sga_target big integer 900M

 

Referencia -> http://oracle-facil.blogspot.com/

Auditoria en Oracle 11g

Posted by josefabre | Posted in Administración, Aplicaciones, Base de Datos, Oracle, Proyectos, Software Libre, Unix/Linux | Posted on 15-05-2014

Tags: , ,

4

AUDITORIA EN ORACLE

VERSIÓN: 11G




  1. Auditoria informática
  2. Auditoria en Oracle
  3. Tablas y Vistas
  4. Comprobar activación de auditoria
  5. Comandos audit y noaudit
  6. Consultas de auditoria
  7. Descripción de tablas de auditoria

Auditoria informática

Consiste en recoger, agrupar y evaluar evidencias para determinar si un sistema de información salvaguarda el activo empresarial, mantiene la integridad de los datos, lleva a cabo eficazmente los fines de la organización, utiliza eficientemente los recursos, y cumple con las leyes y regulaciones establecidas.

Auditoria para Oracle

En el caso de Oracle, la auditoría es un conjunto de características que permite al administrador de la base de datos y a los usuarios hacer un seguimiento del uso de la base de datos. El administrador de base de datos puede definir la actividad de auditoría predeterminada. La información de las auditorías se almacena en el diccionario de datos, en la tabla SYS.AUD$ o en la pista de auditoría del sistema operativo (si lo permite). Lo anterior viene definido en el parámetro audit_trail.

Se pueden auditar tres tipos de acciones: intentos de inicio de sesión, accesos a objetos y acciones de la base de datos. Cuando se realizan auditorías, la funcionalidad de la base de datos es dejar constancia de los comandos correctos e incorrectos. Esto puede modificarse cuando se configura cada tipo de auditoría.

 Tablas y Vistas

Oracle almacena en la tabla SYS.AUD$ o en la pista de auditoría del sistema operativo (si lo permite).

Existen varias vistas que se usan para ayudar a la extracción de los datos  deseado en una auditoria en esta tabla (SYS.AUD$).

  • ALL_AUDIT_POLICIES
  • ALL_AUDIT_POLICY_COLUMNS
  • ALL_DEF_AUDIT_OPTS
  • ALL_REPAUDIT_ATTRIBUTE
  • ALL_REPAUDIT_COLUMN
  • APEX_DEVELOPER_AUDIT_LOG
  • DBA_AUDIT_EXISTS
  • DBA_AUDIT_OBJECT
  • DBA_AUDIT_POLICIES
  • DBA_AUDIT_POLICY_COLUMNS
  • DBA_AUDIT_SESSION
  • DBA_AUDIT_STATEMENT
  • DBA_AUDIT_TRAIL
  • DBA_COMMON_AUDIT_TRAIL
  • DBA_FGA_AUDIT_TRAIL
  • DBA_OBJ_AUDIT_OPTS
  • DBA_PRIV_AUDIT_OPTS
  • DBA_REPAUDIT_ATTRIBUTE
  • DBA_REPAUDIT_COLUMN
  • DBA_STMT_AUDIT_OPTS
  • GV_$XML_AUDIT_TRAIL
  • KU$_AUDIT_DEFAULT_VIEW
  • KU$_AUDIT_OBJ_BASE_VIEW
  • KU$_AUDIT_OBJ_VIEW
  • KU$_AUDIT_VIEW
  • KU$_PROC_AUDIT_VIEW
  • KU$_PROCDEPOBJ_AUDIT_VIEW
  • KU$_PROCOBJ_AUDIT_VIEW
  • KU$_10_1_AUDIT_VIEW
  • MGMT$AUDIT_LOG
  • MGMT$ESA_AUDIT_SYSTEM_REPORT
  • SM$AUDIT_CONFIG
  • USER_AUDIT_OBJECT
  • USER_AUDIT_POLICIES
  • USER_AUDIT_POLICY_COLUMNS
  • USER_AUDIT_SESSION
  • USER_AUDIT_STATEMENT
  • USER_AUDIT_TRAIL
  • USER_OBJ_AUDIT_OPTS
  • USER_REPAUDIT_ATTRIBUTE
  • USER_REPAUDIT_COLUMN
  • V_$XML_AUDIT_TRAIL
Estas vistas se pueden ver ejecutando la consulta SQL:

SELECT view_name
FROM dba_views
WHERE view_name LIKE ‘%AUDIT%’
ORDER BY view_name

Las principales son:

– DBA_AUDIT_OBJECT: guarda la información relativa a la auditoría de



– DBA_AUDIT_SESSION: guarda la información relativa a la auditoría de los inicios de sesión de los usuarios.



– DBA_AUDIT_TRAIL: muestra la auditoría estándar (de la tabla AUD$)



– USER_AUDIT_TRAIL: muestra la auditoría estándar (de la tabla AUD$) relativa al usuario actual



– DBA_FGA_AUDIT_TRAIL: muestra información de auditoría de grano fino (obtenida de FGA_LOG$). La auditoría de grano fino (FGA) extiende la auditoría estándar y, además, captura la sentencia SQL que ha sido ejecutada.


Nota: Todo lo anterior estará condicionado al tipo de auditoría que se haya establecido para la base de datos Oracle,

Comprobar activación de auditoría

La activación de la auditoría en Oracle  viene definida por el valor del parámetro: audit_trail.

Para comprobar si la auditoría de la base de datos está activa ejecutamos el siguiente query :

select name, value
from v$parameter
where name like ‘audit_trail’
Valores:

– none: desactiva la auditoría de la base de datos.



– os: activa la auditoría de la base de datos. Los sucesos auditados se escribirán en la pista de auditoría del sistema operativo, no se auditará en Oracle sino en el sistema operativo anfitrión. Esta opción funcionará dependiendo del sistema operativo.



– db: activa la auditoría y los datos se almacenarán en la taba SYS.AUD$ de Oracle.



– db, extended: activa la auditoría y los datos se almacenarán en la taba SYS.AUD$ de Oracle. Además se escribirán los valores correspondientes en las columnas SQLBIND y SQLTEXT de la tabla SYS.AUD$.



– xml: activa la auditoría de la base de datos, los sucesos será escritos en ficheros XML del sistema operativo.



– xml, extended: activa la auditoría de la base de datos, los sucesos será escritos en el formato XML del sistema operativo, además se incluirán los valores de SqlText y SqlBind.


Activa la auditoria
ALTER SYSTEM SET audit_trail = “DB” SCOPE=SPFILE;
Desactivar la auditoria
ALTER SYSTEM SET audit_trail = “NONE” SCOPE=SPFILE;
Nota: En Oracle 11g la auditoria viene activada por defecto, el valor del parámetro “audit_trail” está a “DB”.

Comandos audit y noaudit

Audit

Este comando puede funcionar aunque no esté activada la auditoría de la base de datos. Pero no dejara registro alguno guardado.

Auditorías de inicio de sesión

audit session;

Nota: Auditará tanto los intentos fallidos como los aciertos.

             Sólo los intentos fallidos : audit session whenever not successful;

             Sólo los intentos fallidos : audit session whenever  successful;


Auditorías de acción

Nota: Cualquier acción que afecte a un objeto de la base de datos (tabla, enlace de base de datos, espacio de tablas, sinónimo, segmento de anulación, usuario, índice, etc.) puede auditarse

audit role; 

Nota: Este comando activará la auditoría de las acciones: create rolealter roledrop role y set role.
Auditar a un usuario al realizar la acción “update” :

audit update table by nombre_usuario;



Auditorías de objeto


Auditar las acciones de manipulación de datos sobre objetos.

Por ejemplo, para auditar los “insert” realizados sobre una  tabla:

audit insert on <TABLA> by access;


Nota: al indicar “by access” hay que tener cuidado pues registrará un suceso de auditoría por cada insert, esto puede afectar al rendimiento. De ser así siempre será mejor optar por “by session” que sólo registrará un suceso de auditoría por sesión, aunque es menos exaustivo.

Sintaxis
AUDIT { sql_statement_clause | schema_object_clause | NETWORK } [ BY { SESSION | ACCESS } ] [ WHENEVER [ NOT ] SUCCESSFUL ] ; 
  • sql_statement_clause: activa la auditoría para una sentencia SQL concreta.
  • schema_object_clause: activa la auditoría para un objeto concreto de la base de datos.
  • WHENEVER SUCCESSFUL: activa la auditoría sólo para operaciones e instrucciones SQL en objetos de esquema que se completen con éxito.
  • WHENEVER NOT SUCCESSFUL: activa la auditoría sólo para operaciones e instrucciones SQL en objetos de esquema que originen error.


Noaudit

La instrucción noaudit se utiliza para detener la actividad de auditoría que se había activado previamente con la instrucción audit.

La instrucción noaudit debe tener la misma sintaxis que la instrucción audit que queramos detener.

Por ejemplo, si hemos auditado un usuario con:

audit session by alonso;

Auditará los inicios de sesión para el usuario de Oracle “alonso”, tanto los fallidos como los correctos. Para desactivar esta auditoría ejecutaremos el comando:
noaudit session by alonso;


Sintaxis

NOAUDIT { sql_statement_clause | schema_object_clause | NETWORK} [ WHENEVER [ NOT ] SUCCESSFUL ] ;  
  • sql_statement_clause: detiene la auditoria de una sentencia SQL concreta.
  • schema_object_clause: detiene la auditoría para un objeto concreto de la base de datos.
  • WHENEVER SUCCESSFUL: detiene la auditoría sólo para operaciones e instrucciones SQL en objetos de esquema que se completen con éxito.
  • WHENEVER NOT SUCCESSFUL: detiene la auditoría sólo para operaciones e instrucciones SQL en objetos de esquema que originen error.

Consultas de auditoria

  • Auditoria en inicio de sesión :
    select OS_Username Usuario_SO, Username Usuario_Oracle, Terminal ID_Terminal, DECODE (Returncode, '0', 'Conectado', '1005', 'Fallo - Null', 1017, 'Fallo', Returncode) Tipo_Suceso, TO_CHAR(Timestamp, 'DD-MM-YY HH24:MI:SS') Hora_Inicio_Sesion, TO_CHAR(Logoff_Time, 'DD-MM-YY HH24:MI:SS') Hora_Fin_Sesion from DBA_AUDIT_SESSION;
  • Auditoria por acción :
    select OS_Username Usuario_SO, Username Usuario_Oracle, Terminal ID_Terminal, Owner Propietario_Objeto, Obj_Name Nombre_Objeto, Action_Name Accion, DECODE (Returncode, '0', 'Realizado', 'Returncode') Tipo_Suceso, TO_CHAR (Timestamp, 'DD-MM-YY HH24:MI:SS') Hora from DBA_AUDIT_OBJECT;

    Descripción de tablas de auditoria

    Estructura de la tabla SYS.AUD$:

Campo Tipo de datos Tamaño Permite nulos
SESSIONID NUMBER 22 N
ENTRYID NUMBER 22 N
STATEMENT NUMBER 22 N
TIMESTAMP# DATE 7 Y
USERID VARCHAR2 30 Y
USERHOST VARCHAR2 128 Y
TERMINAL VARCHAR2 255 Y
ACTION# NUMBER 22 N
RETURNCODE NUMBER 22 N
OBJ$CREATOR VARCHAR2 30 Y
OBJ$NAME VARCHAR2 128 Y
AUTH$PRIVILEGES VARCHAR2 16 Y
AUTH$GRANTEE VARCHAR2 30 Y
NEW$OWNER VARCHAR2 30 Y
NEW$NAME VARCHAR2 128 Y
SES$ACTIONS VARCHAR2 19 Y
SES$TID NUMBER 22 Y
LOGOFF$LREAD NUMBER 22 Y
LOGOFF$PREAD NUMBER 22 Y
LOGOFF$LWRITE NUMBER 22 Y
LOGOFF$DEAD NUMBER 22 Y
LOGOFF$TIME DATE 7 Y
COMMENT$TEXT VARCHAR2 4000 Y
CLIENTID VARCHAR2 64 Y
SPARE1 VARCHAR2 255 Y
SPARE2 NUMBER 22 Y
OBJ$LABEL RAW 255 Y
SES$LABEL RAW 255 Y
PRIV$USED NUMBER 22 Y
SESSIONCPU NUMBER 22 Y
NTIMESTAMP# TIMESTAMP(6) 11 Y
PROXY$SID NUMBER 22 Y
USER$GUID VARCHAR2 32 Y
INSTANCE# NUMBER 22 Y
PROCESS# VARCHAR2 16 Y
XID RAW 8 Y
AUDITID VARCHAR2 64 Y
SCN NUMBER 22 Y
DBID NUMBER 22 Y
SQLBIND CLOB 4000 Y
SQLTEXT CLOB 4000 Y
OBJ$EDITION VARCHAR2 30 Y

Tecnología en tiempos de crisis

Posted by Paola Pullas | Posted in Management, Noticias, Opinión, Proyectos, Refundation, Software Libre | Posted on 23-01-2009

Tags: , , , , , ,

1

codeforfood

Leía recientemente en un blog de una ex profesora mía de la Universidad en la que se comenta que en tiempos de crisis tenemos dos opciones una no mencionable siquiera: vivir sin tecnología y otra que los directores de tecnología no deberían tomar en cuenta, que es recurrir a la piratería de programas que claramente deberían ser licenciados.

Lo que se propone en el post que leí es recurrir a la utilización de software libre como única alternativa, en lo cual estoy completamente en desacuerdo, pues simplemente es una de tantas y no siempre el retorno sobre la inversión es elevado, y, ¿por qué lo menciono? porque yo me planteé la siguiente pregunta: ¿Qué pasa con las empresas que no quieren esta alternativa o no pueden considerarla como una opción?, ¿Tienen alternativas reales para enfrentar la crisis?, o simplemente deben quedar aisladas, ¿Qué pasa con aquellos que ya tienen inversiones hechas o le han apostado a ciertos productos propietarios?.

Para responder estas preguntas se me hace necesario mencionar los hallazgos del segundo reporte anual State of the Data Center de Symantec el cual muestra claramente que las companías están obligando a que los encargados de las áreas de IT hagan más con menos recursos, que quiere decir esto, pues que las aplicaciones, servidores y sistemas de almacenamiento continúan creciendo a la par de los requerimientos de los usuarios, pero el problema es que se cuenta con menos recursos monetarios para cubrir las necesidades de ésta área en contínuo crecimiento. Estos hallazgos son el resultado de una entrevista que Symantec hace a 1,600 companías a nivel mundial.

Obviamente me dirán: pero si la encuesta se la hace a grandes empresas y nuestra realidad general es otra, y bueno, la respuesta es si, se la hizo a empresas con más de 5,000 empleados, una media de 500 personas dedicadas al área de IT y entre 30 a 49 data centers (oh!!), pero pregunto: ¿Acaso la realidad en las empresas más pequeñas no es la misma?, ¿Acaso no ha comenzado el año con una larga lista de nuevos proyectos, pero sin los recursos necesarios para completarlos?. En base a esto creo que el reporte y sus hallazgos son completamente útiles para todos.

Ahora que iniciativas me han parecido buenas:

a) Outsourcing: El reporte muestra que a nivel mundial casi la mitad de las companías recurren al ourtsourcing de tareas. Esto nos indica que esta es una alternativa viable en tiempos de crisis que puede ayudar a su companía a ser más efectiva y reducir costos ya que el outsourcing le permitirá contar con un staff altamente capacitado a su servicio.

b) Capacitación: De acuerdo al reporte los 2/3 de los encuestados consideran a la capacitación como una actividad estratégica. Esto nos indica que las organizaciones están en busca de personal más capacitado que les permita ahorrar costos y emprender en nuevos proyectos sin correr riesgos y desperdiciar recursos por falta de conocimiento.

c) Consolidación y Virtualización de Servidores: El reporte muestra que casi todos los encuestados en América buscan una solución de estandarización y administración efectiva. Las soluciones clave son la consolidación y virtualización que permitirán que su companía pueda ahorrar costos al tener ambientes integrados y fácilmente administrables, lo que incluso le permitirá reducir tiempos de downtime altamente costosos para las organizaciones.

d) Recuperación ante desastres: De acuerdo al reporte el 27% dice que necesita trabajar en sus esquemas de recuperación ante desastres y el 9% reporta que su plan es informal o no cuenta con documentación, si lo sumamos casi el 40% de las companías encuestadas estaría en riesgo de perder su información. Esto nos da la pauta para pensar en que no podemos encargar nuestros procesos de recuperación a sistemas informales o no probados aún y es mejor invertir en software, capacitación y delineamientos estrictos que nos permitan actuar ante una emergencia. Es seriamente riesgoso no contar con un plan de recuperación y más aún altamente costoso para las organizaciones la pérdida de información.

Todas estas iniciativas son válidas, obviamente si son proyectos nuevos porque no pensar en utilizar software libre pero en algunos casos no podemos arriesgarnos y deberemos buscar alternativas propietarias que me garanticen el desenvolvimiento de un trabajo adecuado, pero éstas decisiones son más fáciles de tomar con un staff de TI perfectamente capacitado que pueda reconocer entre buenos y malos productos, buenos y malos proveedores, buenos y malas estrategias de acción.

¿Está usted listo para enfrentar los retos de su área de IT?, ¿Sabe cuán eficaz es su plan de recuperación ante desastres?, ¿Sus colaboradores están realmente capacitados y le pueden ayudar a reducir costos?, ¿Sabe cuánto le costaría perder la información de su companía?. Estas son solo algunas preguntas que usted debería hacerse.

Autor: Paola Pullas

Para reir… A veces pasa…

Posted by Paola Pullas | Posted in Entrenamiento, Proyectos | Posted on 19-03-2008

4

Navegando en Internet me encuentro con la siguiente imagen y me he reído mucho porque a veces pasa…

Proyectos

Autor: Paola Pullas