Mostrando las entradas con la etiqueta 18c. Mostrar todas las entradas
Mostrando las entradas con la etiqueta 18c. Mostrar todas las entradas

lunes, 18 de marzo de 2019

Instalación Paso a Paso de Oracle 18c XE en Windows




A continuación voy a describir los pasos completos para instalar Oracle 18c XE en un equipo con Windows, junto con algunas recomendaciones para simplificar la instalación, evitar errores y poder utilizar las bases de datos facilmente.

Validar Requerimientos

La primer tarea antes de iniciar la instalación es validar que el equipo donde deseamos instalar Oracle XE cumpla con los requerimientos mínimos de hardware y software

Las plataformas soportadas son:

  • Windows 7 x64 - Ediciones Professional, Enterprise y Ultimate
  • Windows 8.1 x64 - Ediciones Pro y Enterprise
  • Windows 10 x64 - Ediciones Pro, Enterprise y Education
  • Windows Server 2012 x64 - Ediciones Standard, Datacenter, Essentials y Foundation
  • Windows Server 2012 R2 x64 - Ediciones Standard, Datacenter, Essentials y Foundation
  • Windows Server 2016 x64 - Ediciones Standard, Datacenter y Essentials


En el caso de Windows Server, el mismo no puede ser Domain Controller (esto no está aclarado en la documentación pero si fue reportado en los foros y confirmado por Oracle).

Los requerimientos de hardware son:

  • 8,5 Gb de espacio en disco, mas 2 Gb temporales durante la instalación.
  • 2 Gb de RAM.

A nivel permisos, el usuario que ejecuta la instalación debe ser miembro del grupo Administradores. En caso de realizar la instalación con un usuario de Dominio, asegurarse que el equipo este conectado a la red antes de comenzar la instalación.


Descargar Oracle 18c XE para Windows

Descargar el software desde la página de descargas de Oracle XE18c.

Una vez descargado el archivo Zip, descomprimir el mismo en una carpeta temporal desde donde se realizará la instalación, la cual puede ser eliminada una vez finalizado el proceso de instalación.

Instalar Oracle 18c XE

  • Asegurarse que la variable de  entorno "ORACLE_HOME" no esté definida en el equipo.
  • Ubicarse en la carpeta donde se descomprinió el archivo Zip, hacer click derecho sobre el archivo "Setup.exe" y ejecutar como administrador.


  • Esperar a la instalación del paquete de pre-requisitos. Una vez finalizado este paso, el instalador presentará la pantalla de bienvenida, en la que se debe presionar "Siguiente":



  • A continuación se debe aceptar el Acuerdo de Licencia y presionar "Siguiente":


  • El paso siguiente requiere seleccionar una carpeta de instalación. Dentro de la misma se generan las siguientes carpetas:
    • Admin (Archivos de dump, pfile y Oracle Wallet)
    • Audit (Logs de Auditoria)
    • cfgtoollogs (Logs de herramientas de configuración como DBCA o NetCA)
    • checkpoints
    • dbhomeXE (Oracle Home de la version  XE)
    • diag (logs y archivos de diagnostico)
    • oradata (archivos de datos de la CDB y las PDB)


  • A continuación se debe ingresar la contraseña para los usuarios SYS, SYSTEM y PDBADMIN y presionar "Siguiente":


  • La siguiente pantalla muestra un resumen de donde se va a instalar Oracle 18c XE. Al presionar "Instalar" se da comienzo a la instalación:


  • El proceso de instalación, creación de la base de datos CDB y de una base de datos PDB demanda unos 20 minutos:


  • Una vez finalizado el mismo, la pantalla final nos muestra información sobre la forma de conectarse tanto a la CDB como a la PDB y de la dirección web donde se encuentra en ejecución el Enterprise Manager Express de la instancia:


Servicios

Una vez instalada Oracle 18c XE, los siguientes servicios deberían estar disponibles:



Inicio automático de bases PDB

Al finalizar la instalación, tanto la base de datos CDB como la PDB se encuentran abiertas y disponibles para ser utilizadas. Pero al reiniciar el servidor y volver a iniciarse el servicio, solo la base de datos contenedor (CDB) se iniciará en forma automática.

