Todos los artículos de: admin

Crear/borrar y recrear database control console en Oracle 11G

Algunas veces, debido a errores propios del instalador Oracle y/o a errores en el nombre del host (por ejemplo poniendo un “_” o un “-”) la consola database control de Oracle 11G no se instala correctamente. Por este motivo, he decidido crear esta entrada de blog para explicar a aquellos administradores de Oracle que no sepan como crearla de nuevo, borrarla o recrearla.

Para borrarla y asegurarnos de que se borra de manera adecuada lo ideal es hacer:

cargar las variables del entorno ORACLE (ORACLE_HOME, ORACLE_SID, PATH, etc…)

Logearse a sqlplus con SYS o SYSTEM como SYSDBA:

sqlplus /nolog
connect /as sysdba

Luego ejecutar lo siguiente para borrar el repositorio:

drop user sysman cascade;

drop role MGMT_USER;
drop user MGMT_VIEW cascade;
drop public synonym MGMT_TARGET_BLACKOUTS;
drop public synonym SETEMVIEWUSERCONTEXT;

Cambiarse al directorio $ORACLE_HOME/bin o %ORACLE_HOME%/bin en el caso de Windows:

Borrar la consola que se accede desde un navegador:

emca -deconfig dbcontrol db -repos drop

Una vez borrada … volverla a crear

emca -config dbcontrol db -repos create

si no la borramos pero queremos re-crearla ejecutar:

emca -config dbcontrol db -repos recreate

NOTA: cuando acabe el proceso de configuración se mostrará la URL dónde poder conectarse usando un navegador.

Añadir disco a DiskGroup con ASM en Windows

En la siguiente entrada de blog voy a explicar como añadir un nuevo disco a un diskgroup de ASM para ser utilizado por ORACLE.

Existen numerosas entradas en internet de cómo hacer esta operación bajo Linux, pero no he encontrado ninguna que lo haga bajo Windows y por este motivo he considerado necesario crear esta entrada.

Para poneros en contexto comentar que  este ejemplo se realizó en una máquina virtual  (MV) creada con Oracle Virtual Box en la que instalé Windows Server 2008 R2. La máquina constaba con un sólo disco y posteriormente añadí otro para poder usarlo con ASM. Es decir, una vez arrancada la MV y entrando en el administrador de discos de Windows tenía esto:

Lista de volúmenes actual

Cómo se puede observar en la imagen el Disco 1 que está en formato RAW es dónde está instalado ASM. Por tanto, voy a añadir otro disco al que tendré que dar también formato RAW para poderlo usar con ASM posteriormente.

Empezamos…

Ahora lo que se hace es crear el disco en la MV. (Este paso no lo he explicado porque no es el objeto de la entrada de este blog). Una vez creado arranco la MV y me arrancará Windows Server 2008 R2 en mi caso. Iré al administrador de equipos y de discos  y me debería salir la siguiente pantalla:

pant1

Como se puede observar Windows me ha detectado el nuevo disco que he añadido previamente a la MV. En mi caso marco MBR y doy a Aceptar. Quedará asi:

pant2

Lo siguiente que haremos será darle formato RAW para que posteriormente se pueda integrar en el ASM de Oracle.

pant3

Seleccionamos nuevo volumen simple …. y procedemos como explico en las siguientes imágenes:

pant4

pant5

Dejo que seleccione todo el tamaño del disco (pantalla anterior) y en la siguiente pantalla es importante marcar “no asignar una letra ….”.

pant6b

Marcamos no formatear este volumen para que nos quede el formato RAW.

pant7

pant8

al acabar el proceso debemos tener algo como:

pant9

Seguimos….

Hasta el momento sólo tenemos el disco en formato RAW pero ORACLE ASM de momento no puede verlo. Para ello, debemos ponerle una etiqueta al disco que nos permita poder agregarlo con ASM.

Vamos a entrar a ASM y mirar que es lo que vemos:

Cargando el entorno ASM, normalmente y desde la linea de comandos de Windows:

C:\> set ORACLE_SID=+ASM
C:\oracle\app\Administrador\product\11.2.0\grid\BIN>sqlplus /nolog
SQL*Plus: Release 11.2.0.1.0 Production on Mar Dic 1 14:16:29 2015
Copyright (c) 1982, 2010, Oracle.  All rights reserved.
SQL> connect /as sysasm
SQL> select group_number,path,name, total_mb, free_mb from v$asm_disk;
GROUP_NUMBER
------------
PATH
--------------------------------------------------------------------------------
NAME                             TOTAL_MB    FREE_MB
------------------------------ ---------- ----------
         1
