jueves, 4 de febrero de 2016

AWR REPORT

Los reportes de Automatic Workload Repository (AWR), son sin duda una de las mayores armas de las que disponemos para realizar “troubleshooting”  en un ambiente de base de datos Oracle. El  análisis de AWR, es una actividad habitual en la vida cotidiana de un DBA. Lo importante es poder interpretarlo.

¿Cómo generar el reporte?

El script a lanzar para generar el reporte se encuentra en nuestra ruta  $ORACLE_HOME/rdbms/admin, para generar el reporte completo usaremos el awrrpt.sql


Lanzamos el script en una sesion de sqlplus / as sysdba  y nos mostrará de que base  de datos estamos generando el reporte.



Posteriormente ingresamos el formato deseado, yo elijo html para poder abrirlo en un navegador y verlo a manera de tablas bien acomodado todo.

Specify the Report Type
~~~~~~~~~~~~~~~~~~~~~~~
AWR reports can be generated in the following formats.  Please enter the
name of the format at the prompt.  Default value is 'html'.

'html'          HTML format (default)
'text'          Text format
'active-html'   Includes Performance Hub active report

Enter value for report_type: html

Type Specified:  html


Instances in this Workload Repository schema
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

   DB Id     Inst Num DB Name      Instance     Host
------------ -------- ------------ ------------ ------------
* 2018905217        1 CDB          CDB          nodoC

Using 2018905217 for database Id
Using          1 for instance number



Luego ingresaremos el número de día deseado del reporte, es decir de hace cuantos días se busca la información:

Specify the number of days of snapshots to choose from
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Entering the number of days (n) will result in the most recent
(n) days of snapshots being listed.  Pressing <return> without
specifying a number lists all completed snapshots.


Enter value for num_days: 2

Listing the last 2 days of Completed Snapshots

                                                        Snap
Instance     DB Name        Snap Id    Snap Started    Level
------------ ------------ --------- ------------------ -----
CDB          CDB                 25 03 Feb 2016 03:26      1
                                 26 03 Feb 2016 04:00      1
                                 27 03 Feb 2016 05:01      1
                                 28 03 Feb 2016 06:00      1
                                 29 03 Feb 2016 07:00      1
                                 30 03 Feb 2016 08:00      1
                                 31 03 Feb 2016 09:00      1
                                 32 03 Feb 2016 10:00      1

                                 33 04 Feb 2016 03:03      1
                                 34 04 Feb 2016 04:00      1


Especificamos el ID de inicio y el ID de fin según los tiempos requeridos y le ponemos un nombre y una ruta al archivo antes de generarlo para que no se nos pierda.

Specify the Begin and End Snapshot Ids
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Enter value for begin_snap: 25
Begin Snapshot Id specified: 25

Enter value for end_snap: 31
End   Snapshot Id specified: 31



Specify the Report Name
~~~~~~~~~~~~~~~~~~~~~~~
The default report file name is awrrpt_1_25_31.html.  To use this name,
press <return> to continue, otherwise enter an alternative.

Enter value for report_name: /tmp/awr_aury.html


Nos salimos de nuestra sesión de sqlplus con un exit.
Nos vamos a la ruta /tmp y veremos que el archivo se encuentra generado. 
Listo!! lo podemos abrir en un navegador para consultar el reporte!


viernes, 29 de enero de 2016

OraInventory

El oraInventory almacena un inventario de todo el software instalado en el sistema. Es necesario y compartido por todas las instalaciones de software de Oracle en un solo sistema. Si usted tiene un directorio de Oracle Inventory existente, entonces Oracle Universal Installer continúa utilizando que Oracle Inventory .

·         Todas las instalaciones de software de Oracle se basan en este directorio . Asegúrese de realizar copias de seguridad con regularidad.
 
·         No elimine este directorio a menos que haya eliminado por completo todo el software de Oracle del sistema.
 
·         De forma predeterminada , el directorio de inventario de Oracle no está instalado en el directorio de Oracle Base. Esto se debe a todas las instalaciones de software Oracle comparten un inventario Oracle común, por lo que sólo hay un inventario de Oracle para todos los usuarios . Considerando que, hay una base Oracle separado para cada usuario.