Para configurar las bases de datos PDB (como ser la base XEPDB1 creada durante la instalación) para que inicien de forma automática se debe realizar lo siguiente:


  1. Conectarse a la base de datos contenedor (CDB).
  2. Ejecutar las siguientes sentencias

SQL> ALTER PLUGGABLE DATABASE ALL OPEN;
SQL> ALTER PLUGGABLE DATABASE ALL SAVE STATE;


Nota: Si se crea alguna base de datos PDB con posterioridad, se debe repetir estos pasos.


Conexión desde SQL Developer

Para establecer una conexión a la base de datos XE recientemente instalada, deberemos utilizar los datos informados en el ultimo paso del proceso de instalación:


  • Nombre de Conexión: Usar un nombre que nos permita identificar a que base de datos y con que usuario nos estamos conectando
  • Usuario: Utilizar inicialmente el usuario "System"
  • Contraseña: Utilizar la contraseña provista en el punto 4 del proceso de instalación.
  • Nombre del Host: Si la conexión la estamos haciendo desde el miso equipo donde realizamos la instalación, alcanza con utilizar "localhost". De estar conectándonos desde otro equipo utilizar en nombre o dirección IP apropiada
  • Puerto: utilizar el puerto informado en el ultimo paso del proceso de instalación (se lo identifica por el número en la cadena de conexión, como ser "localhost:1521"). El puerto donde escucha el Listener por defecto es el 1521, pero podría variar si hay mas de un Listener ya instalado.
  • Seleccionar "Nombre del Servicio" e ingresar "XE" para la base de datos contenedor (CDB) o "XEPDB1" para la PDB.

A continuación, al presionar "Probar" debe aparecer un mensaje "Estado: Correcto" en la sección inferior izquierda. Presionar luego "Guardar" para guardar la conexión.




jueves, 21 de febrero de 2019

Oracle 18c XE disponible para Windows


Después de varios meses de espera, Oracle liberó la nueva versión de su base de datos Oracle 18c XE (eXpress Edition) para sistemas operativos Windows.


Oracle 18c XE posee la mayoría de las características de la edición Enterprise, con algunas limitaciones:

  • Hasta 3 PDB (Plugabble Databases)
  • 2 CPU para procesamiento
  • 2 GB de RAM (PGA+ SGA combinadas)
  • 12G GB de almacenamiento de datos de usuarios (puede usarse compresión)


La misma es ideal para entornos de desarrollo y para pequeñas implementaciones productivas que no deseen afrontar los costos de licenciamiento de las versiones con soporte.

La versión puede ser descargada aquí.

Información Adicional:

sábado, 20 de octubre de 2018

Oracle Database 18c XE Disponible para Linux


Después de mucho tiempo de espera, Oracle liberó la nueva versión de su base de datos Oracle 18c XE (eXpress Edition), la cual posee la mayoría de las características de la edición Enterprise, con algunas limitaciones:

  • Hasta 3 PDB (Plugabble Databases)
  • 2 CPU para procesamiento
  • 2 GB de RAM (PGA+ SGA combinadas)
  • 12G GB de almacenamiento de datos de usuarios (puede usarse compresión)


La misma es ideal para entornos de desarrollo y para pequeñas implementaciones productivas que no deseen afrontar los costos de licenciamiento de las versiones con soporte.

La versión 18c (18.0.4.0) ya se encuentra disponible para Linux 64 bit (no habrá versiones de 32 bit)  y puede ser descargada aqui.

Información Adicional:


Muy pronto estará disponible la misma para entornos Windows 64 bit

martes, 21 de agosto de 2018

Oracle 18.3 Disponible On-Premise para MS Windows 64 bit


Oracle anunció la disponibilidad de Oracle 18.3 on-premise para Windows, completando así la disponibilidad en las cuatro plataformas mas utilizadas (ya se encontraban disponibles las versiones para Solaris x86, Solaris Sparc y Linux) en la actualidad.