\\.\ORCLDISKDATA0
DATA_0000                           61812      59614
SQL>  col path format a40
SQL>  set line 120
SQL>  select name, path, group_number from v$asm_disk;
NAME                           PATH                                     GROUP_NUMBER
------------------------------ ---------------------------------------- ------------
DATA_0000                      \\.\ORCLDISKDATA0   1

Cómo se puede observar, sólo vemos el disco de 61812 MB (60,36 GB) y no el que hemos añadido recientemente de 10,45 GB.

Seguidamente arrancaremos la herramienta de ORACLE que nos permite asignarle una etiqueta al disco para posteriormente poderlo visualizar desde ASM. Este paso es precisamente del que no existe demasiada documentación en Internet.

En primer lugar lo que haremos es ir al ORACLE_HOME del grid dónde se encuentre ASM. En mi caso:

C:\> cd C:\oracle\app\Administrador\product\11.2.0\grid\BIN>

Aquí ejecutar la herramienta asmtoolg:

C:\oracle\app\Administrador\product\11.2.0\grid\BIN> asmtoolg

Proceder como se indica en las imágenes:

asmtoolg1

asmtoolg2

Seleccionaremos el “candidate device”

asmtoolg3

asmtoolg4

De esta manera ya hemos configurado una etiqueta para el disco. Ahora si que lo podemos ver desde ASM. Lo comprobamos:

C:\oracle\app\Administrador\product\11.2.0\grid\BIN>sqlplus /nolog
 SQL*Plus: Release 11.2.0.1.0 Production on Mar Dic 1 14:16:29 2015
 Copyright (c) 1982, 2010, Oracle.  All rights reserved.
 SQL> connect /as sysasm
 Conectado.
 SQL> col path format a40
 SQL>  set line 120
 SQL>  select name, path, group_number from v$asm_disk;
NAME                           PATH                                     GROUP_NUMBER
 ------------------------------ ---------------------------------------- ------------                                
                                        \\.\ORCLDISKDATA1                                   0
DATA_0000                 \\.\ORCLDISKDATA0                                   1

Podemos observar que ya aparece nuestro nuevo disco ORCLDISKDATA1 y que no pertenece a ningún diskgroup ya que no tiene “NAME”. Sin embargo, el otro disco pertenece al diskgroup DATA_0000. Pues es a este diskgroup al que queremos añadir el nuevo disco. Esto se hace ejecutando la siguiente instrucción:

SQL> ALTER DISKGROUP data ADD DISK '\\.\ORCLDISKDATA1';
Diskgroup altered.

NOTA:  ”data” es el nombre de diskgroup y se saca de v$asm_diskgroup de la siguiente manera:

SQL> select name, total_mb from v$asm_diskgroup;
NAME                                   TOTAL_MB
-----------------------------  ----------------
DATA                                      61812

Saco también el tamaño del disco para identificarlo y asegurarme que la etiqueta que selecciono es la del disco que quiero.

Comprobamos la adición:

SQL>  col path format a40
SQL>  set line 120
SQL>  select name, path, group_number from v$asm_disk;
NAME                           PATH                                     GROUP_NUMBER
------------------------------ ---------------------------------------- ------------
DATA_0000                      \\.\ORCLDISKDATA0                                   1
DATA_0001                      \\.\ORCLDISKDATA1                                   1
SQL>

 

Cuando el disco se agrega al diskgroup, ASM comienza un proceso propio de rabalanceo e integra el disco al resto del espacio ocupado creando un volumen de espacio mas grande.

Para saber en que estado se encuentra ese re-balanceo de información, podemos ejecutar la siguiente consulta:

select * from v$asm_operation;
no rows selected

Cuando la consulta devuelva “no rows selected” es que ya terminó el rebalanceo. Otra manera de comprobarlo sería revisar el fichero alert de la instancia donde nos encontraremos con la información de culminación del proceso.

Así finaliza la adhesión de nuestro nuevo disco a un diskgroup existente.

¿fácil no?

 

Saber que objetos de otros usuarios están creados en el tablespace SYSTEM