Ejemplo de contenido del directorio oraInventory:


oraInst.loc

El grupo inventory_loc muestra la ubicación del Inventario de Oracle El parámetro inst_group muestra el nombre del grupo de inventario Oracle (en este ejemplo, oinstall ) .

ContentsXML

También es posible ver el contenido del archivo inventory.xml para verificar que el Oracle Home se ha registrado. 



martes, 15 de diciembre de 2015

(UR=A) en Tnsnames


ERROR:
ORA-12528: TNS:listener: all appropriate instances are blocking new connections.


La base de datos se inició en  nomount, mount o restricted mode.


 Usar (UR=A) con (CONNECT_DATA=(SERVICE_NAME=SERVICE)) en el tnsnames.ora
por ejemplo:


V10G = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = TCP)(HOST = hal)(PORT = 1525)) 
    ) 
    (CONNECT_DATA = 
      (SERVICE_NAME = v10g.uk.oracle.com) 
    ) 
  )

SID = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = TCP)(HOST = hal)(PORT = 1525)) 
    ) 
    (CONNECT_DATA = 
      (SID = v10g) 
      (SERVER = DEDICATED) 
    ) 
  )

TESTUA = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = TCP)(HOST = hal)(PORT = 1525)) 
    ) 
    (CONNECT_DATA = 
      (SERVICE_NAME = v10g.uk.oracle.com) 
      (UR = A) 
    ) 
  )

Hay que tener en cuenta que (UR=A) se recomienda el uso de SERVICE_NAME en vez de SID .
 

jueves, 15 de octubre de 2015





DESHABILITAR GATHER STATS (AUTO) 

Deshabilitar auto stats job.

Gather Statistics with DBMS_STATS

CBO STATS

Oracle's cost-based optimizer (CBO)

Las estadísticas se utilizan para cuantificar la distribución de datos y características de almacenamiento de tablas, columnas , índices y particiones.
CBO utiliza estadísticas para estimar cuanto I/O y memoria se requiere para ejecutar una sentencia SQL usando un plan de ejecución en particular.



viernes, 11 de septiembre de 2015

¿QUE ES UN TABLESPACE?

Un tablespace es una unidad lógica de almacenamiento dentro de una base de datos oracle.Es un puente entre el sistema de ficheros del sistema operativo y la base de datos.
Cada tablespace se compone de, al menos, un datafile y un datafile solo puede pertenecer a un tablespace.

Los tablespace son estructuras donde se almacenan los objetos del esquema de la base de datos, tales como tablas, índices, etc. con la particularidad de poderse repartir en varios ficheros. Por tanto, las bases de datos tienes varios tablespaces y estos a su vez varios datafiles. Un datafile sólo pertenece a un tablespace y un tablespace sólo pertenece a una Base de Datos.

El Tablespace SYSTEM se crea automáticamente al hacer la instalación de Oracle o al crear una Base de Datos.Contiene el diccionario de datos.

miércoles, 9 de septiembre de 2015

Mover usuarios de tablespace 

El tablespace temporal contiene datos en transito que permanecen unicamente por la duracion de la sesion, esto significa que una vez que la sesion termina, estos datos dejan de existir. Un tablespace temporal ayuda a mejorar la concurrencia de multiples operaciones tipo SORT que no caben en la memoria.

Un tablespace temporal se usa para guardar lo siguiente:

  • Tablas temporales e indices temporales
  • LOBs temporales
  • Resultados temporales de tipo SORT
  • Arboles B temporales


Para mover usuarios de un tablespace temporal al TEMP default y borrar el que no necesitamos podemos hacer lo siguiente:

SQL> select username from  dba_users where TEMPORARY_TABLESPACE='TEMP02';

user_uno

SQL> alter user "user_uno" temporary tablespace TEMP;

User altered.

SQL> select username from  dba_users where TEMPORARY_TABLESPACE='TEMP02';

no rows selected


SQL> drop tablespace temp02 including contents and datafiles;