La versión se encuentra disponible para ser descargada desde aquí.

Para mas detalles se puede consultar la sección de nuevas características de la documentación de la nueva versión.

Solo resta esperar a Octubre, fecha en la que Oracle planea liberar la versión XE de la base de datos.

miércoles, 8 de agosto de 2018

Oracle 18.3 Disponible On-Premise para Solaris x86


Oracle anunció la disponibilidad de Oracle 18.3 on-premise para sistemas operativos Solaris basado en arquitecturas x86, sumándose así a la versión para Linux y la versión para Solaris Sparc disponibles desde hace algunos días.

La versión se encuentra disponible para ser descargada desde aquí.

Para mas detalles se puede consultar la sección de nuevas características de la documentación de la nueva versión.

Seguramente en los próximos días se anunciará la disponibilidad de la misma en Windows, aunque lamentablemente la edición XE fue postergada para el mes de Octubre.

viernes, 3 de agosto de 2018

Agenda confirmada en ODC Latin America Tour 2018 Argentina

El próximo jueves 9 de Agosto llega la primera edición del Oracle Developer Community (ODC) Latin America Tour, la versión renovada del famoso OTN (Oracle Technology Network) Tour que desde hace varios años nos permite conocer características y detalles de las tecnologías de Oracle.

El evento se desarrollará entre las 08:30 y las 18:00 en la sede de la Fundación UADE, Lima 775, CABA. La inscripción al evento (requerida) se encuentra disponible en el siguiente link.

Al igual que en las ultimas ediciones, este año voy a participar con una charla titulada "What's new for developers in latest Oracle Database Releases?" en el Track #3 (Desarrollo PL/SQL), a las 11:45.

La agenda del completa del evento es la siguiente:


Oracle 18.3 Disponible On-Premise para Solaris Sparc


En el día de hoy Oracle anunció la disponibilidad de Oracle 18.3 on-premise para sistemas operativos Solaris SPARC, sumándose así a la versión para Linux disponible desde hace algo mas de una semana.

La versión se encuentra disponible para ser descargada desde aquí.

Para mas detalles se puede consultar la sección de nuevas características de la documentación de la nueva versión.

Seguramente en los próximos días se anunciará la disponibilidad de la misma en Windows, aunque lamentablemente la edición XE fue postergada para el mes de Octubre.

martes, 10 de julio de 2018

Voy a estar presentando en ODC Tour 2018 Argentina!



El próximo jueves 9 de Agosto voy a estar participando de  la primera edición del Oracle Developer Community, la versión renovada del famoso OTN (Oracle Technology Network) Tour que desde hace varios años nos permite conocer características y detalles de las tecnologías de Oracle. En este caso será una charla titulada "What's new for developers in latest Oracle Database Releases?" en el track de Desarrollo PL/SQL.





El evento se desarrollará entre las 08:30 y las 18:00 en la sede de la Fundación UADE, Lima 775, CABA. La lista de disertantes y agenda del evento se encuentra disponible aqui.


La inscripción al evento (requerida) se encuentra disponible en el siguiente link.

martes, 12 de junio de 2018

Oracle 18c - Tablas Temporales Privadas


Desde Oracle 8i es posible crear Tablas temporales en Oracle, aunque la definición de Temporal en esos casos es relativa. Si bien el "contenido" (los datos) de dichas tablas es temporal, su definición no lo es.

Las tablas temporales tal cual las conocemos, llamadas Global Temporary Table, son objectos de diccionario de datos, por lo que su definición es almacenada en el mismo y persiste, no así con el contenido de las mismas.

¿Que son las tablas temporales privadas?

A diferencia de las tablas temporales globales, las tablas temporales privadas no se almacenan en el diccionario de datos, su definición reside en memoria en la PGA (Process Global Area, el area de memoria destinada a mantener valores de cada sesión en Oracle) por lo que son eliminadas en forma automática ya sea al hacer commit (opción por defecto) o bien al finalizar la sesión que la crea.

