Sep 15, 2016

Obtener crecimiento de una base de datos Oracle usando la vista dba_hist_tbspc_space_usage

Amigos dejo un tips de mucha utilidad que me han preguntado bastante : ¿Cómo obtener el crecimiento de la base de datos Oracle desde 10g en adelante usando AWR?

Para realizar esto disponen de la vista siguiente:
dba_hist_tbspc_space_usage

Con dicha vista se puede obtener el crecimiento de la base de datos. Ojo que solo funcionará si tiene AWR prendido. Lo que pueden visualizar es esto (esto se visualiza desde la planilla Perfsheet del Sr. Tanen la cual ocupo bastante para mis análisis de performance y de base de datos, http://www.tanelpoder.com)



La query con la cual realizan ese reporte es la siguiente:

select * from (with group1 as (select /*+ materialize parallel(t,2) ordered */
   to_char(s.begin_interval_time,'yyyy-mm-dd') get_date,
   v.name ts_name,
(round(max((t.tablespace_size*d.block_size))/1024/1024/1024,2)) size_gb,
(round(max((tablespace_usedsize*d.block_size))/1024/1024/1024,2)) used_gb
from
   dba_hist_tbspc_space_usage t,
   v$tablespace               v,
   dba_hist_snapshot          s,
   dba_tablespaces            d
where
   t.tablespace_id=v.ts#
AND v.name=d.tablespace_name
and
   t.snap_id=s.snap_id and s.BEGIN_INTERVAL_TIME > sysdate - 180
group by to_char(s.begin_interval_time,'yyyy-mm-dd'), v.name)
select
   get_date datetime,
   ts_name tablespace_name,
   sum(size_gb) total_alloc_gb,
   sum(used_gb) real_utilizado_gb
from
   group1
group by get_date,ts_name
order by get_date desc )



Sep 13, 2016

¿Problema con almacenamiento de métricas por parte de performance monitor (de sqlserver o de discos) ?


Image result for microsoft


     Hace poco me ha sucedido que me encontré con que ciertas métricas de sistema operativo como métricas de disco y de sqlserver no se estaban guardando correctamente en la carpeta C:\perflogs. Esto fue sobre un ambiente Windows Server 2003 R2 de un cliente. Simplemente los archivos quedaban en blanco o el contador de rendimiento que habia creado se caia dejando un log de error. Hace poco habia creado una métrica de rendimiento para guardar el comportamiento de todos los discos de una máquina sobre la cual corria SQLServer. Mi sorpresa fue que el contador de rendimiento no queria echar a correr dejando el siguiente error:











Como podrán darse cuenta estaba intentando capturar el "Queue lenght" de los discos (en este caso la unidad P:\ ). Buscando documentación en microsoft encontré una serie de pasos que me llevaron a solucionar este problema (ojo que este inconveniente se me manifestó también con las métricas del sqserver , cualquiera de ellas que intentará capturar con dicho contador de rendimiento  daba error)

En el siguiente link están los pasos a lo largo un extenso foro que resumo a continuación:
https://social.technet.microsoft.com/Forums/windowsserver/en-US/4fb21c0d-8e80-4e65-8e9c-177d8b75db88/logicaldisk-perfmon-counter-generates-errors-event-id-2029-and-event-id-2028?forum=winservergen

(En este link también estan los mismos pasos para solucionar el problema)
https://support.solarwinds.com/Success_Center/Server_Application_Monitor_%28SAM%29/Performance_Counters_are_not_working_or_missing_in_PerfMon

Pasos a llevar a cabo:

1.- En el registro de windows  en la llave  MKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\PerfDisk\Performance dicha carpeta debe tener privilegios de lectura  para "everyone".

2.- En la llave mencionada anteriormente se encontrá una variable llamada "Disable Performance Counters" la cual debe estar seteada en 0. Si está con valor 1 las métricas de discos no serán recolectadas

3.- Navegar a la ruta: C:\Windows\System32 y buscar los siguientes archivos: perfc009.dat, perfd009.dat, perfh009.dat y perfi009.dat. Sobre dichos archivos dar privilegios de lectura a "everyone".

4.-  Ejecutar el siguiente comando en la ruta de windows: C:\WINDOWS\system32>lodctr /R
(lo anterior cargará nuevamente las métricas de rendimiento)

5.- Reiniciar el servicio de windows  "Performance Logs and Alerts"

Sinceramente el hecho de dar privilegio de lectura a "everyone" no me agrada mucho pero fue lo único que me permitió resolver el problema. Luego de lo anterior puedo recolectar métricas de discos y de sqlserver sin problemas. Ahora me he creado una nueva métrica y sin problemas obtengo la información de los discos:

















Y finalmente puedo visualizar sin problemas los distintos gráficos de comportamiento: