lunes, 22 de mayo de 2017

Como obtener DLL de nuestros package, procedure, and function.

Buenas Tardes, Dba.

Algunas veces nos encontramos en cliente donde lo único que tienen para conectarse a los servidores es putty, y resulta que necesitamos obtener el código fuente de un package, procedure o function, para analizar su estructura y ver posibles fallas.

Para estos podemos realizar lo siguiente:

1er parámetro =  tipo de objeto requerido.
2do parámetro = seria el nombre del objeto.


SELECT DBMS_METADATA.GET_DDL('PACKAGE','DBMS_RCVCAT') FROM dual;

SELECT DBMS_METADATA.GET_DDL('PACKAGE_BODY','DBMS_RCVCAT') FROM dual;

domingo, 21 de mayo de 2017

Wrote file afiedt.buf sql*plus

Buenas Noches, Dba

Cuantas veces se nos queda la pantalla del sql*plus en este estado Wrote file afiedt.buf, cuando queremos editar un comando o scripts, y no podemos descifrar los que no quiere decir. Es simple el interprete desconoce el editor que requerimos usar, para corregirlo simplemente ejecutamos esta instrucción:


En SQL*Plus escribe:

sql> define_editor='vi'

Aumentar buffer de salida sqlplus.

Buenas noches, Dba

Unos configuraciones poco conocidas en el SQL*Plus, son aquellas que nos permite aumentar el buffer de salida al momento de requerir ejecutar un scripts que tenga mucha codificación, en algunos casos se nos suele quedan guindada la pantalla y no ejecuta el comando ni arroja salida, modificando estos parámetros le indicamos al interprete que aumenten el tamaño de la longitud de cada salida.  



set linesize 200
set longchunksize 200000 long 200000 pages 0
column txt format a120

Consultar el tamaño (MB) y porcentaje ocupado de los Tablespaces en bd Oracle

Buenas Noches, Dba

En esta primera entrada, quiero compartir una consulta que nos permite saber el porcentaje de espacio disponible en nuestro tablespace, se podría considerar algo básico, pero es realmente importante saber el espacio ocupado por los tablespace incluyendo el tablespace temp. La recolección diara nos permitirá llevar una bitacora de crecimiento de los misma, y saber si existe algún problema de performan en nuestra bd. En posteriores post se explicara con mas detalle.




SELECT /* + RULE */  df.tablespace_name "Tablespace",
       df.bytes / (1024 * 1024) "Size (MB)",
       SUM(fs.bytes) / (1024 * 1024) "Free (MB)",
       Nvl(Round(SUM(fs.bytes) * 100 / df.bytes),1) "% Free",
       Round((df.bytes - SUM(fs.bytes)) * 100 / df.bytes) "% Used"
  FROM dba_free_space fs,
       (SELECT tablespace_name,SUM(bytes) bytes
          FROM dba_data_files
         GROUP BY tablespace_name) df
 WHERE fs.tablespace_name (+)  = df.tablespace_name
 GROUP BY df.tablespace_name,df.bytes
UNION ALL
SELECT /* + RULE */ df.tablespace_name tspace,
       fs.bytes / (1024 * 1024),
       SUM(df.bytes_free) / (1024 * 1024),
       Nvl(Round((SUM(fs.bytes) - df.bytes_used) * 100 / fs.bytes), 1),
       Round((SUM(fs.bytes) - df.bytes_free) * 100 / fs.bytes)
  FROM dba_temp_files fs,
       (SELECT tablespace_name,bytes_free,bytes_used
          FROM v$temp_space_header
         GROUP BY tablespace_name,bytes_free,bytes_used) df
 WHERE fs.tablespace_name (+)  = df.tablespace_name
 GROUP BY df.tablespace_name,fs.bytes,df.bytes_free,df.bytes_used
 ORDER BY 1;

Como obtener DLL de nuestros package, procedure, and function.

Buenas Tardes, Dba. Algunas veces nos encontramos en cliente donde lo único que tienen para conectarse a los servidores es putty, y resul...