– Sacar los objetos de otros usuarios que se han creado en el tablespace system por error

SELECT owner, segment_name, segment_type, tablespace_name 
FROM dba_segments
WHERE owner NOT IN ('SYS','SYSTEM') AND tablespace_name = 'SYSTEM';

– en versiones 8.1.7

SELECT owner, segment_name, segment_type, tablespace_name 
FROM dba_segments
WHERE owner NOT IN ('SYS','SYSTEM','AURORA$JIS$UTILITY$','ORDSYS') AND tablespace_name = 'SYSTEM';

Utilidad oerr de ORACLE

OERR es una utilidad de Oracle que extrae los mensajes de error informándote de la posible causa y recomendando acciones que se sugieren a partir de los archivos de mensajes estándar de Oracle. Esta utilidad es muy útil ya que puede extraer los errores específicos de OS que no están en los mensajes de error y códigos de Manual genéricos.

Oerr sólo funciona en sistemas Unix/Linux y se instala junto con el software de Base de datos en el directorio $ORACLE_HOME/bin.

Para saber que acciones podemos realizar cuando se produce un error Oracle que muestro un mensaje ORA- podemos ejecutar la siguiente instrucción:

$ cd $ORACLE_HOME/bin (sino lo tenemos en el PATH)
$ oerr ora 600       (Aquí poner el error ORA-NNNNN que nos haya dado)
ora-00600: internal error code, arguments: [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s]
*Cause:  This is the generic internal error number for Oracle program exceptions.  This indicates that a process has encountered an exceptional condition.
*Action: Report as a bug - the first argument is the internal error number

ORA-01536: space quota exceeded for tablespace …

Este error se produce cuando se ha llegado al máximo de quota que tiene asignado el usuario sobre ese tablespace. La solución es ampliar esa quota, o bien asignarle una ilimitada.

Conectado con el usuario con  permisos de DBA o system:

SQL>  ALTER USER <usuario_afectado> QUOTA UNLIMITED ON  <tablespace_afectado>;

Si vemos que haciendo lo anterior sigue dando error, ejecutar la siguiente instrucción:

SQL> GRANT UNLIMITED TABLESPACE ON  <tablesapace_afectado>  TO <usuario_afectado>;

Saber cuanto ocupa una Base de datos ORACLE

En la siguiente entrada de Blog os dejo una consulta que nos dice lo que ocupa una Base de datos ORACLE. Esto nos puede ser útil para hacer previsiones a la hora de realizar Backups.

col "Database Size" format a20
col "Free space" format a20
col "Used space" format a20
SELECT   round(sum(used.bytes) / 1024 / 1024 / 1024 ) || ' GB' "Database Size"
,    round(sum(used.bytes) / 1024 / 1024 / 1024 ) - 
    round(free.p / 1024 / 1024 / 1024) || ' GB' "Used space"
,    round(free.p / 1024 / 1024 / 1024) || ' GB' "Free space"
FROM    (select    bytes
    from    v$datafile
    union    all
    select    bytes
    from     v$tempfile
    union     all
    select     bytes
    from     v$log) used
,    (select sum(bytes) as p
    from dba_free_space) free
GROUP BY free.p
/

Consultar tabla sin que se sepa quien es el propietario

Esta entrada de blog trata de una cosa muy simple, pero que nos puede servir de ayuda para si alguna vez, queremos que algún usuario pueda realizar consultas sobre alguna tabla que no queramos que se conozca quien es el propietario. Para ello, basta con crear un sinónimo de dicha tabla y dar el permiso de consulta sobre el sinónimo.

Crear el sinónimo:

create public synonym s_tabla for usuario.tabla;

Asignar los permisos:

grant select on  s_tabla to usuario_destino;

Cuando hagamos una select del “s_tabla” veremos el contenido de “tabla” cuyo propietario es “usuario” pero no será necesario indicarlo en la consulta.

Una tontería facilona, pero que puede sernos útiles en algún momento.

 

Cómo crear el usuario ORACLE necesario para monitorizar con NAGIOS

Para poder monitorizar con NAGIOS los parámetros de Oracle, es necesario crear un usuario llamado “nagios” dentro de la BBDD que queremos monitorizar. Dependiendo de la versión de Oracle que tengamos, tendremos que asignarle unos grants diferentes para que la monitorización se pueda realizar de manera adecuada.

