12 noviembre 2016

Oracle APEX, pequeña introducción

¿Que es APEX?

Oracle Application Express (ApEx) es una herramienta de desarrollo web que permite compartir datos y crear aplicaciones personalizadas de forma rápida. Con ayuda de un explorador web y sin necesidad de contar con conocimientos avanzados de programación, se podrán desarrollar y desplegar potentes aplicaciones, rápidas y seguras.
El desarrollo de aplicaciones con APEXestá basado en el explorador y permite desarrollar aplicaciones desde cualquier PC conectado en red,utilizando para ello tan sólo un explorador web actual. La tecnología APEX se basa y usa como núcleo SQL y PL / SQL. APEX es una herramienta declarativa que proporciona gran cantidad de características diseñadas para hacer el trabajo de desarrollo más fácil. El propio APEX se encarga de muchas de las funciones subyacentes comunes a todas las aplicaciones basadas en web; esto permite al programador centrarse en la lógica específica de la aplicación.
¿Cuáles son los requisitos?

  • Conocer sobre consultas SQL (básico) y programación con PL SQL (básico)
  • HTML, CSS (no excluyente)


Instalación de Oracle APEX 

Antes de instalar Oracle Application Express (Oracle APEX) es necesario:
  • Instalar base de datos Oracle (10g, 11g o 12c)

Estas son las versiones soportadas por Oracle APEX:
  • Linux x86
  • Linux x86-64
  • Oracle Solaris on SPARC (64 bit)
  • Oracle Solaris x86-64 (64 bit)
  • HP-UX Itanium
  • Microsoft Windows (32-bit)
  • Microsoft Windows x64 (64-bit)
  • IBM AIX on POWER Systems (64-bit)
  • IBM: Linux on System z
  • HP-UX PA-RISC (64-bit)
Descomprima el archivo zip que ha descargado en alguna posición de la unidad de disco duro. Aquí lo descomprimo en C: / DevProgram

A continuación, introduzca la sentencia sqlplus para iniciar sesión en sqlplus (Nota: no abra sqlplus directamente, sino a través de CMD después de posicionarse en el APEX home)




--
-- Run script apexins.sql with parameters:
--
-- @apexins.sql tablespace_apex tablespace_files tablespace_temp images
--
-- Where:
-- tablespace_apex is the name of the tablespace for the Oracle Application Express application user.
-- tablespace_files is the name of the tablespace for the Oracle Application Express files user.
-- tablespace_temp is the name of the temporary tablespace or tablespace group.
-- images is the virtual directory for Oracle Application Express images.
-- (To support future Oracle Application Express upgrades, define the virtual image directory as /i/.)
--
 
@apexins.sql sysaux sysaux temp /i/
El script anterior crea un SCHEMA en la base de datos, puede probar consultando Ver ALL_USERS en SQLPlus




--
-- Running script apex_epg_config.sql with parameter:
-- @apex_epg_config.sql parent of apex directory
--
 
@apex_epg_config.sql C:\DevPrograms

Habilitar usuario anonymous

--
-- Unlock user anonymous:
 alter user anonymous account unlock;

apexconf.sql 

 Ejecutar script apexconf.sql Se utiliza para realizar los pasos finales de configuración de Oracle Application Express, incluida la configuración del puerto de escucha HTTP XDB ​​y la contraseña ADMIN de Application Express.


--
-- Running script: @apxconf.sql
-- Setup password for ADMIN
-- Configuring XDB Http Listener port
--
 
@apxconf.sql

El usuario, puede usar ADMIN de forma predeterminada y el correo electrónico puede omitirse. Para la contraseña, el sistema requiere que ingrese una contraseña segura: 

  • La contraseña no se ajusta a las reglas de complejidad de contraseñas de este sitio. 
  • La contraseña debe contener al menos 6 caracteres.
  • La contraseña debe contener al menos un carácter alfabético (abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ). 
  • La contraseña debe contener al menos un carácter de puntuación (! "# $% & ()` '* +, - /:;? _).
  • La contraseña debe contener al menos un carácter alfabético en mayúsculas. 
  • La contraseña debe contener al menos un carácter alfabético en minúsculas.


El puerto predeterminado es 8080

Vamos a un navegador y tecleamos



Introducimos clave y usuario.




11 noviembre 2016

Error ORA-38856 cuando duplicas una base de datos 11gR2 en entorno de alta disponibilidad

¿Qué hacer cuando duplicas una base de datos Oracle aparece este tipo de error en un entorno RAC?




En estos días, repasando mis Oracle skills, he estado clonando una bases de datos en RAC 11gR2 con el siguiente script:


RUN
{
ALLOCATE AUXILIARY CHANNEL CH1  TYPE DISK ;
ALLOCATE AUXILIARY CHANNEL CH2  TYPE DISK ;
DUPLICATE DATABASE TO TESTDB
  BACKUP LOCATION '/mount/harkonnen/copia01/originales/'
  DB_FILE_NAME_CONVERT '+DATA/ORIGINAL/DATAFILE','+DATA/TESTDB/DATAFILE'
  PFILE '/mount/dba01/oracle/TESTDB/pfile/initTESTDB1.ora'
  NOFILENAMECHECK
  NOREDO
LOGFILE
  GROUP 1 (
    '+DATA/TESTDB/ONLINELOG/redo01g1.log',
    '+DATA/TESTDB/ONLINELOG/redo02g1.log'
  ) SIZE 300M ,
  GROUP 2 (
    '+DATA/TESTDB/ONLINELOG/redo01g2.log',
    '+DATA/TESTDB/ONLINELOG/redo02g2.log'
  ) SIZE 300M
 ;

Al acabar la clonación, justo al abrir la base de datos, sucedio el siguiente error:



contents of Memory Script:
{
   Alter clone database open resetlogs;
}

alter database open resetlogs
*
ERROR at line 1:
ORA-38856: cannot mark instance UNNAMED_INSTANCE_2 (redo thread 2) 

Buceando en la inmensa Oracle Support encontré la nota 334899.1, en la que marca que podemos utilizar el siguiente parámetro:


_no_recovery_through_resetlogs=TRUE

Una vez que cambie el parámetro, volvi a lanzar la clonación de la base de datos, y esta vez acabo sin ningún problema

Error ORA-01503 y ORA-12720 cuando clonas una BD en entornos de alta disponibilidad

¿Qué hacer cuando mientras clonas una base de datos Oracle aparece este tipo de error en una implantación RAC?


RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of Duplicate Db command at 10/07/2016 13:31:14
RMAN-06136: ORACLE error from auxiliary database: ORA-01503: CREATE CONTROLFILE failed
ORA-12720: operation requires database is in EXCLUSIVE mode

Se ha de cambiar el parámetro cluster_database a falso:

alter system set cluster_database=FALSE scope=spfile sid='INSTANCE_NAME';

Una vez que hayas terminado con el proceso de clonación, tienes que regresar el parámetro a verdadero para que esta instancia siga siendo parte de tu configuración de RAC.


alter system set cluster_database=TRUE scope=spfile sid='INSTANCE_NAME';