miércoles, 13 de noviembre de 2019

Cantidad de procesadores en LINUX

El método más sencillo para saber el número de procesadores presentes en una máquina Linux es el siguiente:
~$ nproc --all
8
Otra forma de obtener el mismo resultado, el cual también nos permite obtener información adicional sobre nuestro procesador es el comando lscpu:
~$ lscpu | grep 'CPU(s)'
CPU(s):                8
On-line CPU(s) list:   0-7
NUMA node0 CPU(s):     0-7
O también podemos examinar el fichero cpuinfo del sistema de ficheros /proc:
~$ grep processor /proc/cpuinfo | wc -l
8
Podemos encontrar numerosos detalles adicionales sobre nuestros procesadores en /proc/cpuinfo, entre ellos el modelo de CPU y el número de núcleos o cores que tiene:
~$ cat /proc/cpuinfo | grep "model name"
model name : Intel(R) Xeon(R) CPU           E5520  @ 2.27GHz
model name : Intel(R) Xeon(R) CPU           E5520  @ 2.27GHz
~$ cat /proc/cpuinfo | grep "cpu cores"
cpu cores : 4
cpu cores : 4
Como puedes ver, la máquina del ejemplo tiene 2 procesadores con 4 cores cada uno.

lunes, 4 de noviembre de 2019

Cómo auditar una traza/trace en una sesión de Oracle

Primero deberás ubicar la sesión que quieras auditar:

Ojo: La puedes buscar por hostname de la PC que se está conectando, por usuario a nivel de sistema operativo, etc

1. select sid, serial#, USERNAME from v$session where terminal='PC001';

2. exec dbms_system.set_sql_trace_in_session(SID,SERIAL#,true);
O si quiero auditar mi sesión: ALTER SESSION SET SQL_TRACE = TRUE;

3. Ubicar el destino de los archivos "trace": show parameter user_dump_dest
Recuerda que los traces son a nivel sesión, no por usuario.

Este query te ayudará mucho para ubicar qué archivo trace pertenece a cada sesión y usuario:

column username format a10
column trace_file format a70
select b.username, c.value || '\' || lower(d.value) || '_ora_' ||
       to_char(a.spid, 'fm00000') || '.trc' "TRACE_FILE"
from v$process a, v$session b, v$parameter c, v$parameter d
where a.addr   = b.paddr
and c.name     = 'user_dump_dest'
and d.name     = 'db_name'
and b.username is not null;
 
USERNAME   TRACE_FILE
---------- --------------------------------------------------------
SYS        C:\oracle9i\admin\ORCL92\udump\ORCL92_ora_03164.trc
Marco      C:\oracle9i\admin\ORCL92\udump\ORCL92_ora_02264.trc
Carlos     C:\oracle9i\admin\ORCL92\udump\ORCL92_ora_03578.trc
 

4. Ahora, supongamos que queremos conocer la actividad del usuario Marco:

cd C:\oracle9i\admin\ORCL92\udump\
tkprof ORCL92_ora_02264.trc interpretación_de_traza.out explain=n table:marco.su_table

Ver un codigo en DBA_SOURCE..

/* ******************************************************************* */
/*  EXTRAER CODIGO FUENTE                                              */
/* ******************************************************************* */ ===================================================================
PROMPT  EXPORTA A UN FICHERO EL CODIGO DE LA BASE DE DATOS
PROMPT  ===================================================================
PROMPT
set pagesize 5000
set linesize 90
set echo off
set verify off
set heading off
spool ./codigo.sql
SELECT TEXT FROM dba_source
  WHERE name=UPPER(‘&objeto’)
    AND owner = UPPER(‘&owner’)
  ORDER BY type,name,line
/


spool off
set verify on
set heading on
set linesize 80
set pagesize 14

RMAN - Cuando no se encuentra un archive log --- RMAN-06726: could not locate archived log

  Lo importante en todo esto, es estar dentro del catalogo correspondiente, sino el crosscheck NO FNCIONA !!   oracle backup of logfiles is ...