Para versiones 9,10G y 11G:

CREATE USER nagios IDENTIFIED BY oradbmon; -- Poner el password que deseemos
  GRANT CREATE SESSION TO nagios;
  GRANT SELECT any dictionary TO nagios; -- Este no funciona en 8i
  GRANT SELECT ON V_$SYSSTAT TO nagios;
  GRANT SELECT ON V_$INSTANCE TO nagios;
  GRANT SELECT ON V_$LOG TO nagios;
  GRANT SELECT ON SYS.DBA_DATA_FILES TO nagios;
  GRANT SELECT ON SYS.DBA_FREE_SPACE TO nagios;

Para versiones 8i (8.1.7) poner además …

 GRANT SELECT ON sys.dba_tablespaces TO nagios;
 GRANT SELECT ON dba_temp_files TO nagios;
 GRANT SELECT ON sys.v_$Temp_extent_pool TO nagios;
 GRANT SELECT ON sys.v_$TEMP_SPACE_HEADER  TO nagios;
 GRANT SELECT ON sys.v_$session TO nagios;
 GRANT SELECT ON SYS.OBJAUTH$ TO nagios;
 GRANT SELECT ON SYS.OBJ$ TO nagios;
 GRANT SELECT ON SYS.USER$ to nagios;
 GRANT SELECT ON SYS.COL$ TO nagios;
 GRANT SELECT ON SYS.TABLE_PRIVILEGE_MAP TO nagios;

Hay que tener en cuenta que para versiones 8i el privilegio SELECT ANY DICTIONARY no está soportado, y por tanto, se deben conceder de manera individual sobre los objetos del diccionario. Asimismo, el privilegio SELECT ANY TABLE  no permite el acceso a objetos del diccionario, a menos que cambiemos el parámetro…
O7_DICTIONARY_ACCESSIBILITY  de FALSE a TRUE de la siguiente manera:

alter system set o7_dictionary_accessibility=TRUE scope=spfile;

Instalar OBI (Oracle Business Intelligence) en un Datawarehouse ya existente

En esta entrada de blog sólo se va a explicar el proceso de instalación (sencilla) de OBI en un DWH que ya existe, pero si deseas ampliar información referente a la arquitectura de OBIEE (Oracle Business intelligence Enterprise Edition) pulsa en este enlace.

El proceso lo dividiré en tres partes:

1- Creación del usuario con permisos SYSDBA y su tablespace.

2.- Creación/Instalación del repositorio de OFM para poder instalar OBI.

3.- La instalación propiamente dicha de OBI.

Comenzamos …

Pero antes de meter mano a todo el tinglado, debemos saber que se necesita …

Requisitos mínimos recomendados para OBI:

Disk Space: 20GB or more
Available Memory: 4GB or more
Temp Space: 950MB or more
Swap Space: 3GB or more
CPU: dual-core Pentium, 1.5GHz or greater

Como se  va a hacer una instalación desde 0, necesito lo siguiente:

Una base de datos Oracle instalada, 10.2.0.4 o superior. En esta base de datos se instalarán ciertos esquemas necesarios para que OBI funcione. En mi caso tengo una 11GR2.

El Repository Creation Utility (RCU) que se encarga de crear estos esquemas y sus correspondientes tablespaces en la base de datos que acabamos de comentar.

Por último, Los binarios de la nueva versión 11.1.1.5.0. En total 5 archivos que ocupan muchísimo.

1- Creación del usuario con permisos SYSDBA y su tablespace

Antes de comenzar con todo el proceso necesitamos crear un usuario en la base de datos DatawareHouse con permisos SYSDBA o bien, utilizar el usuario SYS para lanzar el proceso de creación del repositorio de OBI. En este ejemplo crearé un usuario con permisos idénticos al de SYS. Podemos asignarle el tablespace USERS o bien crear uno específico para ese usuario. Como tablespace temporal podemos usar el TEMP o bien uno un poco más grande (esto no lo dice en ninguna documentación que yo haya visto). Yo he optado por esta última opción.

Nombre tablespace en mi ejemplo: TS_DBA_BI

/oradata/tsdbabidata1.dbf
/oradata/tsdbabidata2.dbf