Al ser objectos que existen sólo en memoria y no se encuentran almacenados en el Diccionario de Datos, no pueden ser utilizados en forma directa en objetos PL/SQL (procedimientos, funciones) ni en vistas, ya que su definición es "volátil". Si necesitamos utilizar una tabla temporal privada dentro de un procedimiento o función, deberemos crear la misma y utilizarla mediante código dinámico.

¿Como se crea una tabla temporal privada?

La sintaxis para crear una tabla temporal privada es la siguiente:

CREATE PRIVATE TEMPORARY TABLE ORA$PTT_sales_ptt_transaction
(time_id      DATE,
 amount_sold  NUMBER(10,2))
[ON COMMIT [DELETE | PRESERVE] ROWS]
 ON COMMIT [DROP|PRESERVE] DEFINITION;

La primer cosa a considerar es el nombre de las tablas temporales privadas. Las mismas deben comenzar con un prefijo específico, el cual se define en el parámetro "PRIVATE_TEMP_TABLE_PREFIX", y cuyo valor por defecto es "ORA$PTT_".

Por otro lado, al declarar una tabla temporal privada deberemos especificar la "duración" de la misma, con la clausula "ON COMMIT [DROP|PRESERVE] DEFINITION". Por defecto, la tabla es eliminada (tanto su definición como su contenido) cuando se ejecuta un COMMIT en la sesión que la creó. Pero se puede preservar la existencia de la misma incluyendo la clausula "ON COMMIT PRESERVE DEFINITION".

La opción "ON COMMIT [DELETE|PRESERVE] ROWS" se mantiene igual que en la sintaxis de las tablas temporales globales.

Restricciones de las Tablas Temporales Privadas

De por si, las tablas temporales poseen un conjunto de restricciones que detallamos a continuación.

  • Las tablas temporales no puede ser particionadas, ni de tipo Cluster o Index Organized.
  • No se pueden definir claves foráneas sobre las tablas temporales.
  • Las tablas temporales no pueden contener columnas de tipo tabla anidada.
  • No se puede realizar UPDATE, DELETE ni MERGE en paralelo en las tablas temporales.
  • La única parte de la clausula de atributos de segmento que se puede especificar para las tablas temporales es la option TABLESPACE, la cual debe referenciar a un único tablespace de tipo temporal.
  • Las tablas temporales no pueden ser utilizadas en transacciones distribuidas.
  • Las tablas temporales no pueden contener columnas de tipo INVISIBLE.


Cuando trabajamos con tablas temporales privadas debemos tener en cuenta las siguientes restricciones adicionales:

  • No se puede crear índices, vistas materializadas con tablas temporales privadas.
  • No se puede asignar un valor por defecto a las columnas de una tabla temporal privada.
  • No se puede hacer referencia a tablas temporales privadas en objetos permanentes, como ser vistas o triggers.
  • Las tablas temporales privadas no son visibles a trabes de database links.
  • Al no almacenarse su definición en el diccionario de datos, no es factible ver las mismas en las vistas usuales del diccionario de datos, como ser "USER_TABLES". Para poder conocer las tablas temporales privadas existentes en un momento dado se pueden consultar estas dos nuevas vistas:


¿Cuando usar tablas temporales privadas?

Un ejemplo de cuando utilizar una tabla temporal privada es en una base de datos en modo READ ONLY, ya que la misma no es almacenada en el diccionario de datos.

lunes, 11 de junio de 2018

Oracle 18c - Tablas Externas "Inline"


Tablas Externas "Inline"

¿Que son las tablas externas?

Las tablas externas existen en Oracle desde la versión 9i, y permiten acceder a información contenida en archivos de texto como si fueran tablas almacenadas dentro de la base de datos.

Las mismas fueron adquiriendo nuevas características con el paso del tiempo. Inicialmente, eran de solo lectura, pero desde Oracle 10g se puede realizar modificaciones a las mismas.

En Oracle 12.2 es posible “particionar” el contenido de las tablas externas, con lo cual podemos ver varios archivos como si fueran una única tabla, y también es posible modificar algunos parámetros (como ser el directorio por defecto o los nombres de archivo) directamente al momento de escribir una consulta, sin necesidad de modificar la definición de la tabla en forma permanente.

¿Qué es lo nuevo en Tablas Externas en Oracle 18c?

Oracle 18c introduce la opción de Tablas Externas "INLINE", lo que traducido a conceptos básicos significa que la definición de la tabla externa se puede hacer directamente en la sentencia que la va a utilizar, sin necesidad de que la misma exista previamente.

SELECT Pais, Provincia, Sucursal, MontoMensual
FROM   EXTERNAL (
         (
           Pais    VARCHAR2(30),
           Provincia VARCHAR2(30),
           Sucursal  VARCHAR2(30),
           MontoMensual NUMBER(18,4)
         )
         TYPE oracle_loader
         DEFAULT DIRECTORY datos_externos
         ACCESS PARAMETERS (
           RECORDS DELIMITED BY NEWLINE
           BADFILE datos_externos
           LOGFILE datos_externos:'inline_ext_tab_%a_%p.log'
           DISCARDFILE datos_externos
           FIELDS CSV WITH EMBEDDED TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
           MISSING FIELD VALUES ARE NULL (
             Pais,
             Provincia,
             Sucursal,
             MontoMensual
           )
        )
        LOCATION ('ventas_argentina.txt', 'ventas_chile.txt', 'ventas_uruguay.txt')
        REJECT LIMIT UNLIMITED
      ) inline_ext_tab
ORDER BY Pais, Provincia, Sucursal;

Si bien el código no queda muy elegante, permite acceder a datos externos (que sean accesibles para la base de datos) sin necesidad de crear un objeto de tipo tabla, lo cual puede ser muy útil en bases de datos o esquemas de solo lectura.

La sintraxis completa puede ser consultada aqui y aqui.

viernes, 8 de junio de 2018

Oracle 18c - ALTER SYSTEM CANCEL


ALTER SYSTEM CANCEL

A partir de la version 18c, es posible cancelar una sentencia ejecutándose en la base de datos sin necesidad de terminar (matar) a la sesión que la está ejecutando.

Para ello, Oracle 18c introduce una nueva opción "CANCEL" en la sentencia "ALTER SYSTEM", la cual tiene la siguiente sintaxis:

ALTER SYSTEM CANCEL SQL ‘SID, SERIAL, [, @INST_ID] [, SQL_ID]’;

Los valores de "SID" y "SERIAL" son idénticos a los que se utilizan históricamente para terminar una sesión utilizando "ALTER SYSTEM KILL". La opción "CANCEL" nos permite indicar dos parámetros adicionales:


  • @INST_ID: Indica la instancia donde la sesión se está ejecutando, y va siempre precedida del símbolo @. Si no se especifica un valor, Oracle asume que la sentencia a cancelar se está ejecutando en la misma instancia donde se ejecuta la sentencia "ALTER SYSTEM CANCEL".
  • SQL_ID: Indica el identificador de la sentencia SQL que deseamos cancelar. Si no se especifica un valor, la sentencia que se esté ejecutando al momento de hacer el "ALTER SYSTEM CANCEL" será cancelada.

Para obtener los datos de las sesiones que están activas, se puede ejecutar la siguiente sentencia:

SELECT s.sid,
       s.serial#,
       s.sql_id,
       s.username,
       s.program,
       s.status
FROM   v$session s
WHERE s.status = 'ACTIVE';



En entornos RAC, se debe usar la vista global "gv$session" e incluir la columna "inst_id" en los resultados:

SELECT s.sid,
       s.serial#,
       s.inst_id,
       s.sql_id,
       s.username,
       s.program
FROM   gv$session s
WHERE s.status = 'ACTIVE';

Se puede consultar la documentación oficial aquí.

jueves, 8 de marzo de 2018

Serie de Artículos sobre Oracle 18c


Tal como lo hice el año pasado con el lanzamiento de Oracle 12c Release 2, este año voy a estar subiendo artículos técnicos sobre nuevas características de Oracle 18c.


Los primeros temas a tratar son:


A medida que publique un articulo, el link estará actualizado y disponible en esta misma nota.