CREATE SMALLFILE TABLESPACE "TS_DBA_BI"  DATAFILE '/oradata/tsdbabidata1.dbf' SIZE 1G REUSE ,  '/oradata/tsdbabidata2.dbf' SIZE 1G REUSE  LOGGING EXTENT MANAGEMENT  LOCAL SEGMENT SPACE MANAGEMENT AUTO;

No es necesario crearlo de ese tamaño. De hecho este usuario sólo se usa para poder crear los esquemas necesarios para el repositorio.

Ahora deberíamos crear el usuario con permisos SYSDBA. Yo lo he hecho con OEM y a partir del usuario SYS y conectado como SYS. Selecciono “Crear como” y pulso en “Ir” dentro de la pestaña usuarios de OEM:

Seguidamente le pongo una clave y le asigno el tablespace creado para él y el temporal que desee. En mi caso uno bastante grande para “facilitar la instalación” si es necesario.

Podemos comprobar que el usuario funciona saliendo de OEM e intentar entrar con el usuario creado conectando como SYSDBA:

2.- Creación/Instalación del repositorio de OFM para poder instalar OBI

El siguiente paso es Descargar la RCU (Repository Creation Utility) que nos permitirá crear el repositorio con el usuario ya creado anteriormente. Este proceso lo podemos hacer desde un PC cliente, que en mi ejemplo era un Windows XP. Para ello accederemos a la WEB de Oracle apartado middleware y en BI enterprise edition encontraremos el software. Algo como …

Una vez descargado el fichero, descomprimirlo y ejecutar rcu.bat en el caso de Windows que es nuestro ejemplo.

Descomprimir ofm_rcu_win_11.1.1.6.0_disk1_1of1.zip
Ejecutar rcuHomeBINrcu.bat

Comenzamos con la instalación del repositorio …

Pulsamos siguiente …

En la siguiente pantalla rellenaremos los campos con nuestros datos, nombre de host o IP, el puerto, el nombre de la instancia (que sale en el tnsnames.ora) y el usuario que hemos creado y seleccionaremos en el campo rol SYSDBA.

Se ignora este error, ya que es una recomendación de Oracle y nuestro DWH estaba en el Character SET que correspondía.

En la siguiente pantalla seleccionaremos lo marcado con la marca de verificación …

En la siguiente pantalla introduciremos las contraseñas para los esquemas. En mi caso, como quería instalar todo para ver como funciona OFM (OBI) puse la misma para todos los esquemas.

En la siguiente pantalla nos muestra la asignación de tablespaces. Por defecto, me los asignaba en una ubicación diferente a la que yo deseaba. Así que pulsé el botón “Gestionar Tablespaces” para adecuar la instalación a mis pretensiones.

Al pulsar el botón mencionado anteriormente, me sale la pantalla siguiente donde puedo especificar los datos que yo desee. No los modificaré si me convencen, o sí lo haré si veo que no son los deseados para mi instalación.

Y así lo haré para cada tablespace que se vaya a crear. Pulsando en el icono del “lápiz” podré editar los valores del tablespace y ubicación de los datafiles, etc…

Pulsaremos aceptar…

Hasta aquí tendríamos instalada la parte del repositorio. Nos faltaría instalar OBI.

3.- La instalación propiamente dicha de OBI.

Finalmente, procederé a la instalación de OBI propiamente dicha. Antes de empezar, voy a resumir lo que he hecho hasta ahora, para tenerlo aun más claro si cabe.

En primer lugar he creado un usuario con privilegios SYSDBA a partir del usuario SYS y le he asignado un tablespace que he creado previamente para dicho usuario. Además, he decidido asignarle un tablespace Temporal más grande de lo normal. Esto último no es imprescindible, pero a mi me gusta “evitar sorpresas” por falta de espacio. Seguidamente, he descargado de la web oficial de Oracle la utilidad RCU que nos permite crear el repositorio necesario para instalar herramientas de Oracle Fusion Middleware. Lo he descargado en versión Windows porque era desde un PC con Windows desde dónde he lanzado la utilidad RCU, aunque su destino era conectarse a un servidor Linux con un DatawareHouse. Y finalmente, en las siguientes lineas, explicaré la instalación de OBI (Oracle Business Intelligence) en una versión simple, para comprobar que funciona y conocer la herramienta.

Voy a instalar OBI en un Servidor Windows Server 2008 R2 (Service Pack 1). Por tanto, hemos tenido previamente que descargar la versión de OBI para este sistema Operativo teniéndo en cuenta que es de 64 bits. Sino sabes cúal es la versión de tu S.O, revisa esta entrada de blog en el caso de que tu server sea Windows o esta si tu server es Linux/Unix.

Una vez descargada la versión de la web oficial de Oracle, la descomprimiremos y la pondremos toda colgando de un mismo directorio, para facilitar al instalador la búsqueda de los ficheros. Tal que así:

Accederemos al primer directorio descargado y ejecutaremos el instalador:

../Disk1/bishiphome/setup.exe o runInstaller

Saldrá una pantalla como esta …

En la siguiente pantalla marco “Omitir actualizaciones de Software”.

Antes de la siguiente pantalla, he creado el directorio C:middleware para poder ubicar los ficheros de instalación.

En la siguiente pantalla, el instalador nos propone un nombre de usuario, que aceptaremos, deberemos poner una clave.

En las siguientes pantallas comenzará la creación de los esquemas necesarios … para ello tendremos que introducir una cadena de conexión de acuerdo a la base de datos que queremos explotar, en mi caso mi DWH con los formatos indicados.

En la siguiente pantalla desmarco todo porque no deseo recibir información …

Pulsaremos “SI”

Seguidamente seleccioné tipo de instalación “Simple” porque lo que estoy es valorando la herramienta OBI para futuras instalaciones en producción.

En la pantalla anterior que nos mostrará todo lo que se pretende instalar, pulsaremos en el botón Guardar para almacenar lo que el instalador irá realizando durante el proceso de instalación del producto. Para ello, he creado previamente el directorio C:middleware_log donde iré almacenando los logs de instalación.

Le pongo el nombre “log_install.txt” al log de esta parte de la instalación.

Se inicia el proceso de instalación …

Daremos numerosas veces a “siguiente” etc… hasta que se complete la instalación. Una vez finalizada podemos visualizar el fichero de log y guardarlo para ver cuales son los enlaces que debemos usar para poder acceder a los componentes instalados.

Para comprobar que se ha instalado correctamente tenemos/podemos acceder a las URL´s correspondientes:

En mi ejemplo mi servidor de Windows se llama “SERVI”

Consola de WebLogic

http://SERVDI:7001/console

La consola de administración de WebLogic es importante para la configuración del dominio de BI.

Oracle Enterprise Manager

http://SERVI:7001/em

Es el panel de control de la instancia de Fusion Middle Ware desde dónde podemos ver todos los componentes java que corren en el Administration Server.

Business Intelligence Enterprise Edition

http://SERVI:7001/analytics

Es el punto de entrada al sistema de BI. Aquí es donde los usuarios entran pra analizar sus cuadros de mando.

Business Intelligence Publisher

http://SERVI:7001/xmlpserver

Es el punto de entrada al sistema de reporting BI Publisher. Desde aquí los desarrolladores preparan informes que luego pueden mostrarse en los cuadros de mandos de Analytics. Los usuarios también pueden entrar para sacar los infomes directamente desde aquí.

Real-Time Decisions

http://SERVI:7001/ui

Punto de entrada al sistema de toma de decisiones Real Time.

Lanzar informe de carga de repositorio de trabajo (AWR) desde sqlplus

Oracle proporciona dos scripts para producir informes de repositorio de carga de trabajo (awrrpt.sql y awrrpti.sql) que podemos ejecutar directamente desde sqlplus sin necesidad de ejecutarlos via OEM con un navegador .

Son similares en formato a los informes STATSPACK y dan la opción de formato HTML o texto plano. Los dos informes dan esencialmente la misma salida pero el awrrpti.sql te permite seleccionar una sola instancia. Los informes se pueden generar de la siguiente manera:

Conectados como sys o system ...

SQL> @$ORACLE_HOME/rdbms/admin/awrrpt.sql
SQL> @$ORACLE_HOME/rdbms/admin/awrrpti.sql

Las secuencias de comandos te pedirá que ingreses el formato del informe (html o texto), el identificador de instantánea inicial, el id instantánea final y el informe de nombre de archivo. El informe resultante o su apertura se realizará en un navegador o editor de texto en consecuencia.

El informe via html es algo parecido a la siguiente pantalla (muestro sólo una parte pequeña del informe total):